射頻識(shí)別系統(tǒng)中高頻讀寫(xiě)器的研究與開(kāi)發(fā)
文章出處:http://5052h112.com 作者:吳戰(zhàn)克,孫多春,劉賀平 人氣: 發(fā)表時(shí)間:2011年10月16日
射頻識(shí)別RFID(Radio Frequency Identification)技術(shù)于20世紀(jì)80年代興起,最近幾年得到迅速發(fā)展。它是一種利用射頻通信方法實(shí)現(xiàn)非接觸式、快速、實(shí)時(shí)、準(zhǔn)確地采集與處理信息的自動(dòng)識(shí)別技術(shù)。RFID技術(shù)同互聯(lián)網(wǎng)技術(shù)相結(jié)合可以實(shí)現(xiàn)全球范圍內(nèi)物品的跟蹤與信息的共享,被世界公認(rèn)為21世紀(jì)十大最熱門(mén)的重要技術(shù)之一,具有廣泛的應(yīng)用前景。近年來(lái)RFID產(chǎn)業(yè)在我國(guó)迅速增長(zhǎng),已滲透到人們生活、工作等各個(gè)方面。RFID市場(chǎng)分析預(yù)測(cè)顯示,我國(guó)RFID需求增長(zhǎng)迅速。2006年10月份國(guó)家將射頻識(shí)別(RFID)技術(shù)列入863重大應(yīng)用項(xiàng)目,科技部撥巨額資金重點(diǎn)支持我國(guó)RFID領(lǐng)域技術(shù)的突破與自主創(chuàng)新。
讀寫(xiě)器在整個(gè)射頻識(shí)別系統(tǒng)中起著舉足輕重的作用。讀寫(xiě)器的頻率決定了射頻識(shí)別系統(tǒng)的工作頻段,其功率直接影響射頻識(shí)別的距離。人們通過(guò)計(jì)算機(jī)應(yīng)用軟件來(lái)處理對(duì)射頻標(biāo)簽寫(xiě)入或讀取其攜帶的數(shù)據(jù)信息,由于標(biāo)簽的非接觸性,人們必須借助處于應(yīng)用系統(tǒng)與標(biāo)簽之間的讀寫(xiě)器來(lái)實(shí)現(xiàn)數(shù)據(jù)的讀寫(xiě)功能。這使得讀寫(xiě)器在整個(gè)通信過(guò)程中起著關(guān)鍵性的橋梁作用。
1 讀寫(xiě)器的組成結(jié)構(gòu)
讀寫(xiě)器可以簡(jiǎn)化為兩個(gè)基本的功能模塊:控制部分和射頻部分。控制部分即MCU控制電路,其功能是由智能單元發(fā)出命令,對(duì)射頻部分回收來(lái)的信號(hào)進(jìn)行必要的處理,將結(jié)果放入存儲(chǔ)單元。 而射頻部分由讀寫(xiě)器芯片及外圍電路組成,包括發(fā)射器和接收器,其功能包括對(duì)發(fā)射信號(hào)進(jìn)行調(diào)制、將數(shù)據(jù)傳送給電子標(biāo)簽、接收并解調(diào)來(lái)自電子標(biāo)簽的高頻信號(hào)。
2 硬件設(shè)計(jì)
2.1讀寫(xiě)器芯片S6700
S6700是TI公司推出的一款具有代表性的多協(xié)議收發(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)制方式可以通過(guò)應(yīng)用軟件切換,調(diào)制深度通過(guò)改變與R_MOD端相連的電阻值來(lái)實(shí)現(xiàn)。
發(fā)射通道首先對(duì)DIN、SCLOCK的數(shù)據(jù)解碼,經(jīng)過(guò)深度調(diào)制,再經(jīng)過(guò)功率放大器和低通濾波器后輸出。接收通道對(duì)接收數(shù)據(jù)進(jìn)行檢波,得到423/484/848kHz的信號(hào),經(jīng)解碼后輸出DOUT和M_ERR信號(hào)。
在讀寫(xiě)過(guò)程中,ISO/IEO15693-2所規(guī)定的讀寫(xiě)器與應(yīng)答器通信物理層協(xié)議的接口全部由S6700實(shí)現(xiàn),CPU通過(guò)同步串行接口(SPI)與S6700相連,CPU和S6700的通信接口有四根線:時(shí)鐘線(SCLOCK)、數(shù)據(jù)輸入線(DIN)、數(shù)據(jù)輸出線(DOUT)、出錯(cuò)檢測(cè)線(M_ERR)。其中時(shí)鐘線是雙向的,在時(shí)鐘的上升沿鎖存數(shù)據(jù)。DOUT 除了有在接收數(shù)據(jù)期間的數(shù)據(jù)輸出功能外,還用來(lái)表征芯片內(nèi)部FIFO 的情況。
2.2 模塊總體設(shè)計(jì)
控制部分MCU選用ATMEL公司的ATmega128芯片,是AVR單片機(jī)中功能很強(qiáng)的一款單片機(jī),該芯片具有高性能、低功耗的 AVR 8 位微處理器,有先進(jìn)的RISC結(jié)構(gòu),具有128KB的系統(tǒng)內(nèi)在線可編程Flash。
所設(shè)計(jì)的讀寫(xiě)器電路如圖4所示,包括三個(gè)部分:S6700典型應(yīng)用電路及外圍輔助電路、CPU接口電路和天線等效電路。S6700各對(duì)應(yīng)端分別連接在ATmega128的PE5、PA0、PA1、PB5引腳上。在S6700的TX_OUT端將調(diào)制好的信號(hào)輸出,經(jīng)過(guò)一個(gè)LC網(wǎng)絡(luò)將信號(hào)諧振放大,然后經(jīng)過(guò)一個(gè)T形網(wǎng)絡(luò)(雙L網(wǎng)絡(luò)) 進(jìn)行通帶的選擇與阻抗的匹配,最后輸出到50Ω的天線。由于使用同一收發(fā)天線,在芯片的接收端應(yīng)接一個(gè)2.2kΩ保護(hù)電阻,以避免發(fā)射信號(hào)電壓過(guò)大對(duì)芯片接收引腳造成損壞。R4、L4、C8、C9組成串聯(lián)諧振電路,匹配阻抗為50Ω,可調(diào)電容C9用來(lái)準(zhǔn)確調(diào)整電路諧振點(diǎn)在13.56MHz。因?yàn)镾6700與外部天線模塊是直接相連,考慮到加上同軸電纜后將使得接口電路的穩(wěn)定性下降,可通過(guò)調(diào)節(jié)C9得到13.56MHz且滿足50Ω的匹配阻抗。這一設(shè)計(jì)有利于讀寫(xiě)器正確地收發(fā)信息。
3 通信協(xié)議
讀寫(xiě)器與電子標(biāo)簽通信采用半雙工模式,即一問(wèn)一答模式。一般都是由讀寫(xiě)器先發(fā)言(Reader talks first)。參照?qǐng)D3所示的讀寫(xiě)器的通信過(guò)程,必須符合控制器與收發(fā)器S6700之間的通信協(xié)議以及收發(fā)器S6700與電子標(biāo)簽遵循的ISO15693-3規(guī)范。這里主要結(jié)合這兩部分的通信協(xié)議加以討論。
3.1 請(qǐng)求命令結(jié)構(gòu)
控制器發(fā)送一個(gè)命令給收發(fā)器必須保證正確的時(shí)序。一個(gè)典型命令的結(jié)構(gòu)是:起始位S1,8位命令,數(shù)據(jù)(域),結(jié)束位ES1。
(1)起始位S1、結(jié)束位ES1波形。
(2)命令字節(jié):規(guī)定收發(fā)器與電子標(biāo)簽通信時(shí)的相關(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%、返回?cái)?shù)據(jù)采用高數(shù)據(jù)率。只有該命令字節(jié)的發(fā)送順序是高位在先,即MSB FIRST,其他的數(shù)據(jù)、標(biāo)志位發(fā)送順序都是低位在先,即LSB FIRST。
以命令2E(00101110)和數(shù)據(jù)4E(01001110)為例的通信如圖所示。
每個(gè)數(shù)據(jù)位在SCLOCK的上升沿時(shí)發(fā)送。當(dāng)SCLOCK的管腳保持高電平時(shí),數(shù)據(jù)位的電平必須保持不變。命令模式有二種:普通模式和寄存器模式。表明所采用的射頻協(xié)議、調(diào)制方式及傳輸速率等是由命令序列中規(guī)定的還是由寄存器所設(shè)定的。普通模式指令包含所有參數(shù),而寄存器模式不含這些參數(shù),而是由預(yù)先寫(xiě)入寄存器的數(shù)值決定,在該模式下,命令字節(jié)為1位,且該位為1。
15693-3 規(guī)定的請(qǐng)求格式如表1所示。
標(biāo)志位(FLAG)用來(lái)指出將由VICC執(zhí)行的行為以及相應(yīng)的域存在與否,相當(dāng)于從VICC到VCD的通信規(guī)則,如采用何種方式:?jiǎn)?雙副載波頻率和高/低數(shù)據(jù)傳輸率等。比較上面兩個(gè)請(qǐng)求命令格式,注意到S1和ES1在收發(fā)器命令中已經(jīng)存在,這里只需把15693命令序列中的標(biāo)志位、命令碼、數(shù)據(jù)、CRC等內(nèi)容放入收發(fā)器命令的數(shù)據(jù)域中。序列S1、CMD、DATA、ES1會(huì)發(fā)送一個(gè)“SOF,數(shù)據(jù),EOF”給電子標(biāo)簽,即從MCU至S6700,從S6700至VICC兩個(gè)請(qǐng)求過(guò)程,這兩個(gè)通信過(guò)程不是同時(shí)刻發(fā)送的,S6700中存在FIFO緩沖器,并在DOUT中體現(xiàn)出來(lái)。傳送的一些編碼等信息會(huì)從幀首中體現(xiàn)出來(lái)(可參考15693-2定義)。
3.2 響應(yīng)結(jié)構(gòu)
VICC響應(yīng)的基本格式如表2所示。
起始位S2和結(jié)束位ES2:分別表示VICC響應(yīng)數(shù)據(jù)的開(kāi)始和結(jié)束。其波形如圖所示。
4 程序設(shè)計(jì)流程
4.1 Inventory 及程序流程
Inventory 請(qǐng)求指令和響應(yīng)結(jié)構(gòu)分別如表3、表4所示,其中請(qǐng)求Flags設(shè)置為06,即選擇16時(shí)隙(slot),不顯示AFI域。Inventory 命令代碼為01,防沖撞算法參數(shù)為Mask length和Mask value。只進(jìn)行16時(shí)隙時(shí),Mask length設(shè)為0。
命令流程是SOF/發(fā)送Inventory請(qǐng)求命令/EOF后進(jìn)入slot 1, 以EOF切換到下一時(shí)隙直到slot 16為止。在一時(shí)隙中遇到有沖撞或是無(wú)標(biāo)簽響應(yīng)時(shí),切換到下一時(shí)隙。Inventory流程圖如圖所示。
4.2 底層驅(qū)動(dòng)實(shí)現(xiàn)
從以上分析 ISO15693 的通信協(xié)議和時(shí)序可知,閱讀器軟件設(shè)計(jì)主要工作是按照 ISO15693 的通信格式及時(shí)序要求進(jìn)行接口驅(qū)動(dòng)程序的編寫(xiě)。下面是底層驅(qū)動(dòng)的實(shí)現(xiàn)方法,主要是寫(xiě)命令函數(shù) Write_cmd(char cmd)、寫(xiě)數(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; }
本文主要介紹射頻識(shí)別系統(tǒng)中讀寫(xiě)模塊的軟硬件設(shè)計(jì),其讀寫(xiě)器模塊通過(guò)PC機(jī)和串口通信軟件測(cè)試,實(shí)現(xiàn)了識(shí)別與數(shù)據(jù)通信,能成功用Inventory命令識(shí)別出電子標(biāo)簽的唯一序列號(hào)。通過(guò)進(jìn)一步地改進(jìn)硬件設(shè)計(jì)與優(yōu)化軟件編程,將會(huì)進(jìn)一步提高讀寫(xiě)距離、識(shí)別效率、防沖撞性能和穩(wěn)定性。