孫 笠
(北京郵電大學(xué)國(guó)際學(xué)院物聯(lián)網(wǎng)工程 北京 100876)
一種UHF RFID讀寫器的設(shè)計(jì)方法
孫 笠
(北京郵電大學(xué)國(guó)際學(xué)院物聯(lián)網(wǎng)工程 北京 100876)
本文介紹了一種基于ISO/IEC 18000-6 Type B標(biāo)準(zhǔn)的讀寫器設(shè)計(jì),并給出了RFID讀寫器的系統(tǒng)硬件設(shè)計(jì)和軟件流程設(shè)計(jì)。讀寫器采用零中頻收發(fā)結(jié)構(gòu)作為射頻前端模塊,采用PHILIPS公司的P89LPC932A1單片機(jī)作為數(shù)字基帶處理模塊,并通過(guò)UAR或USB與計(jì)算機(jī)(主機(jī))進(jìn)行通信。
ISO/IEC 18000-6 Type B防沖突機(jī)制
進(jìn)入場(chǎng)區(qū)的標(biāo)簽主要有三種狀態(tài):
(1)READY;
(2)ID;
(3)DATA EXCHANGE。
為解決防沖突算法問(wèn)題,標(biāo)簽內(nèi)應(yīng)具有以下兩種硬件電路:
(1)一個(gè)8位的計(jì)數(shù)器;
(2)一個(gè)隨機(jī)數(shù)發(fā)生器(產(chǎn)生“0”或“1”)。
當(dāng)標(biāo)簽進(jìn)入ID狀態(tài)的同時(shí)把它們內(nèi)部的計(jì)數(shù)器清“0”。它們中的一部分可以通過(guò)接收GROUP_UNSELECT指令重新回到READY狀態(tài),其他處在ID狀態(tài)的標(biāo)簽就進(jìn)入了防沖突碰撞判斷流程中。
讀寫器射頻前端采用零中頻接收結(jié)構(gòu),發(fā)送和接收通路隔離采用多天線技術(shù),其系統(tǒng)硬件結(jié)構(gòu)如圖1所示。由頻率綜合器產(chǎn)生所需要的射頻信號(hào),然后經(jīng)過(guò)功分器得到兩路載波信號(hào),分別用于發(fā)送通路和接收通路。發(fā)送通路采用OOK調(diào)制,基帶信號(hào)通過(guò)開關(guān)通斷控制載波是否經(jīng)過(guò)功放,并由天線發(fā)送;接收通路中接收信號(hào)先經(jīng)過(guò)功分、放大等操作,然后分別送到混頻器和兩路正交的載波信號(hào)進(jìn)行混頻,對(duì)混頻之后的信號(hào)經(jīng)過(guò)濾波、放大、電平比較等操作,恢復(fù)出數(shù)字基帶信號(hào)。該系統(tǒng)之所以采用兩路正交混頻結(jié)構(gòu),主要是為了避免射頻場(chǎng)中存在的盲點(diǎn)。如果只采用一路接收信號(hào),當(dāng)接收信號(hào)的相位和本振信號(hào)的相位相差90度,混頻后的信號(hào)始終為零,即有用信號(hào)沒有解調(diào)出來(lái)。但采用正交I和Q兩路接收信號(hào),無(wú)論相位延時(shí)是多少,I和Q中總有一路能解調(diào)出有用信號(hào)。
圖1 讀寫器硬件系統(tǒng)結(jié)構(gòu)
讀寫器的數(shù)字基帶處理模塊采用PHILIPS公司的P89LPC932A1單片機(jī),P89LPC932A1采用了高性能處理器結(jié)構(gòu),指令執(zhí)行只需2到4個(gè)時(shí)鐘周期,6倍于標(biāo)準(zhǔn)80C51。它具有512字節(jié)片內(nèi)附加RAM,8K FLASH程序存儲(chǔ)器以及增強(qiáng)型UART。該數(shù)字模塊主要完成協(xié)議指令處理,防沖突算法以及通信數(shù)據(jù)的編解碼和校驗(yàn)。
3.1 數(shù)字基帶的整體設(shè)計(jì)
讀寫器數(shù)字基帶整體結(jié)構(gòu)如圖2所示,其中包括串口通信模塊,指令處理模塊,回波處理模塊以及數(shù)據(jù)編解碼模塊。
圖2 數(shù)字基帶模塊框圖
讀寫器是在計(jì)算機(jī)(主機(jī))監(jiān)控之下進(jìn)行工作,兩者之間形成主從通信模式。讀寫器接收到主機(jī)發(fā)來(lái)的指令,由譯碼模塊確定讀寫器的具體操作。操作分為兩大類,一類是對(duì)讀寫器操作,包括讀版本信息,設(shè)置工作頻率模式(固定頻率和跳變頻率)和IAP軟件升級(jí)等,處理完成后將信息通過(guò)UART返回給主機(jī);另一類是對(duì)標(biāo)簽操作,其中包括防沖突讀卡號(hào),讀標(biāo)簽和寫標(biāo)簽等,該操作指令通過(guò)Manchester編碼器發(fā)送后,等待回波返回?cái)?shù)據(jù)通過(guò)FM0解碼器后進(jìn)入回波處理模塊,數(shù)據(jù)正確則通過(guò)UART返回給主機(jī)。
3.2 防沖突算法的實(shí)現(xiàn)
根據(jù)ISO/IEC18000-6B防沖突算法,針對(duì)讀寫器特定的應(yīng)用要求,完成如圖3所示防沖突讀卡號(hào)流程。首先讀寫器發(fā)送GROUP SELECT指令,進(jìn)入場(chǎng)區(qū)的標(biāo)簽將內(nèi)部計(jì)數(shù)器清“0”,并返回UID。如果返回?cái)?shù)據(jù)錯(cuò)誤,則發(fā)送RESEND指令,連續(xù)2次RESEND指令后,返回?cái)?shù)據(jù)仍然錯(cuò)誤,則認(rèn)為場(chǎng)區(qū)內(nèi)存在多張卡,發(fā)送FAIL指令,進(jìn)行防沖突。如果返回?cái)?shù)據(jù)正確,則發(fā)送DATA READ指令,使該標(biāo)簽離開ID狀態(tài),不在進(jìn)行防沖突過(guò)程,然后發(fā)送SUCCESS指令,繼續(xù)讀卡。如果連續(xù)5次沒有回波相應(yīng),則認(rèn)為場(chǎng)區(qū)無(wú)卡,結(jié)束防沖突讀卡。
3.3 Manchester編碼器設(shè)計(jì)
Manchester編碼是在1個(gè)位窗內(nèi)采用電平變化來(lái)表示邏輯“1”(下降沿)和邏輯“0”(上升沿)的。Manchester編碼特點(diǎn),“10”代表數(shù)據(jù)“1”,“01”代表數(shù)據(jù)“0”。根據(jù)其特點(diǎn),編碼過(guò)程如下:首先取數(shù)據(jù),循環(huán)左移,根據(jù)移出位判斷編碼操作,左移8次后,取下一個(gè)數(shù)據(jù),重復(fù)上述操作,直到發(fā)送完所有數(shù)據(jù),編碼結(jié)束。
3.4 FM0解碼器設(shè)計(jì)
FM0編碼是在1個(gè)位窗內(nèi)采用電平變化來(lái)表示邏輯,如果電平只在位窗的起始處翻轉(zhuǎn)則表示數(shù)據(jù)“1”;如果電平除了在位窗的起始處翻轉(zhuǎn),還在位窗的中間翻轉(zhuǎn)則表示為數(shù)據(jù)“0”。
FM0編碼特點(diǎn)如下:“11”和“00”代表數(shù)據(jù)“1”,“01”和“10”代表數(shù)據(jù)“0”。
解碼過(guò)程:首先讀寫器同時(shí)對(duì)I和Q兩路信號(hào)進(jìn)行采樣,利用狀態(tài)機(jī)檢測(cè)返回幀頭的正確性,讀寫器根據(jù)幀頭的正確性來(lái)決定對(duì)I或Q路信號(hào)進(jìn)行解碼。針對(duì)FM0編碼的特點(diǎn)可知,F(xiàn)M0每個(gè)數(shù)據(jù)單元的起始處發(fā)生翻轉(zhuǎn),由此可以根據(jù)起始處的上升沿或下降沿以及位窗中的采樣點(diǎn)來(lái)判斷出此位窗所表示的數(shù)據(jù)。設(shè)定一個(gè)位窗時(shí)間長(zhǎng)度為T,一種情況是位窗起始處為下降沿,在該位窗3/4T處采樣,采樣為1則位窗表示數(shù)據(jù)“0”,采樣為0則位窗表示數(shù)據(jù)“1”;另一種情況是位窗起始處為上升沿,在該位窗3/4T處采樣,采樣為1則位窗表示數(shù)據(jù)“1”,采樣為0則位窗表示數(shù)據(jù)“0”。
提出了基于P89LPC932A1單片機(jī)的超高頻讀寫器設(shè)計(jì),根據(jù)ISO/IEC18000-6B標(biāo)準(zhǔn),實(shí)現(xiàn)了UHF頻段防沖突碰撞讀取標(biāo)簽卡號(hào),讀寫標(biāo)簽數(shù)據(jù)等功能,最后針對(duì)通信數(shù)據(jù)的特點(diǎn)分別提出了Manchester編碼和FM0解碼流程。讀寫器在完成硬件和軟件設(shè)計(jì)后進(jìn)行了制版、調(diào)試和測(cè)試,并最終實(shí)現(xiàn)了產(chǎn)品化。此系統(tǒng)也為研究RFID讀寫器的SoC設(shè)計(jì)提供了一定的參考價(jià)值。