基于nRF24L01+的智能車無(wú)線監(jiān)控系統(tǒng)設(shè)計(jì)
2018-06-27 09:20:23· 來(lái)源:汽車實(shí)用技術(shù)雜志社
飛思卡爾尋跡智能車是嵌入式設(shè)計(jì)領(lǐng)域研究的對(duì)象。在智能車制作調(diào)試過(guò)程中廣泛采用串口線配合上位機(jī)軟件作為調(diào)試工具,這種有線調(diào)試工具在車模運(yùn)行時(shí)使用極不方便。本文以第十一屆恩智浦大賽電軌型智能車為研究對(duì)象,設(shè)計(jì)了一種基于nRF24L01+的無(wú)線監(jiān)控系統(tǒng)。該系統(tǒng)可以在智能車運(yùn)行過(guò)程中,通過(guò)無(wú)線通信的方式使上位機(jī)接收到車速、方向等智能車運(yùn)行參數(shù),解決了采用有線串口方式調(diào)試智能車的諸多不便,同時(shí),該系統(tǒng)還可以實(shí)現(xiàn)上位機(jī)對(duì)智能車的遙控功能,實(shí)現(xiàn)遙控尋跡雙工作模式,增加了智能車的趣味性。
作者:趙耕云
單位:蘭州工業(yè)學(xué)院
研究方向:嵌入式系統(tǒng)設(shè)計(jì)、汽車電控技術(shù)
前言
飛思卡爾尋跡智能車是嵌入式設(shè)計(jì)領(lǐng)域研究的對(duì)象。在智能車制作調(diào)試過(guò)程中廣泛采用串口線配合上位機(jī)軟件作為調(diào)試工具,這種有線調(diào)試工具在車模運(yùn)行時(shí)使用極不方便。本文以第十一屆恩智浦大賽電軌型智能車為研究對(duì)象,設(shè)計(jì)了一種基于nRF24L01+的無(wú)線監(jiān)控系統(tǒng)。該系統(tǒng)可以在智能車運(yùn)行過(guò)程中,通過(guò)無(wú)線通信的方式使上位機(jī)接收到車速、方向等智能車運(yùn)行參數(shù),解決了采用有線串口方式調(diào)試智能車的諸多不便,同時(shí),該系統(tǒng)還可以實(shí)現(xiàn)上位機(jī)對(duì)智能車的遙控功能,實(shí)現(xiàn)遙控尋跡雙工作模式,增加了智能車的趣味性。
1系統(tǒng)總體方案設(shè)計(jì)
智能車以MC9S12XS128為主控制器,通過(guò)檢測(cè)鋁膜導(dǎo)引線的位置,由主控制器運(yùn)算后控制舵機(jī)方向和電機(jī)轉(zhuǎn)速,實(shí)現(xiàn)車模沿導(dǎo)引線路徑自動(dòng)尋跡。MC9S12XS128與STC89C52之間通過(guò)串行口通信,STC89C52將接收到的智能車運(yùn)行狀態(tài)參數(shù)通過(guò)nRF24L01+發(fā)送出去,同時(shí),STC89C52也可將nRF24L01+接收到的來(lái)自上位機(jī)的控制信息通過(guò)串口發(fā)送給XS128。在PC機(jī)端,上位機(jī)采用LabVIEW編寫控制程序,通過(guò)nRF24L01+模塊和USB轉(zhuǎn)nRF24L01+模塊,實(shí)現(xiàn)智能車運(yùn)行數(shù)據(jù)的接收和控制信息的發(fā)送。圖1為系統(tǒng)示意圖。

2硬件電路設(shè)計(jì)
2.1 車載端電路設(shè)計(jì)
nRF24L01+是一款工作在2.4~2.5GHz世界通用ISM頻段的單片無(wú)線收發(fā)器芯片,是一款真正的GFSK單片式收發(fā)芯片,內(nèi)部集成通信協(xié)議,具有自動(dòng)應(yīng)答、自動(dòng)重發(fā)功能。由于nRF24L01+集成了所有高速鏈路層操作,所以無(wú)需單片機(jī)硬件上一定有SPI口與其相連,51單片機(jī)通用I/O口模擬SPI接口即可。
為了實(shí)現(xiàn)對(duì)智能車的無(wú)線遙控和自動(dòng)尋跡時(shí)運(yùn)行狀態(tài)參數(shù)的采集,采用STC89C52單片機(jī)和nRF24L01+模塊設(shè)計(jì)無(wú)線收發(fā)控制模塊。電路如圖2所示,其中nRF24L01+的中斷信號(hào)引腳接單片機(jī)外部中斷0輸入引腳P3.2,數(shù)碼管用于顯示nRF24L01+的當(dāng)前工作模式,方便觀察調(diào)試。STC89C52單片機(jī)與智能車主控制器XS128之間通過(guò)串行口進(jìn)行通信。

