當(dāng)前位置:首頁(yè) > 汽車電子 > 汽車電子
[導(dǎo)讀]摘要:為方便獲取移動(dòng)目標(biāo)的位置信息,提出了基于MiniGUI的嵌入式GPS的自動(dòng)定位系統(tǒng)的硬件及軟件設(shè)計(jì)方法。硬件采用ARM7內(nèi)核嵌入式處理器LPC2103,使用GPS模塊接收地理位置信息,設(shè)計(jì)了系統(tǒng)LCD、GPS接口、鍵盤以及最

摘要:為方便獲取移動(dòng)目標(biāo)的位置信息,提出了基于MiniGUI的嵌入式GPS的自動(dòng)定位系統(tǒng)的硬件及軟件設(shè)計(jì)方法。硬件采用ARM7內(nèi)核嵌入式處理器LPC2103,使用GPS模塊接收地理位置信息,設(shè)計(jì)了系統(tǒng)LCD、GPS接口、鍵盤以及最小系統(tǒng)硬件電路。軟件采用μC/OS-II操作系統(tǒng),進(jìn)行系統(tǒng)軟件多任務(wù)管理,使用MiniGUI制作圖形界面,并顯示數(shù)據(jù)。制作了樣機(jī)并進(jìn)行了實(shí)驗(yàn),實(shí)現(xiàn)了系統(tǒng)要求的各項(xiàng)功能。
關(guān)鍵詞:GPS模塊;MiniGUI;LPC2103;μC/OS-II

引言
    基于GPS的衛(wèi)星定位技術(shù),可以將移動(dòng)目標(biāo)的動(dòng)態(tài)位置(包括經(jīng)度和緯度)、時(shí)間、狀態(tài)等信息通過無線通信鏈路實(shí)時(shí)傳送到監(jiān)控中心,從而在電子地圖上顯示出移動(dòng)終端運(yùn)動(dòng)的軌跡,并對(duì)終端的位置、速度、運(yùn)動(dòng)方向、報(bào)警信息等用戶感興趣的參數(shù)進(jìn)行監(jiān)控和查詢。本文提出一種基于MiniGUI的嵌入式自動(dòng)定位系統(tǒng),具有占用資源少、高性能、高可靠性及可配置的特點(diǎn),并可以成功移植到多種硬件和操作系統(tǒng)平臺(tái)上。

1 系統(tǒng)總體設(shè)計(jì)
    本系統(tǒng)采用ARM7內(nèi)核的LPC2103處理器,軟件上采用占用硬件資源較少、實(shí)時(shí)性能和可移植性能優(yōu)良的μC/OS-II操作系統(tǒng),圖形界面采用MiniGUI。
1.1 系統(tǒng)實(shí)現(xiàn)功能
    系統(tǒng)實(shí)現(xiàn)主要功能包括:實(shí)時(shí)采集GPS數(shù)據(jù)并進(jìn)行處理;查詢當(dāng)前地理位置;通過MiniGUI圖形用戶界面顯示GPS數(shù)據(jù)。
1.2 整體硬件結(jié)構(gòu)
    系統(tǒng)整體硬件結(jié)構(gòu)如圖1所示。


    系統(tǒng)采用的LPC2103是基于一個(gè)支持實(shí)時(shí)仿真的16/32位ARM?TDMI-S CPU的微處理器,帶有32 KB高速Flash、8 KB SRAM,小型LQFP48封裝,低功耗,帶有2個(gè)URAT以及多個(gè)I/O接口,符合系統(tǒng)要求。GPS模塊SP3232E與LPC2103的串口0接口,負(fù)責(zé)數(shù)據(jù)的采集。受LPC2103引腳數(shù)量限制,4×4的鍵盤采用I2C輸入、輸出的7920芯片與LPC2103接口。LCD顯示采用TFT6758,液晶屏幕2.2 in,240×320點(diǎn)像素。
1.3 系統(tǒng)軟件結(jié)構(gòu)
    系統(tǒng)軟件結(jié)構(gòu)如圖2所示,基于MiniGUI的應(yīng)用程序通過ANSI C庫(kù)以及MiniGUI自身提供的API來實(shí)現(xiàn)自己的功能。底層驅(qū)動(dòng)包括鍵盤以及
TFT6758液晶顯示,為便于移植MiniGUI通過圖形抽象層和輸入抽象層與輸入、輸出設(shè)備接口。

2 系統(tǒng)硬件設(shè)計(jì)
2.1 控制系統(tǒng)最小系統(tǒng)
    控制系統(tǒng)最小系統(tǒng)如圖3所示。


    LPC2103最小系統(tǒng)需要模擬和數(shù)字3.3 V電源以及核心電源1.8 V。為便于波特率的設(shè)置,晶振頻率采用11.059 2 MHz。PO.14引腳通過10 kΩ電阻上拉禁止 ISP功能。DBGSEL引腳接高電平使能調(diào)試狀態(tài),正常工作時(shí)接低電平。由阻容電路構(gòu)成低電平復(fù)位電路,SW-PB按鍵按下產(chǎn)生處理器復(fù)位信號(hào)。
