基于TSC2007的觸摸屏設(shè)計(jì)方案
當(dāng) TSC2007 收到數(shù)據(jù)后,會(huì)確認(rèn)一位 0 。然后由 MCU 收到確認(rèn)后,再發(fā)送一個(gè)字節(jié)的命令字,然后再等 TSC2007 確認(rèn),從而完成寫操作,最后,再由 MCU 發(fā)送一個(gè)結(jié)束信號(hào)以結(jié)束操作。其中的命令字節(jié)含義如表 1 所列。
本文引用地址:http://www.ex-cimer.com/article/169525.htm中的 PD1-PD0 為節(jié)能 bit 位; M 為模式位,該位為 0 表示 TSC2007 是 12 bit 模式,為 1 時(shí)是 8 bit 模式; X 為無(wú)關(guān)位。
TSC2007 的讀操作時(shí)序圖如 3 所示。讀操作時(shí),首先由 MCU 發(fā)送一個(gè)開始信息,然后傳送 8bit 地址信息,該信息與寫操作時(shí)傳送的前 7 個(gè) bit 位一樣,只是第 8 個(gè) bit 為 1( 表示 read) 。此后,經(jīng) TSC2007 確認(rèn)后, MCU 便可接受 8bit 或 12bit 數(shù)據(jù),也就是 TSC2007 發(fā)送的 x 值或者 y 值。
1.4 TSC2007 的讀寫操作注意事項(xiàng)
SDA 引腳及 SCL 引腳上數(shù)據(jù)的改變必須延時(shí)一段適當(dāng)?shù)臅r(shí)間,延時(shí)太短,數(shù)據(jù)讀入可能不成功,太長(zhǎng)則浪費(fèi)系統(tǒng)資源。一般可在 20 μ s 左右。讀寫操作時(shí)的時(shí)序非常重要。 SDA 線上的數(shù)據(jù)狀態(tài)僅在 SCL 為低電平期間才能改變,而在 SCL 為高電平期間, SDA 狀態(tài)的改變則被用來(lái)表示數(shù)據(jù)傳輸?shù)钠鹗己屯V箺l件。因此,若時(shí)序控制不好,則將得不到正確的讀數(shù)。同時(shí),當(dāng)主處理器在對(duì) TSC2007 進(jìn)行寫操作時(shí)。還應(yīng)該屏蔽它的中斷腳 PENIRQ ,這樣可以阻止中斷腳的不停下降而觸發(fā)中斷。
2 硬件設(shè)計(jì)
2.1 TSC2007 的硬件連接電路
基于 TSC2007 的觸摸屏接口電路連接圖如圖 4 所示。其中, 10 腳 (PENIRQ) 、 11 腳 (SDA) 、 12 腳 (SCL) 分別與 MCU 的 3 個(gè) GPIO 口 ( 通用輸入輸出腳 ) 進(jìn)行通信。通過(guò)程序模擬在 SCL 腳上產(chǎn)生方波,就可在 SDA 腳上進(jìn)行數(shù)據(jù)的傳輸,并在 PENIRQ 腳上傳輸中斷信號(hào)。
2.2 I 2C 總線原理
I 2C 總線是由數(shù)據(jù)線 SDA 和時(shí)鐘 SCI 胸成的串行總線,可用于發(fā)送和接收數(shù)據(jù)。其 CPU 與被控 IC 之間、 IC 與 IC 之間進(jìn)行雙向傳送的最高傳送速率可達(dá) 100 kbps 。各種被控制電路均可并聯(lián)在這條總線上,但就像電話機(jī)一樣,只有撥通各自的號(hào)碼才能工作,所以,每個(gè)電路和模塊都有唯一的地址。在信息傳輸過(guò)程中, I 2C 總線上并接的每一模塊電路既是主控器 ( 或被控器 ) ,又是發(fā)送器 ( 或接收器 ) ,這取決于它所要完成的功能。 CPU 發(fā)出的控制信號(hào)分為地址碼和控制量則用于兩部分,地址碼用來(lái)選址,即接通需要控制的電路,確定控制的種類;控制量決定該調(diào)整的類別 ( 如對(duì)比度、亮度等 ) 及需要調(diào)整的量。這樣。各控制電路雖然掛在同一條 I 2C 總線上,但卻彼此獨(dú)立,互不相關(guān)。
I 2C 總線在傳送數(shù)據(jù)過(guò)程中共有三種類型信號(hào),它們分別是:開始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)。其中,開始信號(hào)用于在 SCL 為高電平時(shí),通過(guò) SDA 由高向低的跳變來(lái)開始傳送數(shù)據(jù);而結(jié)束信號(hào) SCL 為低電平時(shí),通過(guò) SDA 由低向高的跳變來(lái)結(jié)束數(shù)據(jù)傳送;應(yīng)答信號(hào)則是在接收數(shù)據(jù)的 IC 在接收到 8 bit 數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的 IC 發(fā)出特定的低電平脈沖應(yīng)答,以表示收到數(shù)據(jù)。
當(dāng) CPU 向受控單元發(fā)出一個(gè)信號(hào)后,系統(tǒng)將等待受控單元發(fā)回應(yīng)答信號(hào), CPU 接收到應(yīng)答信號(hào)后,將根據(jù)情況作出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),則判斷為受控單元出現(xiàn)故障。
I 2C 規(guī)程采用主/從雙向通訊方式。向總線發(fā)送數(shù)據(jù)的器件定義為發(fā)送器,從總線接收數(shù)據(jù)則為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)。但總線必須由主器件 ( 通常為微控制器 ) 控制,主器件可產(chǎn)生串行時(shí)鐘 (SCL) 以控制總線的傳輸方向,并產(chǎn)生起始和停止條件。
3 軟件實(shí)現(xiàn)
設(shè)計(jì)軟件時(shí),可采用系統(tǒng)輪詢或者中斷方式來(lái)實(shí)現(xiàn)觸摸屏功能。在嵌入式系統(tǒng)中,如果系統(tǒng)多數(shù)時(shí)間處于空閑狀態(tài),則可考慮采用輪詢;否則可考慮采用中斷方式來(lái)處理觸摸屏信號(hào)。本方案采取中斷方式,其中斷入口程序流程圖如圖 5 所示。系統(tǒng)初始化時(shí),首先將 TSC2007 設(shè)成 PowerDown 模式,當(dāng)觸摸屏上有點(diǎn)擊時(shí),上將產(chǎn)生一個(gè)下降脈沖,以引發(fā)中斷。此時(shí)系統(tǒng)進(jìn)入觸摸屏的中斷向量。當(dāng)中斷處理程序判斷數(shù)據(jù)有效后,即設(shè)置一個(gè) timer ,每隔大約 20 μ s 進(jìn)行一次 X 、 Y 值的讀寫,并將取得的值存入 buffer 中,然后進(jìn)行去抖、校正處理,同時(shí)判斷當(dāng)前狀態(tài) (PRESS 、 MOVE 、 RELEASE 等 ) ,最后將有效的 X 、 Y 值取平均值后發(fā)送到系統(tǒng)的消息隊(duì)列。
4 結(jié)束語(yǔ)
在實(shí)際應(yīng)用的基礎(chǔ)上,本文介紹了利用觸摸屏控制器 TSC2007 實(shí)現(xiàn)觸摸屏功能的設(shè)計(jì)方案。通過(guò)這款功能強(qiáng)大,操作簡(jiǎn)便的觸摸屏控制器,能精確快速地在諸如手機(jī)、 Mp3 、 ATM 機(jī)等設(shè)備上實(shí)現(xiàn)便攜式電子產(chǎn)品及其他多媒體設(shè)備的觸摸屏功能??梢灶A(yù)見,隨著觸摸屏技術(shù)的迅速發(fā)展,觸摸屏對(duì)于計(jì)算機(jī)技術(shù)的普及利用將發(fā)揮重要作用。
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論