曾小波,黃建華, 李競雄
(1.湖南理工職業(yè)技術學院,湘潭 411104;2.上海德意達電子電器設備有限公司,上海 201203)
?
基于ARM微處理器的觸摸屏控制器設計及實現(xiàn)
曾小波1,黃建華1, 李競雄2
(1.湖南理工職業(yè)技術學院,湘潭 411104;2.上海德意達電子電器設備有限公司,上海 201203)
針對當前液晶觸摸屏系統(tǒng)屏幕尺寸大、操作簡便、應用廣泛的主流發(fā)展方向.提出采用ARM9處理器作為核心器件,ADS7846為觸摸屏控制器和6.5寸背光源四線電阻式TFT-LCD面板構成觸摸屏系統(tǒng)的方案.闡明了系統(tǒng)的總體方案,硬件組成及各部件的工作原理分析,器件的選型.闡述了ARM-Linux系統(tǒng)的軟件應用模型及部分控制程序的實現(xiàn).產(chǎn)品經(jīng)過調(diào)試后能良好的顯示,通過加載QT編寫的應用程序可以較好的通過觸摸屏來進行操作,達到了預期的設計要求.具有較高的實際應用價值.
微處理器;SPI;ARM9;觸摸屏;控制器
觸摸屏由于輕便、占用空間少、靈活等優(yōu)點,已經(jīng)逐漸取代鍵盤,成為嵌入式系統(tǒng)中最簡單、方便和自然的一種人機交互方式[1].基于控制器和液晶顯示的接口技術在日常生活、工業(yè)控制、智能家電等領域得到越來越廣泛的應用.使用LCD觸摸屏作為工業(yè)設備的輸入輸出設備既能達到可視化的要求,方便現(xiàn)場操作,又能降低微計算機信息產(chǎn)品的成本[2].ARM處理器經(jīng)過多年的發(fā)展,速度越來越快,功能越來越強,應用領域也越來越廣.
液晶觸摸屏系統(tǒng)主要由TFT液晶屏模塊、觸摸屏和ARM微處理器組成.本文提出采用以ARM9作為處理器,背光源TFT-LCD薄膜晶體管型液晶顯示屏模塊及相關接口電路組成的液晶屏顯示屏設計方案.控制處理器采用ATMEL公司的ARM9處理器AT91SAM9261為CPU;觸摸屏控制器選用BB公司的ADS7846;觸摸屏TFT-LCD面板選用三菱公司的6.5寸LED背光工業(yè)級AA065VD01型號寬屏高亮液晶屏,分辨率高達640*480;操作系統(tǒng)采用LINUX來驅(qū)動控制顯示屏,并使用QT編寫應用程序.該方案經(jīng)過測試和實踐,硬件、軟件均達到了設計要求,同時具有穩(wěn)定性好,可移植性強,并可根據(jù)所處環(huán)境光線強度自動調(diào)節(jié)液晶屏顯示亮度等優(yōu)點.
如圖1所示,處理器部分以ARM微處理器為核心,包括處理器的外部總線接口控制器、LCD控制模器、A/D輸入、SPI接口、UART接口、GPIO等外圍電路構成.處理器AT91SAM9261為Atmel公司生產(chǎn)的以ARM926EJ-S ARM Thumb處理器為核心的具有完全片上系統(tǒng)(SOC)的處理器,并且擴展了DSP指令集和Jazelle Java加速器;主時鐘頻率為190 MHz時性能高達210 MIPS;且AT91SAM9261處理器是帶有LCD顯示應用并優(yōu)化的主機處理器,集成LCD控制器支持BW能達到16 M色彩,以及主動和被動LCD顯示,能將LCD刷新對整體處理器性能上的影響減到最小.
觸摸屏部分由觸摸傳感部件和觸摸屏控制器ADS7846組成,觸摸傳感部件是安裝在LCD液晶屏前面,用于檢測用戶觸摸位置并將用戶觸摸信息送往ADS7846的傳感部件[3].
觸摸屏控制器ADS7846是BB公司生產(chǎn)的四線電阻觸摸屏轉(zhuǎn)換接口芯片,是一款具有同步串行接口的12位取樣模數(shù)轉(zhuǎn)換器.完成觸摸傳感部件發(fā)送來的位置信息的A/D轉(zhuǎn)換工作和微處理器發(fā)送的控制命令.存儲設備主要包括128 MB的SDRAM,64 MB的NAND Flash和4 MB的NOR Flash,構成大容量存儲系統(tǒng)為復雜多變的人機交互和大量數(shù)據(jù)分析為基礎的工業(yè)控制提供存儲保障;人機交互模塊包括多個子模塊,其中USB主控制器可以連接USB鼠標、鍵盤等輸入設備.
圖1 系統(tǒng)總體框圖
2.1 觸摸屏控制器工作原理
按照觸摸屏技術原理上分為五個基本種類:矢量壓力傳感技術觸摸屏、電阻技術觸摸屏、電容技術觸摸屏、紅外線技術觸摸屏、表面聲波技術觸摸屏,其中最常見的是電阻式觸摸屏.電阻式觸摸屏的主要部分是一塊與顯示器表面非常配合的復合電阻薄膜,以一層玻璃或硬塑料平板作為基層,表面涂有一層透明氧化金屬(透明的導電電阻)導電層,上面再蓋有一層外表面硬化處理的光滑防擦塑料層,內(nèi)表面也涂有一層涂層在他們之間有許多細小的(小于1/1000英寸)的透明隔離點把兩層導電層隔開絕緣,當手指觸摸屏幕時,兩層導電層在觸摸點位置就有了接觸,電阻發(fā)生變化,在X和Y兩個方向上產(chǎn)生信號,送到觸摸屏控制器,控制器偵測到接觸信號并進行A/D轉(zhuǎn)換確定接觸點的坐標(X,Y).
觸摸屏控制器ADS7846是BB公司生產(chǎn)的四線電阻觸摸屏轉(zhuǎn)換接口芯片,是一款具有同步串行
接口的12位取樣模數(shù)轉(zhuǎn)換器,工作電壓在2.2 ~5.25 V之間,功耗小于0.75 mW.
由于AT91SAM9261芯片集成了同步串行外部接口SPI,故可設計AD7846與ARM芯片AT91SAM9261的連接圖如圖2所示,圖中ADS7846 的X+、Y+、X-、Y-是4線制觸摸屏模擬信號輸入端, DCLK是外部時鐘輸入;CS是片選端;DIN是串行輸入,控制數(shù)據(jù)通過該引腳輸入;DOUT是串行數(shù)據(jù)輸出,用于輸出轉(zhuǎn)換后的觸摸位置數(shù)據(jù),最大數(shù)為二進制的4095;IN3、IN4是輔助輸入;PENIRQ是PEN中斷引腳,當按下觸摸屏時,ADS7846向AT91SAM926發(fā)中斷請求,AT91SAM926的GPF5在下降沿觸發(fā)的情況下檢測PENIRQ是否為低電平,若為低電平則認為有按下觸摸屏,否則認為沒有接觸到[4],實現(xiàn)微處理器的SPI接口和ADS7846進行通信目的.
圖2 ADS7846和AT91SAM9261的接線圖
圖3為ADS7846的工作時序圖.此圖說明標準的一次A/D轉(zhuǎn)換需要24個時鐘周期,從AT91SAM9261的MOSI口向ADS7846的DIN發(fā)送控制字,當ADS7846接收到控制字的前5位后,A/D轉(zhuǎn)換器進入采樣階段.控制字節(jié)輸入完畢后,等待BUSY為低電平后,在每個DCLK的下降沿,A/D轉(zhuǎn)換的坐標值從高位到低位逐位從DOUT引腳向微處理器輸出.這樣為了獲得一個坐標值,ADS7846與AT91SAM9261之間需要經(jīng)過3個SPI時鐘傳送,即經(jīng)過3×8=24個DCLK時鐘周期[5].
圖3 ADS7846時序圖
2.2 LCD顯示控制器設計
LCD顯示控制器采用AT91SAM9261內(nèi)部集成的LCD控制器作為LCD的控制單元.AT91SAM9261處理器內(nèi)部集成的LCD控制器能支持單、雙掃描模式的黑白或者彩色STN屏,也支持單掃描模式的TFT屏.LCD控制器支持4位單掃描和8位單或雙掃描及16位雙掃描STN屏,彩色STN顯示時多達4096色,單色STN每像素為4位,彩色STN每像素為16位,TFT每像素為16和24位,分辨率支持達2048*2048的高分辨率.本文使用處理器來驅(qū)動640*480的TFT顯示器.
LCD控制器框圖如圖4所示,LCD控制器與外部以及ARM內(nèi)核的連接圖,通過以下的信號來控制顯示,其中LCDVSYNC為LCD垂直同步,LCDHSYNC為LCD水平同步,LCDDOTCK為LCD點陣數(shù)據(jù)時鐘,LCDDEN為LCD數(shù)據(jù)使能,LCDCC為LCD對比度控制,LCDD0-LCDD23為數(shù)據(jù)總線.且本文中的控制器為DMA控制器,可以不經(jīng)處理器直接讀取顯示緩存中的數(shù)據(jù),加速LCD的顯示[6][7].
圖4 LCD顯示控制電路圖
2.3 TFT面板硬件接口設計
觸摸屏AA065VD01是一個6.5寸的LED背光源的工業(yè)級顯示屏,分辨率為640*480,每個像素點由紅綠藍三基色組成,每種基色由6位的數(shù)據(jù)寬度,刷新頻率60 Hz.采用DB9B-31-1V接插件,工作時序如圖5所示.
圖5 AA065VD01掃描時序圖
2.4 環(huán)境光監(jiān)測電路設計
為了更好的監(jiān)測環(huán)境光線的強弱,系統(tǒng)選用TSL250RD專用芯片,TSL250RD是一款高速、低功耗、寬量程、光強傳感器芯片.具有電路簡單、測試敏感的特點,能根據(jù)光線的強度,輸出相應的電壓,只需要將電壓測量出來就可以知道環(huán)境光的強度.即將測量的光強度電壓值送到處理器,顯示處理器根據(jù)電壓值的大小調(diào)節(jié)觸摸屏的顯示亮度.
3.1 程序流程圖
系統(tǒng)的架構如圖6所示,軟件系統(tǒng)可以看作有3層結構,最上層是用戶的應用程序?qū)?,用戶編寫的程序就是顯示在顯示器上面的內(nèi)容.應用程序通過調(diào)用Linux內(nèi)核里面的fb_read(),fb_write()等函數(shù)來處理需要顯示的內(nèi)容,到最后將數(shù)據(jù)交給LCD控制器,最終在顯示器上面顯示相關的內(nèi)容[8].
圖6 系統(tǒng)程序結構圖
3.2 部分程序
觸摸屏控制系統(tǒng)的軟件采用Linux系統(tǒng)開發(fā),在Linux里面是作為一個平臺設備來管理,針對不同型號的顯示屏,只需要在Linux下的linux-2.6.23.1archarmmach-at91里面board-sam9261ek.c文件內(nèi)配置和顯示屏相關的參數(shù)即可,具體如下:
/* LCD Controller */
#if defined (CONFIG_FB_ATMEL) || defined (CONFIG_FB_ATMEL_MODULE)
Static struck fb_videomode at91_tft_vga_modes[]={
{
.name = “TX09D50VM1CCA@60”,
.refresh= 60,
.xres = 640,
.yres = 480,
.picklock = 40000,
.left_margin = 130,
.right_margin = 170,
.upper_margin = 17,
.lower_margin = 9,
.hsync_len = 20,
.vsync_len = 17,
.sync = 0,
.vmode = FB_VMODE_NONINTERLACED,
}, };
本文研究了采用ARM9內(nèi)核AT91SAM9261微處理器實現(xiàn)6.5寸TFT-LCD觸摸屏控制系統(tǒng)的硬件方案、工作原理、軟件設計及實現(xiàn)的過程,包括硬件電路的設計和軟件設計.創(chuàng)新點在于提出基于ARM9微處理器的觸摸屏系統(tǒng),分析從底層硬件設計、設備驅(qū)動、顯示系統(tǒng)的移植以及GUI應用,并構建一個完整的觸摸屏系統(tǒng).產(chǎn)品經(jīng)過調(diào)試后能正常地顯示,通過加載QT編寫的應用程序可以正常的通過觸摸屏來進行操作,達到了預期的設計要求,并可根據(jù)環(huán)境光線強度具有自動調(diào)節(jié)液晶屏顯示亮度的功能.可以廣泛的應用于工業(yè)控制、移動輸入設備、智能家電等領域.
[1] 吳青萍,沈 凱.基于ARM處理器的TSC2046觸摸屏控制器的應用[J].現(xiàn)代電子技術,2011,34(23):195-197.
[2] 劉曉芳,劉建群,張海雄,等.基于ARM的LCD觸摸屏系統(tǒng)設計[J].微計算機信息,2009,25(4-2):170-171.
[3] 梁明亮,張惠敏,徐 冰.基于ARM微處理器的液晶觸摸屏的接口設計[J].計算機測量與控制,2011,19(3):691-693.
[4] [5]李春萍,李頡思.嵌入式Linux中對觸摸屏驅(qū)動的設計[J].計算機工程與設計,2007,28(6):1387-1389.
[6] 陸 林.基于ARM9的大型觸摸屏控制器的研究與開發(fā)[D].江南大學碩士學位論文,2008:9-12.
[7] 張未名,宗國仕.基ARM-Linux的觸摸屏驅(qū)動及其應用研究[J].長春師范學院學報(自然科學版), 2011,30(3):30-33.
[8] 劉榮林,劉亞坤,武 華,等.基于ARM嵌入式觸摸屏的設計與研究[J].內(nèi)蒙古大學學報(自然科學版),2009,40(6):708-711.
Touch-screen Controller Design and Implementation Based on ARM Microprocessor
ZENG Xiao-bo1,HUANG Jian-hua1,LI Jing-xiong2
(1. Hunan Vocational Institute of Technology, Xiangtan 411104, China;
2. Shanghai DEUTA Electronic & Electrical Equipment Co., Ltd, Shanghai 201203, China )
In view of the development direction of liquid crystal touch screen system with large screen size, simple operation and wide application,this paper adopts ARM9 processor as the core device, ADS7846 as touch screen controller and 6.5 inch backlight four wire resistive TFT-LCD panel as touch screen system scheme.The overall scheme of the system,the working principle of hardware components and parts and the selection of devices are given. Describes the implementation of application model of ARM-Linux system and control program are described. The product can display well after the debugging.Through the application of loading QT preparation,it is easy to aperate the touchsureen,which meets the requirement of the design and has high practical application value.
Microprocessor; SPI; ARM9; controller; touch screen;
2014-11-04
湖南省教育廳科研資助項目(12C1097).
曾小波(1979- ),男,講師,碩士研究生,研究方向:電力電子技術、嵌入式技術.
TP302,TP391
A
1671-119X(2015)01-0037-04