2.2 GPS接口電路
    該電路主要作用是接收GPS模塊發(fā)送數(shù)據(jù),保存到處理器存儲(chǔ)單元,處理后等待MiniGUI圖形用戶界面顯示。GPS模塊采用九針串口數(shù)據(jù)輸出,RS232電平,需要 SP3232E電平轉(zhuǎn)換芯片與LPC2103的串口O連接。SP3232E是3 V工作電源的RS232電平轉(zhuǎn)換芯片。接口電路如圖4所示。


2.3 鍵盤電路
    本系統(tǒng)采用4×4小鍵盤,用于數(shù)據(jù)輸入和模擬鼠標(biāo)。S13模擬左鍵,S15模擬右鍵,S9、S10、S11、s14分別模擬向左、下、右、上移動(dòng)鼠標(biāo),其余為數(shù)字輸入鍵。由于LPC2103引腳數(shù)量限制,采用有I2C接口的7290芯片做鍵盤接口。鍵盤電路復(fù)位與系統(tǒng)復(fù)位共用nRST復(fù)位信號(hào)。有按鍵按下時(shí),中斷信號(hào)通過EINTO送入LPC2103外部中斷處理單元。7290的I2C接口加4.7 kΩ的上拉電阻與LPC2103的I2C串行總線接口,I/O引腳為PO.2和PO.3。鍵盤電路如圖5所示。

2.4 TFT6758 LCD接口電路
    系統(tǒng)顯示采用2.2 in的TFT6758液晶屏,LCD控制器為HD66781。IM3和IM0引腳接地,采用16位總線方式與LPC2103連接,16位數(shù)據(jù)由DBl~DB8、DB1O~DB17輸入, TFT6758液晶屏的控制引腳CS、RS、WR、RD分別由P0.4~P0.7控制。其中PO.5高電平為數(shù)據(jù)操作,低電平為命令操作。TFT6758的復(fù)位由PO.24引腳控制。CAT32TDI為TFT6758白光LED驅(qū)動(dòng)的升壓芯片,可以驅(qū)動(dòng)4個(gè)串聯(lián)的白光LED。CAT32TDI的關(guān)閉由PO.26引腳控制。為在沒有配置LPC2103引腳時(shí)也能輸出背光,加10 kΩ上拉電阻。CAT32TDI為恒流輸出,大小由1.5 kΩ電阻控制,電流大小為15 mA。TFT6758 LCD接口電路如圖6所示。

3 系統(tǒng)軟件設(shè)計(jì)
3.1 μC/OS-II在LPC2103上的移植
    與處理器無關(guān)的μC/OS-II源代碼可以直接在網(wǎng)上下載;與處理器相關(guān)的代碼需要自己根據(jù)LPC2103編寫,其中OS_CPU.H定義與處理器相關(guān)的常數(shù)、宏以及類型。OS_CPU A.ASM實(shí)現(xiàn)的功能包括:使就緒優(yōu)先級(jí)最高任務(wù)運(yùn)行;任務(wù)級(jí)切換;中斷后任務(wù)切換;實(shí)現(xiàn)周期性時(shí)鐘源。OS CPU C.C主要實(shí)現(xiàn)任務(wù)堆棧的初始化。INCLUDES.H主頭文件包含程序所需的頭文件,方便程序編寫。通過OS_CFG..H文件實(shí)現(xiàn)操作系統(tǒng)的配置和裁剪。
3.2 MiniGUI在LPC2103上的移植
    (1)MiniGUI的GAL移植
    為便于移植,MiniGUI引入圖形抽象層GAL,定義了一組不依賴任何特殊硬件的抽象接口,所有頂層的圖形操作建立在抽象接口上,類似于操作系統(tǒng)的驅(qū)動(dòng)程序。根據(jù)液晶驅(qū)動(dòng)模塊和LPC2103的硬件連接編寫液晶驅(qū)動(dòng)程序lcddriver.c和lcddriver.h。根據(jù)系統(tǒng)硬件編寫圖形引擎程序commlcd.c。圖形引擎程序需要調(diào)用液晶驅(qū)動(dòng)程序中的函數(shù)。
    (2)MiniGUI的IAL移植
    MiniGUI通過INPUT數(shù)據(jù)結(jié)構(gòu)表示輸入引擎,該數(shù)據(jù)結(jié)構(gòu)定義在ial.h文件中。INPUT數(shù)據(jù)結(jié)構(gòu)定義很多函數(shù)指針,這些函數(shù)指針指向設(shè)定的IAL對(duì)應(yīng)函數(shù),從而實(shí)現(xiàn)硬件輸入。程序輸入引擎為comminput.c,通過底層鍵盤驅(qū)動(dòng)程序comm_driver.c讀取鍵盤輸入數(shù)據(jù)。該驅(qū)動(dòng)程序把16個(gè)鍵模擬成O~9數(shù)字鍵和鼠標(biāo)的左右鍵。
    (3)MiniGUI的交叉編譯
    使用ADSl.2集成開發(fā)環(huán)境建立MiniGUI Lib工程,工程下添加MiniGUI源文件以及配置文件,編譯生成MiniGUI_Lib.a(chǎn)庫(kù)文件。Lib.a(chǎn)文件是針對(duì)LPC2103和μC/OS-II操作系統(tǒng)的POSIX的線程庫(kù),并提供了內(nèi)存管理接口以及I/O接口,共占用3 MB動(dòng)態(tài)內(nèi)存,使用1個(gè)μC/OS-II互斥信號(hào)量,優(yōu)先級(jí)42,每增加1個(gè)線程信號(hào)量增加3個(gè),最大線程16個(gè),任務(wù)優(yōu)先級(jí)43~58,1個(gè)MiniGUI線程堆棧(8 KB)。
