• 
    <ul id="auswy"><sup id="auswy"></sup></ul>
  • <ul id="auswy"></ul>
    ABB
    關(guān)注中國(guó)自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
    CAIAC 2025
    2025工業(yè)安全大會(huì)
    OICT公益講堂
    當(dāng)前位置:首頁(yè) >> 案例 >> 案例首頁(yè)

    案例頻道

    基于單片機(jī)的運(yùn)動(dòng)導(dǎo)航系統(tǒng)研究及軟件設(shè)計(jì)
    • 企業(yè):控制網(wǎng)     領(lǐng)域:儀器儀表     行業(yè):輸配電    
    • 點(diǎn)擊數(shù):1925     發(fā)布時(shí)間:2007-07-19 14:15:10
    • 分享到:
    運(yùn)動(dòng)導(dǎo)航系統(tǒng)研究成為目前國(guó)際上研究的熱點(diǎn)課題。本文選用C8051F020單片機(jī)作為核心處理器構(gòu)成運(yùn)動(dòng)平臺(tái)控制器,詳細(xì)討論了系統(tǒng)的軟硬件設(shè)計(jì)。使用VC++開(kāi)發(fā)了運(yùn)行于PC機(jī)的監(jiān)控軟件;利用微功率數(shù)傳模塊完成上位機(jī)與單片機(jī)之間的通信,并且自定義了數(shù)據(jù)傳輸協(xié)議。實(shí)驗(yàn)結(jié)果表明該系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單,配置靈活,數(shù)據(jù)處理方便等特點(diǎn)。 關(guān)鍵詞:運(yùn)動(dòng)導(dǎo)航 監(jiān)控軟件 單片機(jī) 串行通信



    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)。


       
    C8051FXXX系列單片機(jī)是Cygnal公司推出的高性能的完全混合信號(hào)系統(tǒng)MCU芯片,其指令集與MCS-51系列單片機(jī)完全兼容[4]。本文使用C8051F020設(shè)計(jì)運(yùn)動(dòng)平臺(tái)控制器,該處理器采用基于流水線的CIP-51內(nèi)核,片內(nèi)集成VDD監(jiān)視器、看門(mén)狗定時(shí)器和時(shí)鐘振蕩器,支持在線編程和JTAG調(diào)試接口,具有體積小、功耗低、便于調(diào)試開(kāi)發(fā)等優(yōu)點(diǎ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é)議。


       
    單片機(jī)向PC發(fā)送的數(shù)據(jù)包由15個(gè)字節(jié)組成。數(shù)據(jù)包開(kāi)頭的兩個(gè)字節(jié),我們?cè)O(shè)定第0和第1字節(jié)分別為0xEB和0x90,定義為數(shù)據(jù)頭。當(dāng)有數(shù)據(jù)向PC機(jī)發(fā)送的時(shí)候,檢測(cè)數(shù)據(jù)頭是否與設(shè)定值一致,一致就繼續(xù)接收剩余的數(shù)據(jù),否則舍棄該數(shù)據(jù)包。第2~5字節(jié)留給加速度傳感器信息。第6~9字節(jié)為采集的GPS緯度數(shù)據(jù);第10~13字節(jié)表示采集來(lái)的GPS精度數(shù)據(jù);第14個(gè)字節(jié)為校驗(yàn)字節(jié),該字節(jié)等于前14個(gè)字節(jié)的和,用來(lái)檢驗(yàn)接收的數(shù)據(jù)包是否完整。圖3所示為PC機(jī)向單片機(jī)發(fā)送的數(shù)據(jù)包格式。


       
    PC機(jī)向單片機(jī)發(fā)送的命令占用一個(gè)字節(jié),低四位表示對(duì)電機(jī)控制的命令和數(shù)據(jù),高四位表示對(duì)舵機(jī)提供的命令和數(shù)據(jù)。第3位表示電機(jī)進(jìn)退位,“0”表示前進(jìn),“1”表示后退,第0~2位表示控制量;同理,第7位表示舵機(jī)轉(zhuǎn)向控制位,“0”表示右轉(zhuǎn),“1”表示左轉(zhuǎn),第4~6位表示控制量。控制命令如表1所示。


        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.

     

    熱點(diǎn)新聞

    推薦產(chǎn)品

    x
    • 在線反饋
    1.我有以下需求:



    2.詳細(xì)的需求:
    姓名:
    單位:
    電話:
    郵件: