<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于ADS7846簽名認(rèn)證的數(shù)據(jù)采集和預(yù)處理

          基于ADS7846簽名認(rèn)證的數(shù)據(jù)采集和預(yù)處理

          作者: 時(shí)間:2008-08-22 來(lái)源:網(wǎng)絡(luò) 收藏

            摘要:在線動(dòng)態(tài)簽名認(rèn)證越來(lái)截止多地運(yùn)用于各種領(lǐng)域,尤其適用于銀行金融系統(tǒng)以及個(gè)人身份識(shí)別等,而作為在線簽名認(rèn)證的基礎(chǔ)—筆跡的數(shù)據(jù)以及預(yù)處理,對(duì)后續(xù)認(rèn)證的準(zhǔn)確性尤為重要。本文著重介紹觸摸屏的工作原理以及如何利用AT89S51、觸摸屏和ADS7846,實(shí)現(xiàn)對(duì)在線筆跡,包括壓力在內(nèi)的三維,并對(duì)采集的數(shù)據(jù)進(jìn)行預(yù)處理。

            關(guān)鍵詞:AT89C51 ADS7846 動(dòng)態(tài)簽名 預(yù)處理

            由于觸摸屏輸入方便、輕薄、便于攜帶等優(yōu)點(diǎn),越來(lái)越多的電子產(chǎn)品用觸摸屏作為人機(jī)界面的輸入設(shè)備。在動(dòng)態(tài)簽名認(rèn)證中,亦采用觸摸屏作為輸入設(shè)備對(duì)筆跡進(jìn)行。本文主要從觸摸屏工作原理、ADS7846的工作方式以及單片機(jī)89S51對(duì)ADS7846的控制等方面,分析如何實(shí)現(xiàn)三維數(shù)據(jù)的采集。

            系統(tǒng)主要由四線電阻式觸摸屏、ADS7846、單片機(jī)89S51以及相應(yīng)軟件程序組成。系統(tǒng)框圖如圖1所示。

            1 四線電阻式觸摸屏

            是采用電阻模擬量技術(shù)。它是一層玻璃作為基層,上面涂有一層透明氧化金屬(ITO氧化銦)導(dǎo)電層,再蓋有一層玻璃或是外表面硬化處理的光滑的塑料層;內(nèi)表面也涂有一層ITO導(dǎo)電層。它們之間有許多細(xì)小的透明隔離點(diǎn)把兩導(dǎo)電層隔開(kāi)絕緣,每當(dāng)有筆或是手指按下時(shí),兩導(dǎo)電層就相互接觸。而形成電路,如圖2所示。

            導(dǎo)電層的兩端都涂有一條銀膠,稱為該工作面的一對(duì)。上下兩個(gè)導(dǎo)電層一個(gè)是水平方向,一個(gè)是豎直方向,分別用來(lái)測(cè)量X和Y的坐標(biāo)位置。在水平面上的稱為X+和X-電極,在豎直平面的電極稱為Y+電極和Y-電極,如圖3所示。工作時(shí),兩個(gè)電極根據(jù)測(cè)量需要提供參考電壓或是作為測(cè)量端對(duì)接觸點(diǎn)的位置進(jìn)行測(cè)量。當(dāng)測(cè)量接觸點(diǎn)X坐標(biāo)的時(shí)候,導(dǎo)電層上的X+電極和X-電極分別上參考電壓和地;Y電極不加電壓,那么X電極間會(huì)形成均勻的,用Y+電極作為測(cè)量點(diǎn),得到的電壓值通過(guò)A/D轉(zhuǎn)換,就可對(duì)應(yīng)地判斷出接觸點(diǎn)的X坐標(biāo)。Y坐標(biāo)亦是類似,只需改成對(duì)Y電極加電壓而X電極不加電壓即可。

            X坐標(biāo)和Y坐標(biāo)的計(jì)算公式為

            

            其中VREF為加在ADS7846內(nèi)部A/D轉(zhuǎn)換器上的參考電壓,可以接VCC作為參考電壓。

            測(cè)量觸摸壓力的原理與ITO(氧化銦)材料的自身特性有關(guān)。ITO導(dǎo)電膜的電導(dǎo)率公式為ρ=ρ0(1+3λ0/d)(d為導(dǎo)電膜的厚度),即ITO電導(dǎo)率和ITO導(dǎo)電膜的厚度成反比。觸摸的壓力越大,接觸點(diǎn)的ITO導(dǎo)電膜就越薄,相應(yīng)的電導(dǎo)率就大、電阻越小。所以,觸摸壓力的測(cè)量實(shí)質(zhì)是測(cè)量接觸ITO導(dǎo)電膜的電阻值。

            

            2 觸摸屏控制芯片ADS7846

            ADS7846是公司生產(chǎn)的專門用于四線數(shù)模轉(zhuǎn)換芯片,內(nèi)部有一個(gè)多通道的模擬開(kāi)關(guān)組成的測(cè)量電路網(wǎng)絡(luò)和12位的A/D轉(zhuǎn)換器。工作時(shí),ADS7846根據(jù)數(shù)據(jù)輸入口DIN收到不同的命令字打開(kāi)相應(yīng)的開(kāi)關(guān)通道,并接受返回的模擬電壓,通過(guò)A/D轉(zhuǎn)換得出對(duì)應(yīng)的數(shù)字量,再通過(guò)DOUT傳回單片機(jī)。

            S是開(kāi)始標(biāo)志位,只有S位為高時(shí)ADS7846才開(kāi)始接收命令字。A0、A1、A2是通道選擇,根據(jù)測(cè)量的需要而改變,MODE選擇是8位還是12位的A/D轉(zhuǎn)換,根據(jù)實(shí)際要求在此選擇了12位的A/D轉(zhuǎn)換。SER/DFR是工作方式選擇位。ADS7846有兩種工作方式:一種是單端輸入,一種是差分輸入。在需要進(jìn)行壓力測(cè)量的時(shí)候,必須使用差分輸入的工作模式。PD1和PD0是用來(lái)控制內(nèi)部參考電壓和模數(shù)轉(zhuǎn)換器的開(kāi)關(guān)。

            3 單片機(jī)AT89S51與ADS7846的數(shù)據(jù)通信

           ?。?) AT89S51

            AT89S51是Atmel公司新推出的89C51的升級(jí)產(chǎn)品,全面兼容89C51。與89C51相比,新增加了以下幾個(gè)主要功能:①可以通過(guò)數(shù)據(jù)下載線進(jìn)行在線編程下載,使程序的寫入更加方便簡(jiǎn)捷;②工作晶振可以達(dá)到33MHz,提高了運(yùn)行速度;③新增了看門狗電路,提高了電路的抗干擾性。

           ?。?)AT89S51與ADS7846的通信

            AT89S51與ADS7846的通信主要通過(guò)單片機(jī)的I/O口與ADS7846的CLK、CS、DOUT、DIN、BUSY五個(gè)引腳進(jìn)行。CLK是ADS7846的工作脈沖,CS是ADS7846的片選信號(hào),DOUT是數(shù)據(jù)輸出,DIN是數(shù)據(jù)輸入,BUSY是轉(zhuǎn)換判斷位。當(dāng)系統(tǒng)工作時(shí),單片機(jī)首先通過(guò)片選信號(hào)選中ADS7846,再通過(guò)DIN向ADS7846發(fā)送命令控制字?jǐn)?shù)據(jù),并通過(guò)CLK引腳配以相應(yīng)的時(shí)序脈沖。BUSY位被后,通過(guò)DOUT數(shù)據(jù)輸出口獲取12位轉(zhuǎn)換結(jié)果。

            由于要求系統(tǒng)能采集包括X坐標(biāo)、Y坐標(biāo)和壓力在內(nèi)的三維數(shù)據(jù),所以,先送打開(kāi)測(cè)量X通道的命令字,返回得到的數(shù)字值即為X坐標(biāo),再送打開(kāi)測(cè)量Y通道的命令字,得到的值為Y坐標(biāo)。再依次得到Z1、Z2的值,通過(guò)轉(zhuǎn)換公式

            可計(jì)算出RTOUCH也就是壓力Z的值。其中Rx是X軸電阻值大小,與觸摸屏的性能參數(shù)有關(guān);是開(kāi)始得到的X坐標(biāo)值。

            程序流程如圖4所示。

            值得一提的是,Z1、Z2仍然是轉(zhuǎn)換后的12位A/D轉(zhuǎn)換的數(shù)字值,但通過(guò)轉(zhuǎn)換公式得到的Z值實(shí)際上是接觸點(diǎn)間兩層ITO氧化膜的電阻值大小。這樣就完成了在某一個(gè)時(shí)刻的三維信息采集。根據(jù)實(shí)際要求,利用定時(shí)器設(shè)定采樣的時(shí)間為10ms,即1s采樣100個(gè)點(diǎn)。采集的數(shù)據(jù)通過(guò)USB接口送到PC機(jī)保存,以供后續(xù)匹配處理。同時(shí),采集的數(shù)據(jù)可以通過(guò)液晶屏顯示,以便書寫時(shí)觀察。

            

            4 觸摸屏的初始化標(biāo)定

            由于觸摸屏的一些邊緣部分是無(wú)效的觸摸區(qū)域,所以,實(shí)際轉(zhuǎn)換出來(lái)的X坐標(biāo)和Y坐標(biāo)并不是從0到4095的,因此要進(jìn)行初始化標(biāo)定,通過(guò)轉(zhuǎn)換公式使其在0到4095整個(gè)區(qū)間線性化。X坐標(biāo)值的轉(zhuǎn)換公式為X=(X-Xmin)4096/(Xmax-Xmin),其中Xmax和Xmin分別是觸摸屏有效觸摸區(qū)域X方向的最大值和最小值。同理,X坐標(biāo)值所對(duì)應(yīng)的轉(zhuǎn)換公式為Y=(Y-Ymin) 4096/(Ymax-Ymin),其中Ymax和Ymin分別是觸摸屏有效觸摸區(qū)域Y方向的最大值和最小值。壓力值表示的是電阻值大小,并不能直接地反映壓力的大小,所以,根據(jù)實(shí)際需要,將其轉(zhuǎn)換成與壓力大小相對(duì)應(yīng)的0到256級(jí)壓力值。轉(zhuǎn)換公式為Z=(Zmax-Z) 256/(Zmax-Zmin),其中Zmax和Zmin分別為書寫筆與觸摸屏接觸時(shí)的最大電阻值和最小電阻值。

            實(shí)驗(yàn)數(shù)據(jù)顯示,所用觸摸屏的Xmax和Xmin分別為3860和180,Ymax和Ymin分別為3690和440,Zmax和Zmin分別為540和350。由于每塊觸摸屏和書寫筆的物理特性都不盡相同,所以每當(dāng)更換觸摸屏或是書與筆的時(shí)候,系統(tǒng)都要進(jìn)行重新初始化示定的工作。

            

            5 數(shù)據(jù)的預(yù)處理

            在數(shù)據(jù)采集的過(guò)程中,有許多因素影響數(shù)據(jù)的準(zhǔn)確性,所以必須對(duì)數(shù)據(jù)作一些相應(yīng)的預(yù)處理,以保證采集數(shù)據(jù)的準(zhǔn)確性。

           ?。?)書寫抖動(dòng)造成的漏點(diǎn)

            在進(jìn)行數(shù)據(jù)采集時(shí),會(huì)在連續(xù)的數(shù)據(jù)中出現(xiàn)零值點(diǎn)。出現(xiàn)零值點(diǎn)有兩種可能:一種是正常書寫筆劃的改變?cè)斐傻模硪环N就是由于觸摸屏不夠平整或是書寫時(shí)的抖動(dòng)造成筆跡的間斷而造成的。區(qū)別的方法主要是看間斷時(shí)間也就是零值連續(xù)出現(xiàn)的個(gè)數(shù)。一般抖動(dòng)造成的間斷時(shí)間小于設(shè)定的采樣時(shí)間10ms,所以,抖動(dòng)產(chǎn)生的零值在兩個(gè)有效數(shù)據(jù)中間只能出現(xiàn)1個(gè),可以認(rèn)為是無(wú)效零值;而出現(xiàn)兩個(gè)以上的連續(xù)零值便可以認(rèn)為是筆劃的改變而生成的有效零值而不作處理。當(dāng)判斷出某個(gè)零值為無(wú)效零值后,對(duì)其進(jìn)行線性內(nèi)插來(lái)彌補(bǔ)數(shù)據(jù)的丟失,即an=(an+1+an-1)/2。其中an是無(wú)效零值點(diǎn),an-1和an+1分別是an的前面和后面的一個(gè)有效值。圖5分別是處理前和處理后的波形。

           ?。?)重復(fù)采集點(diǎn)的去除

            由于書寫者書寫時(shí)的停頓,造成在某一點(diǎn)多次重復(fù)采集,顯然在后續(xù)的匹配會(huì)與樣本數(shù)據(jù)產(chǎn)生很大的誤差,所以有必要?jiǎng)h除重復(fù)的數(shù)據(jù)。每當(dāng)判斷出前后兩個(gè)點(diǎn)X坐標(biāo)和Y坐標(biāo)均相同的時(shí)候,就可以斷定它們?yōu)橹貜?fù)點(diǎn),則將后一個(gè)點(diǎn)刪除,再用后續(xù)的點(diǎn)依次補(bǔ)上。這


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();