3.3 系統(tǒng)應(yīng)用程序設(shè)計(jì)
    (1)主程序設(shè)計(jì)
    主程序流程如圖7(a)所示,用來完成操作系統(tǒng)的初始化。其中使用語(yǔ)句OSTaskCreate(Task0,(void*)O,&TaskStk[TaskStkLengh-1],10)創(chuàng)建任務(wù)O;使用語(yǔ)句MiniGUI_app_entry()創(chuàng)建MiniGUI主線程;使用語(yǔ)句KevMbox=OSMboxCreate(NULL)建立一個(gè)郵箱,用于傳遞按鍵消息,最后開始多任務(wù)調(diào)度。


    (2)任務(wù)O設(shè)計(jì)
    任務(wù)O流程如圖7(b)所示,用來完成系統(tǒng)硬件的初始化。通過I2C接口的輸入引擎讀取按鍵鍵值,如有按鍵按下通過OSMboxPost(KeyMbo-x,(void*)&s_key_in)發(fā)送鍵值到KeyMbox郵箱。通過郵局OSTimeDly(5)交出CPU占用資源,運(yùn)行其他任務(wù)。
    (3)MiniGUI入口程序設(shè)計(jì)
    入口程序如圖7(c)所示,用來完成消息處理。使用語(yǔ)句InitMainWindow()初始化窗體;使用語(yǔ)句ShowWindow(hMainWnd,SW_SHOWNORMAL)顯示窗體,其中hMainWnd為窗體句柄;使用語(yǔ)句GetMessage(&Msg,hMainWnd))獲取消息,其中Msg數(shù)據(jù)結(jié)構(gòu)用于保存消息;使用語(yǔ)句Trans-lateMessage(&Msg)把消息送入隊(duì)列;使用語(yǔ)句DispatchMessage(&Msg)分配信息給窗體回調(diào)函數(shù);使用語(yǔ)句MainWindowThreadCleanup(hM-ainWnd)清除線程。
    (4)MiniGUI窗體回調(diào)程序設(shè)計(jì)
    窗體回涮函數(shù)流程如圖7(d)所示,根據(jù)消息類型確定要執(zhí)行的程序。如果消息類型為MSG-PAINT,先調(diào)用GPS數(shù)據(jù)讀取以及處理程序,用MiniGUI內(nèi)部函數(shù)TextOut(hdc,10,10,”顯示字符”),在指定位置顯示字符;最后調(diào)用μC/OS-II系統(tǒng)函數(shù)OSTimeDly(100)開始任務(wù)調(diào)度。如果消息類型為MSG_CLOSE,用語(yǔ)句DestroyMainWindow(hWnd)銷毀窗體;用語(yǔ)句PostQuitMessage(hWnd)發(fā)送退出消息。

4 GPS的自動(dòng)定位系統(tǒng)實(shí)驗(yàn)
    系統(tǒng)軟件采用ADS V1.2開發(fā)、調(diào)試,使用PC機(jī)對(duì)MiniGUI源代碼進(jìn)行編譯,生成MiniGUI靜態(tài)鏈接庫(kù)文件MiniGUI-Lib.a(chǎn)。然后交叉編譯MiniGUI應(yīng)用程序,與MiniGUI靜態(tài)鏈接庫(kù)、POSIX線程庫(kù)鏈接,生成二進(jìn)制文件下載到LPC2103的Flash運(yùn)行。系統(tǒng)軟件編譯過程如圖8所示。


    GPS模塊和LPC2103串口0連接,并放置到室外,將生成的可執(zhí)行文件燒寫到LPC2103的Flash內(nèi)部,上電運(yùn)行,運(yùn)行結(jié)果如圖9所示。

結(jié)語(yǔ)
    本自動(dòng)定位系統(tǒng)運(yùn)行穩(wěn)定,具有功耗低、速度快、可裁剪、可固化、實(shí)時(shí)性能優(yōu)越等特點(diǎn)。能夠準(zhǔn)確顯示經(jīng)度、緯度、系統(tǒng)日期、時(shí)間、海拔、航向、航速等信息,并可以對(duì)所處位置進(jìn)行查詢。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