由于觸摸屏輸入方便,輕薄便于攜帶等優點,現在越來越多的電子產品用觸摸屏作為人機界面的輸入設備。在動態簽名認證中,亦采用觸摸屏作為輸入設備對筆跡進行數據采集。本文主要從觸摸屏工作原理、ADS7846的工作方式以及單片機89S51對ADS7846的控制等方面來分析如何實現三維數據的采集。 系統主要由四線電阻式觸摸屏,觸摸屏控制器ADS7846,單片機89S51以及相應軟件程序組成。系統框圖如圖所示: 圖1. 系統電路框圖 一、四線電阻式觸摸屏 電阻觸摸屏是采用是使用電阻模擬量技術。它以一層玻璃作為基層,上面涂有一層透明氧化金屬(ITO氧化銦)導電層,上面在蓋有一層玻璃或是外表面硬化處理的光滑的塑料層,它的內表面也涂有一層ITO導電層,他們之間有許多細小的的透明隔離點把兩導電層隔開絕緣,每當有筆或是手指按下時,兩導電層就相互接觸,從而形成了回路。如圖2所示。 圖2.觸摸屏的觸摸示意圖 導電層的兩端都涂有一條銀膠,稱為該工作面的一對電極,上下兩個導電層一個是水平方向,一個是豎直方向,分別用來測量X和Y的坐標位置,在水平面上的電極稱為X+電極和X-電極,在豎直平面的電極稱為Y+電極和Y-電極。如圖3所示,工作時,兩個電極根據測量需要提供參考電壓或是作為測量端對接觸點的位置進行測量,當測量接觸點X坐標的時候,導電層上的X+電極和X-電極分別接上參考電壓和地,Y電極不加電壓,那么X電極間會形成均勻的電壓分布,用Y+電極作為測量點,得到的電壓值通過A/D轉換,就可對應的判斷出接觸點的X坐標。Y坐標亦是類似,只需改成對Y電極加電壓而X電極不加電壓即可。 圖3.觸摸屏的內部結構示意圖 X坐標和Y坐標的計算公式為: 二、觸摸屏控制芯片ADS7846 ADS7846是BURN-BROWN公司生產的專門用于四線電阻觸摸屏數模轉換芯片。內部有一個多通道的模擬開關組成的測量電路網絡和12位的A/D轉換器。工作時,7846根據數據輸入口DIN收到不同的命令字打開相應的開關通道,并接受返回的模擬電壓,通過A/D轉換得出對應的數字量,再通過DOUT傳回單片機。表1是命令字每一位的具體含義。 表1 ADS7846的控制命令字 S是開始標志位,只有S位為高時7846才開始接收命令字,A0,A1,A2是通道選擇,根據測量的需要而改變,具體所對應的選擇見表2。MODE選擇是8位還是12位的A/D轉換,根據實際要求在此選擇了12位的A/D轉換, 是工作方式選擇位, 7846有兩種工作方式,一種是單端輸入,一種是差分輸入,在需要進行壓力測量的時候,必須使用差分輸入的工作模式,PD1和PD0則是用來控制內部參考電壓和模數轉換器的開關。 表2 差分模式下的測量通道選擇 三 單片機AT89S51以及與ADS7846的數據通信 1.AT89S51 AT89S51是ATMEL公司新推出的89C51的升級產品,全面兼容89C51,而且與89C51相比,新增加了以下幾個主要功能:1?梢酝ㄟ^數據下載線進行在線編程下載,使程序的寫入更加方便簡潔2。工作晶振可以達到33M,提高了運行速度3。新增了看門狗電路,提高了電路的抗干擾性。 2.AT89S51與ADS7846的通信 AT89S51與ADS7846的通信主要通過單片機的I/O口與7846的CLK、CS、DOUT、DIN、BUSY五個管腳進行,CLK是7846的工作脈沖,CS是7846的片選信號,DOUT是數據輸出,DIN是數據輸入,BUSY是轉換判斷位。當系統工作時,單片機首先通過片選信號選中7846,再通過DIN向7846發送命令控制字數據,并通過CLK管腳配以相應的時序脈沖,當BUSY位被置位后就通過DOUT數據輸出口獲取12位轉換結果。 由于要求系統能采集包括X坐標、Y坐標和壓力在內的三維數據,所以,先送打開測量X通道的命令字,返回得到的數字值即為X坐標,再送打開測量Y通道的命令字,得到的值為Y坐標。再依次得到Z1,Z2的值,通過轉換公式 圖4 程序流程圖 在此值得一提是,Z1、Z2仍然是轉換后得12位的A/D轉換的數字值,但通過轉換公式得到的Z值實際上是接觸點間兩層ITO氧化膜的電阻值大小。這樣就完成了在某一個時刻的三維信息采集。根據實際要求,利用定時器設定采樣時間為10ms,既一秒種采樣100個點。采集的數據通過usb接口送到pc機保存,以供后續匹配處理。同時,采集的數據可以通過液晶顯示屏顯示,以便我們書寫時觀察。 五、數據的預處理 在數據采集的過程中,有許多因素影響數據的準確性,所以必須對數據做一些相應的預處理,以保證采集的數據的準確性。主要有以下幾種因素: 1.書寫抖動造成的漏點 在進行數據采集時會在連續的數據中出現零值點,出現零值點有兩種可能:一種是正常書寫時筆劃的改變造成的,另一種就是由于觸摸屏不夠平整或是書寫時的抖動造成筆跡的間斷而造成的,區別的方法主要是看間斷時間也就是零值連續出現的個數,一般抖動造成的間斷時間小于設定的采樣時間10ms,所以,抖動產生的零值在兩個有效數據中間只能出現一個,可以認為是無效零值,而出現兩個以上的連續零值便可以認為是筆劃的改變而生成的有效零值而不作處理,當判斷出某個零值為無效零值后,對其進行線性內插來彌補數據的丟失,即 圖5 處理前的數據波形 圖6 處理后的數據波形 由于書寫者書寫時的停頓,造成在在某一點多次重復采集,顯然在后續的匹配中會與樣本數據產生很大的誤差,所以有必要刪除重復的數據,每當判斷出前后兩個點的X坐標和Y坐標均相同的時候,就可以斷定它們為重復點,則將后一個點刪除,再用后續的點依次補上。這樣保證了采集的數據能夠真實的反映筆跡信息。 3.書寫位置的校準 書寫者每次書寫時起筆的點不一定相同,這樣,每次書寫采樣的結果都與樣本模板里的采樣值都有一個恒定的差別,因此有必要進行書寫位置的校準,處理的方法是把采集到的第一個數據的X坐標和Y坐標與樣本數據里第一個數據的X坐標和Y坐標作比較,公式分別 以上是對數據進行預處理的幾種方法,預處理可以為后續筆跡的匹配提供提供更加準確的數據,并減輕匹配的運算量,因此預處理是筆跡匹配認證前的重要步驟,它的好壞將直接影響認證的精度。 |