嵌入式GPS數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引 言
嵌入式系統(tǒng)是以應(yīng)用為中心,計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,對功能、可靠性、成本、體積、功耗等有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。使用嵌入式系統(tǒng)不僅對穩(wěn)定性有很大的改善,而且使應(yīng)用模塊化,極大提高程序的可讀性、可擴(kuò)展性和可移植性[1]。
全球定位系統(tǒng)(Global Position System,GPS)是可在海、陸、空進(jìn)行全方位實(shí)時(shí)三維導(dǎo)航與定位的新一代衛(wèi)星導(dǎo)航定位系統(tǒng),具有全天候、高精度和高效益等特點(diǎn),現(xiàn)GPS已在各領(lǐng)域得到廣泛應(yīng)用[2]。
本文采用嵌入式操作系統(tǒng)μC/OS-II,控制OEM板接收導(dǎo)航信息,并對GPS數(shù)據(jù)采集系統(tǒng)的硬件和軟件提出了詳細(xì)的設(shè)計(jì)方案,給出了提取GPS特征數(shù)據(jù)的算法,這些對研究嵌入式系統(tǒng)應(yīng)用、GPS定位及其在組合導(dǎo)航中的應(yīng)用以及對OEM板的二次開發(fā)等都是實(shí)用的。
2 系統(tǒng)總體設(shè)計(jì)
嵌入式GPS數(shù)據(jù)采集系統(tǒng)由接收部分(OEM板)、電平轉(zhuǎn)換部分(MAX232)、控制部分、顯示部分組成,硬件結(jié)構(gòu)如圖1所示。
OEM板通過天線接收來自GPS的導(dǎo)航數(shù)據(jù)并經(jīng)過電平轉(zhuǎn)換后發(fā)送給EP7312, EP7312接收OEM板發(fā)來
的數(shù)據(jù)并存儲、顯示。EP7312與OEM板之間采用異步串行方式通信,幀格式1位起始位,8位數(shù)據(jù)位,1位停止位,無校驗(yàn)位,波特率為9600 bit.s-1。通過軟件控制EP7312對GPS信號進(jìn)行實(shí)時(shí)處理,以獲得當(dāng)前的經(jīng)度、緯度坐標(biāo)等所需信息,并通過液晶顯示。
3 系統(tǒng)硬件配置
3.1 接收模塊
GPS-OEM板主要是由變頻器、標(biāo)頻器、信號通道、微處理器和存儲單元等構(gòu)成。在上電完成初始自檢后,它將自動地接收來自天線的GPS射頻信號,經(jīng)過變頻、放大、相關(guān)、混頻等一系列處理后,完成并行通道對其視界內(nèi)幾何位置最佳的數(shù)顆衛(wèi)星的連續(xù)跟蹤,并且測出信號從衛(wèi)星到接收天線的傳播時(shí)間,解譯出GPS衛(wèi)星所發(fā)送的導(dǎo)航電文,最后經(jīng)由I/0口輸出串行數(shù)據(jù),這些數(shù)據(jù)主要是向用戶提供定位信息,包括緯度、經(jīng)度、速度、時(shí)間等。
系統(tǒng)接收部分選用的Jupiter TU30-D410 -031,是美國Rockwell公司生產(chǎn)的并行12通道OEM板。該OEM板具有體積小、定時(shí)時(shí)間短、無靜態(tài)漂移等特點(diǎn),能夠提供位置、速度、時(shí)間、定位與導(dǎo)航信息,以載波相位輸出、1PPS時(shí)標(biāo)和10kHz方波輸出,適合各種導(dǎo)航定位的應(yīng)用。
3.2 控制模塊
系統(tǒng)采用Cirrus Logic公司的32位嵌入式處理器EP7312。該ARM處理器內(nèi)帶8K緩存,支持Thumb指令。EP7312資源豐富,功能強(qiáng)大,有27個通用I/O,2個UART,2個定時(shí)器,并內(nèi)帶LCD控制器,可直接連接單色、彩色LCD。EP7312功耗很低,最大不超過90mW。
采用EP7312構(gòu)成的GPS應(yīng)用系統(tǒng),具有功耗低、體積小、使用靈活的特點(diǎn),系統(tǒng)的結(jié)構(gòu)和功能可以根據(jù)需求的不同進(jìn)行個性化配置,而且可以很方便地進(jìn)行系統(tǒng)外設(shè)的擴(kuò)展。
3.3 顯示模塊
本系統(tǒng)采用液晶顯示器是SHARP公司的彩色LCD,有效顯示點(diǎn)陣為320×240,其功耗較低,抗干擾能力強(qiáng),體積小。由于EP7312內(nèi)部帶有LCD控制器,當(dāng)系統(tǒng)接收OEM板輸出的導(dǎo)航數(shù)據(jù)信息時(shí),只要設(shè)置其內(nèi)部控制器的寄存器就可以對LCD實(shí)現(xiàn)控制,然后再通過向Frame Buffer輸出接收到的并經(jīng)過處理的導(dǎo)航信息,這時(shí)顯示屏上就可以顯示定位點(diǎn)精確的經(jīng)度、緯度及本地時(shí)間了。
4 系統(tǒng)軟件設(shè)計(jì)及實(shí)現(xiàn)
4.1 μC/OS-II簡介
μC/OS-II是開源實(shí)時(shí)嵌入式操作系統(tǒng),絕大部分代碼是用C編寫的,其可移植性較強(qiáng),可廣泛地應(yīng)用于各種不同的硬件平臺上[3]。μC/OS-II是一個占先式實(shí)時(shí)系統(tǒng),當(dāng)有優(yōu)先級高的任務(wù)就緒時(shí),原任務(wù)將被打斷而轉(zhuǎn)為優(yōu)先級較高的任務(wù),這也是實(shí)時(shí)性的重要保證。μC/OS-II具體移植可參照其它資料。
4.2 應(yīng)用程序設(shè)計(jì)
根據(jù)設(shè)計(jì)要求,系統(tǒng)將應(yīng)用程序劃分為采集存儲和顯示兩個任務(wù),其優(yōu)先級分別為10和11。采集存儲任務(wù)的主要功能是對導(dǎo)航數(shù)據(jù)采集,并且每30秒作為歷史記錄存儲一次,以便與當(dāng)前的導(dǎo)航信息比較。首先必須掌握系統(tǒng)的通信協(xié)議。GPS-OEM板采用NMEA-0183通信標(biāo)準(zhǔn)格式,可以輸出多種句型,均以“$”開頭。輸出的語句按串口通信協(xié)議,波特率9600bit.s-1,1位開始位,8位數(shù)據(jù)位,1位停止位,無奇偶校驗(yàn)。輸出數(shù)據(jù)采用的是ASCⅡ碼字符,內(nèi)容包含了緯度、經(jīng)度、速度、日期、航向及衛(wèi)星狀況等信息。語句達(dá)十余種,本系統(tǒng)所使用的語句僅限于$GPRMC定位數(shù)據(jù)語句。其結(jié)構(gòu)為:
$GPRMC,<1>,<2>,<3>,<4>,<5>,
<6>,<7>,<8>,<9>,<10>,<11>*hh
其中“GP”為交談識別符;“RMC”為語句識別符;“*”為校驗(yàn)和識別符;“hh”為校驗(yàn)和,其代表了“$”與“*”之間所有字符的按位異或值(不包括這兩個字符)。
$GPRMC語句數(shù)據(jù)區(qū)的內(nèi)容為:
<1>定位點(diǎn)的協(xié)調(diào)世界時(shí)間(UTC),hhmmss(時(shí)分秒)格式;
<2>定位狀態(tài),A=有效定位,V=無效定位;
<3>定位點(diǎn)緯度,ddmm.mmmm(度分)格式;
<4>緯度半球,N(北半球)或S(南半球);
<5>定位點(diǎn)經(jīng)度,dddmm.mmmmm(度分)格式;
<6>經(jīng)度半球,E(東經(jīng))或W(西經(jīng));
<7>地面速率,000.0節(jié)~999.9節(jié);
<8>地面航向,000.0度~359.9度;
<9>UTC日期,ddmmyy(日月年)格式;
<
10>磁偏角,000.0度~180度;
<11>磁偏角方向,E(東)或W(西)。
由于TU30-D410-031的波特率設(shè)置為9600bit.s-1,因此任務(wù)運(yùn)行時(shí),首先應(yīng)將串行口的波特率設(shè)為此值,EP7312就會接收到OEM板的定位數(shù)據(jù)。在串口收到信息后,先判別是否為語句引導(dǎo)頭“$GPRMC”,否,則放棄此次接收;是,則接收數(shù)據(jù)內(nèi)容。由于接收到$GPRMC幀頭后,再接收11個數(shù)據(jù)包即完成整幀數(shù)據(jù)的接收,存儲后系統(tǒng)將調(diào)用等待延時(shí)函數(shù)。
顯示任務(wù)的功能是負(fù)責(zé)所采集的數(shù)據(jù)在LCD上顯示出來,每隔一秒刷新一次。$GPRMC語句輸出了基本的定位信息,可以滿足一般用戶的使用要求。接收來的數(shù)據(jù)存放在內(nèi)存中,提取時(shí)先從數(shù)據(jù)中讀取定位狀態(tài)判斷是否有效,若有效再提取相應(yīng)的時(shí)間及經(jīng)緯度等信息。應(yīng)注意的是在處理北京時(shí)間時(shí)應(yīng)在UTC時(shí)間上加上8h才是準(zhǔn)確的北京時(shí),在超出24h時(shí)應(yīng)作減24h處理。系統(tǒng)運(yùn)行時(shí)GPS定位信息在LCD上顯示界面如圖2。
5 結(jié)束語
本文論述了嵌入式系統(tǒng)對GPS數(shù)據(jù)的讀取、處理及顯示的方法,分析了GPS模塊的信息格式并編制通信軟件,成功地實(shí)現(xiàn)了GPS定位信息的接收與顯示。該系統(tǒng)程序簡單,可靠,可運(yùn)用于車輛的導(dǎo)航系統(tǒng)中,另外,其方法思路對嵌入式系統(tǒng)、OEM板開發(fā)也具有很好的參考價(jià)值。
參考文獻(xiàn)
[1] 王田苗.嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)[M].北京:清華大學(xué)出版社,2003.
[2] 王惠南. GPS導(dǎo)航原理與應(yīng)用[M].北京:科學(xué)出版社,2003.
[3] Jean J. Labrosse.μC/OS-II—源碼公開的實(shí)時(shí)嵌入式操作系統(tǒng)[M].邵貝貝,譯.北京:中國電力出版社.