基于Zigbee的智能車運行狀態(tài)實時監(jiān)控系統(tǒng)設計
0 引言
智能車又稱輪式機器人,是集傳感器、計算機、自動控制、通信以及機械等技術于一身的綜合系統(tǒng)。在智能車的設計和制作過程中,控制算法調(diào)試是一個極其重要而又關鍵的環(huán)節(jié),面臨著許多急需解決的問題:智能車能否按照事先設計的思路運行;控制策略是否符合實際需求;運行中出現(xiàn)問題時,智能車的各項實時參數(shù)是什么。針對這些問題,許多學者提出了基于仿真的解決方案。有學者提出基于參數(shù)化的機械系統(tǒng)幾何模型,使用拉格朗日方法建立系統(tǒng)動力學方程,來對虛擬機械系統(tǒng)進行動力學分析。但由于車輛機械結構的復雜性,這種建模和仿真方式過于繁瑣,影響了仿真和研究的效率。清華大學針對全國大學生智能車競賽開發(fā)的PlaSTid仿真平臺,其動力學模型雖然較為簡單,但該模型是一種理想化的模型,對于影響智能車運行狀況的一些參數(shù)的考慮較少,例如小車與路面之間的摩擦系數(shù)、小車的機械性能等因素,因而仿真結果與實際存在一定差距。有學者提出一種智能車硬件在環(huán)仿真系統(tǒng),該仿真系統(tǒng)發(fā)揮了硬件在環(huán)的長處。但該軟件仍以虛擬仿真平臺LabVIEW為基礎,控制算法的分析和決策在上位機上運行,脫離了車模實體的軟件運行環(huán)境,其仿真結果與實際也存在一定的差距,因此其應用有相當?shù)木窒扌浴?/p>
筆者設計了一種基于無線通信技術的智能車運行狀態(tài)實時監(jiān)控系統(tǒng)。該系統(tǒng)以車模為實驗主體,車載控制器完成智能車的數(shù)據(jù)采集、分析、決策等。上位機通過無線通信技術獲得車模的各項運行參數(shù),監(jiān)控車模的運行狀態(tài)。
1 系統(tǒng)總體設計
1.1 Zigbee技術分析
Zigbee技術是一種近距離、低功率、低成本的雙向無線通信技術[5-6],工作頻段為全球通用頻段2.4 GHz,數(shù)據(jù)傳輸速率為10~250 kbit/s,免執(zhí)照。Zigbee協(xié)議由應用層、網(wǎng)絡層、數(shù)據(jù)鏈路層和物理層組成,其中物理層和鏈路層遵循IEEE802.15.4協(xié)議。一個Zigbee網(wǎng)絡支持255個設備;采用先進的AES128加密算法,提供數(shù)據(jù)完整性檢查;具有載波偵聽多路訪問、沖突檢測(CSMA/CA)方式,有很好的兼容性。Zigbee定義了3種類型的節(jié)點設備,分別是協(xié)調(diào)器、路由設備(FFD)和終端設備(RFD)。
Zigbee網(wǎng)絡由這3種設備組成,但必須包括1個協(xié)調(diào)器,而且只能有1個協(xié)調(diào)器。協(xié)調(diào)器是整個網(wǎng)絡的中心,它負責網(wǎng)絡的組建、網(wǎng)絡節(jié)點的管理、網(wǎng)絡節(jié)點信息的儲存,尋找節(jié)點之間的路由消息,不斷地接收信息。路由設備也擔當著協(xié)調(diào)器的作用,負責其他的路由器或終端設備入網(wǎng),拓展網(wǎng)絡范圍;終端設備是實現(xiàn)具體功能的單元[7].Zigbee網(wǎng)絡可以實現(xiàn)星型、樹型和網(wǎng)狀型多種拓撲結構。
赫立訊公司的IP-Link產(chǎn)品是集射頻收發(fā)器、微處理器、多拓撲網(wǎng)絡功能于一體的無線通信模塊。
IP-Link1200 模塊內(nèi)含AVR 微處理器,符合開放IEEE802.15.4協(xié)議的2.4 GHz免執(zhí)照ISM頻段的射頻收發(fā)器,可以組成任意的網(wǎng)絡拓樸。因此,IP-Link1200是一款完全滿足智能車測控系統(tǒng)要求的無線通信模塊。
1.2 監(jiān)控系統(tǒng)的組成結構
為了能對多個智能車的運行狀態(tài)實行在線監(jiān)控,系統(tǒng)采用星形拓撲結構。該系統(tǒng)的網(wǎng)絡節(jié)點分為協(xié)調(diào)器節(jié)點和終端節(jié)點,其中協(xié)調(diào)器與上位機相連,終端節(jié)點嵌入智能車。
上位機(即PC 機)與下位機(智能車)采用無線通信。下位機采集智能車的行駛速度以及路況信息,判斷智能車的行駛方向,并計算出下一步的行動數(shù)據(jù)。同時,下位機將采集的各項數(shù)據(jù)以及下一步的行動數(shù)據(jù)發(fā)給上位機,使得調(diào)試人員可以在上位機上觀察小車當前的行駛參數(shù)以及對應的小車行駛狀態(tài)。因此,上位機與下位機之間的通信方式是上位機首先向下位機發(fā)送通信指令,然后接收下位機發(fā)送來的小車運行狀態(tài)信息。上位機對信息保存、顯示、修正,并將修正的參數(shù)發(fā)送到下位機。
2 系統(tǒng)硬件設計
智能車以MC9S12XS128單片機為主控芯片,該芯片擁有豐富的內(nèi)部資源。利用單片機的脈寬調(diào)制模塊對智能車的舵機和電機進行驅動,2路PWM通道作為舵機角度控制,1路PWM通道用于電機的轉速控制;利用單片機的捕捉定時功能和A/D轉換模塊采集道路信號。
單片機與IP-Link1200的連接比較簡單方便。IP-Link1200的RXD可直接與單片機的SCI串行口發(fā)送端TXD相連接,TXD與單片機串行口接收端RXD相連接,RESET端接單片機的PE1口,通過PE1初始化IP-Link1200,即通過PE1輸出10 ms的負脈沖。下位機電路圖如圖1所示。
圖1 下位機電路圖
IP-Link1200與PC相連接時必須經(jīng)過電平轉換,將TTL電平轉換為RS-232C電平,用1片MAX232 芯片便可以完成該轉換。IP-Link1200的RESET端接在復位電路上,該電路在上電時使IP-Link1200復位或按RST按鈕使IP-Link1200復位。上位機電路圖如圖2所示。
圖2 上位機電路圖
3 系統(tǒng)軟件設計
3.1 通信協(xié)議
本系統(tǒng)中上位機與智能車之間采用全雙工通信。無線網(wǎng)絡采用星狀網(wǎng)絡拓撲結構。與上位機相連的IP-Link1200 為協(xié)調(diào)器節(jié)點,與各個智能車相連的IP-Link1200為終端節(jié)點。無線網(wǎng)絡中各個終端節(jié)點的節(jié)點號即為智能車的標識號。
通信協(xié)議的定義能夠確保收發(fā)數(shù)據(jù)的正確率。實驗證明,2個AAH后跟1個55H在數(shù)據(jù)中出現(xiàn)的概率小,因此,用2個AAH后跟1個55H作為1個數(shù)據(jù)包的起始標志。當發(fā)送數(shù)據(jù)時,在數(shù)據(jù)包前加上起始標志。當接收方收到1個數(shù)據(jù)包,首先檢驗前3位是否是起始標志,若是,則繼續(xù)接收數(shù)據(jù)包,否則,放棄接收。命令碼是上位機向下位機發(fā)出的指令,占1 byte.其中低4位是操作代號,用"0"表示上位機需要讀取下位機中的數(shù)據(jù);用"1"表示上位機需要向下位機中寫入數(shù)據(jù)。高4位是指令代號,表示上位機需要讀/寫下位機的哪組數(shù)據(jù),例如舵機參數(shù)、路況參數(shù)、速度參數(shù)等。數(shù)據(jù)長度位,表示數(shù)據(jù)包中數(shù)據(jù)的個數(shù)。數(shù)據(jù)的糾錯處理采用CRC校驗方式。
3.2 通信模塊設計
通信系統(tǒng)的軟件主要有兩部分,一是上位機從串口接收和發(fā)送數(shù)據(jù),二是智能車在MC9S12XS128單片機的控制下從IP-Link1200接收和發(fā)送數(shù)據(jù)。通信子程序在系統(tǒng)啟動時設置串行口的波特率為38 400 baud,并通過IP-Link1200給通信網(wǎng)絡中的各個子節(jié)點發(fā)送控制消息,查看各個節(jié)點是否連接正常。智能車中的通信子程序,上電時設置串行口的波特率為38 400 baud,設置無線網(wǎng)絡中各個終端節(jié)點的節(jié)點號為智能車的標識號,設置IP-Link1200的網(wǎng)絡拓撲結構為星型、傳輸波特率為38 400 baud、信道為11等。Zigbee網(wǎng)絡的建立是由與上位機相連的協(xié)調(diào)器發(fā)起的。首先,協(xié)調(diào)器進行掃描搜索,發(fā)現(xiàn)一個未用的最佳信道來建立網(wǎng)絡,然后再掃描搜索發(fā)現(xiàn)新的終端節(jié)點將其加入到這個網(wǎng)絡中。
3.3 下位機軟件設計
在上位機與上位機的通信中,上位機處于主動地位,下位機處于從屬地位。當下位機沒有收到上位機的通信指令時,小車就不斷地采集前方的道路信息,提取引導線,采集小車行駛速度,生成控制參數(shù),控制著小車沿引導線前進。當小車收到上位機的通信指令時,首先判斷指令類型。若是上位機向下位機發(fā)來的修正數(shù)據(jù)包,下位機接收數(shù)據(jù)并修改運行參數(shù);若是上位機要求下位機傳送小車運行參數(shù)的指令,下位機立即將發(fā)送類型字打包并上傳。
3.4 上位機軟件設計
上位機軟件采用VB語言來編寫,基于Windows 的窗口化程序設計MFC,使人機界面生動直觀,操作簡單。
上位機完成的主要功能是負責一次通信的發(fā)起,選擇需要采集的參數(shù)組,將接收到的數(shù)據(jù)存儲、顯示,并對參數(shù)進行修正。它的功能模塊分為主控模塊、通信模塊、數(shù)據(jù)庫管理模塊。主控模塊由數(shù)據(jù)接收子模塊、顯示子模塊和參數(shù)修正子模塊組成。數(shù)據(jù)接收子模塊由圖像信息子項、舵機相關參數(shù)子項、PID參數(shù)子項組成;參數(shù)修正子模塊完成對舵機轉角參數(shù)和PID算法中各因子的修正,當參數(shù)修正完成,立即執(zhí)行發(fā)送參數(shù)修正命令,以此修改下位機的相應參數(shù)。
4 實驗及分析
應用本系統(tǒng)對智能車進行調(diào)試,能夠及時獲得智能車運行的各項參數(shù),能夠及時觀察到智能車在給定參數(shù)控制下的運行狀態(tài)。同時,通過修改相應參數(shù),調(diào)整智能車的運行狀態(tài),使智能車的運行狀態(tài)達到最佳狀態(tài)。
圖3是智能車運行時電機控制的各項參數(shù)。在上位機上可以觀察智能車在同一路段運行時,PID各項因子的變化對智能車運行狀態(tài)的影響,通過不斷調(diào)整各項因子,使智能車在同一路段的運行狀態(tài)達到最佳。
圖3 智能車運行時電機控制的各項參數(shù)
5 結論
本文應用Zigbee無線通信模塊設計并實現(xiàn)了智能車運行狀態(tài)實時監(jiān)控系統(tǒng)。該系統(tǒng)能夠及時獲得智能車運行時的各項參數(shù),及時觀察到參數(shù)的變化對智能車運行狀態(tài)的影響,使智能車的調(diào)試不再盲目,而是有的放矢。同時,也為控制算法的離線改進提供了有效的依據(jù)。