物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊(cè)

MSP430F5單片機(jī)實(shí)現(xiàn)ETC系統(tǒng)中的編碼方法

作者:RFID世界網(wǎng) 收編
來(lái)源:電子發(fā)燒友
日期:2011-08-08 14:22:57
摘要:本文探討了使用MSP430F5系列產(chǎn)品實(shí)現(xiàn)ETC系統(tǒng)中實(shí)時(shí)HDLC編解碼的方法。MSP430F5xxx是TI公司MSP430家族最新產(chǎn)品序列,采用先進(jìn)的0.18工藝,1MIPS消耗的電流低到了驚人的160uA。同時(shí),F(xiàn)5xx產(chǎn)品都配備了高效靈活的DMA模塊,對(duì)16bit數(shù)據(jù)進(jìn)行搬移只需要2個(gè)時(shí)鐘周期。本文給出了結(jié)合F5xx的DMA,TimerA,CRC16及SPI,實(shí)現(xiàn)幾乎實(shí)時(shí)的HDLC FM0軟解碼辦法和利用SPI的便捷的FM0編碼方法。本文包括相關(guān)的兩個(gè)實(shí)例代碼。
關(guān)鍵詞:單片機(jī)ETCHDLC編解碼

  MSP430介紹

  TI公司的MSP430 單片機(jī)產(chǎn)品系列具備16-bit RSIC架構(gòu),超低功耗。作為MSP430最新產(chǎn)品序列,F(xiàn)5xxx首次采用0.18um工藝,1MIPs消耗的電流低到了驚人的160uA,主頻達(dá)到25MIPs 。同時(shí),MSP430F5xxx提供了豐富的片上功能模塊,例如,硬件的RTC,12-bit ADC,靈活的時(shí)鐘系統(tǒng),硬件CRC16,電源管理模塊和多通道的靈活強(qiáng)大的DMA,支持待機(jī)模式下的數(shù)據(jù)交換。

  高速公路不停車收費(fèi)系統(tǒng)(ETC)介紹

  不停車收費(fèi)系統(tǒng)(又稱電子收費(fèi)系統(tǒng)Electronic Toll Collection System,簡(jiǎn)稱ETC系統(tǒng))是利用RFID技術(shù),實(shí)現(xiàn)車輛不停車自動(dòng)收費(fèi)的智能交通子系統(tǒng)。該系統(tǒng)通過(guò)路側(cè)單元RSU(Road Side Unit)與車載電子標(biāo)簽之間OBU(On Board Unit)的專用短程通信,在不需要司機(jī)停車和收費(fèi)人員操作的情況下,自動(dòng)完成收費(fèi)處理過(guò)程。

  ETC車載單元結(jié)構(gòu)

  如圖一所示,OBU由電池系統(tǒng),MCU,射頻,顯示和讀卡部分(ESAM卡,CPU卡,射頻卡)組成。MCU作為整個(gè)系統(tǒng)的中心,負(fù)責(zé)管理顯示,讀卡以及與射頻部分的數(shù)據(jù)處理及交換。

  FM0編碼方式介紹

  在車輛通過(guò)收費(fèi)站時(shí),OBU和RSU通過(guò)5.8G的載波調(diào)制,進(jìn)行高速的數(shù)據(jù)交換。數(shù)據(jù)采用HDLC FM0調(diào)制。FM0編碼遵循以下三個(gè)規(guī)則:

  A.一個(gè)周期內(nèi)有電平跳變表示”0” ;
  B.一個(gè)周期內(nèi)沒(méi)有電平跳變表示”1”;
  C.相鄰兩個(gè)周期電平相反。

  數(shù)據(jù)形式請(qǐng)參考圖2

  車載電子標(biāo)簽系統(tǒng)對(duì)MCU有兩個(gè)挑戰(zhàn) 。一是低功耗;二是高速數(shù)據(jù)通信能力。

  車載電子標(biāo)簽的電池要求有5年以上壽命或者能夠支持1萬(wàn)次以上交易。整個(gè)系統(tǒng)的低功耗設(shè)計(jì)成為工程師們的首要任務(wù)。其次,RSU對(duì)OBU下行數(shù)據(jù)波特率達(dá)到了256Kbps,上行數(shù)據(jù)波特率512Kbps。由于車輛通行時(shí)間非常短,需要OBU對(duì)RSU的數(shù)據(jù)和命令快速響應(yīng)。而數(shù)據(jù)包最長(zhǎng)能夠達(dá)到1Kbits,不允許OBU收下整個(gè)數(shù)據(jù)包之后再解碼,這要求MCU有實(shí)時(shí)編解碼的能力。

  一般情況下,對(duì)FM0的軟解碼需要得到數(shù)據(jù)的電平寬度,從而實(shí)現(xiàn)解碼。通常有兩種方式,一種是Timer捕獲數(shù)據(jù)沿,然后軟件在中斷中判斷數(shù)據(jù)沿之間的寬度。另外一種是定時(shí)采樣數(shù)據(jù)口線的電平,通過(guò)計(jì)數(shù)方式得到電平寬度。ETC下行數(shù)據(jù)速率達(dá)到256Kbps,對(duì)數(shù)據(jù)“0”來(lái)講,數(shù)據(jù)跳變沿之間的寬度只有2uS。對(duì)數(shù)據(jù)“1”來(lái)講,數(shù)據(jù)沿寬度只有4uS。以第一種方式為例,傳統(tǒng)的軟解碼方式過(guò)程如下:

  如圖2所示,數(shù)據(jù)接收過(guò)程中,Timer會(huì)每2uS或者4uS捕獲到一個(gè)數(shù)據(jù)沿,并把數(shù)據(jù)沿保存到對(duì)應(yīng)寄存器。所以,Timer捕獲寄存器里的數(shù)據(jù)會(huì)最快每2uS更新一次。這就需要CPU速度足夠快,能夠在至少2uS之內(nèi)完成解碼過(guò)程。否則,Timer捕獲寄存器的數(shù)據(jù)就會(huì)被新的數(shù)據(jù)覆蓋掉,造成解碼錯(cuò)誤。假設(shè)MCU完成1個(gè)bit解碼的時(shí)間需要50個(gè)cycle,那么至少需要MCU主頻達(dá)到25MIPS以上才能實(shí)現(xiàn)實(shí)時(shí)解碼。通常,我們會(huì)選取主頻超過(guò)40MIPs的MCU,而這些高速M(fèi)CU功耗往往難以滿足ETC系統(tǒng)的要求。所以,很多ETC生產(chǎn)商采用雙MCU的方式,由一顆高速M(fèi)CU實(shí)現(xiàn)FM0實(shí)時(shí)編解碼,另外還有一顆低功耗MCU,通常是MSP430來(lái)管理整個(gè)系統(tǒng)的功耗。這增加了系統(tǒng)的成本和復(fù)雜度。MSP430F5xxx的問(wèn)世,能夠同時(shí)滿足ETC系統(tǒng)對(duì)MCU所有的挑戰(zhàn),解決了客戶的困擾。

  用F5xxx 片上DMA和TimerA捕獲功能實(shí)現(xiàn)FM0實(shí)時(shí)解碼的方法

  MSP430F5xxx卓越的低功耗特性能夠滿足ETC OBU的低功耗要求。作為MSP430最新產(chǎn)品序列,F(xiàn)5xxx首次采用0.18um工藝,1MIPs消耗的電流低到了驚人的160uA,片上PMM(電源管理模塊)讓用戶能夠根據(jù)MCU負(fù)荷靈活調(diào)節(jié)核電壓,確保功耗最低。另外,具備多種低功耗狀態(tài)。在典型的LPM3模式下,打開RTC,RAM數(shù)據(jù)保持的情況下功耗僅為2uA。

  除了卓越的低功耗特性外,MSP430F5xx主頻雖然最高只能達(dá)到25MIPS,但由于有靈活的多通道DMA,能夠與Timer聯(lián)動(dòng),實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)搬移而不干擾到CPU,這極大的增強(qiáng)了MCU的數(shù)據(jù)吞吐能力,使主頻不再成為瓶頸,而完成對(duì)FM0近乎實(shí)時(shí)的解碼。另外,硬件的CRC16模塊讓MCU只需要操作寄存器就可以完成數(shù)據(jù)校驗(yàn)。利用DMA和CRC16的實(shí)時(shí)解碼過(guò)程如圖4所示:

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

  解碼過(guò)程說(shuō)明:

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

  采用120bytes的數(shù)據(jù)做FM0解碼測(cè)試,其中數(shù)據(jù)位”1”和“0”約各占50%。MSP430F5438完成解碼后,通過(guò)串口輸出數(shù)據(jù)如圖7所示:

  對(duì)上圖1Kbits數(shù)據(jù),實(shí)測(cè)MCU完成解碼,滯后數(shù)據(jù)包接收完畢約220uS.如圖8所示

  使用MSP430F5xx SPI及DMA實(shí)現(xiàn)FM0編碼及發(fā)送的辦法。

  ETC OBU系統(tǒng)MCU上行數(shù)據(jù)率是512Kbps。通過(guò)靈活應(yīng)用片上DMA及SPI模塊,可以方便的完成FM0數(shù)據(jù)發(fā)送。