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