MSP430F5xxx 在高速公路不停車收費系統(ETC)中的應用
摘要
本文探討了使用MSP430F5xxx實現ETC系統中實時HDLC編解碼的方法。MSP430F5xxx是TI公司MSP430家族較新產品序列,采用先進的0.18工藝,1MIPS消耗的電流低到了驚人的160uA。同時,F5xx產品都配備了高效靈活的DMA模塊,對16bit數據進行搬移只需要2個時鐘周期。本文給出了結合F5xx的DMA,TimerA,CRC16及SPI,實現幾乎實時的HDLC FM0軟解碼辦法和利用SPI的便捷的FM0編碼方法。本文包括相關的兩個實例代碼。
MSP430介紹
TI公司的MSP430 單片機產品系列具備16-bit RSIC架構,超低功耗。作為MSP430較新產品序列,F5xxx首次采用0.18um工藝,1MIPs消耗的電流低到了驚人的160uA,主頻達到25MIPs 。同時,MSP430F5xxx提供了豐富的片上功能模塊,例如,硬件的RTC,12-bit ADC,靈活的時鐘系統,硬件CRC16,電源管理模塊和多通道的靈活強大的DMA,支持待機模式下的數據交換。
高速公路不停車收費系統(ETC)介紹
不停車收費系統(又稱電子收費系統Electronic Toll Collection System,簡稱ETC系統)是利用RFID技術,實現車輛不停車自動收費的智能交通子系統。該系統通過路側單元RSU(Road Side Unit)與車載電子標簽之間OBU(On Board Unit)的專用短程通信,在不需要司機停車和收費人員操作的情況下,自動完成收費處理過程。
ETC車載單元結構
圖 1. ETC OBU結構圖
如圖一所示,OBU由電池系統,MCU,射頻,顯示和讀卡部分(ESAM卡,CPU卡,射頻卡)組成。MCU作為整個系統的中心,負責管理顯示,讀卡以及與射頻部分的數據處理及交換。
FM0編碼方式介紹
在車輛通過收費站時,OBU和RSU通過5.8G的載波調制,進行高速的數據交換。數據采用HDLC FM0調制。FM0編碼遵循以下三個規則:
A.一個周期內有電平跳變表示”0” ;
B.一個周期內沒有電平跳變表示”1”;
C.相鄰兩個周期電平相反。
數據形式請參考圖2
圖 2. FM0編碼方式
車載電子標簽(OBU)對MCU的挑戰
車載電子標簽系統對MCU有兩個挑戰 。一是低功耗;二是高速數據通信能力。
車載電子標簽的電池要求有5年以上壽命或者能夠支持1萬次以上交易。整個系統的低功耗設計成為工程師們的首要任務。其次,RSU對OBU下行數據波特率達到了256Kbps,上行數據波特率512Kbps。由于車輛通行時間非常短,需要OBU對RSU的數據和命令快速響應。而數據包較長能夠達到1Kbits,不允許OBU收下整個數據包之后再解碼,這要求MCU有實時編解碼的能力。
一般情況下,對FM0的軟解碼需要得到數據的電平寬度,從而實現解碼。通常有兩種方式,一種是Timer捕獲數據沿,然后軟件在中斷中判斷數據沿之間的寬度。另外一種是定時采樣數據口線的電平,通過計數方式得到電平寬度。ETC下行數據速率達到256Kbps,對數據“0”來講,數據跳變沿之間的寬度只有2uS。對數據“1”來講,數據沿寬度只有4uS。以第一種方式為例,傳統的軟解碼方式過程如下:
圖 3. Timer 捕獲中斷方式
如圖2所示,數據接收過程中,Timer會每2uS或者4uS捕獲到一個數據沿,并把數據沿保存到對應寄存器。所以,Timer捕獲寄存器里的數據會較快每2uS更新一次。這就需要CPU速度足夠快,能夠在至少2uS之內完成解碼過程。否則,Timer捕獲寄存器的數據就會被新的數據覆蓋掉,造成解碼錯誤。假設MCU完成1個bit解碼的時間需要50個cycle,那么至少需要MCU主頻達到25MIPS以上才能實現實時解碼。通常,我們會選取主頻超過40MIPs的MCU,而這些高速MCU功耗往往難以滿足ETC系統的要求。所以,很多ETC生產商采用雙MCU的方式,由一顆高速MCU實現FM0實時編解碼,另外還有一顆低功耗MCU,通常是MSP430來管理整個系統的功耗。這增加了系統的成本和復雜度。MSP430F5xxx的問世,能夠同時滿足ETC系統對MCU所有的挑戰,解決了客戶的困擾。
用F5xxx 片上DMA和TimerA捕獲功能實現FM0實時解碼的方法
MSP430F5xxx卓越的低功耗特性能夠滿足ETC OBU的低功耗要求。作為MSP430較新產品序列,F5xxx首次采用0.18um工藝,1MIPs消耗的電流低到了驚人的160uA,片上PMM(電源管理模塊)讓用戶能夠根據MCU負荷靈活調節核電壓,確保功耗較低。另外,具備多種低功耗狀態。在典型的LPM3模式下,打開RTC,RAM數據保持的情況下功耗僅為2uA。
除了卓越的低功耗特性外,MSP430F5xx主頻雖然較高只能達到25MIPS,但由于有靈活的多通道DMA,能夠與Timer聯動,實現數據的自動搬移而不干擾到CPU,這極大的增強了MCU的數據吞吐能力,使主頻不再成為瓶頸,而完成對FM0近乎實時的解碼。另外,硬件的CRC16模塊讓MCU只需要操作寄存器就可以完成數據校驗。利用DMA和CRC16的實時解碼過程如圖4所示:
圖 4. DMA自動數據搬移的解碼方式
數據接收過程中,Timer每2uS或者4uS捕獲到一個數據沿,這時會自動觸發DMA,DMA自動將Timer寄存器的數據搬移到RAM區的指定數組當中。整個數據接收過程不需要CPU的參與。有了DMA的存在,CPU就不需要頻繁的進出中斷去取數據,也不用擔心Timer捕獲寄存器數據的丟失,只需專注于解碼過程。
圖 5. FM0 DMA方式解碼圖示
解碼過程說明:
1. 待機狀態:TimerA配置成捕獲模式,使能TimerA中斷,等待數據到來
2. 捕獲到第一個數據沿:在TimerA中斷中使能DMA,使能TimerB及TimerB中斷
3. 數據接收:DMA自動將后續的數據沿搬移到內存數組中;同時MCU解碼
4. 數據結束:TimerB判斷數據接收結束
5. 解碼結束
圖 6. 程序流程圖
實測結果:
采用120bytes的數據做FM0解碼測試,其中數據位”1”和“0”約各占50%。MSP430F5438完成解碼后,通過串口輸出數據如圖7所示:
圖 7. 串口接收到的數據
對上圖1Kbits數據,實測MCU完成解碼,滯后數據包接收完畢約220uS.如圖8所示
圖 8. 解碼實時性
使用MSP430F5xx SPI及DMA實現FM0編碼及發送的辦法
ETC OBU系統MCU上行數據率是512Kbps。通過靈活應用片上DMA及SPI模塊,可以方便的完成FM0數據發送
相關閱讀:
- ...2013/07/29 16:40·怎樣采用多種單端信號驅動低功率、1Msps、±2.5V 差分輸入、16 位 ADC
- ...2012/03/30 15:12·ADS5294:80MSPS 8路醫學圖像解決方案
- ...2011/11/30 17:25·基于MSP430F149與Si4432的無線傳感器網絡的實現方法
- ...2011/10/21 15:42·基于MSP430F149與Si4432的無線傳感器網絡的實現
- ...2011/09/21 16:27·基于MSP430單片機的高精度電子天平設計
- ...2010/06/12 10:46·基于MSP430和Cyclone II 的網絡數據加密實現
- ...· Efinix® 全力驅動AI邊緣計算,成功推出Trion™ T20 FPGA樣品, 同時將產品擴展到二十萬邏輯單元的T200 FPGA
- ...· 英飛凌亮相進博會,引領智慧新生活
- ...· 三電產品開發及測試研討會北汽新能源專場成功舉行
- ...· Manz亞智科技跨入半導體領域 為面板級扇出型封裝提供化學濕制程、涂布及激光應用等生產設備解決方案
- ...· 中電瑞華BITRODE動力電池測試系統順利交付北汽新能源
- ...· 中電瑞華FTF系列電池測試系統中標北京新能源汽車股份有限公司
- ...· 中電瑞華大功率高壓能源反饋式負載系統成功交付中電熊貓
- ...· 中電瑞華國際在電動汽車及關鍵部件測評研討會上演繹先進測評技術