一種符合EPCC1G2協(xié)議的RFID反向鏈路數(shù)據(jù)解碼技術(shù)的實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
物聯(lián)網(wǎng)技術(shù)是當(dāng)前新興應(yīng)用的熱點(diǎn)技術(shù)之一,國(guó)內(nèi)多行業(yè)、多地區(qū)正積極摸索其應(yīng)用模式,并推廣其相對(duì)成熟的應(yīng)用技術(shù)。物聯(lián)網(wǎng)架構(gòu)中的三個(gè)層面也陸續(xù)推出了相關(guān)的技術(shù)協(xié)議或標(biāo)準(zhǔn),其中EPCC1G2協(xié)議已基本被業(yè)界所接受,并形成初步應(yīng)用的協(xié)議支撐。該協(xié)議規(guī)定了在860~960MHz的頻率范圍內(nèi)操作的無(wú)源反向散射、詢(xún)問(wèn)機(jī)講話優(yōu)先(ITF)和射頻識(shí)別(RFID)系統(tǒng)要求,其中規(guī)定了反向鏈路數(shù)據(jù)采用FM0或Miller編碼方式。本文著重介紹反向鏈路數(shù)據(jù)解碼,并給出了基于MCU的ADCFM0解碼技術(shù)及實(shí)現(xiàn)。
1EPCC1G2協(xié)議中的反向鏈路數(shù)據(jù)編碼約定
1.1FM0編碼
FM0(即Bi-PhaseSpace)編碼的全稱(chēng)為雙相間隔碼編碼,其工作原理是在一個(gè)位窗內(nèi)采用電平變化來(lái)表示邏輯。如果電平從位窗起始處開(kāi)始翻轉(zhuǎn),則表示邏輯1;如果電平不僅在位窗起始處翻轉(zhuǎn),還在位窗中間處翻轉(zhuǎn),則表示邏輯0。FM0在每個(gè)邊界倒轉(zhuǎn)基帶相位,數(shù)據(jù)0有一個(gè)附加的中間符號(hào)相位倒轉(zhuǎn)。圖1的狀態(tài)圖描繪了所發(fā)送的FM0基本功能的邏輯數(shù)據(jù)序列。S1~S4狀態(tài)標(biāo)記表明四種可能FM-編碼符號(hào),代表各FM0基本功能的兩個(gè)相位。這些狀態(tài)標(biāo)簽還表示鍵入狀態(tài)后即傳輸?shù)腇M0波形。狀態(tài)轉(zhuǎn)換的標(biāo)簽表示被編碼的數(shù)據(jù)序列的邏輯值。例如,從狀態(tài)S2轉(zhuǎn)換到狀態(tài)S3是不允許的,因?yàn)橛纱水a(chǎn)生的傳輸在符號(hào)邊界上沒(méi)有相轉(zhuǎn)化。
圖2所示是所發(fā)生的基帶FM0符號(hào)和序列。在調(diào)制器輸出時(shí)測(cè)得的00或11序列的工作循環(huán)應(yīng)最低為45%,最高為55%,標(biāo)稱(chēng)值為50%。FM0編碼有存儲(chǔ)器,因此,圖2中的FM0序列的選擇取決于前一次傳輸。如圖3所示,F(xiàn)M0發(fā)信應(yīng)始終在每次傳輸結(jié)束時(shí)以dummy數(shù)據(jù)1結(jié)尾。
反向鏈路數(shù)據(jù)發(fā)信應(yīng)以圖4所示的兩個(gè)前同步碼開(kāi)始。至于選擇哪個(gè)前同步碼應(yīng)以啟動(dòng)該盤(pán)存周期的Query命令規(guī)定的TRext位的數(shù)值為準(zhǔn)。而對(duì)應(yīng)的編碼示例則如圖5所示,一個(gè)位窗的持續(xù)時(shí)間是25μs。
1.2Miller編碼
Miller碼也稱(chēng)延遲調(diào)制碼,是一種變形雙向碼。其編碼規(guī)則:數(shù)據(jù)符號(hào)由相應(yīng)的碼元相位電平翻轉(zhuǎn)來(lái)描述,在UHFRFID系統(tǒng)協(xié)議中規(guī)定了Miller序列每位應(yīng)包含2、4或8個(gè)副載波周期,具體情況視啟動(dòng)該盤(pán)存周期的Query命令規(guī)定的M值而定;在Miller基帶序列中兩個(gè)碼元之間,即在每一碼元起始處放置一個(gè)相位翻轉(zhuǎn),代表數(shù)據(jù)符號(hào)0;在Miller基帶序列中一個(gè)碼元中間放置一個(gè)相位翻轉(zhuǎn),則代表數(shù)據(jù)符號(hào)1,即對(duì)應(yīng)的碼元相位邏輯為01或10。關(guān)于Miller編碼的發(fā)生器狀態(tài)圖、副載波序列圖等請(qǐng)查閱EPCC1G2協(xié)議,在此不再贅述。
2基于AD的反向鏈路數(shù)據(jù)解碼技術(shù)及實(shí)現(xiàn)
以FM0解碼為例,通常解碼的基本思路是數(shù)據(jù)“0”在信號(hào)周期中心存在電平翻轉(zhuǎn),而數(shù)據(jù)“1”在整個(gè)信號(hào)周期都不進(jìn)行電平翻轉(zhuǎn);由此利用對(duì)電平不同翻轉(zhuǎn)情況的判決即可實(shí)現(xiàn)對(duì)數(shù)據(jù)“0”或“1”的識(shí)別,從而完成對(duì)FM0的解碼?;诖怂枷雽?shí)現(xiàn)FM0解碼的技術(shù)平臺(tái)選擇是比較豐富的,效率較高的選擇是基于FPGA平臺(tái)將兩個(gè)下降沿之間的時(shí)間間隔和系統(tǒng)時(shí)鐘之間的關(guān)系通過(guò)VHDL程序?qū)崿F(xiàn)對(duì)FM0的解碼算法。另外一種常用的技術(shù)平臺(tái)是基于MCU平臺(tái),通過(guò)外圍I/Q比較電路對(duì)接收信號(hào)的電平翻轉(zhuǎn)進(jìn)行判決,再將信號(hào)送入MCU,利用MCU內(nèi)部PCA模塊實(shí)現(xiàn)對(duì)電平翻轉(zhuǎn)的中端響應(yīng),完成電平翻轉(zhuǎn)計(jì)數(shù),實(shí)現(xiàn)對(duì)翻轉(zhuǎn)邏輯判決,從而實(shí)現(xiàn)對(duì)FM0的解碼算法。其解碼效率能基本保證需要,但會(huì)增加外圍電路,從而加大設(shè)備體積。目前,隨著物聯(lián)網(wǎng)應(yīng)用的廣泛,對(duì)感知層的數(shù)據(jù)采集端設(shè)備的體積和成本越發(fā)敏感,因此需要對(duì)讀寫(xiě)端設(shè)備進(jìn)行小型化和高效化設(shè)計(jì),其中反向鏈路的數(shù)據(jù)解碼技術(shù)是關(guān)系到讀寫(xiě)端設(shè)備關(guān)鍵功能指標(biāo)的重要技術(shù)點(diǎn)。本文提出了基于低成本MCU平臺(tái),利用MCU內(nèi)部ADC和TIMER模塊實(shí)現(xiàn)FM0解碼技術(shù)。
2.1解碼技術(shù)設(shè)計(jì)與實(shí)現(xiàn)
2.1.1硬件資源分析
本文解碼技術(shù)設(shè)計(jì)以MCU內(nèi)部ADC模塊和TIMER模塊為實(shí)現(xiàn)解碼的硬件基礎(chǔ);MCU采用C8051F120為控制器平臺(tái),使用該控制器內(nèi)部的8位ADC模塊和16位TIMER模塊;8位ADC模塊包括一個(gè)8通道可配置模擬多路開(kāi)關(guān)(AMUX2),一個(gè)可編程增益放大器(PGA2)和一個(gè)500ks/s、8bit分辨率的逐次逼近寄存器型ADC。
下面分析ADC2提供的跟蹤和轉(zhuǎn)換方式及其周期。ADC2最高轉(zhuǎn)換速度為500ks/s,ADC2的轉(zhuǎn)換時(shí)鐘取自系統(tǒng)時(shí)鐘分頻,最大轉(zhuǎn)換時(shí)鐘頻率為6MHz。ADC2提供外部和內(nèi)部跟蹤模式,為了節(jié)省外部電路,我們采用內(nèi)部跟蹤模式。ADC2內(nèi)部跟蹤模式提供了低功耗跟蹤模式和通常跟蹤模式,主要區(qū)別在于前者需要三個(gè)SAR時(shí)鐘的跟蹤周期消耗。圖6所示是ADC2跟蹤和轉(zhuǎn)換時(shí)序示意圖。
考慮到ADC建立時(shí)間對(duì)于解碼效率的影響,我們進(jìn)一步分析ADC2的建立時(shí)間。在ADC2內(nèi)部模塊中確定該時(shí)間由ADC2模擬多路開(kāi)關(guān)的電阻、ADC2采樣電容、外部信號(hào)源阻抗及所要求的轉(zhuǎn)換精度決定。其數(shù)值可由下述方程式估算:
可知,當(dāng)SA精度為1/4LSB值時(shí),建立時(shí)間大致為1.73四
結(jié)合EPGC1G2協(xié)議約定的Tari值最佳范圍在6.25~25ns,因此對(duì)于反向鏈路數(shù)據(jù)解碼速率而言,若采用ADC2對(duì)輸入FMO基帶碼元信號(hào)進(jìn)行采樣,是可以滿(mǎn)足采用速率需要的。
2.1.2解碼設(shè)計(jì)
針對(duì)EPCC1G2協(xié)議的反向鏈路數(shù)據(jù)解碼,本文提出的解碼設(shè)計(jì)思路為:首先根據(jù)反向數(shù)據(jù)速率,將MCU內(nèi)部TIMER2模塊配置為自動(dòng)重載模式,并根據(jù)數(shù)據(jù)速率值設(shè)定時(shí)鐘定時(shí)參數(shù);其次,將內(nèi)部ADC2模塊配置為窗口檢測(cè)模式,根據(jù)協(xié)議規(guī)定數(shù)據(jù)波形上升沿及下降沿電平值,分別設(shè)定ADC2GT和ADC2LT參數(shù)值;當(dāng)TIMER2時(shí)鐘定時(shí)中斷到來(lái)時(shí),在中斷響應(yīng)中啟動(dòng)可編程窗口檢測(cè)器,使得ADC2對(duì)此刻輸入信號(hào)進(jìn)行采樣,并進(jìn)行窗口判決,根據(jù)判決返回值,對(duì)當(dāng)前信號(hào)進(jìn)行電平判定;最后將判定結(jié)果交由FMO解碼算法進(jìn)行前導(dǎo)零、同步及數(shù)據(jù)解碼處理,從而實(shí)現(xiàn)對(duì)FMO的解碼過(guò)程。其解碼邏輯示意圖如圖7所示。
2.2解碼算法實(shí)現(xiàn)
2.2.1解碼軟件實(shí)現(xiàn)流程
基于MCU平臺(tái),實(shí)現(xiàn)如前所述的解碼設(shè)計(jì),重點(diǎn)在于對(duì)MCU定時(shí)器和ADC2模塊的精確配置和高效使用。因此,實(shí)現(xiàn)FM0解碼軟件過(guò)程,首先進(jìn)行TIMER2和ADC2模塊相關(guān)寄存器的初始化配置;隨后在進(jìn)入Tag接收狀態(tài)后實(shí)時(shí)啟動(dòng)TIMER2,等待TIMER2的定時(shí)中斷;當(dāng)TIMER2時(shí)鐘中斷到來(lái)時(shí),在中斷響應(yīng)中及時(shí)啟動(dòng)ADC2,對(duì)單路輸入信號(hào)或差分輸入信號(hào)進(jìn)行采樣,并通過(guò)初始化配置完成的ADC2窗口檢測(cè)器,對(duì)采樣的信號(hào)進(jìn)行電平范圍初判決;電平判決完成后先進(jìn)行輸入啟動(dòng)信號(hào)的判斷,如果啟動(dòng)有效,則進(jìn)行正式的FM0解碼;解碼過(guò)程首先是對(duì)前導(dǎo)零判決,當(dāng)前導(dǎo)零識(shí)別完成后,可根據(jù)判決情況對(duì)TIMER2同步周期進(jìn)行微調(diào),然后進(jìn)入前同步碼判決,此處需對(duì)同步碼中“V”位的處理進(jìn)行寬泛調(diào)整以抵消同步延遲產(chǎn)生的影響,在前同步碼完成解碼后,需立即進(jìn)行同步周期調(diào)整,隨后進(jìn)入數(shù)據(jù)位解碼過(guò)程,當(dāng)數(shù)據(jù)位中停止位判決生效后,即完成此次FM0解碼周期,等待進(jìn)入下一個(gè)FM0解碼循環(huán)期。圖8所示是其解碼算法實(shí)現(xiàn)流程示意圖。
圖8 解碼算法實(shí)現(xiàn)流程示意圖
FM0解碼技術(shù)實(shí)現(xiàn)效果
按照解碼設(shè)計(jì)思路,在MCU平臺(tái)采用C語(yǔ)言代碼編程,通過(guò)示波器抓到的實(shí)際運(yùn)行信號(hào)波形圖如圖9所示。從波形可以觀察到,起始位檢測(cè)在第4個(gè)前導(dǎo)零啟動(dòng),并使用3次ADC采用比較數(shù)據(jù)防止抖動(dòng)干擾;對(duì)前導(dǎo)零的解碼使用了6個(gè)采樣周期,共解碼出5個(gè)有效前導(dǎo)零,并且在前導(dǎo)零期間觸發(fā)了一次采樣調(diào)整和延遲調(diào)整;對(duì)前同步碼的解碼過(guò)程觸發(fā)了一次采樣調(diào)整;由于前期的調(diào)整,因此在進(jìn)入數(shù)據(jù)位解碼過(guò)程時(shí)同步周期保持良好,未觸發(fā)調(diào)整動(dòng)作。
3反向鏈路數(shù)據(jù)解碼技術(shù)實(shí)現(xiàn)關(guān)鍵點(diǎn)分析
本文給出的基于MCU平臺(tái)并利用ADC模塊實(shí)現(xiàn)對(duì)EPCC1G2協(xié)議中反向鏈路數(shù)據(jù)解碼的設(shè)計(jì)思路,可在實(shí)際實(shí)現(xiàn)過(guò)程中通過(guò)對(duì)FM0碼的解碼得到可行性證明。同時(shí),此實(shí)現(xiàn)方法與通常做法相比較,在實(shí)現(xiàn)過(guò)程中也存在一些影響解碼效果和效率的關(guān)鍵因素需要分析,以完善此方法,使之更加滿(mǎn)足實(shí)現(xiàn)目標(biāo)的期望。
圖9 FM0解碼波形圖
ADC解碼技術(shù)的同步調(diào)整
在ADC解碼技術(shù)中,TIMER2的定時(shí)周期與FM0碼信號(hào)周期的同步是決定能否正確在電平翻轉(zhuǎn)點(diǎn)執(zhí)行ADC采樣的關(guān)鍵因素。信號(hào)從空口接收到再經(jīng)射頻通道處理的過(guò)程,可能會(huì)由于時(shí)鐘延遲或頻點(diǎn)漂移對(duì)正常信號(hào)產(chǎn)生干擾,此干擾嚴(yán)重時(shí),會(huì)直接影響碼形上升或下降沿的變化,造成解碼采樣周期失諧。對(duì)此,在解碼過(guò)程中應(yīng)增加對(duì)定時(shí)周期的延遲調(diào)整機(jī)制,通過(guò)延遲調(diào)整抵消波形延遲對(duì)解碼產(chǎn)生的干擾影響。
ADC解碼技術(shù)的電平采樣效率
在ADC解碼技術(shù)中,對(duì)信號(hào)翻轉(zhuǎn)的判決是利用ADC對(duì)波形采樣并進(jìn)行窗口檢測(cè)來(lái)實(shí)現(xiàn)的。如前所示,波形的輸入常會(huì)受到不利干擾,從而影響波形上升或下降沿的躍變過(guò)程,因而需要提高對(duì)此過(guò)程的采樣精度和準(zhǔn)確度,以保證采樣效率。為此,本文給出動(dòng)態(tài)采樣調(diào)整方法,即通過(guò)對(duì)采樣數(shù)據(jù)進(jìn)行簡(jiǎn)化、比較、分析,然后動(dòng)態(tài)調(diào)整采樣點(diǎn)的采樣次數(shù),從而保證采樣效率;此方法不是盲目增加采樣次數(shù),因而不會(huì)造成采樣建立時(shí)間、轉(zhuǎn)換時(shí)間增多,從而降低采樣周期的無(wú)效延遲。
4結(jié)論
本文給出的針對(duì)EPCC1G2協(xié)議的反向鏈路數(shù)據(jù)解碼技術(shù),已在實(shí)際設(shè)備中進(jìn)行了驗(yàn)證,并對(duì)其實(shí)現(xiàn)的效果從功能和性能方面進(jìn)行了分析和評(píng)估,可以證明其實(shí)現(xiàn)的有效性。同時(shí),本文也注意到在符合EPCC1G2的解碼技術(shù)中,從技術(shù)實(shí)現(xiàn)平臺(tái)的不同分類(lèi),可以分為FPGA平臺(tái)和MCU平臺(tái)。FPGA平臺(tái)可以通過(guò)內(nèi)部數(shù)字電路設(shè)計(jì),并由VHDL編程實(shí)現(xiàn),此平臺(tái)的可支持解碼資源較為豐富,實(shí)現(xiàn)效率較高;而對(duì)于MCU平臺(tái),通常是采用先經(jīng)外部電平檢測(cè)電路對(duì)輸入信號(hào)進(jìn)行電平翻轉(zhuǎn)判斷,然后輸入給MCU并利用其PCA模塊進(jìn)行翻轉(zhuǎn)計(jì)數(shù),并以此為基礎(chǔ)實(shí)現(xiàn)解碼。
當(dāng)然,本文提供的技術(shù)仍可以在提高解碼可靠性、采樣精度以及減少采樣過(guò)程延遲影響等方面進(jìn)一步完善。總之,當(dāng)前,物聯(lián)網(wǎng)應(yīng)用和發(fā)展的趨勢(shì)表明,感知層設(shè)備將在組件化應(yīng)用方面得到進(jìn)一步強(qiáng)化,因此,本文針對(duì)符合EPCC1G2的物聯(lián)網(wǎng)協(xié)議,以精簡(jiǎn)硬件資源、提高設(shè)備性能為目標(biāo)的解碼技術(shù)運(yùn)用,將有助于感知層設(shè)備的組件化實(shí)現(xiàn)和推廣。
20211017_616c461825395__一種符合EPCC1G2協(xié)議的RFID反向鏈路數(shù)據(jù)解碼技術(shù)的實(shí)現(xiàn)