2.2 PC端電路
PC端采用USB轉(zhuǎn)nRF24L01+模塊,實(shí)現(xiàn)上位機(jī)與PC端nRF24L01+之間的數(shù)據(jù)收發(fā),模塊如圖3所示。通過(guò)串口調(diào)試助手發(fā)送AT命令進(jìn)行初始化設(shè)置,設(shè)置波特率9600,通訊頻率2.400GHz,16位CRC校驗(yàn),發(fā)送功率0dBm,空中傳輸速率2Mbps。

3軟件設(shè)計(jì)
3.1 XS128程序設(shè)計(jì)
智能車主控制器采用飛思卡爾MC9S12XS128單片機(jī),當(dāng)智能車處于自動(dòng)尋跡模式時(shí),XS128單片機(jī)主要進(jìn)行路徑信息采集、車速和行駛方向控制,同時(shí)將智能車車速和舵機(jī)方向數(shù)據(jù)通過(guò)串口發(fā)送給STC89C52單片機(jī)。當(dāng)智能車處于遙控模式時(shí),XS128接收由STC89C52通過(guò)串行口發(fā)送來(lái)的控制命令,執(zhí)行相應(yīng)動(dòng)作,同時(shí)也將車速和方向數(shù)據(jù)通過(guò)串口發(fā)送給STC89C52。經(jīng)過(guò)分析可知,智能車加入遙控模式代碼后,對(duì)原自動(dòng)尋跡程序并無(wú)很大修改,僅通過(guò)條件判斷,控制CPU運(yùn)行選定的其中一種工作模式的代碼即可。主程序流程如圖4所示:

