專利名稱:一種fm0編碼數(shù)據(jù)的解碼方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種FMO編碼數(shù)據(jù)的解碼方法和裝置。
技術(shù)背景
電子不停車收費(fèi)系統(tǒng)(Electronic Toll Collection system, ETC系統(tǒng))采用專用短程通信(Dedicated ShortRange Communication, DSRC)技術(shù),完成路側(cè)單元(Roadside Unit,RSU)與車載單元(On Board Unit,0BU)之間的雙向通信,通過無線方式進(jìn)行安全認(rèn)證和消費(fèi)扣款,實(shí)現(xiàn)不停車收費(fèi),大大加快了車輛通行速度,減少了收費(fèi)匝道口的擁堵狀況, 提高了公路的運(yùn)力。
目前在全國各地都開展ETC系統(tǒng)建設(shè),為了實(shí)現(xiàn)ETC設(shè)備的互聯(lián)互通,ETC系統(tǒng)中的RSU和OBU設(shè)備必須滿足國標(biāo)GB/T20851-2007的技術(shù)要求。GB/T20851. 1-2007對(duì)這種專業(yè)短程通信的物理層做了明確的規(guī)定,在通信的編碼方式上,國內(nèi)絕大部分設(shè)備廠家采用A類FMO編碼,RSU發(fā)送給OBU的位速率為256kbit/s,位時(shí)鐘精度為士 100 X 10_5 ;OBU發(fā)送給RSU的位速率為5121ibit/s,位時(shí)鐘精度為士 lOOXlO—6。
為了保證車輛在運(yùn)動(dòng)中完成全部交易流程,需要用最短的時(shí)間完成交易。因此,數(shù)據(jù)解碼速度的快慢影響整個(gè)交易時(shí)間的長(zhǎng)短。
FMO編碼的全稱為雙相間隔碼編碼,其特點(diǎn)是在一個(gè)位窗內(nèi)采用電平變化來表示邏輯。如果電平從位窗的起始處翻轉(zhuǎn),則表示邏輯“1”。如果電平除了在位窗的起始處翻轉(zhuǎn),還在位窗中間翻轉(zhuǎn)則表示邏輯“0”。圖1為數(shù)據(jù)流“01100101”經(jīng)FMO編碼后的電平波形。
根據(jù)FMO編碼規(guī)則可知,“ 1 ”對(duì)應(yīng)的脈沖的周期的時(shí)長(zhǎng)大于“0”對(duì)應(yīng)的脈沖的周期的時(shí)長(zhǎng)。因此,F(xiàn)MO編碼數(shù)據(jù)的解碼過程中,測(cè)量每個(gè)脈沖周期的時(shí)長(zhǎng),將時(shí)長(zhǎng)大的定義為“1”,將時(shí)長(zhǎng)小的定義為半個(gè)“0”,將兩個(gè)連續(xù)的半個(gè)“0”合并為一個(gè)數(shù)據(jù)“0”。例如對(duì)于2561ApS速率數(shù)據(jù),把持續(xù)時(shí)長(zhǎng)為3. 9us的脈沖周期定義為1,持續(xù)時(shí)長(zhǎng)為1. 95us的脈沖周期定義為半個(gè)0 ;對(duì)于5121ApS速率數(shù)據(jù),把持續(xù)時(shí)長(zhǎng)為1.95US的脈沖周期定義為1,持續(xù)時(shí)長(zhǎng)為0. 977us的脈沖周期定義為半個(gè)0。
目前,通過定時(shí)器計(jì)數(shù)的方式采集FMO編碼數(shù)據(jù)中每個(gè)脈沖周期的時(shí)長(zhǎng),具體包括每一個(gè)跳變沿即采集一次定時(shí)器的計(jì)數(shù)值,保存到對(duì)應(yīng)的寄存器;然后將當(dāng)前計(jì)數(shù)值減去上一個(gè)計(jì)數(shù)值,即可獲得當(dāng)前周期的時(shí)長(zhǎng)。
由于需要在每個(gè)一個(gè)跳變沿去采集數(shù)據(jù),對(duì)于2561ApS速率的FMO編碼數(shù)據(jù),定時(shí)器會(huì)每隔1. 95us或3. 9us采集到一個(gè)數(shù)據(jù),并把數(shù)據(jù)保存到對(duì)應(yīng)的寄存器;對(duì)于512Kbps 速率FMO編碼數(shù)據(jù),定時(shí)器會(huì)每隔0. 977us或1. 95us采集到一個(gè)數(shù)據(jù),把數(shù)據(jù)保存到對(duì)應(yīng)的寄存器中。所以,定時(shí)器對(duì)應(yīng)的寄存器里的數(shù)據(jù)在解碼2561ApS數(shù)據(jù)時(shí),最快會(huì)1. 95us 更新一次,而在解碼5121ibps數(shù)據(jù)時(shí),最快會(huì)0. 977us更新一次,這就需要微處理器(Mirco Control Unit, MCU)有足夠快的速度,能在更新前完成解碼。
假設(shè)MCU完成Ibit FMO編碼數(shù)據(jù)的解碼時(shí)間需要30個(gè)時(shí)鐘周期,進(jìn)入采集中斷讀取采集到數(shù)據(jù)需要25個(gè)時(shí)鐘周期,則實(shí)時(shí)解碼2561ApS波形理論需要主頻28M IPs (Instructions per second,每秒執(zhí)行的指令數(shù))以上MCU才能實(shí)現(xiàn)實(shí)時(shí)解碼;實(shí)時(shí)解碼5121ibps波形,理論最小需要主頻56M IPs以上MCU才能實(shí)現(xiàn)實(shí)時(shí)解碼。在工程實(shí)際應(yīng)用中,RF收發(fā)器均不是理想收發(fā)器,在數(shù)據(jù)包前包后會(huì)出現(xiàn)很多雜波,需要MCU來處理,要想在真實(shí)使用環(huán)境中可靠解碼,需要MCU來處理這些干擾,就需要更高主頻的MCU來實(shí)現(xiàn)。
特別對(duì)于5121APS速率數(shù)據(jù),其數(shù)據(jù)更新間隔為0. 977US,這樣快的數(shù)據(jù)速率超出了單片機(jī)的處理能力,因此,需要使用FPGA或高速率芯片來采集解碼FMO編碼數(shù)據(jù)。
解碼FMO編碼數(shù)據(jù)時(shí),芯片的大部分資源用于采集數(shù)據(jù),只有很少部分資源用于解碼,這就要求單片機(jī)提供一個(gè)大的緩存區(qū)域來保存采集的數(shù)據(jù),同時(shí)也不能實(shí)時(shí)把數(shù)據(jù)解碼出來;并且,對(duì)于5121ApS速率FMO編碼數(shù)據(jù),需要更加昂貴的芯片來實(shí)現(xiàn)采集和解碼。
因此,現(xiàn)有的FMO編碼數(shù)據(jù)解碼過程中采集數(shù)據(jù)的頻率比較快,即數(shù)據(jù)更新比較快,對(duì)硬件芯片的性能要求比較高。并且,一次解碼只能確定一個(gè)“ 1,,或半個(gè)“0”,這樣,整個(gè)解碼過程比較慢,高性能的硬件芯片的解碼速率也不高。發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種FMO編碼數(shù)據(jù)的解碼方法及裝置,用以降低對(duì)硬件芯片的性能的要求。
本發(fā)明實(shí)施例提供一種FMO編碼數(shù)據(jù)的解碼方法,包括
獲取緩存區(qū)中的待解碼數(shù)據(jù),其中,所述待解碼數(shù)據(jù)是通過定時(shí)器輸入捕獲采集所述FMO編碼數(shù)據(jù)的波形獲得的;
將所述待解碼數(shù)據(jù)與閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù)。
本發(fā)明實(shí)施例提供一種FMO編碼數(shù)據(jù)的解碼裝置,包括
獲取單元,用于獲取緩存區(qū)中的待解碼數(shù)據(jù),其中,所述待解碼數(shù)據(jù)是通過定時(shí)器輸入捕獲采集所述FMO編碼數(shù)據(jù)的波形獲得的;
解碼單元,用于將所述待解碼數(shù)據(jù)與閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù)。
本發(fā)明實(shí)施例中,獲取緩存區(qū)中的待解碼數(shù)據(jù),并將所述待解碼數(shù)據(jù)與閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù),其中,待解碼數(shù)據(jù)是通過定時(shí)器輸入捕獲采集所述FMO 編碼數(shù)據(jù)的波形獲得的。由于采用定時(shí)器輸入捕獲的方式獲得待解碼數(shù)據(jù),這樣,只有采集到FMO編碼數(shù)據(jù)的波形的特定跳變沿時(shí),才獲得待解碼數(shù)據(jù),而并不是在采集到FMO編碼數(shù)據(jù)的波形的每個(gè)跳變沿都獲得待解碼數(shù)據(jù),從而,降低了采集數(shù)據(jù)的頻率,降低了對(duì)硬件芯片的性能要求,進(jìn)一步降低了解碼過程中的資源成本。
圖1為現(xiàn)有技術(shù)中FMO編碼后的電平波形示意圖2為本發(fā)明實(shí)施例一中PWM輸入捕獲硬件的框圖3為本發(fā)明實(shí)施例一中PWM實(shí)際工作時(shí)序圖4為本發(fā)明實(shí)施例一中FMO編碼數(shù)據(jù)的解碼的流程圖5為本發(fā)明實(shí)施例一中第一待解碼數(shù)據(jù)的解碼流程圖6為本發(fā)明具體實(shí)施例一具體應(yīng)用中PWM輸入捕獲時(shí)序圖7為本發(fā)明實(shí)施例二中PWM輸入捕獲硬件的框圖8為本發(fā)明實(shí)施例二中PWM實(shí)際工作時(shí)序圖9為本發(fā)明實(shí)施例二中FMO編碼數(shù)據(jù)的解碼的流程圖10為本發(fā)明實(shí)施例二中第一待解碼數(shù)據(jù)的解碼流程圖11為本發(fā)明具體實(shí)施例二具體應(yīng)用中PWM輸入捕獲時(shí)序圖12為本發(fā)明實(shí)施例中FMO編碼數(shù)據(jù)的解碼裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
本發(fā)明實(shí)施例中,在對(duì)FMO編碼數(shù)據(jù)進(jìn)行解碼的過程中,通過定時(shí)器輸入捕獲采集FMO編碼數(shù)據(jù)的波形獲得待解碼數(shù)據(jù),然后將該待解碼數(shù)據(jù)與閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù)。這樣,只有采集到FMO編碼數(shù)據(jù)的波形的特定跳變沿時(shí),才獲得待解碼數(shù)據(jù),從而,增加了采集待解碼數(shù)據(jù)的周期,降低了采集數(shù)據(jù)的頻率,降低了對(duì)硬件芯片的性能要求。
本發(fā)明實(shí)施例中定時(shí)器有多種輸入捕獲模式,例如單寄存器輸入捕獲模式,PWM 輸入捕獲模式。這樣,定時(shí)器被預(yù)先配置成某種輸入捕獲模式后,通過配置的輸入捕獲模式可采集FMO編碼數(shù)據(jù)的波形,可獲得待解碼數(shù)據(jù)。
實(shí)施例一,本實(shí)施例中,定時(shí)器為單寄存器輸入捕獲模式,該單寄存器輸入捕獲模式是定時(shí)器功能的一個(gè)擴(kuò)展,與定時(shí)器對(duì)應(yīng)的只有一個(gè)寄存器,一個(gè)輸入端被設(shè)定為上升沿或下降沿檢測(cè)端口。如圖2所示的輸入捕獲硬件,定時(shí)器與捕獲寄存器對(duì)應(yīng)。這樣,外部波形通過CH2進(jìn)入到MCU中,在內(nèi)部鏈接到邊沿檢測(cè)器。當(dāng)CH2檢測(cè)到對(duì)應(yīng)的邊沿時(shí),把定時(shí)器的值自動(dòng)保存到捕獲寄存器中,并置中斷標(biāo)志位,以及在隨后的定時(shí)器邊沿清零定時(shí)器。如果開該定時(shí)器中斷,則馬上進(jìn)入中斷函數(shù)進(jìn)行處理。
單寄存器輸入捕獲模式中上升沿有效或下降沿有效是通過對(duì)MCU進(jìn)行配置獲得的,因此,在進(jìn)行FMO編碼數(shù)據(jù)的解碼之前,還需進(jìn)行配置,包括將定時(shí)器配置為單寄存器輸入捕獲模式并根據(jù)FMO編碼數(shù)據(jù)的速率,以及設(shè)定的分頻確定定時(shí)器的計(jì)數(shù)頻率。其中, 可將與定時(shí)器對(duì)應(yīng)的捕獲寄存器配置為第一跳變沿或第二跳變沿有效,中斷使能。這里,第一跳變沿為上升沿或下降沿。而第二跳變沿為降沿或上升沿。即第一跳變沿與第二跳變沿相反。
—般在將定時(shí)器配置為單寄存器輸入捕獲模式過程中,可將定時(shí)器的時(shí)鐘源配置系統(tǒng)時(shí)鐘,并將定時(shí)器配置為向上計(jì)數(shù),配置定時(shí)器輸入通道2為單寄存器輸入輸入捕獲方式。而配置中斷使能包括配置中斷向量。
通過上述過程完成了對(duì)輸入捕獲的配置后,輸入捕獲實(shí)際工作時(shí)序可參見圖3,其中,定時(shí)器為單寄存器輸入輸入捕獲模式,通道2 (CH2)配置為上升沿有效,中斷使能。
在要捕獲波形A點(diǎn)(上升沿)時(shí),CH2通道觸發(fā),把定時(shí)器的值0004保存到捕獲寄存器中,置中斷標(biāo)志位觸發(fā)中斷,在定時(shí)器計(jì)數(shù)發(fā)生變化的D時(shí)刻點(diǎn),定時(shí)器清零,即仍從0000開始。
在C點(diǎn)(上升沿)時(shí),CH2通道觸發(fā),定時(shí)器值0004保存到捕獲寄存器中,置中斷標(biāo)志位觸發(fā)中斷,在定時(shí)器計(jì)數(shù)發(fā)生變化的F點(diǎn),定時(shí)器清零。
單寄存器輸入捕獲,只在波形的上升沿產(chǎn)生中斷,在中斷中將寄存器的值確定為待解碼數(shù)據(jù),并讀入到緩存區(qū)中,用于解碼。例如在C點(diǎn)時(shí),產(chǎn)生中斷,將寄存器的值0004 確定為待解碼數(shù)據(jù),并讀入到緩存區(qū)中。
通過中斷方式將通過單寄存器輸入捕獲模式獲得待解碼數(shù)據(jù)存入緩存區(qū)中后,對(duì) FMO編碼數(shù)據(jù)的解碼的過程參見圖4,包括
步驟401 獲取緩存區(qū)中的待解碼數(shù)據(jù),其中,該待解碼數(shù)據(jù)是通過定時(shí)器輸入捕獲采集FMO編碼數(shù)據(jù)的波形獲得的。
由于待解碼數(shù)據(jù)是通過中斷方式存入緩存區(qū)中的,這里,將通過單寄存器輸入捕獲模式采集FMO編碼數(shù)據(jù)的波形獲得的待解碼數(shù)據(jù)存入到緩存區(qū)。這樣,在進(jìn)行解碼時(shí),緩存區(qū)中已存儲(chǔ)了待解碼數(shù)據(jù)。
這里,可按照先進(jìn)先出的方式從緩存區(qū)中獲取待解碼數(shù)據(jù)。當(dāng)然,也可以按照別的順序從緩存區(qū)中獲取待解碼數(shù)據(jù),這樣,在輸出解碼后的數(shù)據(jù)時(shí)也需按照設(shè)定的順序。
步驟402 將獲取的待解碼數(shù)據(jù)與閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù)。
由于是通過單寄存器輸入捕獲模式采集所述FMO編碼數(shù)據(jù)的波形獲得待解碼數(shù)據(jù)的,這樣,只有采集到FMO編碼數(shù)據(jù)的波形的上升沿或下降沿時(shí),才獲得待解碼數(shù)據(jù),因此,待解碼數(shù)據(jù)的值中,最小值對(duì)應(yīng)于兩個(gè)連續(xù)的半個(gè)“0”所對(duì)應(yīng)的時(shí)長(zhǎng),最大值對(duì)應(yīng)于兩個(gè)連續(xù)的“ 1,,所對(duì)應(yīng)的時(shí)長(zhǎng),位于最大值和最小值之間的對(duì)應(yīng)于一個(gè)“ 1,,和半個(gè)“0”所對(duì)應(yīng)的時(shí)長(zhǎng)。因此,本發(fā)明實(shí)施中,先根據(jù)待解碼數(shù)據(jù)的值是否在最小值范圍內(nèi),確定解碼數(shù)據(jù)為兩個(gè)連續(xù)的半個(gè)“0” ;然后根據(jù)待解碼數(shù)據(jù)的值是否在最大值范圍內(nèi),來確定解碼據(jù)為兩個(gè)連續(xù)的“1”;最后根據(jù)待解碼數(shù)據(jù)的值在由最大值和最小值組成的閾值空間中出現(xiàn)的次數(shù)來確定“1”數(shù)據(jù)在前還是半個(gè)“0”數(shù)據(jù)在前。具體過程包括
當(dāng)待解碼數(shù)據(jù)的值小于或等于第一閾值時(shí),確定解碼數(shù)據(jù)為一個(gè)0 ;當(dāng)待解碼數(shù)據(jù)的值大于或等于第二閾值時(shí),確定解碼數(shù)據(jù)為兩個(gè)1 ;當(dāng)待解碼數(shù)據(jù)的值在第一閾值與第二閾值之間時(shí),根據(jù)待解碼數(shù)據(jù)的值在由第一閾值與第二閾值組成的閾值空間中出現(xiàn)的次數(shù),來確定解碼數(shù)據(jù)中“ 1”數(shù)據(jù)在前還是“ 0 ”數(shù)據(jù)在前。其中,
本發(fā)明實(shí)施例中,將第一閾值設(shè)定為兩個(gè)連續(xù)的半個(gè)“0”對(duì)應(yīng)的時(shí)長(zhǎng),為提供一個(gè)錯(cuò)誤冗余,并增加一定的誤差,例如,增加10%或5%的誤差;將第二閾值設(shè)定為兩個(gè)連續(xù)的“1”對(duì)應(yīng)的時(shí)長(zhǎng),并減少一定的誤差,例如,減少10%或5%的誤差。
每個(gè)待解碼數(shù)據(jù)的具體解碼過程可參見圖5,包括
步驟501 判斷待解碼數(shù)據(jù)的值是否小于或等于第一閾值,若是,確定解碼數(shù)據(jù)為一個(gè)0 ;否則,執(zhí)行步驟502。
步驟502 判斷待解碼數(shù)據(jù)的值是否大于或等于第二閾值,若是,確定解碼數(shù)據(jù)為兩個(gè)1 ;否則,執(zhí)行步驟503。
步驟503 將待解碼數(shù)據(jù)的值在由第一閾值與第二閾值組成的閾值空間中出現(xiàn)的次數(shù)加1,獲得更新后的次數(shù)。
在進(jìn)行解碼過程中,可設(shè)置一個(gè)變量,用以記錄待解碼數(shù)據(jù)的值在由第一閾值與第二閾值組成的閾值空間中出現(xiàn)的次數(shù)。在進(jìn)行解碼之前,該變量的值為零,然后待解碼數(shù)據(jù)的值每在由第一閾值與第二閾值組成的閾值空間中出現(xiàn)一次,就將該變量的值加1。
這樣,首次進(jìn)行解碼時(shí),該待解碼數(shù)據(jù)的值在由第一閾值與第二閾值組成的閾值空間中出現(xiàn)的次數(shù)為零。隨著逐個(gè)解碼,待解碼數(shù)據(jù)的值在由第一閾值與第二閾值組成的閾值空間中出現(xiàn)的次數(shù)會(huì)增加。當(dāng)所有解碼結(jié)束后,可將該變量清零,即將該待解碼數(shù)據(jù)的值在由第一閾值與第二閾值組成的閾值空間中出現(xiàn)的次數(shù)可復(fù)位為零。
步驟504 判斷更新后到的次數(shù)是否為奇數(shù),若是,確定解碼數(shù)據(jù)為1加半個(gè)0 ;否則,確定解碼數(shù)據(jù)為半個(gè)0加1。
當(dāng)然,步驟501與502先后順序可以對(duì)調(diào),即可先判斷待解碼數(shù)據(jù)的值是否大于或等于第二閾值,再判斷待解碼數(shù)據(jù)的值是否小于或等于第一閾值,具體過程就不再累述了。
在本實(shí)施例的一個(gè)具體應(yīng)用中,F(xiàn)MO編碼數(shù)據(jù)的速率為2561ibpS進(jìn)行配置時(shí),定時(shí)器時(shí)鐘源為系統(tǒng)時(shí)鐘,時(shí)鐘的分頻為32,這樣,配置為輸入捕獲下降沿模式,定時(shí)器的計(jì)數(shù)頻率為 256*32*2 = 16384khz。
輸入捕獲下降沿時(shí)序圖如圖6所示,輸入捕獲FMO編碼數(shù)據(jù)的波形共有4種情況, 分別是A、B、D和F,這里,C、E與A相同。
由于,捕獲的數(shù)據(jù)有三種長(zhǎng)度,并且,假設(shè)定時(shí)器計(jì)數(shù)頻率為8192KHZ,解碼 256kbps速率FMO編碼,則
A段計(jì)數(shù)值為64;
B段計(jì)數(shù)值為128 ;
C段計(jì)數(shù)值為64 ;
D段計(jì)數(shù)值為96 ;
E段計(jì)數(shù)值為64 ;
F段計(jì)數(shù)值為96。
因此,本實(shí)施例中,將第一閾值確定為64*(1+10% ) =70,將第二閾值確定為 128* (1-10% ) = 115那么每段的解碼過程包括
計(jì)數(shù)值C2 = 64 < 70,即對(duì)應(yīng)的解碼數(shù)據(jù)為兩個(gè)連續(xù)的半個(gè)0。
計(jì)數(shù)值C2 = 128 > 115,即對(duì)應(yīng)的解碼數(shù)據(jù)為兩個(gè)連續(xù)的1。
計(jì)數(shù)值C2 = 64 < 70,,即對(duì)應(yīng)的解碼數(shù)據(jù)為兩個(gè)連續(xù)的半個(gè)0。
計(jì)數(shù)值C2 = 96,由于70 < C2 = 96 < 115,出現(xiàn)次數(shù)為1,為奇數(shù),即對(duì)應(yīng)的解碼數(shù)據(jù)為1加半個(gè)0。
計(jì)數(shù)值C2 == 64 < 70,即對(duì)應(yīng)的解碼數(shù)據(jù)為兩個(gè)連續(xù)的半個(gè)0。
計(jì)數(shù)值C2C2 = 96,由于70 < C2 = 96 < 115,出現(xiàn)次數(shù)為2,為偶數(shù),即對(duì)應(yīng)的解碼數(shù)據(jù)為半個(gè)0加1。
兩個(gè)連續(xù)的半個(gè)0,即為一個(gè)0,從而,獲得解碼數(shù)據(jù)為“01101001”。
在上述實(shí)施例中,下降邊沿有效,中斷使能,但是本發(fā)明實(shí)施例不限于此,還可將上升邊沿配置為有效,中斷使能,具體應(yīng)用不再累述了。
實(shí)施例二、本實(shí)施例中,定時(shí)器為PWM(Pulse Width Modulation,脈沖寬度調(diào)制) 輸入捕獲模式。
MCU的PWM輸入捕獲模式是定時(shí)器不同輸入捕獲的一個(gè)擴(kuò)展,同一個(gè)輸入端被映射到定時(shí)器的兩個(gè)跳變沿檢測(cè)端口,即定時(shí)器對(duì)應(yīng)兩個(gè)寄存器。如圖7所示的PWM輸入捕獲硬件,外部波形通過CH2進(jìn)入到MCU中,在內(nèi)部鏈接到CHl和CH2的跳變沿檢測(cè)器。CHl 和CH2跳變沿檢測(cè)器極性相反,當(dāng)CHl跳變沿檢測(cè)器檢測(cè)到對(duì)應(yīng)跳變沿時(shí),把定時(shí)器的值自動(dòng)保存到CCl寄存器中;當(dāng)CH2檢測(cè)到對(duì)應(yīng)的跳變沿時(shí),把定時(shí)器的值自動(dòng)保存到CC2寄存器中,并置中斷標(biāo)志位,以及在隨后的定時(shí)器跳變沿清零定時(shí)器。如果開該定時(shí)器中斷,則馬上進(jìn)入中斷函數(shù)進(jìn)行處理。
PWM輸入捕獲模式是通過對(duì)MCU定時(shí)器進(jìn)行配置獲得的,因此,在進(jìn)行FMO編碼數(shù)據(jù)的解碼之前,還需進(jìn)行配置,包括將定時(shí)器配置為PWM輸入捕獲模式,并根據(jù)FMO編碼數(shù)據(jù)的速率,以及設(shè)定的分頻確定定時(shí)器的計(jì)數(shù)頻率,其中,將與定時(shí)器對(duì)應(yīng)的第二寄存器配置為第二跳變沿有效,中斷使能;以及將與定時(shí)器對(duì)應(yīng)的第一寄存器配置為第一跳變沿有效。
—般在將定時(shí)器配置為PWM輸入捕獲模式過程中,將定時(shí)器的時(shí)鐘源配置系統(tǒng)時(shí)鐘,并將定時(shí)器配置為向上計(jì)數(shù),配置定時(shí)器輸入通道1和2為PWM輸入捕獲方式。
而配置終端使能包括配置中斷向量。
通過上述過程完成了對(duì)PWM輸入捕獲的配置后,PWM實(shí)際工作時(shí)序可參見圖8,其中,定時(shí)器為PWM輸入捕獲模式,通道2 (CH2)配置為上升沿有效,中斷使能。
在要捕獲波形A點(diǎn)(上升沿)時(shí),CH2通道觸發(fā),把定時(shí)器的值0004保存到CC2寄存器中,置中斷標(biāo)志位觸發(fā)中斷,在定時(shí)器計(jì)數(shù)發(fā)生變化的D時(shí)刻點(diǎn),定時(shí)器清零,即仍從 0000開始。
在B點(diǎn)(下降沿)時(shí),CHl通道觸發(fā),定時(shí)器值0002保存到CCl寄存器中;
在C點(diǎn)(上升沿)時(shí),CH2通道觸發(fā),定時(shí)器值0004保存到CC2寄存器中,置中斷標(biāo)志位觸發(fā)中斷,在定時(shí)器計(jì)數(shù)發(fā)生變化的F點(diǎn),定時(shí)器清零。
PWM輸入捕獲時(shí),只在波形的上升沿產(chǎn)生中斷,在中斷中同時(shí)將CCl和CC2的值確定為待解碼數(shù)據(jù),并讀入到緩存區(qū)中,用于解碼。例如在C點(diǎn)時(shí),產(chǎn)生中斷,同時(shí)將CCl的值0002,以及CC2的值0004確定為待解碼數(shù)據(jù),并讀入到緩存區(qū)中。
由此可見,PWM輸入捕獲方式采集FMO編碼數(shù)據(jù)的波形獲得待解碼數(shù)據(jù)的過程包括通過PWM輸入捕獲采集到FMO編碼數(shù)據(jù)的波形中第二跳變沿時(shí),將第一寄存器的第一值,以及第二寄存器的第二值確定為待解碼數(shù)據(jù),并讀入到緩存區(qū)中,其中,第一寄存器的值是通過PWM輸入捕獲采集到FMO編碼數(shù)據(jù)的波形中第一跳變沿時(shí)定時(shí)器中的值,第二寄存器的值是通過PWM輸入捕獲采集到FMO編碼數(shù)據(jù)的波形中第二跳變沿時(shí)定時(shí)器中的值, 第二跳變沿與第一跳變沿相反。
通過中斷方式將待解碼數(shù)據(jù)存入緩存區(qū)中后,對(duì)FMO編碼數(shù)據(jù)的解碼的過程參見圖9,包括
步驟901 獲取緩存區(qū)中的待解碼數(shù)據(jù),其中,該待解碼數(shù)據(jù)是通過PWM輸入捕獲采集FMO編碼數(shù)據(jù)的波形獲得的。
由于待解碼數(shù)據(jù)是通過中斷方式存入緩存區(qū)中的,即將通過PWM輸入捕獲采集 FMO編碼數(shù)據(jù)的波形獲得的待解碼數(shù)據(jù)存入到緩存區(qū)。這樣,在進(jìn)行解碼時(shí),緩存區(qū)中已存儲(chǔ)了待解碼數(shù)據(jù)。
這里,可按照先進(jìn)先出的方式從緩存區(qū)中獲取待解碼數(shù)據(jù)。當(dāng)然,也可以按照別的順序從緩存區(qū)中獲取待解碼數(shù)據(jù),這樣,在輸出解碼后的數(shù)據(jù)時(shí)也需按照設(shè)定的順序。
步驟902 將獲取的待解碼數(shù)據(jù)與閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù)。
由于是通過PWM輸入捕獲采集所述FMO編碼數(shù)據(jù)的波形獲得待解碼數(shù)據(jù)的,這樣, 只有采集到FMO編碼數(shù)據(jù)的波形的特定跳變沿時(shí),才獲得待解碼數(shù)據(jù),因此,待解碼數(shù)據(jù)中第二寄存器的第二值中的最小值應(yīng)對(duì)應(yīng)于兩個(gè)連續(xù)的半個(gè)“0”對(duì)應(yīng)的時(shí)長(zhǎng),而第二值中的最大值應(yīng)對(duì)應(yīng)于兩個(gè)連續(xù)的“1”對(duì)應(yīng)的時(shí)長(zhǎng)。而待解碼數(shù)據(jù)中第一寄存器的第一值中的最大值應(yīng)對(duì)應(yīng)于半個(gè)“0”對(duì)應(yīng)的時(shí)長(zhǎng),而第一值中的最大值應(yīng)對(duì)應(yīng)于一個(gè)“1”對(duì)應(yīng)的時(shí)長(zhǎng)。因此,本發(fā)明實(shí)施中,先根據(jù)第二值確定解碼數(shù)據(jù),若不能根據(jù)第二值確定解碼數(shù)據(jù),再根據(jù)第一值確定解碼數(shù)據(jù)。具體過程包括
當(dāng)待解碼數(shù)據(jù)中第二寄存器的第二值小于或等于第三閾值時(shí),確定解碼數(shù)據(jù)為一個(gè)0 ;當(dāng)?shù)诙荡笥诨虻扔诘谒拈撝禃r(shí),確定解碼數(shù)據(jù)為兩個(gè)1 ;當(dāng)?shù)诙翟诘谌撝蹬c第四閾值之間時(shí),將待解碼數(shù)據(jù)中第一寄存器的第一值與第五閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù),其中,第五閾值小于第三閾值,第三閾值小于第四閾值。
即先將第二值與第三閾值進(jìn)行比較,若不能根據(jù)比較結(jié)果,確定出解碼數(shù)據(jù),則將第二值與第四閾值進(jìn)行比較,若不能根據(jù)比較結(jié)果,確定出解碼數(shù)據(jù),最后,根據(jù)第一值確定解碼數(shù)據(jù),即將第一值與第五閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù),其中,當(dāng)?shù)谝恢荡笥诘谖彘撝禃r(shí),確定解碼數(shù)據(jù)為1加半個(gè)0 ;當(dāng)?shù)谝恢敌∮诨虻扔诘谖彘撝禃r(shí),確定解碼數(shù)據(jù)為半個(gè)0加1。
本發(fā)明實(shí)施例中,將第三閾值設(shè)定為兩個(gè)連續(xù)的半個(gè)“0”對(duì)應(yīng)的時(shí)長(zhǎng),為提供一個(gè)錯(cuò)誤冗余,并增加一定的誤差,例如,增加10%或5%的誤差;將第四閾值設(shè)定為兩個(gè)連續(xù)的“1”對(duì)應(yīng)的時(shí)長(zhǎng),并減少一定的誤差,例如,減少10%或5%的誤差;將第五閾值設(shè)定在半個(gè)“0”對(duì)應(yīng)的時(shí)長(zhǎng)與一個(gè)“1”對(duì)應(yīng)的時(shí)長(zhǎng)之間,并可給予一定的錯(cuò)誤冗余對(duì)應(yīng)的誤差。由此可見,本實(shí)施例中,第三閾值可與實(shí)施例一中的第一閾值相等,第四閾值可與實(shí)施例一中的第二閾值相等。
每個(gè)待解碼數(shù)據(jù)的具體解碼過程可參見圖10,包括
步驟1001 判斷待解碼數(shù)據(jù)中第二寄存器的第二值是否小于或等于第三閾值,若是,確定解碼數(shù)據(jù)為一個(gè)0 ;否則,執(zhí)行步驟1002。
步驟1002 判斷待解碼數(shù)據(jù)中第二寄存器的第二值是否大于或等于第四閾值,若是,確定解碼數(shù)據(jù)為兩個(gè)1 ;否則,執(zhí)行步驟1003。
步驟1003 判斷待解碼數(shù)據(jù)中第一寄存器的第一值是否大于第五閾值,若是,確定解碼數(shù)據(jù)為1加半個(gè)0 ;否則,確定解碼數(shù)據(jù)為半個(gè)0加1。
當(dāng)然,步驟1001與1002先后順序可以對(duì)調(diào),即可先判斷第二值是否大于或等于第四閾值,再判斷第二值是否小于或等于第三閾值,具體過程就不再累述了。
在本實(shí)施例的一個(gè)具體應(yīng)用中,F(xiàn)MO編碼數(shù)據(jù)的速率為2561ibpS進(jìn)行配置時(shí),定時(shí)器時(shí)鐘源為系統(tǒng)時(shí)鐘,時(shí)鐘的分頻為32,這樣,將配置為PWM輸入捕獲模式,定時(shí)器的計(jì)數(shù)頻率為256*32拉=16384khz0并配置,與定時(shí)器對(duì)應(yīng)的第二寄存器為下降沿有效,終端使能,從而,與定時(shí)器對(duì)應(yīng)的第一寄存器為上升沿有效。
PWM輸入捕獲時(shí)序圖如圖11所示,PWM輸入捕獲FMO編碼數(shù)據(jù)的波形共有4種情況,分別是A、B、C和E,這里,D、F與A相同。
第二寄存器的第二值C2值有三種情況,分別是A段的C2、B段的C2、以及、C或E 段的C2。第一寄存器的第一值Cl值只有兩種,分別是A或E段的Cl,以及,B或C段的Cl。 PWM輸入捕獲外設(shè)在每一個(gè)下降沿時(shí)進(jìn)入中斷,在中斷程序中,將CCl和CC2這兩個(gè)寄存器的值作為待解碼數(shù)據(jù)讀入緩存區(qū)中,然后依據(jù)待解碼數(shù)據(jù)中的這兩個(gè)值進(jìn)行解碼。
由于,捕獲的C2段數(shù)據(jù)有三種長(zhǎng)度,Cl段數(shù)據(jù)有兩種長(zhǎng)度,并且,假設(shè)定時(shí)器計(jì)數(shù)頻率為8192KHz,解碼256kbps速率FMO編碼,則
G段C2計(jì)數(shù)值為64,Cl計(jì)數(shù)值為32 ;
H段C2計(jì)數(shù)值為128,Cl計(jì)數(shù)值為64 ;
I段C2計(jì)數(shù)值為96,Cl計(jì)數(shù)值為64 ;
J段C2計(jì)數(shù)值為64,Cl計(jì)數(shù)值為32 ;
K段C2計(jì)數(shù)值為96,Cl計(jì)數(shù)值為32 ;
L段C2計(jì)數(shù)值為64,Cl計(jì)數(shù)值為32。
因此,本實(shí)施例中,將第三閾值確定為64*(1+10% ) =70,將第四閾值確定為 128*(1-10% ) = 115,將第五閾值確定為 32*(1+10% ) = 35,以及 64*(1-10% ) = 58 之間任意一個(gè)數(shù),這里,可講第五閾值確定為(32+64) +2 = 48,那么每段的解碼過程包括
C2 = 64 < 70,即對(duì)應(yīng)的解碼數(shù)據(jù)為兩個(gè)連續(xù)的半個(gè)0。
C2 = 128 > 115,即對(duì)應(yīng)的解碼數(shù)據(jù)為兩個(gè)連續(xù)的1。
70 < C2 = 96 < 115,Cl = 64 > 48,即對(duì)應(yīng)的解碼數(shù)據(jù)為1加半個(gè)0。
C2 = 64 < 70,即對(duì)應(yīng)的解碼數(shù)據(jù)為兩個(gè)連續(xù)的半個(gè)0。
70 < C2 = 96 < 115,Cl = 32 < 48,即對(duì)應(yīng)的解碼數(shù)據(jù)為半個(gè)0加1。
C2 = 64 < 70,即對(duì)應(yīng)的解碼數(shù)據(jù)為兩個(gè)連續(xù)的半個(gè)0。
兩個(gè)連續(xù)的半個(gè)0,即為一個(gè)0,從而,獲得解碼數(shù)據(jù)為“01110010”。
在上述實(shí)施例中,第二跳變沿為下降沿,但是本發(fā)明實(shí)施例不限于此,可將第二跳變沿設(shè)定為上升沿。
根據(jù)上述FMO編碼數(shù)據(jù)的解碼方法,可構(gòu)建一種FMO編碼數(shù)據(jù)的解碼裝置,參見圖 12,獲取單元100和解碼單元200,其中,
獲取單元100,用于獲取緩存區(qū)中的待解碼數(shù)據(jù),其中,所述待解碼數(shù)據(jù)是通過定時(shí)器輸入捕獲采集所述FMO編碼數(shù)據(jù)的波形獲得的。
解碼單元200,用于將所述待解碼數(shù)據(jù)與閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù)。
該獲取單元100,用于當(dāng)定時(shí)器配置為單寄存器輸入捕獲模式,并通過所述單寄存器輸入捕獲模式采集到所述FMO編碼數(shù)據(jù)的波形中第一跳變沿或第二跳變沿時(shí),將捕獲寄存器獲取的定時(shí)器中的值確定為所述待解碼數(shù)據(jù),并讀入到所述緩存區(qū)中;
當(dāng)定時(shí)器配置為PWM輸入捕獲模式,并通過PWM輸入捕獲采集到所述FMO編碼數(shù)據(jù)的波形中第二跳變沿時(shí),將第一寄存器的第一值,以及第二寄存器的第二值確定為所述待解碼數(shù)據(jù),并讀入到所述緩存區(qū)中,其中,所述第一寄存器的值是通過PWM輸入捕獲采集到所述FMO編碼數(shù)據(jù)的波形中第一跳變沿時(shí)定時(shí)器中的值,所述第二寄存器的值是通過 PWM輸入捕獲采集到所述FMO編碼數(shù)據(jù)的波形中第二跳變沿時(shí)定時(shí)器中的值,所述第二跳變沿與所述第一跳變沿相反。
該獲取單元100,還用于將所述定時(shí)器清零。
當(dāng)定時(shí)器配置為單寄存器輸入捕獲模式時(shí),解碼單元200具體用于
當(dāng)所述待解碼數(shù)據(jù)的值小于或等于第一閾值時(shí),確定解碼數(shù)據(jù)為一個(gè)0 ;當(dāng)所述待解碼數(shù)據(jù)的值大于或等于第二閾值時(shí),確定解碼數(shù)據(jù)為兩個(gè)1 ;當(dāng)所述待解碼數(shù)據(jù)的值在第一閾值與第二閾值之間時(shí),根據(jù)所述待解碼數(shù)據(jù)的值在由第一閾值與第二閾值組成的閾值空間中出現(xiàn)的次數(shù),確定所述解碼數(shù)據(jù),其中,所述第一閾值小于所述第二閾值。
當(dāng)所述待解碼數(shù)據(jù)的值在第一閾值與第二閾值之間時(shí),該解碼單元200,具體用于將所述待解碼數(shù)據(jù)的值在由第一閾值與第二閾值組成的閾值空間中出現(xiàn)的次數(shù)加1,獲得更新后的次數(shù);當(dāng)所述更新后的次數(shù)為奇數(shù)次時(shí),確定解碼數(shù)據(jù)為1加半個(gè)0 ;當(dāng)所述更新后的次數(shù)為偶數(shù)次時(shí),確定解碼數(shù)據(jù)為半個(gè)0加1。
當(dāng)定時(shí)器配置為PWM輸入捕獲模式時(shí),解碼單元200,具體用于
當(dāng)所述第二值小于或等于第三閾值時(shí),確定解碼數(shù)據(jù)為一個(gè)0 ;當(dāng)所述第二值大于或等于第四閾值時(shí),確定解碼數(shù)據(jù)為兩個(gè)1 ;當(dāng)所述第二值在第三閾值與第四閾值之間時(shí),根據(jù)所述第一值確定解碼數(shù)據(jù),其中,所述第五閾值小于所述第三閾值,所述第三閾值小于所述第四閾值。
當(dāng)所述第二值在第三閾值與第四閾值之間時(shí),該解碼單元200具體用于當(dāng)所述第一值大于第五閾值時(shí),確定解碼數(shù)據(jù)為1加半個(gè)0 ;當(dāng)所述第一值小于或等于第五閾值時(shí), 確定解碼數(shù)據(jù)為半個(gè)0加1。
該裝置還包括配置單元,用于將所述定時(shí)器配置為單寄存器輸入捕獲模式或 PWM輸入捕獲模式,并根據(jù)所述FMO編碼數(shù)據(jù)的速率,以及設(shè)定的分頻確定所述定時(shí)器的計(jì)數(shù)頻率;其中,當(dāng)所述定時(shí)器配置為單寄存器輸入捕獲模式時(shí),將與所述定時(shí)器對(duì)應(yīng)的捕獲寄存器配置為第一跳變沿或第二跳變沿有效,中斷使能;當(dāng)所述定時(shí)器配置為PWM輸入捕獲模式時(shí),將與所述定時(shí)器對(duì)應(yīng)的第二寄存器配置為第二跳變沿有效,中斷使能;以及將與所述定時(shí)器對(duì)應(yīng)的第一寄存器配置為第一跳變沿有效。
本發(fā)明實(shí)施例中的FMO編碼數(shù)據(jù)的解碼方法可以用于利用FMO編碼數(shù)據(jù)進(jìn)行通信的系統(tǒng)中,例如ETC中。當(dāng)然,本發(fā)明實(shí)施例中有關(guān)名稱前所述“第一”、“第二”僅用于區(qū)分各名稱,其中,第一,第二可以調(diào)換。
本發(fā)明實(shí)施例還提供一種通信設(shè)備,例如OBU、RSU等,該設(shè)備包括如上所述的FMO編碼數(shù)據(jù)的解碼裝置,該設(shè)備利用如上所述的M)編碼數(shù)據(jù)的解碼裝置對(duì)FMO編碼數(shù)據(jù)進(jìn)行解碼。
本發(fā)明實(shí)施例中,獲取緩存區(qū)中的待解碼數(shù)據(jù),并將所述待解碼數(shù)據(jù)與閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù),其中,待解碼數(shù)據(jù)是通過定時(shí)器輸入捕獲采集所述FMO 編碼數(shù)據(jù)的波形獲得的。由于采用定時(shí)器的輸入捕獲的方式獲得待解碼數(shù)據(jù),這樣,只有采集到FMO編碼數(shù)據(jù)的波形的特定跳變沿時(shí),才獲得待解碼數(shù)據(jù),而并不是在采集到FMO編碼數(shù)據(jù)的波形的每個(gè)跳變沿都獲得待解碼數(shù)據(jù),從而,降低了采集數(shù)據(jù)的頻率,降低了對(duì)硬件芯片的性能要求,進(jìn)一步降低了解碼過程中的資源成本。即使用PWM輸入捕獲解碼,使得解碼同樣速率數(shù)據(jù),可以使用相對(duì)便宜的芯片,而使用同樣的芯片,可以解碼更高速速率數(shù)據(jù)或更快速解碼該數(shù)據(jù)。
并且,本發(fā)明實(shí)施例中,對(duì)待解碼數(shù)據(jù)解碼一次即可解碼出兩個(gè)數(shù)據(jù),例如兩個(gè)連續(xù)的1,兩個(gè)連續(xù)的半個(gè)0,一個(gè)1及半個(gè)0,或半個(gè)0及一個(gè)1。這樣,提高了解碼速率, 即使用現(xiàn)有的PWM輸入捕獲硬件可實(shí)現(xiàn)高速的解碼FMO編碼數(shù)據(jù)的波形。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種FMO編碼數(shù)據(jù)的解碼方法,其特征在于,包括獲取緩存區(qū)中的待解碼數(shù)據(jù),其中,所述待解碼數(shù)據(jù)是通過定時(shí)器輸入捕獲采集所述 FMO編碼數(shù)據(jù)的波形獲得的;將所述待解碼數(shù)據(jù)與閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述通過定時(shí)器輸入捕獲采集所述FMO編碼數(shù)據(jù)的波形獲得待解碼數(shù)據(jù),包括通過PWM輸入捕獲模式采集到所述FMO編碼數(shù)據(jù)的波形中第二跳變沿時(shí),將第一寄存器的第一值,以及第二寄存器的第二值確定為所述待解碼數(shù)據(jù),并讀入到所述緩存區(qū)中,其中,所述第一寄存器的值是通過PWM輸入捕獲采集到所述FMO編碼數(shù)據(jù)的波形中第一跳變沿時(shí)定時(shí)器中的值,所述第二寄存器的值是通過PWM輸入捕獲采集到所述FMO編碼數(shù)據(jù)的波形中第二跳變沿時(shí)定時(shí)器中的值,所述第二跳變沿與所述第一跳變沿相反。
3.如權(quán)利要求2所述的方法,其特征在于,所述讀入到所述緩存區(qū)中后,還包括將所述定時(shí)器清零。
4.如權(quán)利要求2所述的方法,其特征在于,將所述待解碼數(shù)據(jù)與閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù)包括當(dāng)所述第二值小于或等于第三閾值時(shí),確定解碼數(shù)據(jù)為一個(gè)0 ;當(dāng)所述第二值大于或等于第四閾值時(shí),確定解碼數(shù)據(jù)為兩個(gè)1 ;當(dāng)所述第二值在第三閾值與第四閾值之間時(shí),將所述第一值與第五閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù),其中,所述第五閾值小于所述第三閾值,所述第三閾值小于所述第四閾值。
5.如權(quán)利要求4所述的方法,其特征在于,所述將所述第一值與第五閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù)包括當(dāng)所述第一值大于第五閾值時(shí),確定解碼數(shù)據(jù)為1加半個(gè)0 ;當(dāng)所述第一值小于或等于第五閾值時(shí),確定解碼數(shù)據(jù)為半個(gè)0加1。
6.如權(quán)利要求2所述的方法,其特征在于,所述獲取緩存區(qū)中的的待解碼數(shù)據(jù)之前,還包括將所述定時(shí)器配置為PWM輸入捕獲模式,并根據(jù)所述FMO編碼數(shù)據(jù)的速率,以及設(shè)定的分頻確定所述定時(shí)器的計(jì)數(shù)頻率;將與所述定時(shí)器對(duì)應(yīng)的第二寄存器配置為第二跳變沿有效,中斷使能,以及將與所述定時(shí)器對(duì)應(yīng)的第一寄存器配置為第一跳變沿有效。
7.—種FMO編碼數(shù)據(jù)的解碼裝置,其特征在于,包括獲取單元,用于獲取緩存區(qū)中的待解碼數(shù)據(jù),其中,所述待解碼數(shù)據(jù)是通過定時(shí)器輸入捕獲采集所述FMO編碼數(shù)據(jù)的波形獲得的;解碼單元,用于將所述待解碼數(shù)據(jù)與閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù)。
8.如權(quán)利要求7所述的裝置,其特征在于,所述獲取單元具體用于通過PWM輸入捕獲模式采集到所述FMO編碼數(shù)據(jù)的波形中第二跳變沿時(shí),將第一寄存器的第一值,以及第二寄存器的第二值確定為所述待解碼數(shù)據(jù),并讀入到所述緩存區(qū)中,其中,所述第一寄存器的值是通過PWM輸入捕獲采集到所述FMO編碼數(shù)據(jù)的波形中第一跳變沿時(shí)定時(shí)器中的值,所述第二寄存器的值是通過PWM輸入捕獲采集到所述FMO編碼數(shù)據(jù)的波形中第二跳變沿時(shí)定時(shí)器中的值,所述第二跳變沿與所述第一跳變沿相反。
9.如權(quán)利要求8所述的裝置,其特征在于,所述獲取單元,還用于將所述定時(shí)器清零。
10.如權(quán)利要求8所述的裝置,其特征在于,所述解碼單元具體用于當(dāng)所述第二值小于或等于第三閾值時(shí),確定解碼數(shù)據(jù)為一個(gè)0;當(dāng)所述第二值大于或等于第四閾值時(shí),確定解碼數(shù)據(jù)為兩個(gè)1 ;當(dāng)所述第二值在第三閾值與第四閾值之間時(shí),將所述第一值與第五閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù),其中,所述第五閾值小于所述第三閾值,所述第三閾值小于所述第四閾值。
11.如權(quán)利要求10所述的裝置,其特征在于,當(dāng)所述第二值在第三閾值與第四閾值之間時(shí),所述解碼單元具體用于當(dāng)所述第一值大于第五閾值時(shí),確定解碼數(shù)據(jù)為1加半個(gè)0 ;當(dāng)所述第一值小于或等于第五閾值時(shí),確定解碼數(shù)據(jù)為半個(gè)0加1。
12.如權(quán)利要求8所述的裝置,其特征在于,還包括配置單元,用于將所述定時(shí)器配置為PWM輸入捕獲模式,并根據(jù)所述FMO編碼數(shù)據(jù)的速率,以及設(shè)定的分頻確定所述定時(shí)器的計(jì)數(shù)頻率;將與所述定時(shí)器對(duì)應(yīng)的第二寄存器配置為第二跳變沿有效,中斷使能;以及將與所述定時(shí)器對(duì)應(yīng)的第一寄存器配置為第一跳變沿有效。
13.—種通信設(shè)備,其特征在于,包括權(quán)利要求7至12任一所述的FMO編碼數(shù)據(jù)的解碼直ο
全文摘要
本發(fā)明公開了一種FM0編碼數(shù)據(jù)的解碼方法和裝置,用以降低對(duì)硬件芯片的性能的要求,該方法包括獲取緩存區(qū)中的待解碼數(shù)據(jù),其中,所述待解碼數(shù)據(jù)是通過定時(shí)器輸入捕獲采集所述FM0編碼數(shù)據(jù)的波形獲得的;將所述待解碼數(shù)據(jù)與閾值進(jìn)行比較,根據(jù)比較結(jié)果確定解碼數(shù)據(jù)。
文檔編號(hào)H03M5/12GK102522996SQ201110406548
公開日2012年6月27日 申請(qǐng)日期2011年12月8日 優(yōu)先權(quán)日2011年12月8日
發(fā)明者喻金錢, 辛偉 申請(qǐng)人:北京握奇數(shù)據(jù)系統(tǒng)有限公司