基于MiniGUI 的GPS 自動(dòng)定位系統設計
2.4 TFT6758 LCD接口電路
系統顯示采用2.2 in的TFT6758液晶屏,LCD控制器為HD66781。IM3和IM0引腳接地,采用16位總線(xiàn)方式與LPC2103連接,16位數據由DBl~DB8、DB1O~DB17輸入, TFT6758液晶屏的控制引腳CS、RS、WR、RD分別由P0.4~P0.7控制。其中PO.5高電平為數據操作,低電平為命令操作。TFT6758的復位由PO.24引腳控制。CAT32TDI為T(mén)FT6758白光LED驅動(dòng)的升壓芯片,可以驅動(dòng)4個(gè)串聯(lián)的白光LED。CAT32TDI的關(guān)閉由PO.26引腳控制。為在沒(méi)有配置LPC2103引腳時(shí)也能輸出背光,加10 kΩ上拉電阻。CAT32TDI為恒流輸出,大小由1.5 kΩ電阻控制,電流大小為15 mA。TFT6758 LCD接口電路如圖6所示。
3 系統軟件設計
3.1 μC/OS-II在LPC2103上的移植
與處理器無(wú)關(guān)的μC/OS-II源代碼可以直接在網(wǎng)上下載;與處理器相關(guān)的代碼需要自己根據LPC2103編寫(xiě),其中OS_CPU.H定義與處理器相關(guān)的常數、宏以及類(lèi)型。OS_CPU A.ASM實(shí)現的功能包括:使就緒優(yōu)先級最高任務(wù)運行;任務(wù)級切換;中斷后任務(wù)切換;實(shí)現周期性時(shí)鐘源。OS CPU C.C主要實(shí)現任務(wù)堆棧的初始化。INCLUDES.H主頭文件包含程序所需的頭文件,方便程序編寫(xiě)。通過(guò)OS_CFG..H文件實(shí)現操作系統的配置和裁剪。
3.2 MiniGUI在LPC2103上的移植
(1)MiniGUI的GAL移植
為便于移植,MiniGUI引入圖形抽象層GAL,定義了一組不依賴(lài)任何特殊硬件的抽象接口,所有頂層的圖形操作建立在抽象接口上,類(lèi)似于操作系統的驅動(dòng)程序。根據液晶驅動(dòng)模塊和LPC2103的硬件連接編寫(xiě)液晶驅動(dòng)程序lcddriver.c和lcddriver.h。根據系統硬件編寫(xiě)圖形引擎程序commlcd.c。圖形引擎程序需要調用液晶驅動(dòng)程序中的函數。
(2)MiniGUI的IAL移植
MiniGUI通過(guò)INPUT數據結構表示輸入引擎,該數據結構定義在ial.h文件中。INPUT數據結構定義很多函數指針,這些函數指針指向設定的IAL對應函數,從而實(shí)現硬件輸入。程序輸入引擎為comminput.c,通過(guò)底層鍵盤(pán)驅動(dòng)程序comm_driver.c讀取鍵盤(pán)輸入數據。該驅動(dòng)程序把16個(gè)鍵模擬成O~9數字鍵和鼠標的左右鍵。
(3)MiniGUI的交叉編譯
使用ADSl.2集成開(kāi)發(fā)環(huán)境建立MiniGUI Lib工程,工程下添加MiniGUI源文件以及配置文件,編譯生成MiniGUI_Lib.a(chǎn)庫文件。Lib.a(chǎn)文件是針對LPC2103和μC/OS-II操作系統的POSIX的線(xiàn)程庫,并提供了內存管理接口以及I/O接口,共占用3 MB動(dòng)態(tài)內存,使用1個(gè)μC/OS-II互斥信號量,優(yōu)先級42,每增加1個(gè)線(xiàn)程信號量增加3個(gè),最大線(xiàn)程16個(gè),任務(wù)優(yōu)先級43~58,1個(gè)MiniGUI線(xiàn)程堆棧(8 KB)。
3.3 系統應用程序設計
(1)主程序設計
評論