1 引 言
隨著電子導(dǎo)航技術(shù)的不斷進(jìn)步,如何準(zhǔn)確而快速地獲取運(yùn)動(dòng)物體的行駛信息就成為導(dǎo)航產(chǎn)品設(shè)計(jì)和開(kāi)發(fā)所關(guān)注的焦點(diǎn)問(wèn)題。目前實(shí)現(xiàn)導(dǎo)航定位技術(shù)的主要途徑有全球定位系統(tǒng)[1](Global Positioning System,GPS)、航位推算技術(shù)[2](Dead Reckoning,DR)以及地圖匹配[3](Map Matching,MM)三大技術(shù)。
航位推算技術(shù)是一種傳統(tǒng)的跟蹤導(dǎo)航算法,它采用里程傳感器和航向傳感器來(lái)推算運(yùn)動(dòng)目標(biāo)軌跡,誤差較大。地圖匹配算法復(fù)雜,耗費(fèi)軟硬件資源且實(shí)時(shí)性難以保證。而GPS技術(shù)在智能交通運(yùn)輸領(lǐng)域的應(yīng)用日趨廣泛,且十分成熟。
筆者在工作中做了如下嘗試:以低成本、低功耗、高可靠性和較好的交互性為基本原則,用C8051F020作為核心處理器,設(shè)計(jì)了運(yùn)動(dòng)平臺(tái)控制器;開(kāi)發(fā)符合Windows規(guī)范的監(jiān)控軟件,提供友好的人機(jī)界面;利用微功率無(wú)線數(shù)傳模塊完成上位機(jī)軟件與單片機(jī)之間的通信。自定義了通信協(xié)議,提高數(shù)據(jù)通信的準(zhǔn)確性和穩(wěn)定性。
2 系統(tǒng)硬件結(jié)構(gòu)
本系統(tǒng)硬件總體結(jié)構(gòu)如圖1所示。系統(tǒng)采用兩級(jí)微機(jī)控制結(jié)構(gòu),即上位機(jī)是PC機(jī),下位機(jī)是C8051F020單片機(jī)。單片機(jī)負(fù)責(zé)數(shù)據(jù)采集、轉(zhuǎn)換、處理和電機(jī)控制,同時(shí)把采集到的信息打包發(fā)送給PC機(jī)變換、處理和顯示。上位機(jī)與單片機(jī)之間的通信通過(guò)微功率數(shù)傳電臺(tái)模塊實(shí)現(xiàn)。
C8051F020的兩個(gè)串口分別用來(lái)連接GPS和數(shù)傳電臺(tái)。定時(shí)器/計(jì)數(shù)器T2配合UART0產(chǎn)生9600bps波特率與數(shù)傳模塊連接,完成與PC機(jī)的通信;定時(shí)器/計(jì)數(shù)器T4配合UART1產(chǎn)生4800bps波特率接收GPS信號(hào)。用兩路可編程定時(shí)/計(jì)數(shù)器(PCA)產(chǎn)生16位的PWM分別驅(qū)動(dòng)電機(jī)和舵機(jī)。
運(yùn)動(dòng)平臺(tái)的初始坐標(biāo)和方位角由GPS獲得。iTrax 02[5]型接收機(jī)是一款超小體積、低功耗的GPS OEM板,其尺寸僅為26mm×26mm×4.7mm,休眠功耗僅為80uW,連續(xù)導(dǎo)航時(shí)也不超過(guò)110uW,并且從休眠到導(dǎo)航定位僅為8s,具有極快的信號(hào)獲取引擎。iTrax 02帶有2個(gè)UART接口,可接收NMEA0183格式的數(shù)據(jù)和二進(jìn)制的iTack格式數(shù)據(jù)。其端口2用來(lái)輸入差分修正信息和輸出衛(wèi)星的原始測(cè)量信息而端口1用來(lái)輸入設(shè)定語(yǔ)句和輸出定位語(yǔ)句。C8051F020單片機(jī)具有全雙工串行通信能力。兩者采用最簡(jiǎn)單的零調(diào)制的三線制進(jìn)行串行通信,這是進(jìn)行全雙工所需要的最少數(shù)目的線路。因而只需將C8051F020的串行口經(jīng)TTL電平與EIA電平轉(zhuǎn)換后,再與iTrax 02板串行口1對(duì)應(yīng)連接。系統(tǒng)采用11.059 MHz晶振。
無(wú)線通信模塊選擇ZT-TR43C型微功率無(wú)線電臺(tái),該模塊適用于低成本、小型化場(chǎng)合的無(wú)線數(shù)據(jù)收發(fā)。
3 系統(tǒng)軟件設(shè)計(jì)
3.1自定義通信協(xié)議
對(duì)于監(jiān)控軟件與單片機(jī)之間的通信,能夠?qū)崿F(xiàn)收發(fā)真實(shí)再現(xiàn)的關(guān)鍵在于PC機(jī)與單片機(jī)之間的通信協(xié)議是否滿足要求。經(jīng)過(guò)需求分析,制定了如圖2所示的單片機(jī)向PC機(jī)發(fā)送的通信協(xié)議。
3.2軟件實(shí)現(xiàn)
本系統(tǒng)軟件分為兩個(gè)部分,一部分是單片機(jī)控制軟件,在Keil C51環(huán)境下開(kāi)發(fā),采用模塊式結(jié)構(gòu)設(shè)計(jì),包括控制模塊、采集模塊等,主要模塊流程圖如圖4所示。
另一部分是PC機(jī)操作軟件,使用Microsoft Visual C++環(huán)境開(kāi)發(fā),采用面向?qū)ο蠹夹g(shù)設(shè)計(jì),基于對(duì)話框結(jié)構(gòu),其軟件結(jié)構(gòu)框圖如圖5所示。微軟提供的MScomm控件封裝了Windows提供的與串口操作相關(guān)的大多數(shù)API函數(shù),便于實(shí)現(xiàn)串口數(shù)據(jù)的收發(fā),且符合面向?qū)ο蟮木幊桃?guī)范。MScomm控件支持兩種訪問(wèn)串口的方式:查詢方式和事件驅(qū)動(dòng)方式。事件驅(qū)動(dòng)通訊是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時(shí)需要得到通知,如在串口接收緩沖區(qū)中有字符,或者Carrier Detect(CD)或Request To Send(RTS)線上一個(gè)字符到達(dá)或一個(gè)變化發(fā)生時(shí)。在這些情況下。可以利用MScomm控件的OnComm事件捕獲并處理這些通訊事件。OnComm事件還可以檢查和處理通訊錯(cuò)誤。查詢方式實(shí)質(zhì)上還是事件驅(qū)動(dòng),但在有些情況下,這種方式顯得更為便捷。在程序的每個(gè)關(guān)鍵功能之后,可以通過(guò)檢查CommEvent屬性的值來(lái)查詢事件和錯(cuò)誤。如果應(yīng)用程序較小,并且是自保持的,這種方法非常有效。本文選擇兩者結(jié)合的方式完成串行通信程序設(shè)計(jì)。
4 結(jié)束語(yǔ)
采用C8051F020單片機(jī)作為核心處理器,具有體積小、功耗低、便于維護(hù)的特點(diǎn)。開(kāi)發(fā)符合Windows風(fēng)格的監(jiān)控軟件具有人機(jī)界面友好,便于操作的優(yōu)點(diǎn)。由于選用無(wú)線數(shù)傳電臺(tái)作為通信手段,因此使用的場(chǎng)合較為廣泛。
該系統(tǒng)還可用于其它串行通信或遠(yuǎn)程監(jiān)控場(chǎng)合。
5 參考文獻(xiàn)
[1] 魏 宏. 城市軌道車輛組合定位導(dǎo)航系統(tǒng)的研究與開(kāi)發(fā)[D]. 吉林:吉林大學(xué), 2003
[2] 李本亮. GPS車載導(dǎo)航系統(tǒng)中的航位推算技術(shù)[Z]. 北京:菱科電子技術(shù)(中國(guó))有限公司研發(fā)中心, 2005
[3] 王仁禮, 陳天澤, 王冬紅. 智能型地圖匹配綜合算法的研究[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào). 2003.
[4] 張迎新, 雷文, 姚靜波等. C8051F系SOC單片機(jī)原理及應(yīng)用[M]. 北京:國(guó)防工業(yè)出版, 2005.
[5] 聞新, 劉寶忠, 林聞曉. MCS-51與GPS-OEM板串行通信技術(shù)及實(shí)現(xiàn)[J]. 無(wú)線電電子學(xué)與電信技術(shù).
2006.04.