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

          新聞中心

          EEPW首頁 > 測試測量 > 基于ADS7846動態(tài)簽名認(rèn)證的數(shù)據(jù)采集和預(yù)處理

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

          ——
          作者:武漢理工大學(xué) 鄭建彬 劉慧敏 曾 勇 時間:2007-10-10 來源:單片機及嵌入式系統(tǒng)應(yīng)用 收藏

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

              關(guān)鍵詞:

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

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

          1 四線電阻式觸摸屏

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

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

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

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

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

          2 觸摸屏控制芯片ADS7846

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

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

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

          (1) AT89S51

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

          (2)AT89S51與ADS7846的通信

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

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

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

            程序流程如圖4所示。

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

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

            由于觸摸屏的一些邊緣部分是無效的觸摸區(qū)域,所以,實際轉(zhuǎn)換出來的X坐標(biāo)和Y坐標(biāo)并不是從0到4095的,因此要進(jìn)行初始化標(biāo)定,通過轉(zhuǎn)換公式使其在0到4095整個區(qū)間線性化。X坐標(biāo)值的轉(zhuǎn)換公式為X=(X-Xmin)

          霍爾傳感器相關(guān)文章:霍爾傳感器工作原理


          霍爾傳感器相關(guān)文章:霍爾傳感器原理


          評論


          相關(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); })();