劉 超,李玉惠,李 勃,鄭占領(lǐng)
(昆明理工大學(xué)信息工程與自動(dòng)化學(xué)院,云南 昆明 650500)
GPS定位系統(tǒng)在全球已得到廣泛的應(yīng)用,市場(chǎng)上與GPS相關(guān)的產(chǎn)品多不勝數(shù),但功能單一的GPS定位已經(jīng)不能滿足人們的要求,關(guān)于目標(biāo)定位的產(chǎn)品也朝著多信息的方向發(fā)展,即不僅能夠得到GPS坐標(biāo),還能得到方向、距離和速度等信息[1-3]。在該背景下,如果將GPS模塊作為定位基本模塊,并融合電子羅盤模塊和加速度傳感器模塊,能測(cè)出物體的坐標(biāo)位置、方位和速度,即可豐富目標(biāo)定位的信息。筆者研究的系統(tǒng)預(yù)留了多個(gè)串口,便于系統(tǒng)功能的擴(kuò)展。
該系統(tǒng)主體為一套基于C8051F120單片機(jī)的實(shí)驗(yàn)平臺(tái),通過預(yù)留的接口接入GPS模塊、電子羅盤模塊和加速度傳感器模塊。GPS接收模塊用來(lái)接收目標(biāo)的地理坐標(biāo),電子羅盤提供物體運(yùn)動(dòng)方位角,加速度傳感器模塊提供物體的速度,三者的數(shù)據(jù)分別經(jīng)過C8051F120單片機(jī)串口、I2C控制以及模數(shù)轉(zhuǎn)換處理等一系列過程便能得到物體的相關(guān)位置狀態(tài)信息。
C8051F12x系列器件是完全集成的混合信號(hào)片上系統(tǒng)型MCU芯片,具有64個(gè)數(shù)字I/O引腳(100腳TQFP封裝)。其具有高速、流水線結(jié)構(gòu)的8051兼容的CIP-51內(nèi)核(100 MI/s或50 MI/s)且有全速、非侵入式的在系統(tǒng)調(diào)試接口(片內(nèi))和真正12位或10位、100 kS/s的 ADC,帶PGA和8通道模擬多路開關(guān),內(nèi)部資源多,存儲(chǔ)量大[4]。
具有片內(nèi)VDD監(jiān)視器、看門狗定時(shí)器和時(shí)鐘振蕩器的C8051F12x和C8051F13x器件是真正能獨(dú)立工作的片上系統(tǒng)。所有模擬和數(shù)字外設(shè)均可由用戶固件使能/禁止和配置。Flash存儲(chǔ)器還具有在線重新編程能力,可用于非易失性數(shù)據(jù)存儲(chǔ),并允許現(xiàn)場(chǎng)更新8051固件。
片內(nèi)JTAG調(diào)試電路允許使用安裝在最終應(yīng)用系統(tǒng)上的產(chǎn)品MCU進(jìn)行非侵入式(不占用片內(nèi)資源)、全速和在線調(diào)試。該調(diào)試系統(tǒng)支持觀察和修改存儲(chǔ)器和寄存器,支持?jǐn)帱c(diǎn)、觀察點(diǎn)、單步及運(yùn)行和停機(jī)命令。在使用JTAG調(diào)試時(shí),所有的模擬和數(shù)字外設(shè)都可全功能運(yùn)行。
該系統(tǒng)使用該單片機(jī)的串口、I2C接口以及模數(shù)轉(zhuǎn)換通道。
該系統(tǒng)采用了IT500模塊作為GPS信號(hào)采集模塊。該模塊能輸出符合 NEMA0183標(biāo)準(zhǔn)的ASCII碼形式的數(shù)據(jù)信息,因此通過C8051F120單片機(jī)的串口即可與該模塊通信。默認(rèn)狀態(tài)下該模塊輸出 GPGGA、GPGSA、GPGSV、GPRMC 格式的信息。用戶可以通過發(fā)送命令控制該模塊的輸出。在實(shí)際應(yīng)用中一般采用最簡(jiǎn)格式輸出,即GPRMC格式輸出。
電子羅盤可以提供目標(biāo)物的運(yùn)動(dòng)方向,該系統(tǒng)選用SCH9003模塊進(jìn)行電子羅盤數(shù)據(jù)的采集。該模塊支持I2C通信協(xié)議,在單片機(jī)內(nèi)部可以將端口配置為I2C接口,經(jīng)過簡(jiǎn)單的操作即可與該模塊進(jìn)行通信[5-6]。需要注意的是電子羅盤是測(cè)水平方向運(yùn)動(dòng)的,因此測(cè)試時(shí)應(yīng)水平放置。
通過加速度傳感器可以采集到目標(biāo)的加速度,該系統(tǒng)采用ADXL213模塊采集加速度數(shù)據(jù)。通過分析動(dòng)態(tài)加速度,可以分析出設(shè)備移動(dòng)的方式。該模塊兩個(gè)輸出分別為X軸和Y軸的加速度信息。將其輸出接入到單片機(jī)模數(shù)轉(zhuǎn)換通道,在單片機(jī)內(nèi)即可得到加速度的數(shù)字量。
系統(tǒng)加入可擴(kuò)展模塊主要是為了能根據(jù)用戶的要求加入其他的傳感器。一般情況下,很多傳感器是支持串口的,因此該系統(tǒng)采用SP3539芯片將1個(gè)串口擴(kuò)展成了5個(gè)串口[7-8],其中1個(gè)用于GPS模塊,其他4個(gè)可以連接其他的傳感器,進(jìn)一步豐富定位信息[9]。
用戶界面用于用戶對(duì)系統(tǒng)的操作,它由液晶顯示屏和按鍵模塊組成。按鍵有向上、向下、確認(rèn)和取消4種功能鍵,液晶顯示屏初始顯示的是菜單界面,菜單界面有多個(gè)選項(xiàng)供選擇,通過向上、向下按鍵來(lái)選擇查看或修改GPS模塊、電子羅盤模塊和加速度傳感器模塊信息,按確認(rèn)鍵即進(jìn)入該選中模塊信息界面,在該界面中可以看到該模塊傳回的數(shù)據(jù),也可對(duì)該模塊進(jìn)行參數(shù)設(shè)置。
通過按鍵和液晶屏實(shí)現(xiàn)菜單操作的關(guān)鍵是對(duì)狀態(tài)進(jìn)行控制。通過按鍵實(shí)現(xiàn)畫面之間的切換。每次鍵按下,系統(tǒng)內(nèi)部會(huì)進(jìn)行一次按鍵處理,得到鍵值,再結(jié)合當(dāng)前的顯示狀態(tài),判斷得出下一狀態(tài),通過更新狀態(tài)從而實(shí)現(xiàn)畫面的切換。
系統(tǒng)中C8051F120單片機(jī)有8個(gè)I/O口和1個(gè)12位的8通道模數(shù)轉(zhuǎn)換通道。其中端口0~4可以進(jìn)行交叉開關(guān)配置,即可通過端口配置將普通I/O口配置成UART接口和I2C接口等其他數(shù)字接口。如圖1所示,該系統(tǒng)選擇端口0~4為電子羅盤模塊配置I2C接口,為串口擴(kuò)展模塊以及液晶屏配置UART接口,并選擇模數(shù)轉(zhuǎn)換的2個(gè)通道接到加速度傳感器上。
圖1 系統(tǒng)硬件框圖
軟件系統(tǒng)的設(shè)計(jì)對(duì)于整個(gè)系統(tǒng)來(lái)說至關(guān)重要。在設(shè)計(jì)的各個(gè)環(huán)節(jié)既要保證系統(tǒng)能快速響應(yīng),又要保證數(shù)據(jù)能正確無(wú)誤地處理。分模塊進(jìn)行設(shè)計(jì)比較能夠容易查找軟件中存在的問題。首先,對(duì)系統(tǒng)進(jìn)行初始化,主要是完成一些基本的設(shè)置,包括系統(tǒng)時(shí)鐘的設(shè)定,端口的配置,串口波特率的設(shè)定,定時(shí)器的設(shè)定以及中斷的設(shè)定。然后系統(tǒng)進(jìn)入大循環(huán),在循環(huán)里先讀取并處理各傳感器模塊的數(shù)據(jù),接著是按鍵的處理,若有按鍵按下則顯示狀態(tài)改變,接著便顯示由按鍵處理后設(shè)定的狀態(tài),顯示的狀態(tài)包含了用戶所需的不同信息。系統(tǒng)的軟件流程圖如圖2所示。
圖2 系統(tǒng)軟件流程圖
C8051F120單片機(jī)是支持在線調(diào)試的,通過Silicon IDE集成開發(fā)環(huán)境,將程序下載到系統(tǒng)中。在室內(nèi),由于GPS信號(hào)較弱,系統(tǒng)會(huì)提示接收不到GPS信號(hào),其他信息接收正常。在戶外,GPS信號(hào)接收正常,系統(tǒng)運(yùn)行良好,通過按鍵的控制可以在液晶屏上顯示出目標(biāo)的經(jīng)度、緯度、加速度,以及運(yùn)動(dòng)方向,而且數(shù)據(jù)可以跟著目標(biāo)的運(yùn)動(dòng)更新改變[10]。
該系統(tǒng)采用C8051F120單片機(jī)控制GPS模塊、電子羅盤模塊和加速度傳感器模塊,并采集這3個(gè)模塊的數(shù)據(jù),將采集的數(shù)據(jù)處理成用戶可讀的信息顯示出來(lái)。該系統(tǒng)提供目標(biāo)的經(jīng)度、緯度、加速度以及運(yùn)動(dòng)方向,豐富了單個(gè)GPS定位信息。通過測(cè)試,在室內(nèi),該系統(tǒng)能正常顯示目標(biāo)運(yùn)動(dòng)方向和目標(biāo)加速度,GPS坐標(biāo)則由于GPS信號(hào)弱而不能正常顯示。在戶外,GPS信號(hào)接收正常,系統(tǒng)運(yùn)行良好,通過按鍵的控制可以在液晶屏上顯示出目標(biāo)的經(jīng)度、緯度、加速度,以及運(yùn)動(dòng)方向,并能對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)更新,顯示了良好的特性。系統(tǒng)中擴(kuò)展了多個(gè)串口,只需對(duì)軟件稍作更改便可增加其他的傳感器,進(jìn)一步滿足用戶要求。該系統(tǒng)功能可用于交通監(jiān)控、車載應(yīng)急指揮系統(tǒng)等場(chǎng)合。
[1]張勤.INS/GPS/電子羅盤組合導(dǎo)航系統(tǒng)研究[J].計(jì)算機(jī)測(cè)量與控制,2010,18(5):225-227.
[2]林明春,夏桂鎖,林玉池,等.電子羅盤在全自動(dòng)智能陀螺尋北儀中的應(yīng)用[J].光學(xué)精密工程,2007,15(5):719-723.
[3]楊國(guó)勝,竇麗華,陳杰,等.多傳感器多目標(biāo)定位與跟蹤技術(shù)研究[J].火力與指揮控制,2002,27(1):29-32.
[4]束華明,高明煜,王園園.基于單片機(jī)控制的汽車前照燈自適應(yīng)系統(tǒng)[J].電子測(cè)量與儀器學(xué)報(bào),2008,22(1):318-321.
[5]盧海峰,江朝元,陽(yáng)小光.基于串口通信的在線監(jiān)測(cè)系統(tǒng)關(guān)鍵技術(shù)研究[J].儀器儀表學(xué)報(bào),2006,27(3):2043-2044.
[6]鐘文,王益.串行端口底層通信機(jī)理研究及相應(yīng)實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005,31(19):225-227.
[7]楊亦紅.采用串口通信的光譜相應(yīng)測(cè)試儀中數(shù)據(jù)幀的設(shè)計(jì)[J].光學(xué)儀器,2003,25(4):59-63.
[8]汪濤,羅洪平,陶純匡.RS232串口通信在CCD在線測(cè)量中的應(yīng)用[J].系統(tǒng)工程與電子技術(shù),2005,27(10):1814-1816.
[9]陳正平,劉堯光.C3I系統(tǒng)多傳感器的信息融合[J].火力與指揮控制,1998,23(3):47-50.
[10]楊國(guó)勝,竇麗華,陳杰,等.炮兵系統(tǒng)多目標(biāo)定位與跟蹤建模[J].北京理工大學(xué)學(xué)報(bào),2002,11(1):14-17.