嵌入式系統觸摸屏的應用越來越廣泛,諸如以PDA為標志的數碼產品和工業領域中使用的大量儀器儀表都逐漸選用LCD觸摸屏作為系統的輸入設備。觸摸屏分為電阻、電容、表面聲波、紅外線掃描和矢量壓力傳感等,其中用的最普遍的是四線或五線電阻觸摸屏。四線電阻觸摸屏是由兩個透明電阻膜構成的,在它的水平和垂直電阻網上施加電壓,就可通過A/D轉換面板在觸摸點測量出電壓,從而對應出坐標值。本文除簡單介紹ADS7843工作原理之外,主要討論觸摸屏控制器的兩種控制方式,并給出了具體的應用連接圖。 1 觸摸屏控制器工作原理 ADS7843內部是一個由多個模擬開關組成的供電-測量電路網絡和12位的ADC組成,如圖1所示。其最高轉換頻率達125 kHz。X+、Y+、X-、Y-是轉換器模擬輸入端,實際上是一個四通道多路器。觸摸屏工作時,上下導體層相當于電阻網絡。當在X方向的電極對上施加一確定的電壓,而Y方向電極對上不加電壓時,在X平行電壓場中,觸點處的電壓值可以在Y+(或Y-)電極上反映出來,通過測量Y+電極對地的電壓大小,便可得知觸點的X坐標值。同理,當在Y電極對上加電壓,而X電極對上不加電壓時,通過測量X+電極的電壓,便可得知觸點的y坐標。 2 硬件接口電路 觸摸屏輸入系統由微控制器、觸摸屏、觸摸屏控制器三部分組成。圖2是一個實際的觸摸屏輸入系統。在該系統中,微控制器采用Philips公司ARM7內核的LPC2387;觸摸屏采用Sharp公司的四線式電阻觸摸屏;觸摸屏控制器采用BB公司的ADS7843。LPC2387通過SSP接口和外部中斷EINT0與ADS7843相連。當筆中斷信號為低時,表示有觸摸發生。SSP為同步串行接口控制器,可控制SPI、4線SSI或半導體Microwire總線操作,通過配置寄存器將其設定為Mi-crowire通信方式,由LPC2387啟動兩次Microwire傳送來完成坐標采集。第1次輸入采集X坐標的控制字輸出未經變換的X坐標。第2次輸入Y坐標控制字輸出未經變換Y坐標。當然也可以不用SSP功能,采用通用I/O端口模擬ADS7843轉換時序達到觸摸控制的效果。ADS7843轉換時序及控制字格式如圖3所示。 3 系統軟件設計 觸摸屏軟件設計包括I/O口初始化程序、筆中斷服務程序和ADS7843測量子程序三部分。當有觸摸時,ADS7843向LPC2387發出中斷請求并響應,程序跳至啟動通信代碼處,讀取ADS7843的轉換結果,從而得到觸摸點的坐標。在ADS7843測量子程序中,完成一次微處理器和ADS7843之間的通信。 觸摸屏的軟件設計可采用兩種方式:一種是利用SSP接口的Microwire方式直接控制;另一種是I/O端口模擬ADS7843轉換時序來實現坐標采集。 3.1 Microwire方式 Microwire格式采用半雙工模式。每次串行發送8位控制字開始,在發送控制字過程中,SSP不接收數據,待發送完畢后,片外從器件ADS7843對其譯碼,并且最后一位發送結束的一個串行時鐘后,才返回主機所需的數據。它的這種傳輸方式恰好與ADS7843轉換時序吻合,只要對SSP寄存器配置準確便可方便地控制觸摸屏完成坐標的采集。 部分程序代碼如下: ADS7843_Get()為測量取值子程序,通過控制SSPODR寄存器實現控制字的發送和邏輯坐標值的接收。 3.2 I/O口模擬時序方式 鑒于許多微控制器沒有SSP接口,可以采取I/O模擬ADS7843轉換時序來實現坐標采集。此方式較為繁瑣,與SSP接口的觸摸屏控制方式比較最為顯著的缺點是:響應速度較慢,靈敏度較低,微處理器與觸摸屏控制器間的通信時間較長,降低了系統的效率。然而此種方式卻具有一般性,任何處理器都可采以用此方式來實現觸摸控制。 I/O模擬時序坐標采集程序如下: 4 坐標轉換 從觸摸屏控制器獲得的X與Y值僅是對當前觸摸點電壓值的A/D轉換值,它不具有實用價值。這個值的大小不但與觸摸屏的分辨率有關,而且也與觸摸屏和LCD的貼合狀況有關。LCD與觸摸屏的分辨率和坐標一般來說是不一樣的,因此,如果想得到體現LCD坐標的觸摸屏位置,還需要在程序中進行轉換。轉換公式如下: 其中,Tch_Xmax、Tch_Xmin、Tch_Yma x和Tch_Ym-in是觸摸屏返回電壓值X、Y軸的范圍;LCDWidth、LCD-Height是液晶屏的寬度與高度。 結 語 本設計實現了觸摸屏的基本功能,其中包括硬件電路的設計與調試,SSP或I/O模擬時序控制觸摸屏軟件實現。經過調試后,觸摸屏工作正常,能夠實現系統所要求的功能。使用Philips公司的LPC2387微處理器來設計的四線電阻式觸摸屏產品在實際應用中得到較好的效果,屏幕顯示無閃爍,畫面切換速度快,觸摸屏響應迅速。 |