基于LPC2210的觸摸屏觸摸點數據采集系統(tǒng)設計
摘要:提出了基于ARM7系列LPC2210微控制器和嵌入式操作系統(tǒng)μC/OS—II來實現觸摸屏觸摸點數據采集系統(tǒng)的設計,并完成了微控制器與上位機之間的物理層電路轉換,實現了基于LIN總線的數據通信,能夠在上位機得到觸摸點的精確坐標以及控制菜單信息,并且準確可靠、傳輸速率高。
關鍵詞:LPC2210;μC/OS-Ⅱ;觸摸屏;LIN總線
引言
嵌入式系統(tǒng)實際上是“嵌入式計算機系統(tǒng)”的簡稱,是相對于通用計算機系統(tǒng)而言的,根據應用的要求,將操作系統(tǒng)和功能軟件集成于計算機硬件系統(tǒng)中,以應用為中心,計算機技術為基礎,實現軟件與硬件的一體化。其適用于對功能、可靠性、成本、體積和功耗等有嚴格要求的專用計算機系統(tǒng)。
觸摸屏又稱為“觸控屏”、“觸控面板”,是一種附加在顯示器表面的透明介質。觸摸屏作為一種新的輸入設備,是目前最簡單、方便、自然的一種人機交互方式。通過使用者的手指觸摸,該介質實現對計算機的操作定位,大大簡化了計算機的輸入方式,實現零距離操作。而在觸摸屏的使用中,對觸摸點的精確定位至關重要,本文提出了一種觸摸屏的坐標算法,該算法具有良好的可移植性和擴展性。
1 研究背景
觸摸技術已經非常成熟,在歐美和日本已經有近20年的發(fā)展歷史。而在技術發(fā)展上,歐美的觸摸屏以電容式、表面聲波式及5線電阻式為發(fā)展方向,產品以大尺寸居多。日本觸摸技術以4線電阻式為主要發(fā)展方向,產品以中小尺寸為主,而中國臺灣也以4線電阻式居多。
目前,觸摸技術大量應用于嵌入式系統(tǒng)中,結合了先進的計算機技術、半導體技術以及電子技術,形成嵌入式高端產品。其以體積小、功耗低、處理能力強等諸多優(yōu)點,在通信、網絡、工控、醫(yī)療、電子等領域發(fā)揮著越來越重要的作用。嵌入式系統(tǒng)經歷了20多年的發(fā)展,已經從普通的低端應用進入到一個高、低端并行發(fā)展,且不斷提升低端應用的時代,觸摸技術在嵌入式系統(tǒng)既有很強的應用價值和市場前景,又有很重要的實際意義。
2 設計方法
2.1 系統(tǒng)總體設計
系統(tǒng)采用Philipa公司的LPC2210作為CPU,由于其片內無程序存儲器,所以需要外擴Flash,還可以擴展靜態(tài)RAM。LPC2210最小系統(tǒng)需要2組電源、復位電路、晶振電路和程序存儲器等,觸摸屏接口芯片采用ADS7843作為設備控制器,整個系統(tǒng)可實現對觸摸屏觸摸點的數據采集,系統(tǒng)結構框圖如圖1所示。
2.1.1 LPC2210芯片簡介
LPC2210是基于支持實時仿真和嵌入式跟蹤的16/32位ARM7核的微控制器,對代碼規(guī)模有嚴格控制的應用可使用16位Thumb模式,可將代碼規(guī)模降低超過30%,而性能的損失卻很小。
LPC2210采用144引腳封裝,通過配置總線,最多可提供76個GPIO。其擁有極低的功耗、多個32位定時器、8路10位ADC、PWM輸出,以及多達9個外部中斷。它們特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問控制和POS機等,又由于內置了寬范圍的串行通信接口,非常適合于通信網關協(xié)議轉換器、嵌入式軟Modem以及其他各種類型的應用。
2.1.2 ADS7843芯片簡介
ADS7843是一種專門對觸摸屏輸入設備進行控制的芯片,其主要完成兩件事:一是完成電極電壓的切換,二是采集接觸點處的電壓值。
ADS7843是一款連續(xù)近似記錄(SAR)的A/D轉換器,具有同步串行接口,內置12位模/數轉換、低導通電阻模擬開關,根據微控制器發(fā)來的不同測量命令使相應的模擬開關導通,向觸摸屏電極對提供電壓,并把觸摸點位置的電壓引入A/D轉換器,以其低功耗和高速率等特性被廣泛應用。
2.2 系統(tǒng)硬件設計
觸摸屏的數據采集系統(tǒng)主要由兩個部分組成:觸摸屏的控制和數據的傳輸。
觸摸屏的控制是通過微控制器進行異步數據傳送,向ADS7843發(fā)送控制字來讀取ADS7843的A/D轉換結果,微控制器完成一次觸摸屏數據采集,兩者之間需要進行3次通信。微控制器讀取到A/D轉換結果后,對數據進行處理,得到觸摸點的坐標。為了得到坐標值,可以通過串
口傳輸到上位機進行顯示。數據經過串口進行傳輸的方法很多,從成本的角度考慮,選擇LIN總線來進行數據的傳輸,結構簡單、且容易實現。硬件電路如圖2所示。
2.3 系統(tǒng)軟件設計
系統(tǒng)的軟件平臺核心為μC/OS—II,它是一個源碼公開、可移植、可固化、可裁剪的占先式多任務管理的實時操作系統(tǒng)內核。它已在相當多的系統(tǒng)中得到應用,是一個經實踐證明穩(wěn)定可靠的內核,且其核心代碼短小精悍、簡單易學。在對系統(tǒng)進行軟件設計之前,必須要先完成μC/OS—II的移植,與移植有關的代碼包括一個匯編文件OS_CPU_A.ASM、一個C程序文件OS_CPU_C.C和一個頭文件OS_CPU.H,根據處理器的不同,移植所要編寫和修改的代碼數不同,代碼移植好以后,應編寫一個簡單的應用程序對其進行測試。
2.3.1 觸摸屏ADS7843軟件設計
系統(tǒng)上電以后,觸摸屏上會顯示相應的控制菜單,而每個控制菜單都具有相應的執(zhí)行程序。設置觸摸屏接口為等待中斷模式,等待觸摸屏被按下。如果中斷發(fā)生,微控制器發(fā)送信號控制ADS7843操作,通過觸摸屏X+極將觸摸信號輸入到A/D轉換器,同時打開Y+和Y一驅動。ADS 7843轉換結果為二進制格式,如果選取8位的轉換精度,1LSB=VREF/256;如果選取12位的轉換精度,1LSB=VREF/4 096,將轉換結果與1LSB相乘就可以得到觸摸點的電壓VOY。
由于觸摸屏導電層分布均勻,則有VOY/Y—VCC/H,其中,VOY是從X+極采集到的電壓值,VCC為ADS7843的電源電壓,H為觸摸屏導電介質的高度,從而得到當前Y方向的坐標,同理也可以得到X方向的坐標,ADS7843坐標值測量流程如圖3所示。
2.3.2 觸摸屏坐標算法
微控制器得到觸摸點的坐標以后,要作相應的處理。而在動作之前,微控制器還必須要知道觸摸屏中哪個控制菜單被按下,這樣才能去執(zhí)行相應菜單的程序。設控制菜單的右下角坐標為Xa、Ya,左上角坐標為Xb、Yb,只需要觸摸點的坐標X在Xa和Xb之間,Y在Ya和Yb之間,則認為是該控制菜單被按下。在程序中定義一個數組S[],數組中每連續(xù)的5個值描述一個菜單信息,前兩個代表控制菜單右下角坐標,第3、4個代表控制菜單左上角坐標,第5個代表控制菜單,觸摸屏坐標算法流程圖如圖4所示。
結語
觸摸屏是集信息顯示、通信、處理和控制于一體的輸入設備,它大量應用于各個領域,系統(tǒng)采用Philips公司的LPC2210微控制器作為主控芯片,其內部資源豐富,可以對系統(tǒng)功能進行擴充。在對觸摸屏進行數據采集時,刷新頻率高,保證了數據的準確和不丟失,并實現了微控制器與上位機之間通過半雙工的方式進行通信,結構簡單、傳輸可靠,大大降低了成本。整個系統(tǒng)可移植性強,具有一定的實用價值。