基于MC9S12單片機的智能車數(shù)據(jù)遠程傳輸系統(tǒng)
系統(tǒng)的軟件設計主要是實現(xiàn)三塊MC9S12單片機之間的通信,其中有兩塊是采用無線通信。
對單片機和無線模塊NRF24L01進行初始化后,將主機的數(shù)據(jù)存入24L01的緩存區(qū),準備對數(shù)據(jù)進行發(fā)送。由于該無線模塊不能實現(xiàn)全雙工功能,但主輔機之間的通信時間是微秒級,很短。所以主機與輔機采用以下方式構(gòu)成交換式“主從”結(jié)構(gòu)。
在同一個周期內(nèi),前一段時間將主機配置為發(fā)送模式,輔機配置為接受模式。主機發(fā)送命令給輔機后由輔機與智能模型車通信實現(xiàn)命令的傳達。在該周期的下一段時間里,把輔機配置為發(fā)送模式,主機配置為接收模式,輔機將智能車模型的運行數(shù)據(jù)回傳給主機,主機將收到的智能車模型數(shù)據(jù)通過液晶屏顯示,如此循環(huán)。其設計流程圖如圖6所示。
2 系統(tǒng)調(diào)試
在程序開發(fā)過程中,使用Metrowerks公司為MC9S12系列單片機專門提供的開發(fā)平臺Codewarrior。通過BDM,可以把程序燒入單片機,還可以進行在線調(diào)試。CodeWarrior能夠自動檢查代碼中的語法錯誤,它通過一個集成的調(diào)試器和編輯器來掃描代碼,以找到并減少明顯的錯誤,然后編譯、鏈接程序以便計算機能夠理解和執(zhí)行程序。Codewarrior中的mc9s12xs128.h文件對MC9S12XS128單片機所有寄存器對應的存儲映射地址都進行了宏定義,軟件開發(fā)時直接調(diào)用這些宏就可以了。CodeWarrior運行界面如圖7所示。
3 結(jié)論
文中設計了一個無線數(shù)據(jù)遠程傳輸系統(tǒng),該系統(tǒng)以Nordic公司生產(chǎn)的2.4 GHz頻段射頻芯片NRF24L01和Freescale單片機MC9S12為核心,結(jié)合電源、電機、傳感器等外圍驅(qū)動電子電路,在硬件結(jié)構(gòu)上簡單、體積小、成本低、功耗低,軟件上采用交換式“主從”結(jié)構(gòu),使其數(shù)據(jù)傳輸高、工作方式穩(wěn)定檢測數(shù)據(jù)可靠直觀。利用該系統(tǒng),對模型車的運動狀態(tài)和行駛軌跡進行實時數(shù)據(jù)采集進而對模型車實行遠程控制從而提高模型車的行駛速度和操縱穩(wěn)定性。
評論