基于Nios II自助點菜系統(tǒng)的μC/GUI應用
摘 要: 結(jié)合自助點菜系統(tǒng),介紹了移植μC/GUI圖形庫到軟核Nios II平臺的方法,研究了μC/GUI與輸入外設的接口原理,實現(xiàn)觸摸屏操作。采用消息響應機制,實現(xiàn)窗口、控件和對話框的觸摸應用,并深入分析了μC/GUI基于嵌入式操作系統(tǒng)μC/OS II的工作方式,將設計劃分為多個任務操作運行,在觸摸屏上完成JPEG圖片顯示、文字介紹、菜單瀏覽等功能。
關(guān)鍵詞: 移植;μC/GUI;觸摸屏;控件;μC/OS II
隨著嵌入式系統(tǒng)在各領(lǐng)域的廣泛應用,對圖形化人機交互界面的需求逐漸增加。由于嵌入式系統(tǒng)硬件資源有限,從而要求圖形用戶界面具有輕型、占用資源少、高性能等特點。μC/GUI是一種用于嵌入式應用的Windows風格圖形支持軟件,它為任何使用圖形LCD的應用提供一個有效的不依賴于處理器和LCD控制器的圖形用戶接口,工作在單任務或多任務系統(tǒng)環(huán)境下,適用于使用任何LCD控制和任何CPU尺寸的物理或虛擬顯示。因此,掌握μC/GUI在嵌入式系統(tǒng)中的應用極為重要。移植μC/GUI到Nios II嵌入式軟核處理器[1]成了最佳選擇。本文根據(jù)自助點菜系統(tǒng)的實際應用,詳細介紹了μC/GUI移植方法,并在融合觸摸屏操作的基礎上實現(xiàn)控件使用和操作系統(tǒng)開發(fā)。
1 硬件
系統(tǒng)中顧客使用終端觸摸屏瀏覽服務信息并實現(xiàn)相關(guān)操作,通過無線局域網(wǎng)絡和前臺通信。各個點菜終端作為獨立系統(tǒng)工作,所有數(shù)據(jù)傳到前臺上位機協(xié)調(diào)處理。本文僅介紹與μC/GUI相關(guān)的點菜終端構(gòu)成部分。終端硬件框圖如圖1所示,利用片上可編程系統(tǒng)(SoPC)技術(shù)將Nios II處理器、外設接口控制器等功能模塊集成到FPGA,構(gòu)成可編程片上系統(tǒng)[2]。SDRAM、Flash控制器用于處理程序和數(shù)據(jù)的存儲;512 KB SRAM作為圖像數(shù)據(jù)緩存區(qū);FPGA內(nèi)部自定義LTM控制器和SD卡控制器模塊,輔助軟核工作,操作觸摸屏并讀取SD卡內(nèi)的JPEG圖片;UART接口用于和移植到CC2430的ZigBee模塊通信;采用定時器以嵌入?滋C/OS II操作系統(tǒng)。
觸摸顯示屏是4.3英寸數(shù)字LCD觸碰面板TRDB-LTM,長寬比為15:9,支持24 bit并行RGB接口,能通過內(nèi)置模數(shù)轉(zhuǎn)換器(AD7843)將觸碰點X/Y坐標轉(zhuǎn)換成對應數(shù)字信息。觸摸屏物理分辨率為800×480,支持16 bit RGB565格式。
2 μC/GUI移植
本系統(tǒng)的用戶界面采用?滋C/GUI,其最新版本是3.98,其中一些組件不太完整。根據(jù)點菜系統(tǒng)使用需求,特添加3.94版本的JPEG模塊來顯示圖片數(shù)據(jù)。ucgui398StartConfig和ucgui398StartGUI是源碼包最重要的兩個文件夾,其中包括各種配置文件、μC/GUI內(nèi)核文件、與字體相關(guān)的代碼文件、LCD驅(qū)動代碼文件、μC/GUI支持的控件代碼以及視窗管理部分代碼等[3]。