【正文】
摘要摘要隨著計(jì)算機(jī)技術(shù),微電子技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,嵌入式系統(tǒng)技術(shù)是電子產(chǎn)品設(shè)計(jì)領(lǐng)域最為熱門的技術(shù)之一。在消費(fèi)電子、網(wǎng)絡(luò)通信、工業(yè)控制等諸多領(lǐng)域得到了廣泛的應(yīng)用。ARM處理器是目前公認(rèn)的領(lǐng)先的32位嵌入式RSIC微處理器,已成為許多行業(yè)嵌入式解決方案的RISC標(biāo)準(zhǔn)。ARM技術(shù)以低功耗,低成本、體積小等諸多優(yōu)點(diǎn)在嵌入式領(lǐng)域獲得更廣泛的應(yīng)用。GPS是以衛(wèi)星為基礎(chǔ)的無(wú)線導(dǎo)航定位系統(tǒng)。它具有全能性(陸地、海洋、航空和航天)、全球性、全天候、連續(xù)性和實(shí)時(shí)性的導(dǎo)航、定位和定時(shí)的功能,能為用戶提供精密的三維坐標(biāo)、速度和時(shí)間。本設(shè)計(jì)將闡述LPC2292的啟動(dòng)程序、串口UART0通訊程序、I2C通訊程序和GPS數(shù)據(jù)解碼程序,重點(diǎn)介紹LPC2292串口UART0、I2C部件和NMEA0813協(xié)議,在LCD顯示方面介紹如何使用ZLG/GUI編寫菜單界面, 本軟件能正確的對(duì)GPS信息進(jìn)行解碼,并在液晶上顯示。關(guān)鍵詞: LPC2292 、 GPS接收器 、 I2C 、 NMEA0813協(xié)議 I Abstract AbstractWith the development of the puter technology ,microelectronics and network technology, embedded system is one of the most popular technology of the field of electronic product system is adopted in the fields of consumer electronics, network munication, industrial control and so on. ARM processor is a kind of advance 32bit microprocessor embedded RISC, it have beed embedded RISC stardard of solution for many industries. ARM technology have lowpower, lowcost, small size and many other advantages, so it applied in the field of embedded system widely.GPS is a Wireless navigation and positioning system based on has the function of omnipotent (terrestrial, marine, aviation and aerospace), a global, allweather, continuity and attachment of navigation, positioning and timing,it can provide for the customer Sophisticated threedimensional coordinates, speed and time.This article expo und that how to program for 2292Bootloader、serial UART0 muni cation、I2C munication .And GPS data decode,and introduce LPC 2292 emphasis on serial UART0 、I2C and NMEA0813 protocol,and introduce how to use ZLG/GUI program menu interface in the part of lcd display. This software can decode GPS data accuracy and display on the LCD.Keyword: LPC2292 、 GPS receiver 、 I2C 、 NMEA0813 protocol II 目錄 目錄緒論 12 總體方案設(shè)計(jì) 2 設(shè)計(jì)任務(wù) 2 硬件設(shè)計(jì) 2 軟件設(shè)計(jì) 33 各模塊程序設(shè)計(jì) 5 Bootloader代碼 5 初始化中斷向量 6 初始化外部總線控制器 7 堆棧初始化 8 目標(biāo)板初始化 9 移殖μCOSⅡ到LPC2292 12 13 15 15 中斷及時(shí)鐘節(jié)拍 17 信息解碼程序設(shè)計(jì) 18 NMEA0183的協(xié)議標(biāo)準(zhǔn) 18 GPS數(shù)據(jù)結(jié)構(gòu)的定義 20 GPS信息解碼程序設(shè)計(jì) 23 串口驅(qū)動(dòng)程序 23 串口結(jié)構(gòu)圖 23 串口的初始化 24 串口接收數(shù)據(jù)程序設(shè)計(jì) 25 鍵盤處理程序 27 I2C總線 27 I2C總線速度的配置 34 ZLG7290 34 液晶顯示程序的設(shè)計(jì) 364 軟件的調(diào)試 38 軟件調(diào)試流程 38 調(diào)試結(jié)果 38結(jié)束語(yǔ) 39致謝 40參考文獻(xiàn) 41附錄 42III廣西工學(xué)院2008屆畢業(yè)設(shè)計(jì) 基于ARM的GPS定位信息顯示器的軟件設(shè)計(jì) 緒論GPS衛(wèi)星導(dǎo)航定位技術(shù)是現(xiàn)代信息通信領(lǐng)域中一門新興的技術(shù)。GPS系統(tǒng)的空間部分由24顆衛(wèi)星組成,均勻分布在6個(gè)軌道面上,地面高度為20200公里,軌道傾角為55度,扁心率約為0,周期約為12小時(shí),衛(wèi)星向地面發(fā)射兩個(gè)波段的載波信號(hào),(L1波段)(L2 波段),衛(wèi)星上安裝了精度很高的原子鐘,以確保頻率的穩(wěn)定性,在載波上調(diào)制有表示衛(wèi)星位置的廣播星歷,用于測(cè)距的C/A碼和P碼,以及其它系統(tǒng)信息,能在全球范圍內(nèi)向任意多用戶提供高精度的、全天候的、連續(xù)的、實(shí)時(shí)的三維測(cè)速、三維定位和授時(shí)。GPS系統(tǒng)的控制部分由設(shè)在美國(guó)本土的5個(gè)監(jiān)控站組成,這些監(jiān)控站不間斷地對(duì)GPS衛(wèi)星進(jìn)行觀測(cè),并將計(jì)算和預(yù)報(bào)的信息由注入站對(duì)衛(wèi)星信息更新。GPS系統(tǒng)的用戶是非常隱蔽的,它是一種單程系統(tǒng),用戶只接收而不必發(fā)射信號(hào),因此用戶的數(shù)量也是不受限制的。目前,中國(guó)衛(wèi)星導(dǎo)航技術(shù)應(yīng)用領(lǐng)域十分廣闊,傳統(tǒng)測(cè)量應(yīng)用及軍工相關(guān)應(yīng)用的比例在逐年下降,應(yīng)用已滲透到許多嶄新的行業(yè)。通信行業(yè)用GPS做時(shí)間同步測(cè)控;電力、有線電視、城市地下管道采用GPS布設(shè)線路;交通、運(yùn)輸部門用GPS等相關(guān)集成技術(shù)營(yíng)建ITS系統(tǒng)和監(jiān)控系統(tǒng);公安、銀行、醫(yī)療、消防等用GPS營(yíng)建緊急救援或報(bào)警系統(tǒng);汽車、船舶用GPS導(dǎo)航;GIS數(shù)據(jù)提供商用GPS采集地理信息相關(guān)數(shù)據(jù),并提供位置信息相關(guān)服務(wù)(LBS);廣播電視行業(yè)用GPS與羅盤制造衛(wèi)星電視定向接收天線;電子商務(wù)領(lǐng)域,GPS甚至應(yīng)用于CRM客戶管理和物流配送體系中;而電腦制造商、通訊設(shè)備商正在推動(dòng)通訊、電腦、GPS一體化的各類移動(dòng)信息終端應(yīng)用?,F(xiàn)實(shí)的應(yīng)用已經(jīng)使衛(wèi)星導(dǎo)航技術(shù)從專業(yè)化領(lǐng)域走向了大眾化應(yīng)用的廣闊前景,這也使得衛(wèi)星導(dǎo)航技術(shù)逐漸成為通信、互聯(lián)網(wǎng)之后的第三個(gè)IT新增長(zhǎng)點(diǎn)。中國(guó)衛(wèi)星導(dǎo)航產(chǎn)品與服務(wù)一直呈現(xiàn)強(qiáng)勁增長(zhǎng)的勢(shì)頭。據(jù)有關(guān)部門統(tǒng)計(jì),GPS接收機(jī)相關(guān)產(chǎn)品的擁有量8萬(wàn)臺(tái)左右,航海型約有5萬(wàn)臺(tái)左右,應(yīng)用數(shù)量最多;車載型以每年200%的速度遞增,發(fā)展最快;手持型各類個(gè)人消費(fèi)終端產(chǎn)品形態(tài)極為豐富,最具誘惑力。本設(shè)計(jì)主要研究對(duì)基于NMEA0813協(xié)議的GPS信息解碼程序的設(shè)計(jì),程序可以對(duì)RMC(推薦定位信息)、GGA(固定數(shù)據(jù)輸出信息)、GSA(當(dāng)前衛(wèi)星信息)進(jìn)行精確的解碼,并能在液晶顯示器顯示經(jīng)度、緯度、日期、時(shí)間等信息。52廣西工學(xué)院2008屆畢業(yè)設(shè)計(jì) 基于ARM的GPS定位信息顯示器的軟件設(shè)計(jì) 2 總體方案設(shè)計(jì) 設(shè)計(jì)任務(wù)本軟件設(shè)計(jì)的所需完成的任務(wù)是:(1) 通過(guò)編寫GPS信息解碼程序,能對(duì)GPS信息進(jìn)行正確的解碼;(2) 通過(guò)移值ZLG/GUI,設(shè)計(jì)菜單操作界面,方便用戶操作,并顯示詳細(xì)的GPS信息。 硬件設(shè)計(jì)本設(shè)計(jì)要求微處理器能提供串口接收GPS模塊輸出的信息,并有較強(qiáng)的運(yùn)算能力及高的處理速度使得菜單界面顯示效果好。目前,ARM所提供的16/32位嵌入式RISC內(nèi)核主要有以下幾個(gè)系列產(chǎn)品:ARMARMARM10E、ARM11和SecurCore、StrongARM和Xscale等。ARM7TMDI屬于低端的ARM處理器,其最高主頻可達(dá)130MIPS(Million Instructions Per Second),高速的運(yùn)算能力能勝任絕大多數(shù)復(fù)雜的應(yīng)用。本次設(shè)計(jì)采用LPC2292作為微處理器,其最高主頻為60 MH z,足以勝任本次設(shè)計(jì)任務(wù),LPC2292有256kB片內(nèi)Flash,為本次設(shè)計(jì)提供了足夠的程序存儲(chǔ)空間,可以不用擴(kuò)展外部Flash。雖然LPC2292有16kB的片內(nèi)RAM,但是仍然不夠用,因?yàn)楸驹O(shè)計(jì)所移植的uCOS_II操作系統(tǒng)和ZLG/GUI共生成了7kB多的Data,必須為每一個(gè)任務(wù)分配足夠的堆??臻g和聲明存放GPS信息的數(shù)組,加上定義必要的變量將增加大約6kB的Data,使16kB的RAM剩余不多??紤]到以后能容易的添加新的功能,本設(shè)計(jì)采用外部RAM儲(chǔ)存程序變量,具體芯片選用高速訪問(wèn)時(shí)間達(dá)10ns、高性能和低功耗的IS61LV25616AL,該芯片是美國(guó)ISSI公司生產(chǎn)的SRAM(靜態(tài)RAM),存儲(chǔ)容量是512kB,這為以后擴(kuò)展功能提供極大的發(fā)揮余地。本設(shè)計(jì)采用ZLG7290作為鍵盤接口,ZLG7290是標(biāo)準(zhǔn)的I2C接口器件,只使用三個(gè)LPC2292的I/O口,其中有兩個(gè)是I2C引腳SDA、SCL,另外一個(gè)引腳是外部中斷EINT3,這樣就可以節(jié)省I/O口又可以擴(kuò)展多達(dá)64個(gè)引腳ZLG7290可以自動(dòng)消除抖動(dòng),其中有8只可以作為功能鍵使用。另外ZLG7290內(nèi)部還設(shè)置有連擊計(jì)數(shù)器,能夠使某鍵按下后不松手而連續(xù)有效。在液晶方面可以選用點(diǎn)陣圖形的單色液晶,也可以選用STN或者更高級(jí)別的液晶,但價(jià)格昂貴。本設(shè)計(jì)采用SMG240128A作為顯示器,就可以滿足設(shè)計(jì)要求。LPC2292 UART GPS Model ZLG7290 SMG240128 IS61LV25616AL 電源 Key 總體硬件框圖 軟件設(shè)計(jì)本設(shè)計(jì)采用μCOSⅡ?qū)崟r(shí)操作系統(tǒng)實(shí)現(xiàn),該操作系統(tǒng)的優(yōu)點(diǎn)是提高處理事件的實(shí)時(shí)性。本設(shè)計(jì)共建立3個(gè)任務(wù),分別為TaskA、TaskB、TaskC。其中TaskA為起始任務(wù),其優(yōu)先級(jí)最高,在TaskA中建立TaskB、TaskC。TaskB是顯示GPS信息任務(wù),TaskC是鍵盤檢測(cè)任務(wù)。TaskB獲取鍵盤的方法是,先建立郵箱havenewkey,并等待郵箱havenewkey,TaskC檢測(cè)到按鍵按下時(shí)發(fā)出郵箱havenewkey,之后當(dāng)執(zhí)行任務(wù)TaskB時(shí)通過(guò)郵箱havenewkey獲取按鍵值。程序由7部分組成:Bootloader、GPS信息解碼程序、串口中斷服務(wù)程序、讀按鍵值程序、ZLG/GUI、μCOSⅡ和主程序,下面將闡述其中幾部分程序的設(shè)計(jì)方法。啟動(dòng)初始化顯示開機(jī)界面鍵盤檢測(cè)啟動(dòng)接收GPS信息使能串口中斷對(duì)接收到的信息進(jìn)行解碼并顯示信息等待郵箱(20個(gè)時(shí)鐘節(jié)拍)Havenewkey退出接收信息xinGPSxinxYN顯示GPS簡(jiǎn)介YYN建立任務(wù)TaskA任務(wù)調(diào)度在TaskA中建立任務(wù)TaskB、TaskC, 延時(shí)60個(gè)時(shí)鐘節(jié)拍運(yùn)行任務(wù)TaskB無(wú)限期等待郵箱Havenewkey無(wú)限期等待郵箱Havenewkey運(yùn)行任務(wù)TaskC按鍵有效發(fā)出郵箱HavenewkeyN延時(shí)6個(gè)時(shí)鐘節(jié)拍` 主程序流程圖3 各模塊程序設(shè)計(jì) Bootloader代碼Bootloader代碼(啟動(dòng)代碼)是嵌入式系統(tǒng)中應(yīng)用程序的開頭部分,它與應(yīng)用程序一起固化在ROM中,并首先在系統(tǒng)上運(yùn)行。Bootloader代碼是嵌入式程序的重要組成部分,好的Bootloader代碼是系統(tǒng)能夠正常工作的前提。設(shè)置存儲(chǔ)器控制寄存器設(shè)置系統(tǒng)各部分時(shí)鐘 設(shè)置存儲(chǔ)器加速模塊 進(jìn)入主程序 初始化各