李維鋒,王雪亮
(杭州電子科技大學(xué)新型電子器件與應(yīng)用研究所,浙江 杭州310018)
RFID(Radio Frequency Identification)是一種非接觸式識別技術(shù),通過電磁耦合的方式實(shí)現(xiàn)能量轉(zhuǎn)換與信息交換[1]。隨著物聯(lián)網(wǎng)時代的來臨,全球信息化產(chǎn)業(yè)被提升到一個新的高度,RFID由于超長的壽命、讀寫可靠、良好的耐環(huán)境性、工作過程節(jié)省人力等優(yōu)勢,被廣泛用于物流管理、目標(biāo)監(jiān)測追蹤、電子支付、交通運(yùn)輸、醫(yī)療行業(yè)等領(lǐng)域。目前的RFID讀寫器大多由集成元件組成,設(shè)計成本較高,體積大,不適合在更多領(lǐng)域推廣[2]。同高頻RFID系統(tǒng)相比,UHF(Ultra High Frequency)讀寫器識別距離更遠(yuǎn),抗干擾能力更強(qiáng),防沖撞性能更好,適用范圍日益增大[3~7]。
本文采用分立元件搭建UHF讀寫器,設(shè)計實(shí)現(xiàn)了一種基于ISO/IEC 18000-6C協(xié)議標(biāo)準(zhǔn)的低成本、高性能UHF讀寫器系統(tǒng)。
讀寫器硬件電路主要包括MCU控制電路和射頻前端電路。讀寫器對電子標(biāo)簽的讀寫操作主要由射頻模塊完成,射頻模塊包括射頻發(fā)送模塊和射頻接收模塊。射頻發(fā)射電路對發(fā)射的信號進(jìn)行調(diào)制,將信息傳輸?shù)诫娮訕?biāo)簽;射頻接收模塊接收并解調(diào)電子標(biāo)簽反饋的射頻信號。MCU控制電路主要功能是執(zhí)行主機(jī)發(fā)送的命令,控制射頻模塊與標(biāo)簽進(jìn)行通信,加密和解密傳輸數(shù)據(jù)。讀寫器硬件電路結(jié)構(gòu)如圖1所示。
圖1 讀寫器電路結(jié)構(gòu)圖
射頻發(fā)送模塊主要包括載波電路、調(diào)制電路、功率放大電路,MCU輸出的符號數(shù)據(jù)先后經(jīng)過基帶編碼、調(diào)制濾波和信號放大。設(shè)計采用ASK信號調(diào)制,利用晶體振蕩器為系統(tǒng)提供915~920MHz頻率范圍內(nèi)穩(wěn)定的載波信號,信號調(diào)制后,通過高增益的微波功率放大模塊實(shí)現(xiàn)系統(tǒng)的功率放大。整個系統(tǒng)采用單天線進(jìn)行信號的發(fā)射和接收,因此采用RCP890A05定向耦合器,避免發(fā)射機(jī)信號泄漏到隔離段,實(shí)現(xiàn)單天線的收發(fā)隔離。射頻發(fā)射模塊電路如圖2所示。
圖2 射頻發(fā)射模塊部分電路
接收模塊電路采用I/Q正交零中頻結(jié)構(gòu)消除接收過程中因距離的變化而出現(xiàn)的接收盲區(qū),電路結(jié)構(gòu)如圖3所示。天線接收到的信號被分為I、Q兩路信號,本振信號通過移相產(chǎn)生相差90°的兩路信號,分別經(jīng)過混頻器變頻,輸出的信號經(jīng)過濾波得到的低頻信號即標(biāo)簽返回的信息。
圖3 I/Q正交零中頻結(jié)構(gòu)
通道Q的信號與接收信號混頻后濾波:
通道I和本振信號相乘后為cos函數(shù),是一個余弦信號,而Q是正弦信號,兩者相位差為90°,所以I/Q兩路的零點(diǎn)是交替的。一個通道輸出為零時,另一個通道的輸出最大,兩者輸出之和是常數(shù),克服了傳統(tǒng)零中頻接收機(jī)的零點(diǎn)效應(yīng)。
系統(tǒng)使用分立元件搭建而成,因此采用軟件設(shè)計實(shí)現(xiàn)數(shù)據(jù)信息的編碼和通信協(xié)議的處理,這種方案降低了讀寫器的設(shè)計成本和復(fù)雜度。系統(tǒng)的軟件模塊主要包括主控程序設(shè)計和多標(biāo)簽讀寫時的防沖撞程序設(shè)計。
主控程序的任務(wù)是循環(huán)自檢,當(dāng)收到主機(jī)發(fā)送的命令時會發(fā)送中斷標(biāo)志并處理主機(jī)命令,包括對標(biāo)簽的讀寫、鎖定、銷毀等命令。如果收到讀取命令,當(dāng)標(biāo)簽進(jìn)入讀寫器讀寫范圍時,解碼模塊對標(biāo)簽信號進(jìn)行解碼,然后傳輸?shù)较到y(tǒng)處理模塊進(jìn)行數(shù)據(jù)處理;若同時讀取到多標(biāo)簽,則進(jìn)入防碰撞處理過程;若讀取失敗,則返回主程序并等待下個指令。主機(jī)可對標(biāo)簽進(jìn)行鎖定,實(shí)現(xiàn)對標(biāo)簽所有區(qū)的寫保護(hù),防止標(biāo)簽數(shù)據(jù)被篡改。收到銷毀命令時,會銷毀電子標(biāo)簽中的信息,并且該過程不可逆轉(zhuǎn),標(biāo)簽的數(shù)據(jù)也無法追回。
軟件設(shè)計中,高效的多標(biāo)簽識別是整個系統(tǒng)的關(guān)鍵點(diǎn)。目前流行的RFID防沖撞算法主要有基于ALOHA的不確定性算法和基于樹型的確定性算法兩類[8~10]。基于ALOHA防沖撞算法主要有幀時隙ALOHA算法、純ALOHA算法、時隙ALOHA算法、動態(tài)幀時隙ALOHA和它們的優(yōu)化版本[11~13]。樹型防沖撞算法主要包括QT(Query Tree)算法、TS(Tree splitting) 算法、BS (Binary Search) 算法和BTA(Bitwise Arbitration)算法[14~16]。在 QT 算法中,四叉樹算法的缺點(diǎn)是分叉時會產(chǎn)生額外的空閑時隙,這是影響該算法的主要原因。通過剪枝操作對該算法進(jìn)行優(yōu)化,過濾掉不必要的空閑時隙,增大吞吐率,提高讀寫器識別速率。剪枝的原則:
(1)最高碰撞位之后還是碰撞位,不剪枝;
(2)最高碰撞位之后是0,減去分支01和11;
(3)最高碰撞位之后是1,減去分支00和10。
算法使用堆棧數(shù)據(jù)結(jié)構(gòu)保存讀寫器查詢前綴,初始化時將空字符串放入堆棧中。讀寫器從堆棧中取出查詢前綴,如果標(biāo)簽的ID號前綴與之匹配,標(biāo)簽將ID號中剩余信息反饋給讀寫器。當(dāng)多標(biāo)簽前綴相同發(fā)生碰撞時,讀寫器根據(jù)規(guī)定的剪枝原則更新查詢前綴,并放入堆棧中。讀寫器不停地讀取堆棧中的查詢前綴,直至所有的標(biāo)簽被識別。算法執(zhí)行步驟如下:
(1)初始化,堆棧中放入空字符串。
(2)判斷堆棧是否為空,如果是,算法結(jié)束。
(3)讀寫器讀取堆棧中保存的查詢前綴,發(fā)送給標(biāo)簽,標(biāo)簽將收到的信息與自己ID匹配。匹配成功,則發(fā)送剩余信息,反之,標(biāo)簽不響應(yīng)。
(4)如果讀寫器只接收到一個響應(yīng),跳到步驟6;如果沒有收到響應(yīng),跳到步驟7;如果接收到多個響應(yīng),根據(jù)碰撞原則更新查詢前綴。
(5)重復(fù)步驟 2~4。
(6)識別標(biāo)簽。
(7)結(jié)束。
四叉樹的節(jié)點(diǎn)數(shù)包括中間節(jié)點(diǎn)(此時將根節(jié)點(diǎn)算作中間節(jié)點(diǎn))和葉節(jié)點(diǎn):
n4表示度為4的節(jié)點(diǎn),n0表示節(jié)點(diǎn)度為0,節(jié)點(diǎn)的度表示該節(jié)點(diǎn)擁有的自節(jié)點(diǎn)個數(shù),加上根節(jié)點(diǎn),所以總時隙也可以表示為:
因此:n0=3n4+1n4=(n0-1)/3
假定標(biāo)簽數(shù)量為n,不滿足剪枝條件時,并且碰撞時沒有產(chǎn)生時隙時,葉節(jié)點(diǎn)數(shù)n0=n。
由于n4=(n0-1)/3,此時算法總時隙是:
產(chǎn)生兩個空閑時隙時,空閑節(jié)點(diǎn)m=2n4,此時算法總時隙為:
滿足剪枝條件時,葉節(jié)點(diǎn)和標(biāo)簽數(shù)相等,此時中間節(jié)點(diǎn)的子節(jié)點(diǎn)只有滿四叉樹時的一半,算法總時隙是:
綜上可知,改進(jìn)后的算法總時隙的范圍為[(7n-1)/6,2n-3]。
讀寫器硬件電路正常工作之后,對讀寫器的標(biāo)簽讀寫能力進(jìn)行測試,在天線輻射范圍內(nèi),將標(biāo)簽靠近天線,待讀寫模塊讀取到標(biāo)簽后慢慢增大距離。讀寫器通過輪詢的方式發(fā)射射頻信號,通過設(shè)置輪詢周期為20,可評估讀寫器的正確率和穩(wěn)定性,測試結(jié)果如表1。在5dBi天線配合下,2m以內(nèi)讀取率和正確率達(dá)到100%,極限讀取距離為2.5m,測試結(jié)果穩(wěn)定可靠,滿足實(shí)際應(yīng)用需求。
表1 距離測試
吞吐率是衡量算法性能的重要指標(biāo),吞吐率越大,識別速率越快。算法的吞吐率為:
通過仿真測試之后得到如圖4所示的結(jié)果,吞吐率高達(dá)0.64,滿足讀寫器快速識別多標(biāo)簽的要求。
圖4 吞吐率測試
系統(tǒng)采用分立元件組建讀寫器系統(tǒng),工作在915~920MHz頻率范圍內(nèi),讀寫距離2~2.5m。設(shè)計了新型的四叉樹防沖撞算法,仿真和測試分析表明通過剪去四叉樹中的空閑時隙,該算法顯著減少了了讀寫器識別時間,提高了RFID系統(tǒng)的識別效率。雖然該讀寫器在性能上有所改進(jìn),達(dá)到了設(shè)計目標(biāo),但還有不足之處。多標(biāo)簽讀取時較高的識別率和較遠(yuǎn)的讀取距離限制了讀取標(biāo)簽的數(shù)量,今后可以提高接收靈敏度,增大可識別標(biāo)簽的數(shù)量,還可增加讀寫器自組網(wǎng)功能。