基于C8051F020的觸摸屏驅動控制
目前觸摸屏和液晶屏已成為嵌入式計算機系統常用的輸入輸出設備。觸摸屏分為電阻、電容、表面聲波、紅外線掃描和矢量壓力傳感式觸摸屏,其中使用最多的是四線或五線電阻式觸摸屏。TSC2046為四線電阻式觸摸屏控制器,以其低功耗和高速率
等特性廣泛應用于電池供電的小型手持設備。
C8G051Fxxx系列單片機是完全集成的混合信號系統級器件,峰值速率達25 MI/s。片內集成ADC和DAC;SMBus/I2C、UART、SPI接口:可編程計數器/定時器陣列;64個I/O端口(P0~P7);內部具有JTAG和調試電路,支持在系統調試。本文介紹了利用該系列單片機C8051F020、TSC2046和液晶屏實現人機互動接口。
2 觸摸屏工作原理
觸摸屏控制器相當于觸摸屏體與微控制器間的接口。觸摸屏體是一個4層的復合薄膜,附著在顯示器表面與顯示器配合使用。圖1為觸摸屏外部結構。每一導電層為觸摸屏的一個工作面,每個工作面的兩端各涂一條銀膠,稱為該工作面的一對兒電極,分別稱為X電極對和Y電極對。當觸摸屏控制器同X電極對施加一確定電壓,而不向Y電極對施加電壓時,X電極對的工作面會形成均勻連續(xù)的平行電壓場,如圖2(a)所示。當手指或觸筆觸及觸摸屏時,觸點電壓則反映觸點在Y工作面的位置,將該電壓量通過Y+(或Y-)電極引至觸摸屏控制器,經過A/D轉換,便可得到觸點電壓的數字量,即Y坐標。同理,向Y電極對上施加電壓,以X+(或X-)為測量電極,便可得到X坐標。微控制器根據觸點坐標位置以及對應坐標位置顯示內容,便可得知觸摸者的意圖。
3 TSC2046的工作模式和控制字
TSC2046可設置為8位或12位工作模式,輸入方式為差分輸入和單端輸入,本文以12位差分輸入模式進行說明。表1為TSC22046的控制字。
其中S為數據傳輸起始標志位,該位恒為“1”。A2~A0用于通道選擇,決定觸摸屏體輸出模擬電壓從TSC2046的哪個引腳輸入。MODE用于選擇A/D轉換的精度,當為1時選擇8位;當為0時選擇12位。在12位工作模式下,其二進制結果的最低位表示模擬電壓為參考電壓(TSC2046引腳+VCC與GND的壓差)的1/4 096。SER/DFR可用于選擇輸入模式,SER選擇單端模式,DFR選擇差分模式。PD1、PD0用于選擇省電模式。圖3為差分輸入模式下的示意圖。表2是差分模式輸入配置。差分模式是一種比率度量轉換方式,加在觸摸屏體電極上的電壓為TSC2046引腳+VCC與GND之間的電壓,轉換結果是觸摸屏上分布電阻值的百分比。
4 典型應用
4.1 接口電路
TSC2046與C8051F020的電路連接圖如圖4所示。觸摸屏體兩對兒電極通過J2接至TSC2046的四個電極。為了增強驅動能力,TSC2046與C8051F020的連線均通過一只10 kΩ的上拉電阻拉至5 V,采用SPI接口通信,相關引腳對應關系:TSDIN-數據輸入、TSBUSY-忙信號、TSINT-筆中斷信號、TSDDOUT一數據輸出、TSDCLK一時鐘信號、TSCS一片選信號。TSC2046與C8051F020連接時,由于TSINT引腳接收TSC2046發(fā)送的中斷信號,因此配置C8051F020時,TSINT引腳通過交叉開關配置為外部中斷引腳。否則只能通過查詢TSINT引腳的電平狀態(tài)判斷是否有觸摸事件。為了減少干擾,在X+、X-、Y+、Y-四個輸入端都應接一只旁路電容,數據線要盡量短。
4.2 程序設計
TSC2046的驅動程序遵循標準的SPI協議實現與微控制器的通信。當觸摸屏按下時(即有觸摸事件發(fā)生),則TSC2046通過筆中斷引腳(TSINT)向微控制器發(fā)送中斷請求,微控制器接收請求后,延時30 ms,再響應其請求,目的是消除抖動使采樣更準確。如果一次采樣不準確,可多次采樣并取最后一次結果。TSC2046驅動程序的流程如圖5所示。圖6為A/D轉換時序(一次轉換需16個時鐘信號)。
根據時序圖,采用12位輸出結果方式取讀TSC2046子函數代碼如下:
以上為驅動程序中一個典型子函數,其余子函數與之類似。需要注意的是:完成一次轉換需16個時鐘信號,輸出卻為12位數據,因此應加補4個空閑時鐘信號,使之達到16個時鐘信號,才能得到正確的A/D轉換結果。否則,TSC2046與C8051F020無法同步,則無數據輸出。此外,TSC2046的控制字發(fā)送完成,需禁止SPI通信,直到A/D轉換結束,以免數字信號對模擬電壓產生干擾。該觸摸屏已應用于某醫(yī)療設備的輸入輸出系統,反應良好。
評論