在ETC系統中MSP430F5xxx 的應用
高速公路不停車(chē)收費系統(ETC)介紹
本文引用地址:http://dyxdggzs.com/article/196521.htm不停車(chē)收費系統(又稱(chēng)電子收費系統ElectronicTollCollectionSystem,簡(jiǎn)稱(chēng)ETC系統)是利用RFID技術(shù),實(shí)現車(chē)輛不停車(chē)自動(dòng)收費的智能交通子系統。該系統通過(guò)路側單元RSU(RoadSideUnit)與車(chē)載電子標簽之間OBU(OnBoardUnit)的專(zhuān)用短程通信,在不需要司機停車(chē)和收費人員操作的情況下,自動(dòng)完成收費處理過(guò)程。
MSP430介紹
TI公司的MSP430單片機產(chǎn)品系列具備16-bitRSIC架構,超低功耗。作為MSP430最新產(chǎn)品序列,F5xxx首次采用0.18um工藝,1MIPs消耗的電流低到了驚人的160uA,主頻達到25MIPs。同時(shí),MSP430F5xxx提供了豐富的片上功能模塊,例如,硬件的RTC,12-bitADC,靈活的時(shí)鐘系統,硬件CRC16,電源管理模塊和多通道的靈活強大的DMA,支持待機模式下的數據交換。
ETC車(chē)載單元結構

圖1.ETCOBU結構圖
如圖一所示,OBU由電池系統,MCU,射頻,顯示和讀卡部分(ESAM卡,CPU卡,射頻卡)組成。MCU作為整個(gè)系統的中心,負責管理顯示,讀卡以及與射頻部分的數據處理及交換。
數據形式請參考圖2

圖2.FM0編碼方式
FM0編碼方式介紹
在車(chē)輛通過(guò)收費站時(shí),OBU和RSU通過(guò)5.8G的載波調制,進(jìn)行高速的數據交換。數據采用HDLCFM0調制。FM0編碼遵循以下三個(gè)規則:
A.一個(gè)周期內有電平跳變表示”0”;
B.一個(gè)周期內沒(méi)有電平跳變表示”1”;
C.相鄰兩個(gè)周期電平相反。
車(chē)載電子標簽(OBU)對MCU的挑戰
車(chē)載電子標簽系統對MCU有兩個(gè)挑戰。一是低功耗;二是高速數據通信能力。
車(chē)載電子標簽的電池要求有5年以上壽命或者能夠支持1萬(wàn)次以上交易。整個(gè)系統的低功耗設計成為工程師們的首要任務(wù)。其次,RSU對OBU下行數據波特率達到了256Kbps,上行數據波特率512Kbps。由于車(chē)輛通行時(shí)間非常短,需要OBU對RSU的數據和命令快速響應。而數據包最長(cháng)能夠達到1Kbits,不允許OBU收下整個(gè)數據包之后再解碼,這要求MCU有實(shí)時(shí)編解碼的能力。
一般情況下,對FM0的軟解碼需要得到數據的電平寬度,從而實(shí)現解碼。通常有兩種方式,一種是Timer捕獲數據沿,然后軟件在中斷中判斷數據沿之間的寬度。另外一種是定時(shí)采樣數據口線(xiàn)的電平,通過(guò)計數方式得到電平寬度。ETC下行數據速率達到256Kbps,對數據“0”來(lái)講,數據跳變沿之間的寬度只有2uS。對數據“1”來(lái)講,數據沿寬度只有4uS。以第一種方式為例,傳統的軟解碼方式過(guò)程如下:

