??? 摘 要: 介紹了射頻識別" title="射頻識別">射頻識別(RFID)系統(tǒng)中讀寫器" title="讀寫器">讀寫器的設(shè)計開發(fā)以及RFID系統(tǒng)中S6700芯片的通信協(xié)議,同時給出了讀寫器硬件系統(tǒng)的結(jié)構(gòu),、底層驅(qū)動和軟件工作流程,。讀寫器采用ATMEL公司的ATmega128單片機和TI公司的13.56MHz頻段下的多協(xié)議收發(fā)芯片S6700。
??? 關(guān)鍵詞: 射頻識別? RFID? S6700? ISO/IEO15693? 讀寫器
?
??? 射頻識別RFID(Radio Frequency Identification)技術(shù)于20世紀(jì)80年代興起,,最近幾年得到迅速發(fā)展,。它是一種利用射頻通信方法實現(xiàn)非接觸式、快速,、實時,、準(zhǔn)確地采集與處理信息的自動識別技術(shù)。RFID技術(shù)同互聯(lián)網(wǎng)技術(shù)相結(jié)合可以實現(xiàn)全球范圍內(nèi)物品的跟蹤與信息的共享,,被世界公認(rèn)為21世紀(jì)十大最熱門的重要技術(shù)之一,,具有廣泛的應(yīng)用前景。近年來RFID產(chǎn)業(yè)在我國迅速增長,,已滲透到人們生活,、工作等各個方面。RFID市場分析預(yù)測顯示,,我國RFID需求增長迅速,。2006年10月份國家將射頻識別(RFID)技術(shù)列入863重大應(yīng)用項目,科技部撥巨額資金重點支持我國RFID領(lǐng)域技術(shù)的突破與自主創(chuàng)新,。
??? 讀寫器在整個射頻識別系統(tǒng)" title="射頻識別系統(tǒng)">射頻識別系統(tǒng)中起著舉足輕重的作用,。讀寫器的頻率決定了射頻識別系統(tǒng)的工作頻段,其功率直接影響射頻識別的距離,。人們通過計算機應(yīng)用軟件來處理對射頻標(biāo)簽寫入或讀取其攜帶的數(shù)據(jù)信息,,由于標(biāo)簽的非接觸性,人們必須借助處于應(yīng)用系統(tǒng)與標(biāo)簽之間的讀寫器來實現(xiàn)數(shù)據(jù)的讀寫功能,。這使得讀寫器在整個通信過程中起著關(guān)鍵性的橋梁作用,。圖1是讀寫器與應(yīng)答器組成的一個簡單的射頻識別系統(tǒng)。
??????????????????
1 讀寫器的組成結(jié)構(gòu)
??? 讀寫器可以簡化為兩個基本的功能模塊:控制部分和射頻部分,??刂撇糠旨碝CU控制電路,其功能是由智能單元發(fā)出命令,對射頻部分回收來的信號進行必要的處理,,將結(jié)果放入存儲單元,。 而射頻部分由讀寫器芯片及外圍電路組成,包括發(fā)射器和接收器,,其功能包括對發(fā)射信號進行調(diào)制,、將數(shù)據(jù)傳送給電子標(biāo)簽、接收并解調(diào)來自電子標(biāo)簽的高頻信號,。
2 硬件設(shè)計
2.1讀寫器芯片S6700
??? S6700是TI公司推出的一款具有代表性的多協(xié)議收發(fā)器" title="收發(fā)器">收發(fā)器芯片(RI-R6C-001A),,工作頻率為13.56MHz;支持三種協(xié)議,,分別是Tag-it協(xié)議,、ISO/IEC 15693-2、ISO/IEC 14443-2(TYPE A),;其典型電源為+5V,,典型發(fā)射功率為200mW,確保電壓在3~5.5V之間,;采用SSOP20封裝,,內(nèi)部集成有發(fā)射調(diào)節(jié)器和接收解調(diào)器,采用曼徹斯特編碼方式,,有空閑模式(IDLE),、掉電模式(POWER DOWN)、工作模式(FULL POWER)三種電源管理功能,;支持的調(diào)制方式有100%和10%~30%的ASK(Amplitude Shift Keying),,這兩種調(diào)制方式可以通過應(yīng)用軟件切換,調(diào)制深度通過改變與R_MOD端相連的電阻值來實現(xiàn),。S6700芯片內(nèi)部邏輯框圖如圖2所示,。
??????????????????????
??? 發(fā)射通道首先對DIN、SCLOCK的數(shù)據(jù)解碼,,經(jīng)過深度調(diào)制,,再經(jīng)過功率放大器和低通濾波器后輸出。接收通道對接收數(shù)據(jù)進行檢波,,得到423/484/848kHz的信號,,經(jīng)解碼后輸出DOUT和M_ERR信號,。
??? 在讀寫過程中,,ISO/IEO15693-2所規(guī)定的讀寫器與應(yīng)答器通信物理層協(xié)議的接口全部由S6700實現(xiàn),CPU通過同步串行接口(SPI)與S6700相連,,CPU和S6700的通信接口有四根線:時鐘線(SCLOCK),、數(shù)據(jù)輸入線(DIN)、數(shù)據(jù)輸出線(DOUT)、出錯檢測線(M_ERR),。其中時鐘線是雙向的,,在時鐘的上升沿鎖存數(shù)據(jù)。DOUT 除了有在接收數(shù)據(jù)期間的數(shù)據(jù)輸出功能外,,還用來表征芯片內(nèi)部FIFO 的情況,。讀寫器通信過程如圖3所示。
??????????????????????
2.2 模塊總體設(shè)計
??? 控制部分MCU選用ATMEL公司的ATmega128芯片,,是AVR單片機中功能很強的一款單片機,,該芯片具有高性能、低功耗的 AVR 8 位微處理器,,有先進的RISC結(jié)構(gòu),,具有128KB的系統(tǒng)內(nèi)在線可編程Flash。
??? 所設(shè)計的讀寫器電路如圖4所示,包括三個部分:S6700典型應(yīng)用電路及外圍輔助電路,、CPU接口電路和天線等效電路,。S6700各對應(yīng)端分別連接在ATmega128的PE5、PA0,、PA1,、PB5引腳上。在S6700的TX_OUT端將調(diào)制好的信號輸出,,經(jīng)過一個LC網(wǎng)絡(luò)將信號諧振放大,,然后經(jīng)過一個T形網(wǎng)絡(luò)(雙L網(wǎng)絡(luò)) 進行通帶的選擇與阻抗的匹配,最后輸出到50Ω的天線,。由于使用同一收發(fā)天線,,在芯片的接收端應(yīng)接一個2.2kΩ保護電阻,以避免發(fā)射信號電壓過大對芯片接收引腳造成損壞,。R4,、L4、C8,、C9組成串聯(lián)諧振電路,,匹配阻抗為50Ω,可調(diào)電容C9用來準(zhǔn)確調(diào)整電路諧振點在13.56MHz,。因為S6700與外部天線模塊是直接相連,,考慮到加上同軸電纜后將使得接口電路的穩(wěn)定性下降,可通過調(diào)節(jié)C9得到13.56MHz且滿足50Ω的匹配阻抗,。這一設(shè)計有利于讀寫器正確地收發(fā)信息,。
?????? ??????????
3 通信協(xié)議
??? 讀寫器與電子標(biāo)簽通信采用半雙工模式,即一問一答模式,。一般都是由讀寫器先發(fā)言(Reader talks first),。參照圖3所示的讀寫器的通信過程,,必須符合控制器與收發(fā)器S6700之間的通信協(xié)議以及收發(fā)器S6700與電子標(biāo)簽遵循的ISO15693-3規(guī)范。這里主要結(jié)合這兩部分的通信協(xié)議加以討論,。
3.1 請求命令結(jié)構(gòu)
??? 控制器發(fā)送一個命令給收發(fā)器必須保證正確的時序,。一個典型命令的結(jié)構(gòu)是:起始位S1,8位命令,,數(shù)據(jù)(域),,結(jié)束位ES1。
??? (1)起始位S1,、結(jié)束位ES1波形如圖5所示,。
??????????????????????
??? (2)命令字節(jié):規(guī)定收發(fā)器與電子標(biāo)簽通信時的相關(guān)參數(shù)。
??? (3)數(shù)據(jù):數(shù)據(jù)域內(nèi)容由ISO15693-3規(guī)定,,取決于命令內(nèi)容,。
??? 命令參數(shù)是表明遠(yuǎn)耦合器(VCD)到遠(yuǎn)耦合IC卡(VICC)之間的通信規(guī)則,包括采用什么支持協(xié)議,、脈沖位置編碼方式,、調(diào)制深度、AM或FSK(頻移鍵控),,例如:2EH,,表示普通模式、支持射頻協(xié)議15693(1 out of? 4),、AM調(diào)制方式,、調(diào)制深度100%、返回數(shù)據(jù)采用高數(shù)據(jù)率,。只有該命令字節(jié)的發(fā)送順序是高位在先,,即MSB FIRST,其他的數(shù)據(jù),、標(biāo)志位發(fā)送順序都是低位在先,,即LSB FIRST。
??? 以命令2E(00101110)和數(shù)據(jù)4E(01001110)為例的通信如圖6所示,。
???????????????????
??? 每個數(shù)據(jù)位在SCLOCK的上升沿時發(fā)送,。當(dāng)SCLOCK的管腳保持高電平時,數(shù)據(jù)位的電平必須保持不變,。命令模式有二種:普通模式和寄存器模式,。表明所采用的射頻協(xié)議、調(diào)制方式及傳輸速率等是由命令序列中規(guī)定的還是由寄存器所設(shè)定的,。普通模式指令包含所有參數(shù),,而寄存器模式不含這些參數(shù),而是由預(yù)先寫入寄存器的數(shù)值決定,,在該模式下,,命令字節(jié)為1位,,且該位為1,。
??? 15693-3 規(guī)定的請求格式如表1所示,。
?????????????????????
??? 標(biāo)志位(FLAG)用來指出將由VICC執(zhí)行的行為以及相應(yīng)的域存在與否,相當(dāng)于從VICC到VCD的通信規(guī)則,,如采用何種方式:單/雙副載波頻率和高/低數(shù)據(jù)傳輸率等,。比較上面兩個請求命令格式,注意到S1和ES1在收發(fā)器命令中已經(jīng)存在,,這里只需把15693命令序列中的標(biāo)志位,、命令碼、數(shù)據(jù),、CRC等內(nèi)容放入收發(fā)器命令的數(shù)據(jù)域中,。序列S1、CMD,、DATA,、ES1會發(fā)送一個“SOF,數(shù)據(jù),,EOF”給電子標(biāo)簽,,即從MCU至S6700,從S6700至VICC兩個請求過程,,這兩個通信過程不是同時刻發(fā)送的,,S6700中存在FIFO緩沖器,并在DOUT中體現(xiàn)出來,。傳送的一些編碼等信息會從幀首中體現(xiàn)出來(可參考15693-2定義),。
3.2 響應(yīng)結(jié)構(gòu)
??? VICC響應(yīng)的基本格式如表2所示。
???????????????????
??? 起始位S2和結(jié)束位ES2:分別表示VICC響應(yīng)數(shù)據(jù)的開始和結(jié)束,。其波形如圖7所示,。
?????????????????????
4 程序設(shè)計流程
4.1 Inventory 及程序流程
??? Inventory 請求指令和響應(yīng)結(jié)構(gòu)分別如表3、表4所示,,其中請求Flags設(shè)置為06,,即選擇16時隙" title="時隙">時隙(slot),不顯示AFI域,。Inventory 命令代碼為01,,防沖撞算法參數(shù)為Mask length和Mask value。只進行16時隙時,,Mask length設(shè)為0,。
??? 命令流程是SOF/發(fā)送Inventory請求命令/EOF后進入slot 1, 以EOF切換到下一時隙直到slot 16為止。在一時隙中遇到有沖撞或是無標(biāo)簽響應(yīng)時,,切換到下一時隙,。Inventory流程圖如圖8所示,。
??????????????????????????
4.2 底層驅(qū)動實現(xiàn)
??? 從以上分析 ISO15693 的通信協(xié)議和時序可知,閱讀器軟件設(shè)計主要工作是按照 ISO15693 的通信格式及時序要求進行接口驅(qū)動程序的編寫,。下面是底層驅(qū)動的實現(xiàn)方法,,主要是寫命令函數(shù) Write_cmd(char cmd)、寫數(shù)據(jù)函數(shù) Write_data(char data_buf)和讀數(shù)據(jù)函數(shù)Read_data(char *cdata),。
??? void Write_cmd(char cmd)
??? {for (char Bitnum=8;Bitnum>0;Bitnum--)
??? {PB5=0; ???????????? //DIN=0
??? if(cmd&0x80)
??? PB5=1; ???????????? //DIN=1
??? PE5=1; ???????????? //SCLOCK=1
??? PE5=0;??????????????//SCLOCK=0
??? cmd<<=1;
??? }}
??? void Write_data(char data_buf)
??? {while(PA1);????????//FIFO Manage
??? for (char Bitnum=8;Bitnum>0;Bitnum--)
??? { while(PA1);?
????PB5=0; ??????????? //DIN=0
??? if(Data_buf&0x01)
??? PB5=1; ???????????? //DIN=1
??? PE5=1; ???????????? //SCLOCK=1
??? PE5=0;????????????? //SCLOCK=0
??? Data_buf>>=1;
??? } }
??? void Read_data(char *cdata)
??? {char Readin;
??? for (char Bitnum=0;Bitnum<8;Bitnum++)
??? { while(PE5==1); ?? //等待SCLOCK=0
??? while(PE5==0); ???? //等待SCLOCK=1
??? Readin>>=1;
??? if(PA1==1)????? ????//判斷 DOUT=1,?
??? Readin |=80; }
??? Cdata(bitnum)=Readin;??? }
??? 本文主要介紹射頻識別系統(tǒng)中讀寫模塊的軟硬件設(shè)計,其讀寫器模塊通過PC機和串口通信軟件測試,,實現(xiàn)了識別與數(shù)據(jù)通信,,能成功用Inventory命令識別出電子標(biāo)簽的唯一序列號。通過進一步地改進硬件設(shè)計與優(yōu)化軟件編程,,將會進一步提高讀寫距離,、識別效率、防沖撞性能和穩(wěn)定性,。
參考文獻
[1] ?TEXAS INSTRUMENTS S6700 multi protocol transceiver?IC RI-R6C-001A Reference Guide.2005.
[2] ?Tag-it HF-I standard / Pro / plus transponder IC reference guide. 2005.
[3] ?ISO/IEC 15693-3. Identification cards-contactless integrated circuit cards-vicinity cards part 3: anticollision and?transmission protocal[S]. 2000.
[4]?FINKENZELLER K. 射頻識別(RFID)技術(shù)[M](第3版).吳曉鋒,陳大材譯.北京:電子工業(yè)出版社,,2006.
[5]?紀(jì)震,李慧慧,姜來.電子標(biāo)簽原理與應(yīng)用[M]. 西安:西安電子科技大學(xué)出版社,2006.
[6]?蔣錦楊.多協(xié)議芯片RI-R6C的非接觸IC卡讀寫器設(shè)計[J]. 單片機與嵌入式系統(tǒng)應(yīng)用,,2005(12).