新聞中心

        EEPW首頁 > 設計應用 > RFID中高頻讀寫器的開發

        RFID中高頻讀寫器的開發

        作者: 時間:2010-12-07 來源:網絡 收藏

        RFID(RadioFrequencyIdentification)技術于20世紀80年代興起,最近幾年得到迅速發展。它是一種利用射 頻通信方法實現非接觸式、快速、實時、準確地采集與處理信息的自動識別技術。RFID技術同互聯網技術相結合可以實現全球范圍內物品的跟蹤與信息的共享, 被世界公認為21世紀十大最熱門的重要技術之一,具有廣泛的應用前景。近年來RFID產業在我國迅速增長,已滲透到人們生活、工作等各個方面。RFID市 場分析預測顯示,我國RFID需求增長迅速。2006年10月份國家將(RFID)技術列入863重大應用項目,科技部撥巨額資金重點支持我國 RFID領域技術的突破與自主創新。

        在整個系統中起著舉足輕重的作用。的頻率決定了射頻識別系統的工作頻段, 其功率直接影響射頻識別的距離。人們通過計算機應用軟件來處理對射頻標簽寫入或讀取其攜帶的數據信息,由于標簽的非接觸性,人們必須借助處于應用系統與標 簽之間的來實現數據的讀寫功能。這使得讀寫器在整個通信過程中起著關鍵性的橋梁作用。

          1讀寫器的組成結構

        讀寫器可以簡化為兩個基本的功能模塊:控制部分和射頻部分。控制部分即MCU控制電路,其功能是由智能單元發出命令,對射頻部分回收來的信號進行必要的 處理,將結果放入存儲單元。而射頻部分由讀寫器芯片及外圍電路組成,包括發射器和接收器,其功能包括對發射信號進行調制、將數據傳送給電子標簽、接收并 解調來自電子標簽的信號。

        2硬件設計

        2.1讀寫器芯片S6700

        S6700是TI公司推出的一款具有代表性的多協議收發器芯片(RI-R6C-001A),工作頻率為13.56MHz;支持三種協議,分別是Tag- it協議、ISO/IEC15693-2、ISO/IEC14443-2(TYPEA);其典型電源為+5V,典型發射功率為200mW,確保電壓 在3~5.5V之間;采用SSOP20封裝,內部集成有發射調節器和接收解調器,采用曼徹斯特編碼方式,有空閑模式(IDLE)、掉電模式 (POWERDOWN)、工作模式(FULLPOWER)三種電源管理功能;支持的調制方式有100%和10%~30%的 ASK(AmplitudeShiftKeying),這兩種調制方式可以通過應用軟件切換,調制深度通過改變與R_MOD端相連的電阻值來實現。

        發射通道首先對DIN、SCLOCK的數據解碼,經過深度調制,再經過功率放大器和低通濾波器后輸出。接收通道對接收數據進行檢波,得到423/484/848kHz的信號,經解碼后輸出DOUT和M_ERR信號。

        在讀寫過程中,ISO/IEO15693-2所規定的讀寫器與應答器通信物理層協議的接口全部由S6700實現,CPU通過同步串行接口(SPI)與 S6700相連,CPU和S6700的通信接口有四根線:時鐘線(SCLOCK)、數據輸入線(DIN)、數據輸出線(DOUT)、出錯檢測線 (M_ERR)。其中時鐘線是雙向的,在時鐘的上升沿鎖存數據。DOUT除了有在接收數據期間的數據輸出功能外,還用來表征芯片內部FIFO的情況。

          2.2模塊總體設計

        控制部分MCU選用ATMEL公司的ATmega128芯片,是AVR單片機中功能很強的一款單片機,該芯片具有高性能、低功耗的AVR8位微處理器,有先進的RISC結構,具有128KB的系統內在線可編程Flash。

        所設計的讀寫器電路包括三個部分:S6700典型應用電路及外圍輔助電路、CPU接口電路和天線等效電路。S6700各對應端分別連接在 ATmega128的PE5、PA0、PA1、PB5引腳上。在S6700的TX_OUT端將調制好的信號輸出,經過一個LC網絡將信號諧振放大,然后經 過一個T形網絡(雙L網絡)進行通帶的選擇與阻抗的匹配,最后輸出到50Ω的天線。由于使用同一收發天線,在芯片的接收端應接一個2.2kΩ保護電阻, 以避免發射信號電壓過大對芯片接收引腳造成損壞。R4、L4、C8、C9組成串聯諧振電路,匹配阻抗為50Ω,可調電容C9用來準確調整電路諧振點在 13.56MHz。因為S6700與外部天線模塊是直接相連,考慮到加上同軸電纜后將使得接口電路的穩定性下降,可通過調節C9得到13.56MHz且滿 足50Ω的匹配阻抗。這一設計有利于讀寫器正確地收發信息。

         3通信協議

        讀 寫器與電子標簽通信采用半雙工模式,即一問一答模式。一般都是由讀寫器先發言(Readertalksfirst)。參照圖3所示的讀寫器的通信過 程,必須符合控制器與收發器S6700之間的通信協議以及收發器S6700與電子標簽遵循的ISO15693-3規范。這里主要結合這兩部分的通信協議加 以討論。

          3.1請求命令結構

        控制器發送一個命令給收發器必須保證正確的時序。一個典型命令的結構是:起始位S1,8位命令,數據(域),結束位ES1。

        (1)起始位S1、結束位ES1波形。
        (2)命令字節:規定收發器與電子標簽通信時的相關參數。
        (3)數據:數據域內容由ISO15693-3規定,取決于命令內容。

        命令參數是表明遠耦合器(VCD)到遠耦合IC卡(VICC)之間的通信規則,包括采用什么支持協議、脈沖位置編碼方式、調制深度、AM或FSK(頻移 鍵控),例如:2EH,表示普通模式、支持射頻協議15693(1outof4)、AM調制方式、調制深度100%、返回數據采用高數據率。只有該 命令字節的發送順序是高位在先,即MSBFIRST,其他的數據、標志位發送順序都是低位在先,即LSBFIRST。

        以命令2E(00101110)和數據4E(01001110)為例的通信如圖所示。

        本文引用地址:http://www.104case.com/article/260620.htm每個數據位在SCLOCK的上升沿時發送。當SCLOCK的管腳保持高電平時,數據位的電平必須保持不變。命令模式有二種:普通模式和寄存器模式。表明 所采用的射頻協議、調制方式及傳輸速率等是由命令序列中規定的還是由寄存器所設定的。普通模式指令包含所有參數,而寄存器模式不含這些參數,而是由預先寫 入寄存器的數值決定,在該模式下,命令字節為1位,且該位為1。

        15693-3規定的請求格式如表1所示。

        標志位(FLAG)用來指出將由VICC執行的行為以及相應的域存在與否,相當于從VICC到VCD的通信規則,如采用何種方式:單/雙副載波頻率和高 /低數據傳輸率等。比較上面兩個請求命令格式,注意到S1和ES1在收發器命令中已經存在,這里只需把15693命令序列中的標志位、命令碼、數據、 CRC等內容放入收發器命令的數據域中。序列S1、CMD、DATA、ES1會發送一個“SOF,數據,EOF”給電子標簽,即從MCU至S6700,從 S6700至VICC兩個請求過程,這兩個通信過程不是同時刻發送的,S6700中存在FIFO緩沖器,并在DOUT中體現出來。傳送的一些編碼等信息會 從幀首中體現出來(可參考15693-2定義)。

        3.2響應結構

        VICC響應的基本格式如表2所示。

        起始位S2和結束位ES2:分別表示VICC響應數據的開始和結束。其波形如圖所示。

        4程序設計流程

         4.1Inventory及程序流程

        Inventory請求指令和響應結構分別如表3、表4所示,其中請求Flags設置為06,即選擇16時隙(slot),不顯示AFI域。 Inventory命令代碼為01,防沖撞算法參數為Masklength和Maskvalue。只進行16時隙時,Masklength設為 0。

        命令流程是SOF/發送Inventory請求命令/EOF后進入slot1,以EOF切換到下一時隙直到slot16為止。在一時隙中遇到有沖撞或是無標簽響應時,切換到下一時隙。Inventory流程圖如圖所示。

         4.2底層驅動實現

        從以上分析ISO15693的通信協議和時序可知,閱讀器軟件設計主要工作是按照ISO15693的通信格式及時序要求進行接口驅動程序的編 寫。下面是底層驅動的實現方法,主要是寫命令函數Write_cmd(charcmd)、寫數據函 數Write_data(chardata_buf)和讀數據函數Read_data(char*cdata)。

        voidWrite_cmd(charcmd)
        {for(charBitnum=8;Bitnum>0;Bitnum--)
        {PB5=0;//DIN=0
        if(cmd0x80)
        PB5=1;//DIN=1
        PE5=1;//SCLOCK=1
        PE5=0;//SCLOCK=0
        cmd=1;
        }}
        voidWrite_data(chardata_buf)
        {while(PA1);//FIFOManage
        for(charBitnum=8;Bitnum>0;Bitnum--)
        {while(PA1);
        PB5=0;//DIN=0
        if(Data_buf0x01)
        PB5=1;//DIN=1
        PE5=1;//SCLOCK=1
        PE5=0;//SCLOCK=0
        Data_buf>>=1;
        }}
        voidRead_data(char*cdata)
        {charReadin;
        for(charBitnum=0;Bitnum8;Bitnum++)
        {while(PE5==1);//等待SCLOCK=0
        while(PE5==0);//等待SCLOCK=1
        Readin>>=1;
        if(PA1==1)//判斷DOUT=1?
        Readin|=80;}
        Cdata(bitnum)=Readin;}

        本文主要介紹射頻識別系統中讀寫模塊的軟硬件設計,其讀寫器模塊通過PC機和串口通信軟件測試,實現了識別與數據通信,能成功用Inventory命令 識別出電子標簽的唯一序列號。通過進一步地改進硬件設計與優化軟件編程,將會進一步提高讀寫距離、識別效率、防沖撞性能和穩定性。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 灌阳县| 阿拉尔市| 拉萨市| 兰西县| 称多县| 那坡县| 张家口市| 体育| 铅山县| 平昌县| 牡丹江市| 蓬安县| 商南县| 黔东| 临夏市| 仙游县| 舞阳县| 贡嘎县| 甘孜县| 正宁县| 玛曲县| 剑河县| 乌什县| 德兴市| 阿勒泰市| 中西区| 翁源县| 瑞昌市| 大化| 韩城市| 成武县| 鄂托克旗| 元阳县| 广东省| 杭锦后旗| 康马县| 永年县| 修武县| 石棉县| 科技| 龙胜|