趙耕云,王佳,馬臣斌
(1.蘭州工業(yè)學(xué)院汽車工程學(xué)院,甘肅 蘭州 730050;2.北汽銀翔汽車有限公司,重慶 401520)
飛思卡爾尋跡智能車是嵌入式設(shè)計(jì)領(lǐng)域研究的對(duì)象。在智能車制作調(diào)試過程中廣泛采用串口線配合上位機(jī)軟件作為調(diào)試工具,這種有線調(diào)試工具在車模運(yùn)行時(shí)使用極不方便。本文以第十一屆恩智浦大賽電軌型智能車為研究對(duì)象,設(shè)計(jì)了一種基于nRF24L01+的無線監(jiān)控系統(tǒng)。該系統(tǒng)可以在智能車運(yùn)行過程中,通過無線通信的方式使上位機(jī)接收到車速、方向等智能車運(yùn)行參數(shù),解決了采用有線串口方式調(diào)試智能車的諸多不便,同時(shí),該系統(tǒng)還可以實(shí)現(xiàn)上位機(jī)對(duì)智能車的遙控功能,實(shí)現(xiàn)遙控尋跡雙工作模式,增加了智能車的趣味性。
智能車以MC9S12XS128為主控制器,通過檢測(cè)鋁膜導(dǎo)引線的位置,由主控制器運(yùn)算后控制舵機(jī)方向和電機(jī)轉(zhuǎn)速,實(shí)現(xiàn)車模沿導(dǎo)引線路徑自動(dòng)尋跡。MC9S12XS128與STC89C52之間通過串行口通信,STC89C52將接收到的智能車運(yùn)行狀態(tài)參數(shù)通過nRF24L01+發(fā)送出去,同時(shí),STC89C52也可將 nRF24L01+接收到的來自上位機(jī)的控制信息通過串口發(fā)送給XS128。在PC機(jī)端,上位機(jī)采用LabVIEW編寫控制程序,通過nRF24L01+模塊和USB轉(zhuǎn)nRF24L01+模塊,實(shí)現(xiàn)智能車運(yùn)行數(shù)據(jù)的接收和控制信息的發(fā)送。圖1為系統(tǒng)示意圖。
nRF24L01+是一款工作在 2.4~2.5GHz世界通用 ISM 頻段的單片無線收發(fā)器芯片,是一款真正的GFSK單片式收發(fā)芯片,內(nèi)部集成通信協(xié)議,具有自動(dòng)應(yīng)答、自動(dòng)重發(fā)功能。由于nRF24L01+集成了所有高速鏈路層操作,所以無需單片機(jī)硬件上一定有SPI口與其相連,51單片機(jī)通用I/O口模擬SPI接口即可。
為了實(shí)現(xiàn)對(duì)智能車的無線遙控和自動(dòng)尋跡時(shí)運(yùn)行狀態(tài)參數(shù)的采集,采用STC89C52單片機(jī)和nRF24L01+模塊設(shè)計(jì)無線收發(fā)控制模塊。電路如圖2所示,其中nRF24L01+的中斷信號(hào)引腳接單片機(jī)外部中斷0輸入引腳P3.2,數(shù)碼管用于顯示 nRF24L01+的當(dāng)前工作模式,方便觀察調(diào)試。STC89C52單片機(jī)與智能車主控制器XS128之間通過串行口進(jìn)行通信。
圖2 無線收發(fā)控制模塊電路圖
圖3 PC端電路模塊
PC端采用USB轉(zhuǎn)nRF24L01+模塊,實(shí)現(xiàn)上位機(jī)與PC端nRF24L01+之間的數(shù)據(jù)收發(fā),模塊如圖3所示。通過串口調(diào)試助手發(fā)送AT命令進(jìn)行初始化設(shè)置,設(shè)置波特率9600,通訊頻率2.400GHz,16位CRC校驗(yàn),發(fā)送功率0dBm,空中傳輸速率2Mbps。
智能車主控制器采用飛思卡爾MC9S12XS128單片機(jī),當(dāng)智能車處于自動(dòng)尋跡模式時(shí),XS128單片機(jī)主要進(jìn)行路徑信息采集、車速和行駛方向控制,同時(shí)將智能車車速和舵機(jī)方向數(shù)據(jù)通過串口發(fā)送給STC89C52單片機(jī)。當(dāng)智能車處于遙控模式時(shí),XS128接收由STC89C52通過串行口發(fā)送來的控制命令,執(zhí)行相應(yīng)動(dòng)作,同時(shí)也將車速和方向數(shù)據(jù)通過串口發(fā)送給 STC89C52。經(jīng)過分析可知,智能車加入遙控模式代碼后,對(duì)原自動(dòng)尋跡程序并無很大修改,僅通過條件判斷,控制CPU運(yùn)行選定的其中一種工作模式的代碼即可。主程序流程如圖4所示:
圖4 XS128單片機(jī)主程序流程
設(shè)計(jì)的無線監(jiān)控系統(tǒng)具有兩種功能:一是在車模自動(dòng)尋線模式下,將車模行駛過程中的狀態(tài)參數(shù)無線發(fā)送到上位機(jī);二是在遙控模式下,對(duì)車模進(jìn)行短距無線控制。車載端控制器STC89C52作為整個(gè)系統(tǒng)的核心,需要控制nRF24L01+實(shí)時(shí)發(fā)送智能車運(yùn)行狀態(tài)參數(shù),又需要不斷接收來自上位機(jī)的控制信息,故采用STC89C52控制nRF24L01+模塊,使其工作于半雙工模式。nRF24L01+初始化為發(fā)送模式,當(dāng)發(fā)送完一包數(shù)據(jù)后,產(chǎn)生發(fā)送完成中斷請(qǐng)求,在中斷服務(wù)程序中將nRF24L01+切換為接收模式,主程序延時(shí),等待接收中斷信號(hào)產(chǎn)生。在此期間,若nRF24L01+接收到數(shù)據(jù),則讀取數(shù)據(jù),并將 nRF24L01+切換回發(fā)送模式,若在主程序延時(shí)時(shí)間內(nèi)nRF24L01+沒有接收到數(shù)據(jù),則在主程序中將nRF24L01+再切換為發(fā)送模式。半雙工工作模式使nRF24L01+收發(fā)數(shù)據(jù)能夠分時(shí)進(jìn)行,互不影響。車載端nRF24L01+初始化設(shè)置與PC端的nRF24L01+初始化設(shè)置相同。STC89C52主程序流程如圖5所示:
圖5 主程序流程圖
外部中斷0中斷服務(wù)程序流程如圖6所示。
圖6 外部中斷0中斷服務(wù)程序流程
圖7 無線監(jiān)控軟件前面板
上位機(jī)軟件采用 LabVIEW 編寫。設(shè)計(jì)的智能車無線監(jiān)控軟件前面板如圖7所示。前面板可以顯示當(dāng)前智能車的車速和方向數(shù)據(jù)。當(dāng)車模處于遙控模式時(shí),采用A、D、S、W、X等按鍵控制智能車的運(yùn)行,并顯示當(dāng)前車模的狀態(tài)信息?!癡ISA資源名稱”控件用于選擇PC端nRF24L01+所在的串行口。
軟件的程序框圖如圖8所示:
圖8 無線監(jiān)控軟件程序框圖
本文以STC89C52和nRF24L01+無線數(shù)傳芯片為核心,采用 LabVIEW 編寫上位機(jī)軟件,為飛思卡爾電軌型智能車設(shè)計(jì)了一套無線監(jiān)控系統(tǒng),通過該系統(tǒng)可以實(shí)時(shí)獲取智能車運(yùn)行過程中的參數(shù),方便調(diào)試,同時(shí),通過對(duì)智能車主控制器XS128程序的少量修改,可以進(jìn)行短距無線控制,實(shí)現(xiàn)電軌型智能車自動(dòng)尋跡和遙控雙工作模式。通過試驗(yàn),該系統(tǒng)在30m范圍內(nèi)工作可靠,穩(wěn)定性較好,滿足智能車的調(diào)試需求。系統(tǒng)對(duì)原電軌型智能車的軟硬件改變都很小,加裝方便,具有實(shí)用性。
參考文獻(xiàn)
[1] 韓毅,王暢,趙軒等.基于無線傳輸?shù)闹悄苘嚶窂椒治鱿到y(tǒng)[J].微計(jì)算機(jī)信息,2008.
[2] 楊源飛,陸召振等.基于nRF24L01+及 LabVIEW的多實(shí)驗(yàn)室環(huán)境無線監(jiān)測(cè)系統(tǒng)[J].中國儀器儀表,2014.
[3] 趙軒,馬建,曹仁磊等.基于nRF24L01的無線式模型車運(yùn)動(dòng)狀態(tài)監(jiān)控系統(tǒng)[J].科技導(dǎo)報(bào),2010.
[4] 丁媛媛.基于nRF24L01無線雙向通信系統(tǒng)設(shè)計(jì)[J].常州工學(xué)院學(xué)報(bào),2012.
[5] 施雅婷,郭前崗,周西峰.一種改進(jìn)的 LabVIEW串口通信系統(tǒng)的實(shí)現(xiàn)[J]. 電子測(cè)試, 2010.
[6] 趙耕云,馬臣斌. 電軌型智能小車的尋跡系統(tǒng)設(shè)計(jì)[J]. 蘭州工業(yè)學(xué)院學(xué)報(bào).2016.
[7] Gao Hong,Su Jianxiu. Design Of The Temperature Signal Wireless Receive And Display System On Polishing Interface In Chemical Mechanical Polishing[J]. Procedia Engineering.2011.