3.2 STC89C52單片機(jī)程序設(shè)計(jì)
設(shè)計(jì)的無(wú)線監(jiān)控系統(tǒng)具有兩種功能:一是在車模自動(dòng)尋線模式下,將車模行駛過(guò)程中的狀態(tài)參數(shù)無(wú)線發(fā)送到上位機(jī);二是在遙控模式下,對(duì)車模進(jìn)行短距無(wú)線控制。車載端控制器STC89C52作為整個(gè)系統(tǒng)的核心,需要控制nRF24L01+實(shí)時(shí)發(fā)送智能車運(yùn)行狀態(tài)參數(shù),又需要不斷接收來(lái)自上位機(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所示:

外部中斷0中斷服務(wù)程序流程如圖6所示。

4上位機(jī)設(shè)計(jì)
上位機(jī)軟件采用LabVIEW編寫。設(shè)計(jì)的智能車無(wú)線監(jiān)控軟件前面板如圖7所示。前面板可以顯示當(dāng)前智能車的車速和方向數(shù)據(jù)。當(dāng)車模處于遙控模式時(shí),采用A、D、S、W、X等按鍵控制智能車的運(yùn)行,并顯示當(dāng)前車模的狀態(tài)信息。“VISA資源名稱”控件用于選擇PC端nRF24L01+所在的串行口。

軟件的程序框圖如圖8所示:

5結(jié) 論
本文以STC89C52和nRF24L01+無(wú)線數(shù)傳芯片為核心,采用LabVIEW編寫上位機(jī)軟件,為飛思卡爾電軌型智能車設(shè)計(jì)了一套無(wú)線監(jiān)控系統(tǒng),通過(guò)該系統(tǒng)可以實(shí)時(shí)獲取智能車運(yùn)行過(guò)程中的參數(shù),方便調(diào)試,同時(shí),通過(guò)對(duì)智能車主控制器XS128程序的少量修改,可以進(jìn)行短距無(wú)線控制,實(shí)現(xiàn)電軌型智能車自動(dòng)尋跡和遙控雙工作模式。通過(guò)試驗(yàn),該系統(tǒng)在30m范圍內(nèi)工作可靠,穩(wěn)定性較好,滿足智能車的調(diào)試需求。系統(tǒng)對(duì)原電軌型智能車的軟硬件改變都很小,加裝方便,具有實(shí)用性。
單位:蘭州工業(yè)學(xué)院
研究方向:嵌入式系統(tǒng)設(shè)計(jì)、汽車電控技術(shù)
前言
飛思卡爾尋跡智能車是嵌入式設(shè)計(jì)領(lǐng)域研究的對(duì)象。在智能車制作調(diào)試過(guò)程中廣泛采用串口線配合上位機(jī)軟件作為調(diào)試工具,這種有線調(diào)試工具在車模運(yùn)行時(shí)使用極不方便。本文以第十一屆恩智浦大賽電軌型智能車為研究對(duì)象,設(shè)計(jì)了一種基于nRF24L01+的無(wú)線監(jiān)控系統(tǒng)。該系統(tǒng)可以在智能車運(yùn)行過(guò)程中,通過(guò)無(wú)線通信的方式使上位機(jī)接收到車速、方向等智能車運(yùn)行參數(shù),解決了采用有線串口方式調(diào)試智能車的諸多不便,同時(shí),該系統(tǒng)還可以實(shí)現(xiàn)上位機(jī)對(duì)智能車的遙控功能,實(shí)現(xiàn)遙控尋跡雙工作模式,增加了智能車的趣味性。
1系統(tǒng)總體方案設(shè)計(jì)
智能車以MC9S12XS128為主控制器,通過(guò)檢測(cè)鋁膜導(dǎo)引線的位置,由主控制器運(yùn)算后控制舵機(jī)方向和電機(jī)轉(zhuǎn)速,實(shí)現(xiàn)車模沿導(dǎo)引線路徑自動(dòng)尋跡。MC9S12XS128與STC89C52之間通過(guò)串行口通信,STC89C52將接收到的智能車運(yùn)行狀態(tài)參數(shù)通過(guò)nRF24L01+發(fā)送出去,同時(shí),STC89C52也可將nRF24L01+接收到的來(lái)自上位機(jī)的控制信息通過(guò)串口發(fā)送給XS128。在PC機(jī)端,上位機(jī)采用LabVIEW編寫控制程序,通過(guò)nRF24L01+模塊和USB轉(zhuǎn)nRF24L01+模塊,實(shí)現(xiàn)智能車運(yùn)行數(shù)據(jù)的接收和控制信息的發(fā)送。圖1為系統(tǒng)示意圖。

2硬件電路設(shè)計(jì)
2.1 車載端電路設(shè)計(jì)
nRF24L01+是一款工作在2.4~2.5GHz世界通用ISM頻段的單片無(wú)線收發(fā)器芯片,是一款真正的GFSK單片式收發(fā)芯片,內(nèi)部集成通信協(xié)議,具有自動(dòng)應(yīng)答、自動(dòng)重發(fā)功能。由于nRF24L01+集成了所有高速鏈路層操作,所以無(wú)需單片機(jī)硬件上一定有SPI口與其相連,51單片機(jī)通用I/O口模擬SPI接口即可。
為了實(shí)現(xiàn)對(duì)智能車的無(wú)線遙控和自動(dòng)尋跡時(shí)運(yùn)行狀態(tài)參數(shù)的采集,采用STC89C52單片機(jī)和nRF24L01+模塊設(shè)計(jì)無(wú)線收發(fā)控制模塊。電路如圖2所示,其中nRF24L01+的中斷信號(hào)引腳接單片機(jī)外部中斷0輸入引腳P3.2,數(shù)碼管用于顯示nRF24L01+的當(dāng)前工作模式,方便觀察調(diào)試。STC89C52單片機(jī)與智能車主控制器XS128之間通過(guò)串行口進(jìn)行通信。

2.2 PC端電路
PC端采用USB轉(zhuǎn)nRF24L01+模塊,實(shí)現(xiàn)上位機(jī)與PC端nRF24L01+之間的數(shù)據(jù)收發(fā),模塊如圖3所示。通過(guò)串口調(diào)試助手發(fā)送AT命令進(jìn)行初始化設(shè)置,設(shè)置波特率9600,通訊頻率2.400GHz,16位CRC校驗(yàn),發(fā)送功率0dBm,空中傳輸速率2Mbps。

3軟件設(shè)計(jì)
3.1 XS128程序設(shè)計(jì)
智能車主控制器采用飛思卡爾MC9S12XS128單片機(jī),當(dāng)智能車處于自動(dòng)尋跡模式時(shí),XS128單片機(jī)主要進(jìn)行路徑信息采集、車速和行駛方向控制,同時(shí)將智能車車速和舵機(jī)方向數(shù)據(jù)通過(guò)串口發(fā)送給STC89C52單片機(jī)。當(dāng)智能車處于遙控模式時(shí),XS128接收由STC89C52通過(guò)串行口發(fā)送來(lái)的控制命令,執(zhí)行相應(yīng)動(dòng)作,同時(shí)也將車速和方向數(shù)據(jù)通過(guò)串口發(fā)送給STC89C52。經(jīng)過(guò)分析可知,智能車加入遙控模式代碼后,對(duì)原自動(dòng)尋跡程序并無(wú)很大修改,僅通過(guò)條件判斷,控制CPU運(yùn)行選定的其中一種工作模式的代碼即可。主程序流程如圖4所示:

3.2 STC89C52單片機(jī)程序設(shè)計(jì)
設(shè)計(jì)的無(wú)線監(jiān)控系統(tǒng)具有兩種功能:一是在車模自動(dòng)尋線模式下,將車模行駛過(guò)程中的狀態(tài)參數(shù)無(wú)線發(fā)送到上位機(jī);二是在遙控模式下,對(duì)車模進(jìn)行短距無(wú)線控制。車載端控制器STC89C52作為整個(gè)系統(tǒng)的核心,需要控制nRF24L01+實(shí)時(shí)發(fā)送智能車運(yùn)行狀態(tài)參數(shù),又需要不斷接收來(lái)自上位機(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所示:

外部中斷0中斷服務(wù)程序流程如圖6所示。

4上位機(jī)設(shè)計(jì)
上位機(jī)軟件采用LabVIEW編寫。設(shè)計(jì)的智能車無(wú)線監(jiān)控軟件前面板如圖7所示。前面板可以顯示當(dāng)前智能車的車速和方向數(shù)據(jù)。當(dāng)車模處于遙控模式時(shí),采用A、D、S、W、X等按鍵控制智能車的運(yùn)行,并顯示當(dāng)前車模的狀態(tài)信息。“VISA資源名稱”控件用于選擇PC端nRF24L01+所在的串行口。

軟件的程序框圖如圖8所示:

5結(jié) 論
本文以STC89C52和nRF24L01+無(wú)線數(shù)傳芯片為核心,采用LabVIEW編寫上位機(jī)軟件,為飛思卡爾電軌型智能車設(shè)計(jì)了一套無(wú)線監(jiān)控系統(tǒng),通過(guò)該系統(tǒng)可以實(shí)時(shí)獲取智能車運(yùn)行過(guò)程中的參數(shù),方便調(diào)試,同時(shí),通過(guò)對(duì)智能車主控制器XS128程序的少量修改,可以進(jìn)行短距無(wú)線控制,實(shí)現(xiàn)電軌型智能車自動(dòng)尋跡和遙控雙工作模式。通過(guò)試驗(yàn),該系統(tǒng)在30m范圍內(nèi)工作可靠,穩(wěn)定性較好,滿足智能車的調(diào)試需求。系統(tǒng)對(duì)原電軌型智能車的軟硬件改變都很小,加裝方便,具有實(shí)用性。
編輯推薦
最新資訊
-
跨越速運(yùn)憑什么“圈粉”萬(wàn)千客戶?“
2025-07-01 14:42
-
數(shù)智破局啟新篇?生態(tài)共生再啟程 —
2025-06-27 20:13
-
助力汽車零部件產(chǎn)線智能化升級(jí),西門
2025-06-27 13:59
-
BBA集體轉(zhuǎn)向!放棄全面電動(dòng)化
2025-06-26 17:32
-
比換柜省錢,比自研省心,西門子Xcel
2025-06-25 15:07