摘 要: 應(yīng)用StellarisWare圖形庫(kù)技術(shù)實(shí)現(xiàn)圖形顯示,,以LPC2478 ARM7微處理器為控制核心,,設(shè)計(jì)了一種由TFT-LCD顯示及觸摸屏組成的電梯轎內(nèi)人機(jī)交互界面顯示控制器。介紹了LVDS通信接口的TFT-LCD顯示,、觸摸及外部存儲(chǔ)器SDRAM的硬件設(shè)計(jì)和軟件設(shè)計(jì),。測(cè)試結(jié)果表明,系統(tǒng)實(shí)現(xiàn)了觸摸功能,,獲得清晰穩(wěn)定的顯示效果,,性能可靠。
關(guān)鍵詞: ARM7,;TFT-LCD,;觸摸屏技術(shù);SDRAM,;StellarisWare
隨著觸摸屏的出現(xiàn)和觸摸屏技術(shù)的飛速發(fā)展及日益成熟,,觸摸屏技術(shù)廣泛應(yīng)用于公共服務(wù)領(lǐng)域和電子產(chǎn)品設(shè)備,觸摸屏技術(shù)也日益受到人們的青睞,。觸摸屏正在取代鼠標(biāo),、鍵盤等傳統(tǒng)輸入設(shè)備,,成為電子產(chǎn)品的重要組成部分。薄膜晶體管液晶顯示器(TFT-LCD)是數(shù)字終端顯示最理想的顯示器件之一,,觸摸屏附在顯示器表面,,可根據(jù)對(duì)應(yīng)觸摸點(diǎn)字符獲知觸摸者的意圖來(lái)顯示內(nèi)容,使得圖形化的人機(jī)交互變得更加簡(jiǎn)單,、直觀和人性化[1],。帶有觸摸屏的TFT-LCD以其方便、大容量,、高清晰和全彩色視頻等優(yōu)點(diǎn)被廣泛應(yīng)用于嵌入式系統(tǒng)設(shè)計(jì)中[2],。
電梯轎廂內(nèi)顯示系統(tǒng)是電梯乘坐人與電梯進(jìn)行信息交流的重要渠道,為乘坐人提供電梯運(yùn)行信息,,使乘坐人可以方便,、全面地了解電梯的運(yùn)行狀態(tài)。目前大部分電梯轎廂內(nèi)顯示電梯信息多采用傳統(tǒng)LED顯示,,顯示內(nèi)容單調(diào),、有限,而電梯轎廂內(nèi)樓宇廣告,,顯示系統(tǒng)多采用獨(dú)立廣告機(jī),,成本高。所以設(shè)計(jì)和開(kāi)發(fā)一套集顯示和觸摸式樓層選擇一體的電梯轎內(nèi)顯示系統(tǒng)很有必要,,可以播放彩色圖片,、數(shù)字等綜合信息,可以改善封閉轎廂內(nèi)環(huán)境,,降低成本,。對(duì)于圖形顯示,StellarisWare圖形庫(kù)提供了一套比較完整,、快速的MCU圖形顯示方案,,該方案移植方便,其強(qiáng)大的繪圖功能可以根據(jù)具體的應(yīng)用場(chǎng)合設(shè)計(jì)內(nèi)容多樣的人機(jī)交互界面,,界面美觀大方,,可應(yīng)用于高檔電梯。
1 轎內(nèi)顯示器硬件設(shè)計(jì)
轎內(nèi)顯示器主要以微處理器為核心,,根據(jù)觸摸者意圖處理并顯示信息,,并控制CAN通信模塊與電梯主控器進(jìn)行數(shù)據(jù)發(fā)送和接收,外部存儲(chǔ)器是為了滿足大量圖像數(shù)據(jù)存儲(chǔ)的需要,,轎內(nèi)顯示器的功能模塊框圖如圖1所示,。
1.1 液晶顯示器
LPC2478內(nèi)部集成LCD控制器,支持薄膜晶體管TFT(Thin-Film Transistors)顯示器,并且提供TFT-LCD控制信號(hào)HSYNV(水平同步信號(hào)),、VSYNC(垂直同步信號(hào)),、VDEN(數(shù)據(jù)使能信號(hào))及LCDCLK(LCD時(shí)鐘信號(hào))的接口,簡(jiǎn)化了硬件設(shè)計(jì),。
轎內(nèi)顯示器使用了三菱公司的10.4寸LVDS(Low Voltage Differential Signaling)接口TFT-LCD AA104SG01,,液晶背面驅(qū)動(dòng)電路集成了LVDS接收器。因此需要差分信號(hào)發(fā)送器將LPC2478主控器輸出TTL信號(hào)轉(zhuǎn)為L(zhǎng)VDS信號(hào),,傳送到液晶面板側(cè)的LVDS接收器以驅(qū)動(dòng)TFT-LCD,,其中差分信號(hào)發(fā)送器是用視頻接口轉(zhuǎn)換芯片DS90C383。DS90C383可以在一個(gè)時(shí)鐘周期內(nèi)結(jié)合控制信號(hào)將16 bit TTL數(shù)據(jù)轉(zhuǎn)換成混合的3組LVDS數(shù)據(jù)流來(lái)驅(qū)動(dòng)LCD,,即TxOUT0,、TxOUT1、TxOUT2,,一組數(shù)據(jù)流包含7 bit數(shù)據(jù),。DS90C383輸入輸出信號(hào)映射關(guān)系以及LPC2478內(nèi)置LCD控制器在RGB(R[4:0]G[5:0]B[4:0])模式下與DS90C383管腳連接如表1所示。
1.2 觸摸屏接口設(shè)計(jì)
從工作原理上可以把觸摸屏分為電阻式,、電容式,、紅外線式、聲表面波式等,,這里采用目前最為普遍的四線電阻式觸摸屏[3],。液晶顯示器背面附有觸摸屏驅(qū)動(dòng)電路,是一個(gè)電阻式四線觸摸屏,,四線分別是X+(TSXP)、X-(TSXM),、Y+(TSYP),、Y-(TSYM),即X電極和Y電極的正負(fù)極,,也是觸摸屏接觸點(diǎn)坐標(biāo)數(shù)據(jù)輸入端,。
四線電阻式觸摸板由兩塊透明的電阻層組成,分別是X板和Y板[4],。如有外力使得上下兩層在某一點(diǎn)接觸,,則在電極未加電壓的一層根據(jù)電壓梯度可以測(cè)得接觸點(diǎn)的電壓,經(jīng)過(guò)A/D轉(zhuǎn)換便可知道接觸點(diǎn)的坐標(biāo),。由微處理器輸出4個(gè)控制信號(hào)控制4 個(gè)MOS 管的通斷,,進(jìn)而控制觸摸屏4個(gè)電極Y+、Y-,、X+,、X-的通斷。
1.3 外擴(kuò)同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器
針對(duì)LCD高速圖像顯示過(guò)程中大量數(shù)據(jù)暫時(shí)存儲(chǔ)的需要,采用了一種高速的圖像存儲(chǔ)方案,,即中間緩存,。SDRAM(Synchronous Dynamic RAM)作為數(shù)據(jù)中間緩存具有容量大、速度高,、價(jià)格便宜和功耗低等優(yōu)勢(shì)[5],,是一種非常有效的方法,真正滿足了高速,、實(shí)時(shí)顯示圖像的要求,。
LPC2478內(nèi)置SDRAM控制器,可以實(shí)現(xiàn)SDRAM的邏輯控制[6],,主要信號(hào)有片選信號(hào)(SCS),、時(shí)鐘信號(hào)(SCLK)、時(shí)鐘使能信號(hào)(SCKE),、讀寫信號(hào)(WE),、頁(yè)地址選擇信號(hào)(BA[1:0])、行地址選擇信號(hào)(A0~A12),、列地址選擇信號(hào)(A0~A8),,采用分時(shí)復(fù)用的尋址方式,通過(guò)RAS和CAS信號(hào)來(lái)決定是行地址還是列地址,,當(dāng)RAS有效時(shí),,A0~A12是行地址;當(dāng)CAS有效時(shí),,A0~A8是列地址信號(hào),。數(shù)據(jù)信號(hào)DATA[15:0],其使能受DQM信號(hào)控制,。SDRAM的地址范圍為0xA000 0000~0xA200 0000(32 MB),。
2 軟件設(shè)計(jì)
2.1 StellarisWare圖形庫(kù)移植
對(duì)于圖形顯示,StellarisWare圖形庫(kù)提供了快速的軟件開(kāi)發(fā)解決方案,,既可以進(jìn)行基本圖形,、文字繪制,也可以輕松實(shí)現(xiàn)常見(jiàn)的消息控件(Widget)的繪制,。
2.1.1 按鈕控件圖形生成及圖形預(yù)處理
StellarisWare軟件包含了兩個(gè)工具:LMI-button和pnmtoc,,圖形的生成及預(yù)處理可以通過(guò)這兩個(gè)工具來(lái)完成。
(1)LMI-button工具可以把其他格式的圖像保存為圖形庫(kù)可以識(shí)別的pnm格式,,并且結(jié)合GIMP圖像處理程序可以生成各種類型控件,。
(2)pnmtoc工具壓縮圖像為C文件,主要是把pnm格式圖像轉(zhuǎn)換為圖形庫(kù)可以識(shí)別的C文件,。運(yùn)行Windows服務(wù)管理器并且輸入命令:pnmtoc Image.pnm>Image.c,,即可把Image.pnm圖像生成圖形庫(kù)可以識(shí)別的C數(shù)組文件,,默認(rèn)名字為const unsigned char g_pucImage[],在主函數(shù)中調(diào)用函數(shù)GrImageDraw(&MyContext,g_pucImage,0,0)就是從(0,0)點(diǎn)繪制g_pucImage圖像,。
2.1.2 控件定義及繪制
Stellaris圖形庫(kù)可以實(shí)現(xiàn)很多控件,,其中包括畫布和按鈕控件。畫布控件是一個(gè)簡(jiǎn)單的繪圖面板,,用戶可以在上面進(jìn)行圖形,、文字繪制,也支持顯示圖片,。每一個(gè)控件都有3個(gè)屬性,,分別是父控件(Parent)、下一個(gè)控件(Next),、子控件(Child),。為了方便管理,圖形庫(kù)將眾多控件以樹(shù)狀的形式管理,,每個(gè)控件樹(shù)都有一個(gè)虛擬的WIDGET_ROOT控件作為最頂層的控件,,其他控件都作為它的子節(jié)點(diǎn)或者更下層的子節(jié)點(diǎn)[7]。
(1)定義畫布控件函數(shù)Canvas()和按鈕控件函數(shù)Rec-
tangularButtonStruct(),。定義控件時(shí)用戶根據(jù)實(shí)際情況配置各參數(shù),,同時(shí)要定義事件響應(yīng)函數(shù)。
(2)繪制控件樹(shù)函數(shù),。使用WidgetAdd()添加控件到控件樹(shù)WIDGET_ROOT,,然后調(diào)用函數(shù)WidgetPaint(WIDGET_ROOT)繪制整個(gè)控件樹(shù)。
(3)消息添加函數(shù)WidgetMessageQueueAdd()可以添加消息到消息隊(duì)列,,以便進(jìn)行后續(xù)處理,。
2.2 LCD顯示的軟件設(shè)計(jì)
對(duì)LPC2478內(nèi)置LCD控制器的軟件操作主要是對(duì)各種寄存器進(jìn)行正確的設(shè)置。首先要初始化LCD,,LCD初始化包括設(shè)置LCD寄存器,、LCD工作模式為BGR 5:6:5、顯示數(shù)據(jù)緩沖區(qū)地址為SDRAM地址,、LCD背光等,LCD顯示的過(guò)程也就是控件定義,、添加,、繪制和消息處理的過(guò)程。LCD顯示的軟件設(shè)計(jì)流程如圖2所示,,函數(shù)Widget-MessageQueueProcess()處理控件樹(shù)信息隊(duì)列,,刷新LCD。
2.3 觸摸屏的軟件設(shè)計(jì)
觸摸屏附在顯示器表面,,利用微處理器實(shí)現(xiàn)對(duì)液晶屏和觸摸屏的控制,,只要測(cè)量出觸摸點(diǎn)的位置,就可以根據(jù)對(duì)應(yīng)坐標(biāo)點(diǎn)上的顯示內(nèi)容或字符獲知觸摸者的意圖,進(jìn)而處理信息,。觸摸屏回調(diào)函數(shù)TouchScreenCallbackSet(WidgetPointerMessage)的作用是將用戶動(dòng)作事件與用戶定義的事件響應(yīng)函數(shù)連接在一起,,當(dāng)用戶動(dòng)作時(shí),用戶輸入驅(qū)動(dòng)可以調(diào)用WidgetPointerMessage()函數(shù),,傳入動(dòng)作的信息(如動(dòng)作的x,、y坐標(biāo)、動(dòng)作方式等),。圖形輸出驅(qū)動(dòng)則響應(yīng)用戶輸入事件,,刷新顯示畫面,觸摸屏軟件設(shè)計(jì)流程如圖3所示,。
2.4 CAN通信軟件設(shè)計(jì)
電梯轎廂控制器與主控制器之間通過(guò)CAN總線實(shí)現(xiàn)數(shù)據(jù)傳輸,,CAN總線是轎廂與主控制器之間進(jìn)行通信的橋梁,可以同時(shí)支持多主節(jié)點(diǎn),,數(shù)據(jù)傳輸速度快,,通信距離長(zhǎng)。
轎內(nèi)顯示器消息的格式:目的ID號(hào)+命令字節(jié)+數(shù)據(jù)字節(jié)1+數(shù)據(jù)字節(jié)2+…+數(shù)據(jù)字節(jié)6,。ID號(hào)是為主控制器,、轎廂控制器、外呼樓層指示器分配的標(biāo)志符,。命令字節(jié)是協(xié)議的核心,,通常與數(shù)據(jù)字節(jié)配合使用,有開(kāi)關(guān)門命令,、樓層顯示命令,、到站提示命令、登記樓層命令等,。數(shù)據(jù)字節(jié)主要有所到樓層號(hào),、電梯運(yùn)行狀態(tài)及登記樓層信息。
3 測(cè)試結(jié)果與分析
將轎廂顯示控制器與電梯主控器連接,,進(jìn)行現(xiàn)場(chǎng)調(diào)試,,圖4為電梯從10樓到5樓、再到1樓的LCD顯示過(guò)程,,從圖中看到,,按鈕控件有開(kāi)關(guān)門和樓層按鈕,按鈕控件有按下和未按下兩種不同顏色狀態(tài)屬性,,當(dāng)用戶按下目的樓層號(hào)按鈕時(shí),,按鈕控件外觀顏色狀態(tài)發(fā)生變化,LCD顯示所到樓層號(hào)和電梯運(yùn)行狀態(tài),;當(dāng)電梯到達(dá)用戶選通的目的樓層時(shí),,所到樓層按鈕將返回未按下?tīng)顟B(tài),,同時(shí)開(kāi)門按鈕顯示開(kāi)門狀態(tài),關(guān)門時(shí)關(guān)門按鈕控件也會(huì)顯示相應(yīng)的狀態(tài),。
本著高效,、方便的目的,本文利用StellarisWare圖形庫(kù),,簡(jiǎn)化了軟件設(shè)計(jì)難度,,提高了開(kāi)發(fā)效率。經(jīng)過(guò)多次現(xiàn)場(chǎng)測(cè)試,,轎廂顯示控制器與電梯主控制器之間通信可靠,、穩(wěn)定,顯示界面清晰,、效果良好,。帶有觸摸功能的電梯轎內(nèi)TFT-LCD顯示器是一種簡(jiǎn)單、方便,、自然的人機(jī)交互方式,,界面美觀大方,可以更好地提高電梯品質(zhì),,具備很好的應(yīng)用前景,。
參考文獻(xiàn)
[1] 郭本振,李聲晉,,盧剛,,等.基于DSP和LCD觸摸屏的車載信息系統(tǒng)設(shè)計(jì)[J].液晶與顯示,2011,,26(1):83-87.
[2] 郭瑞玲,,鄒向陽(yáng),黑銳.基于觸摸屏的某型雷達(dá)干擾機(jī)的人機(jī)接口設(shè)計(jì)[J].電測(cè)與儀表,,2010,,47(536A):149-141.
[3] 宋成,孫廣富.觸摸屏在S3C2410 上的應(yīng)用實(shí)例[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,,2005(1):35-38.
[4] 陳世利,,孫墨杰,栗大超,,等.觸摸屏的工作原理及典型應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,,2002(2):11-13.
[5] 潘光榮,王沁,,齊悅.面向邏輯設(shè)計(jì)的SDRAM 控制器性能度量模型[J].計(jì)算機(jī)應(yīng)用研究,2009,,26(9):3432-3435.
[6] 劉妍妍,,李國(guó)寧,,金龍旭.遙感圖像采集中的SDRAM圖像緩存技術(shù)[J].電視技術(shù),2012,,36(17):52-54.
[7] Texas Instruments.StellarisWare?誖graphics library user′s Guide[S].[2013-03-01].