基于MC9S12單片機的智能車數(shù)據(jù)遠程傳輸系統(tǒng)
摘要:文中設計了一種基于MC9S12單片機的智能車數(shù)據(jù)遠程傳輸系統(tǒng)。該系統(tǒng)以Nordic公司生產的2.4GHz頻段射頻芯片NRF24L01作為數(shù)據(jù)無線收發(fā)芯片,以Freescale單片機MC9S12為控制單元,采用交互式“主從”結構,實現(xiàn)了運動狀態(tài)下模型車的相關參數(shù)和運動軌跡的遠程傳輸和控制。實際運行結果表明,所設計的模型車數(shù)據(jù)傳輸準確率高、行駛速度快、易于控制。
關鍵詞:遠程傳輸;MC9S12單片機;無線收發(fā);智能車模型
我國已經成為世界上規(guī)模最大的汽車市場之一,汽車在國民經濟生產和生活中的重要作用日益顯著。近年來,如何使車輛駕駛更加安全、高效、環(huán)保、舒適的研究越來越受到各國研究學者關注。由相關的無線通信網絡電路實時地處理這些信息。例如,給駕駛員提供道路的提示、警告等信息。這樣,可大大減少了駕駛員由于疲勞等因素帶來的駕駛危險,增強了道路交通以及駕駛員人身的安全性;另外,一旦發(fā)生車輛故障、交通堵塞或交通事故,將給車輛調度、乘客出行帶來不便。
隨著社會的快速發(fā)展和商業(yè)化進程的加速,越來越多的行業(yè)和部門需要掌握車輛或其它移動目標的實時信息并能遠程控制目標。這類需求使得車輛數(shù)據(jù)遠傳控制系統(tǒng)逐漸成為國內外的研究熱點。車輛數(shù)據(jù)遠傳控制系統(tǒng)通過站點終端及時將車輛信息及行車信息發(fā)送到調度站,并實時顯示車輛及道路信息,將實現(xiàn)科學合理調度車輛,減少乘客出行不便,并可傳遞輔助駕駛或避免事故的實時信息,或提供娛樂信息、生活信息等數(shù)據(jù)服務。
1 車載數(shù)據(jù)遠傳控制系統(tǒng)的設計與實現(xiàn)
1.1 系統(tǒng)總體設計
車載遠傳控制系統(tǒng)主要包括兩部分:智能車模型和遠傳控制系統(tǒng)。
智能車模型主要由MC9S12核心控制模塊、道路檢測模塊、舵機轉向模塊、速度檢測模塊、電機驅動模塊等組成。智能車模型通過道路檢測模塊來識別道路信息,通過AD轉化信息傳給核心控制模塊,然后由核心控制模塊分析處理,采用PID的控制方式來驅動舵機轉向模塊和電機,從而實現(xiàn)自動尋路行駛。
遠傳控制系統(tǒng)由兩塊MC9S12單片機構成主從式結構。中間通過無線收發(fā)模塊NRF24L01實現(xiàn)車輛數(shù)據(jù)及控制命令的遠程傳輸。系統(tǒng)工作時首先由主機發(fā)送命令給從機,然后從機與智能車模型上的單片機采用并行口通信的方式傳達主機的命令,同時將模型車此時運行的速度、位置、舵機、電機等參數(shù)回傳給主機。如此循環(huán)下去,在一個時間周期內實現(xiàn)“主到從,從到主”之間的雙向通信,從而既能接受智能車的數(shù)據(jù)又能控制智能車。遠傳控制系統(tǒng)結構框圖如圖1所示。
1.2 系統(tǒng)硬件設計
遠傳控制系統(tǒng)的電路模塊,主要有MC9S12單片機最小系統(tǒng)、電源模塊、電機驅動模塊、NRF14L01模塊等。
1.2.1 MC9S12單片機最小系統(tǒng)
MC9S12XS128只是HCS12X家族中的一個成員。該器件包括大量的片上處理器和外部I/O。MC9S12XS128是一個16位器件,有16位中央處理單元(128KB Flash)、128 kBFlash、8 kB RAM、2 kB EEPROM組成片內存儲器。同時還包括2個異步串行通訊接口(SCI)、2個串行外設接口(SPI)和一個8通道輸入捕捉/輸出比較(IC/OC)增強型捕捉定時器(ECT)、1個16通道10位A/D轉換器(ADC)和一個8通道PWM。圖2為MC9S12XS 128的112封裝引腳圖。
1.2.2 電源模塊
電源是一個系統(tǒng)正常工作的基礎,電源模塊為系統(tǒng)其他各個模塊提供所需要的能源保證,因此電源模塊的設計至關重要。模型車系統(tǒng)中接受供電的部分包括:傳感器模塊、最小系統(tǒng)模塊、驅動電機模塊、轉向舵機模塊以及其他的外圍輔助模塊等。設計中,除了需要考慮電壓范圍和電流容量等基本參數(shù)外,還要在電源轉換效率、噪聲、干擾和電路簡單等方面進行優(yōu)化。
系統(tǒng)硬件電路的電源由7.2 V,2 A/h的可充電鎳鎘電池提供,電池在充滿電時電壓可達8.2 V。由于電路中的不同電路模塊所需要的工作電流容量各不相同,因此電源模塊應該包含多個穩(wěn)壓電路和單獨供電電路,將充電電池電壓轉換成各個模塊所需要的電壓。本系統(tǒng)電源管理結構圖如圖3所示。
1.2.3 電機驅動模塊
在本系統(tǒng)中,電機驅動模塊設計為采用InternationalRectifier公司生產的IR2104S半橋驅動芯片和IRF3205MOSFET組成的H橋型直流電機驅動電路。用兩個IR2104S各自驅動一個半橋,最后組成全橋,如圖4所示。
1.2.4 無線模塊NRF24L01
NRF24L01是一款新型單片射頻收發(fā)器件,工作于2.4~2.5 GHz ISM頻段。內置頻率合成器、功率放大器、晶體振蕩器、調制器等功能模塊,并融合了增強型ShockBurst技術,其中輸出功率和通信頻道可通過程序進行配置。NRF24L01功耗低,在以-6 dBm的功率發(fā)射時,工作電流只有9 mA;接收時,工作電流只有12.3 mA,多種低功率工作模式(掉電模式和空閑模式)使節(jié)能設計更方便,如圖5所示。
1.3 系統(tǒng)軟件設計
系統(tǒng)的軟件設計主要是實現(xiàn)三塊MC9S12單片機之間的通信,其中有兩塊是采用無線通信。
對單片機和無線模塊NRF24L01進行初始化后,將主機的數(shù)據(jù)存入24L01的緩存區(qū),準備對數(shù)據(jù)進行發(fā)送。由于該無線模塊不能實現(xiàn)全雙工功能,但主輔機之間的通信時間是微秒級,很短。所以主機與輔機采用以下方式構成交換式“主從”結構。
在同一個周期內,前一段時間將主機配置為發(fā)送模式,輔機配置為接受模式。主機發(fā)送命令給輔機后由輔機與智能模型車通信實現(xiàn)命令的傳達。在該周期的下一段時間里,把輔機配置為發(fā)送模式,主機配置為接收模式,輔機將智能車模型的運行數(shù)據(jù)回傳給主機,主機將收到的智能車模型數(shù)據(jù)通過液晶屏顯示,如此循環(huán)。其設計流程圖如圖6所示。
2 系統(tǒng)調試
在程序開發(fā)過程中,使用Metrowerks公司為MC9S12系列單片機專門提供的開發(fā)平臺Codewarrior。通過BDM,可以把程序燒入單片機,還可以進行在線調試。CodeWarrior能夠自動檢查代碼中的語法錯誤,它通過一個集成的調試器和編輯器來掃描代碼,以找到并減少明顯的錯誤,然后編譯、鏈接程序以便計算機能夠理解和執(zhí)行程序。Codewarrior中的mc9s12xs128.h文件對MC9S12XS128單片機所有寄存器對應的存儲映射地址都進行了宏定義,軟件開發(fā)時直接調用這些宏就可以了。CodeWarrior運行界面如圖7所示。
3 結論
文中設計了一個無線數(shù)據(jù)遠程傳輸系統(tǒng),該系統(tǒng)以Nordic公司生產的2.4 GHz頻段射頻芯片NRF24L01和Freescale單片機MC9S12為核心,結合電源、電機、傳感器等外圍驅動電子電路,在硬件結構上簡單、體積小、成本低、功耗低,軟件上采用交換式“主從”結構,使其數(shù)據(jù)傳輸高、工作方式穩(wěn)定檢測數(shù)據(jù)可靠直觀。利用該系統(tǒng),對模型車的運動狀態(tài)和行駛軌跡進行實時數(shù)據(jù)采集進而對模型車實行遠程控制從而提高模型車的行駛速度和操縱穩(wěn)定性。