陳楊,張紅雨,張鵬程
(電子科技大學(xué) 電子工程學(xué)院,四川 成都 611731)
隨著射頻識別 (Radio Frequency Identification,RFID)技術(shù)的快速發(fā)展與廣泛運(yùn)用,超高頻射頻識別系統(tǒng)由于具有讀寫速度快、讀寫距離遠(yuǎn)、存儲容量大、防碰撞能力強(qiáng)的優(yōu)點(diǎn),已經(jīng)在物流等領(lǐng)域得到了廣泛的應(yīng)用。在超高頻讀寫器設(shè)計中,為實現(xiàn)標(biāo)簽與閱讀器之間的數(shù)據(jù)通信,一般采用負(fù)載調(diào)制方式進(jìn)行無線通信。在閱讀器和標(biāo)簽發(fā)射端,在進(jìn)行負(fù)載調(diào)制前,需要選用一種編碼方式對發(fā)送的數(shù)據(jù)進(jìn)行編碼。在基于ISO/IEC18000-6C協(xié)議的超高頻讀寫器設(shè)計中,閱讀器到標(biāo)簽的數(shù)據(jù)編碼方式采用PIE編碼,標(biāo)簽到閱讀器的數(shù)據(jù)編碼方式采用FM0編碼或密勒調(diào)制副載波序列編碼 (M=2,4,8)[1]。在分析密勒調(diào)制副載波序列特點(diǎn)的基礎(chǔ)上,提出一種密勒調(diào)制副載波的編解碼方式,并且給出了在FPGA中的實現(xiàn)方法。
密勒碼中帶有豐富的時鐘信號,且抗干擾能力強(qiáng),因此是射頻無線通信中數(shù)據(jù)傳輸?shù)膬?yōu)選碼型。密勒編碼規(guī)則規(guī)定[2]:在相鄰兩個數(shù)據(jù)0之間發(fā)生電平跳變,在數(shù)據(jù)1的中間也將發(fā)生電平跳變。從規(guī)則可知,密勒碼的邏輯1雖然在位的中間要發(fā)生電平跳變,但是電平跳變的方向取決于前一位編碼結(jié)束時的電平;邏輯0的電平跳變也與前一位編碼結(jié)束時的電平有關(guān)。從編碼規(guī)則可以看出,當(dāng)前的編碼輸出是與前一個數(shù)據(jù)位的編碼輸出相關(guān)的,所以在設(shè)計密勒編解碼器時,需要采用時序邏輯電路進(jìn)行設(shè)計。
根據(jù)密勒編碼規(guī)則,分別要用兩個狀態(tài)來表示邏輯0和邏輯1;用S1(高電平的邏輯 0)和 S4(低電平的邏輯0)來表示邏輯零,用S2(負(fù)跳變)和S3(正跳變)來表示邏輯1,所以有S1=-S4,S2=-S3;下圖為密勒編碼功能圖:
圖1 密勒編碼功能圖Fig.1 Miller encoding map
根據(jù)編碼,繪制出如下的密勒碼序列,如圖2所示,從圖中能夠看到,密勒碼中電平的轉(zhuǎn)換是由前一個時刻的電平狀態(tài)確定的。
圖2 密勒編碼波形Fig.2 Miller encoding waveform
根據(jù)密勒碼的特點(diǎn)和對各個狀態(tài)的描述,密勒編碼中的4個狀態(tài)轉(zhuǎn)換關(guān)系如下圖所示。
圖3 密勒編碼狀態(tài)轉(zhuǎn)換圖Fig.3 Miller encoding state transition diagram
從密勒編碼狀態(tài)轉(zhuǎn)換圖中,能夠看到:狀態(tài)S2在檢測到數(shù)據(jù)零后能夠轉(zhuǎn)換到狀態(tài)S4,但是狀態(tài)S4無論檢測到什么數(shù)據(jù),都不能轉(zhuǎn)換到狀態(tài)S2,這是由于如果狀態(tài)S4轉(zhuǎn)換到狀態(tài)S2,電平將不發(fā)生翻轉(zhuǎn),不符合密勒編碼規(guī)定,故狀態(tài)S4不能直接轉(zhuǎn)換到狀態(tài)S2;同理狀態(tài)S1也不能直接轉(zhuǎn)換到狀態(tài)S3。
密勒調(diào)制副載波序列是用密勒編碼的波形去調(diào)制副載波序列產(chǎn)生的,M值設(shè)定編碼的速率,M=2,4,8。 從 ISO/IEC18000-6C協(xié)議給出的密勒調(diào)制副載波序列可概括出密勒調(diào)制副載波的編碼規(guī)則[1]:每個比特的數(shù)據(jù)有M個副載波周期;邏輯1電平的中間發(fā)生相位的翻轉(zhuǎn);兩個相鄰的邏輯0電平之間發(fā)生相位的翻轉(zhuǎn);邏輯0電平期間不發(fā)生相位的翻轉(zhuǎn)。
在M=2時,產(chǎn)生數(shù)據(jù)時鐘二分頻信號CLK;將密勒編碼產(chǎn)生的密勒序列與二分頻時鐘同或[3,7],將產(chǎn)生M=2時的密勒調(diào)制副載波序列。
根據(jù)密勒調(diào)制副載波序列的特點(diǎn),設(shè)計了一種密勒調(diào)制副載波解碼器。主要的思想是利用FPGA在處理速度上的優(yōu)勢,記錄兩個數(shù)據(jù)上升沿之間經(jīng)過的數(shù)據(jù)解碼時鐘個數(shù),根據(jù)記錄的解碼時鐘個數(shù)確定解碼狀態(tài),然后根據(jù)當(dāng)前的時鐘個數(shù)以及當(dāng)前的解碼狀態(tài),確定當(dāng)前的解碼輸出。為了在超高頻讀寫器中很好地使用解碼器模塊,本解碼器還包括了前導(dǎo)序列檢測等功能。由于密勒調(diào)制副載波的相位變化特點(diǎn),做出如下的狀態(tài)分配:NO_LEAVE:解碼一開始就進(jìn)入此狀態(tài)。在解碼過程中,如果某一次計數(shù)完成剛好解碼出一個數(shù)據(jù)位,也進(jìn)入此狀態(tài)。
T1_LEAVE:如果某一次計數(shù)剛好記錄副載波半個周期的時間,則解碼器進(jìn)入此狀態(tài)。
T2_LEAVE:如果某一次計數(shù)剛好記錄副載波一個周期的時間,則解碼器進(jìn)入此狀態(tài)。
T3_LEAVE:如果某一次計數(shù)剛好記錄副載波一個半周期的時間,則解碼器進(jìn)入此狀態(tài)。
解碼器設(shè)計的狀態(tài)轉(zhuǎn)換圖如下:
圖4 解碼狀態(tài)裝換圖Fig.4 Decoding state transition diagram
為了檢測前導(dǎo)序列,在解碼模塊進(jìn)入解碼狀態(tài)后,檢測到第一個“0”的時候,把接下來的解碼輸出與10111進(jìn)行比較,如果開始的解碼輸出為10111,則證明后續(xù)的解碼數(shù)據(jù)為標(biāo)簽傳輸給閱讀器的有效數(shù)據(jù)[4]。
設(shè)計的密勒調(diào)制副載波序列編碼器及解碼器采用Verilog HDL語言實現(xiàn)。為了驗證設(shè)計時序的正確性,采用QuartusII9.1進(jìn)行設(shè)計輸入、編譯、綜合、布局布線[5]以及時序優(yōu)化等,并通過Altera公司FPGA專用下載線下載到目標(biāo)板上進(jìn)行測試,設(shè)計編解碼模塊測試結(jié)果完全達(dá)到了設(shè)計時序要求。圖5為通過QuertusII9.1仿真得到的波形圖。在仿真測試中,旨在驗證本設(shè)計的正確性,故選擇M=2。密勒調(diào)制副載波編碼模塊仿真結(jié)果如圖5所示。
圖5 編碼模塊仿真圖Fig.5 Encoding module simulated map
在圖5中reset為復(fù)位信號,當(dāng)reset為高電平時,密勒調(diào)制副載波編碼模塊開始編碼;clk0為編碼時鐘,是由數(shù)據(jù)時鐘二分頻產(chǎn)生的;data_bit是與數(shù)據(jù)時鐘同步的待編碼數(shù)據(jù);dataout是編碼輸出。
在分析了密勒調(diào)制副載波特性后,用Verilog HDL硬件描述語言根據(jù)解碼狀態(tài)轉(zhuǎn)換圖實現(xiàn)的解碼模塊仿真結(jié)果如圖6所示。
在圖6中,reset是復(fù)位信號,低電平解碼模塊復(fù)位,clk1是編碼時鐘,clk2是解碼時鐘,dataout是編碼輸出的密勒調(diào)制副載波序列,outdata是解碼模塊輸出的信號,從圖中也能夠清晰地看到,編碼模塊輸出是符合密勒調(diào)制副載波序列特性的。
圖6 解碼模塊仿真圖Fig.6 Decoding module simulated map
通過仿真并且下載到EP1C12Q240C8目標(biāo)板上,通過示波器檢測相應(yīng)的輸出引腳信號,與設(shè)計時序進(jìn)行對比,可以發(fā)現(xiàn)設(shè)計完全實現(xiàn)了密勒調(diào)制副載波編解碼功能,示波器能夠檢測到密勒調(diào)制副載波序列和解碼輸出序列,證明了設(shè)計的正確性。
基于ISO/IEC18000-6C協(xié)議中規(guī)定的密勒調(diào)制副載波序列,分析了密勒編碼的特點(diǎn),并且由密勒編碼的特點(diǎn)設(shè)計出了密勒調(diào)制副載波編碼器;在研究協(xié)議規(guī)定的密勒調(diào)制副載波序列特性后,設(shè)計出了超高頻讀寫器中常用的密勒調(diào)制副載波解碼器;并運(yùn)用Verilog HDL硬件描述語言在FPGA上實現(xiàn)了該設(shè)計,測試結(jié)果驗證了該設(shè)計的正確性。該設(shè)計具有編解碼效率高、移植性好、方便模塊化設(shè)計等優(yōu)點(diǎn)。
[1]EPC global.EPC radio-frequency,identity protocols class-1 generation-2 UHF RFID protocol for communications at 860MHz~960MHz Version 1.2.0 [S].U.S.A.EPC global Inc,2008.
[2]樊昌信,張甫翊,徐炳祥,等.通信原理[M].北京:國防工業(yè)出版社,2008.
[3]邱祖江,郭亞煒,楊蓮興.一種改進(jìn)miller編解碼的實現(xiàn)方法[J].微電子學(xué),2000,30(3):176-178.
QIU Zu-jiang,GUO Ya-wei,YANG Lian-xing.An improved implementation method of encoding and decoding miller[J].Microelectronics,2000,30(3):176-178.
[4]肖自鏵,馬琪,顧偉,等.一種應(yīng)用于超高頻射頻識別的密勒編碼器[J].杭州電子科技大學(xué)學(xué)報,2008 28(6):13-16.
XIAO Zi-hua,MA Qi,GU Wei,et al.A used Miller UHF RFID encoder[J].Hangzhou University of Electronic Science and Technology,2008,28(6):13-16.
[5]周潤景,圖雅,張麗敏.基于 QuertusII的 FPGA/CPLD數(shù)字系統(tǒng)實際實例[M].北京:電子工業(yè)出版社,2007.
[6]方洪燦,張福洪,陳勝康.一種改進(jìn)的RFID中的密勒調(diào)制解碼方法[J].電子技術(shù)應(yīng)用,200935(9):71-73.
FANG Hong-can,ZHANG Fu-hong,CHEN Sheng-kang.An improved decoding method of Miller in RFID[J].E-technology applications,2009,35(9):71-73.