圖3.Timer捕獲中斷方式
如圖2所示,數據接收過(guò)程中,Timer會(huì )每2uS或者4uS捕獲到一個(gè)數據沿,并把數據沿保存到對應寄存器。所以,Timer捕獲寄存器里的數據會(huì )最快每2uS更新一次。這就需要CPU速度足夠快,能夠在至少2uS之內完成解碼過(guò)程。否則,Timer捕獲寄存器的數據就會(huì )被新的數據覆蓋掉,造成解碼錯誤。假設MCU完成1個(gè)bit解碼的時(shí)間需要50個(gè)cycle,那么至少需要MCU主頻達到25MIPS以上才能實(shí)現實(shí)時(shí)解碼。通常,我們會(huì )選取主頻超過(guò)40MIPs的MCU,而這些高速MCU功耗往往難以滿(mǎn)足ETC系統的要求。所以,很多ETC生產(chǎn)商采用雙MCU的方式,由一顆高速MCU實(shí)現FM0實(shí)時(shí)編解碼,另外還有一顆低功耗MCU,通常是MSP430來(lái)管理整個(gè)系統的功耗。這增加了系統的成本和復雜度。MSP430F5xxx的問(wèn)世,能夠同時(shí)滿(mǎn)足ETC系統對MCU所有的挑戰,解決了客戶(hù)的困擾。
用F5xxx片上DMA和TimerA捕獲功能實(shí)現FM0實(shí)時(shí)解碼的方法
MSP430F5xxx卓越的低功耗特性能夠滿(mǎn)足ETCOBU的低功耗要求。作為MSP430最新產(chǎn)品序列,F5xxx首次采用0.18um工藝,1MIPs消耗的電流低到了驚人的160uA,片上PMM(電源管理模塊)讓用戶(hù)能夠根據MCU負荷靈活調節核電壓,確保功耗最低。另外,具備多種低功耗狀態(tài)。在典型的LPM3模式下,打開(kāi)RTC,RAM數據保持的情況下功耗僅為2uA。
除了卓越的低功耗特性外,MSP430F5xx主頻雖然最高只能達到25MIPS,但由于有靈活的多通道DMA,能夠與Timer聯(lián)動(dòng),實(shí)現數據的自動(dòng)搬移而不干擾到CPU,這極大的增強了MCU的數據吞吐能力,使主頻不再成為瓶頸,而完成對FM0近乎實(shí)時(shí)的解碼。另外,硬件的CRC16模塊讓MCU只需要操作寄存器就可以完成數據校驗。利用DMA和CRC16的實(shí)時(shí)解碼過(guò)程如圖4所示:

圖4.DMA自動(dòng)數據搬移的解碼方式
數據接收過(guò)程中,Timer每2uS或者4uS捕獲到一個(gè)數據沿,這時(shí)會(huì )自動(dòng)觸發(fā)DMA,DMA自動(dòng)將Timer寄存器的數據搬移到RAM區的指定數組當中。整個(gè)數據接收過(guò)程不需要CPU的參與。有了DMA的存在,CPU就不需要頻繁的進(jìn)出中斷去取數據,也不用擔心Timer捕獲寄存器數據的丟失,只需專(zhuān)注于解碼過(guò)程。

圖5.FM0DMA方式解碼圖示
解碼過(guò)程說(shuō)明:
1.待機狀態(tài):TimerA配置成捕獲模式,使能TimerA中斷,等待數據到來(lái)
2.捕獲到第一個(gè)數據沿:在TimerA中斷中使能DMA,使能TimerB及TimerB中斷
3.數據接收:DMA自動(dòng)將后續的數據沿搬移到內存數組中;同時(shí)MCU解碼
4.數據結束:TimerB判斷數據接收結束
5.解碼結束

圖6.程序流程圖
實(shí)測結果:
采用120bytes的數據做FM0解碼測試,其中數據位”1”和“0”約各占50%。MSP430F5438完成解碼后,通過(guò)串口輸出數據如圖7所示:

圖7.串口接收到的數據
對上圖1Kbits數據,實(shí)測MCU完成解碼,滯后數據包接收完畢約220uS.如圖8所示

圖8.解碼實(shí)時(shí)性
使用MSP430F5xxSPI及DMA實(shí)現FM0編碼及發(fā)送的辦法
ETCOBU系統MCU上行數據率是512Kbps。通過(guò)靈活應用片上DMA及SPI模塊,可以方便的完成FM0數據發(fā)送

評論