MSP430F5xxx 在高速公路不停車收費(fèi)系統(tǒng)(ETC)中的應(yīng)用
一般情況下,對(duì)FM0的軟解碼需要得到數(shù)據(jù)的電平寬度,從而實(shí)現(xiàn)解碼。通常有兩種方式,一種是Timer捕獲數(shù)據(jù)沿,然后軟件在中斷中判斷數(shù)據(jù)沿之間的寬度。另外一種是定時(shí)采樣數(shù)據(jù)口線的電平,通過計(jì)數(shù)方式得到電平寬度。ETC下行數(shù)據(jù)速率達(dá)到256Kbps,對(duì)數(shù)據(jù)“0”來講,數(shù)據(jù)跳變沿之間的寬度只有2uS。對(duì)數(shù)據(jù)“1”來講,數(shù)據(jù)沿寬度只有4uS。以第一種方式為例,傳統(tǒng)的軟解碼方式過程如下:
圖3.Timer獲中斷方式
如圖2所示,數(shù)據(jù)接收過程中,Timer會(huì)每2uS或者4uS捕獲到一個(gè)數(shù)據(jù)沿,并把數(shù)據(jù)沿保存到對(duì)應(yīng)寄存器。所以,Timer捕獲寄存器里的數(shù)據(jù)會(huì)最快每2uS更新一次。這就需要CPU速度足夠快,能夠在至少2uS之內(nèi)完成解碼過程。否則,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ì)選取主頻超過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來管理整個(gè)系統(tǒng)的功耗。這增加了系統(tǒng)的成本和復(fù)雜度。MSP430F5xxx的問世,能夠同時(shí)滿足ETC系統(tǒng)對(duì)MCU所有的挑戰(zhàn),解決了客戶的困擾。
用F5xxx片上DMA和TimerA捕獲功能實(shí)現(xiàn)FM0實(shí)時(shí)解碼的方法
MSP430F5xxx卓越的低功耗特性能夠滿足ETCOBU的低功耗要求。作為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í)解碼過程如圖4所示:
圖4.DMA自動(dòng)數(shù)據(jù)搬移的解碼方式
數(shù)據(jù)接收過程中,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ù)接收過程不需要CPU的參與。有了DMA的存在,CPU就不需要頻繁的進(jìn)出中斷去取數(shù)據(jù),也不用擔(dān)心Timer捕獲寄存器數(shù)據(jù)的丟失,只需專注于解碼過程。
圖5.FM0DMA方式解碼圖示
評(píng)論