無線射頻識別(Radio Frequency Identification,,RFID)是利用感應,、電磁場或電磁波為傳輸手段,完成非接觸式雙向通信,、獲取相關數(shù)據(jù)的一種自動識別技術。該技術完成識別工作時無須人工干預,,易于實現(xiàn)自動化且不易損壞,,可識別高速運動物體并可同時識別多個射頻卡,操作快捷方便,,已經(jīng)得到了廣泛的應用,。
目前存在的一些讀卡器,都需要讀卡芯片作為基站,,成本較高,。本文介紹了一種采用分立元件構成的125 kHz RFID閱讀器,電路結構簡單,,成本極低,,用于讀取EM4100型ID卡。
1 RFID系統(tǒng)的分類
RFID系統(tǒng)的分類方法有很多,,在通常應用中都是根據(jù)頻率來分,,根據(jù)不同的工作頻率,可將其分為以下四種:
(1)低頻(120~135 kHz),。該頻段具有很強的場穿透性,,使用不受限制,性能不受環(huán)境影響,,價格低廉,,最大識別距離一般小于60 cm,主要應用于門禁,、“一卡通”消費管理,、車輛管理等系統(tǒng);
(2)高頻(10~15 MHz),。該頻段與低頻相比,,具有防沖撞、能同時識別多個標簽的優(yōu)點,,但其性能受環(huán)境影響,,識別距離一般小于100 cm,主要應用于圖書管理,、物流等系統(tǒng),;
(3)超高頻(850~960 MHz)。該頻段較高頻相比,,具有可實現(xiàn)長距離識別的的優(yōu)點,,最大識別距離可達10 m,,但其性能受環(huán)境影響較大,價格也較貴,,主要應用于鐵路車輛識別、集裝箱識別等系統(tǒng),;
(4)微波(2.45~5.8 GHz),。該頻段可實現(xiàn)遠距離識別,識別距離可達100 m,,但其價格也最貴,,主要應用于智能交通系統(tǒng)中。
2 RFID系統(tǒng)的組成
射頻識別系統(tǒng)一般由閱讀器,、電子標簽,、天線三部分組成。
(1)閱讀器:讀取或讀/寫電子標簽信息的設備,,主要任務是控制射頻模塊向標簽發(fā)射讀取信號,,并接收標簽的應答,對標簽的標識信息進行解碼,,將標識信息連帶標簽上其他相關信息傳輸?shù)街鳈C以供處理,。一臺典型的閱讀器包含有高頻模塊(發(fā)送器和接收器)、控制單元以及與應答器連接的耦合元件,。此外,,許多閱讀器還有附加的接口(RS 232,RS 485等),,以便將所獲得的數(shù)據(jù)傳輸給另外的系統(tǒng)(如個人計算機),,其系統(tǒng)結構框圖如圖1所示。
(2)電子標簽(應答器):由芯片及內置天線組成,,芯片內保存有一定格式的電子數(shù)據(jù),,放在被識別物體上,作為待識別物品的標識性信息,,它是射頻識別系統(tǒng)真正的數(shù)據(jù)載體,,內置天線用于和射頻天線間進行通信。通常,,應答器沒有自己的供電電源,,只有在閱讀器的響應范圍以內,應答器才是有源的,。應答器工作所需的能量,,是通過耦合單元(非接觸的)傳輸給應答器的。
(3)天線:標簽與閱讀器之間數(shù)據(jù)傳輸?shù)妮d體,。
3 硬件電路設計
本設計以AVR系列單片機ATmega8作為微控制器,。Atmel公司的AVR是8位單片機中第一個真正采用RSIC結構的單片機,,它采用了大型快速存取寄存器組、快速單周期指令系統(tǒng)以及單級流水線等先進技術,,使得AVR單片機具有高達1 MLPS/MHz的高速運行處理能力,。
硬件電路如圖2所示,在圖2中①為載波產(chǎn)生及功率放大電路,,由單片機的T/C2工作于CTC模式,,產(chǎn)生標準125 kHz載波信號,經(jīng)過限流電阻R1后送入推挽式連接的三極管功率放大電路,,放大后的載波信號通過天線發(fā)射出去,。天線L1與電容C1構成串聯(lián)諧振電路,諧振頻率為125 kHz,,諧振電路的作用是使天線上獲得最大的電流,,從而產(chǎn)生最大的磁通量,獲得更大的讀卡距離,。②為檢波電路,,檢波電路用來去除125 kHz載波信號,還原出有用數(shù)據(jù)信號,。R2,,D1,R3,,C2構成基本包絡檢波電路,,C3為耦合電容,R4,,C4為低通濾波電路,,D2,D3為保護二極管,,輸出接到濾波放大電路,。③為濾波放大電路,濾波放大電路采用集成運放LM358對檢波后的信號進行濾波整形放大,,放大后的信號送入單片機的定時/計數(shù)器T1的輸入捕捉引腳ICPl,,由單片機對接收到的信號進行解碼,從而得到ID卡的卡號,。
4 軟件設計
本系統(tǒng)的軟件設計包括兩部分:125 kHz載波的產(chǎn)生和ID卡解碼,。載波信號產(chǎn)生相對簡單,可利用單片機的T/C2,,使其工作于CTC模式,,比較匹配時使輸出OC2取反便可得到125 kHz的方波。解碼軟件設計相對較復雜,,要對ID卡進行解碼,,首先應掌握ID卡的存儲格式和數(shù)據(jù)編碼方式,。
4.1 EM4100數(shù)據(jù)存儲格式
圖3是EM4100的64位數(shù)據(jù)信息,它由5個區(qū)組成:9個引導位,、10個行偶校驗位“PO~P9'’,、4個列偶校驗位“PC0~PC3”、40個數(shù)據(jù)位“D00~D93”和1個停止位S0,。9個引導位是出廠時就已掩膜在芯片內的,,其值為“111111111”,當它輸出數(shù)據(jù)時,,首先輸出9個引導位,然后是10組由4個數(shù)據(jù)位和1個行偶校驗位組成的數(shù)據(jù)串,,其次是4個列偶校驗位,,最后是停止位“0”。“D00~D13”是一個8位的晶體版本號或ID識別碼,。“D20~D93”是8組32位的芯片信息,,即卡號。
每當EM4100將64個信息位傳輸完畢后,,只要ID卡仍處于讀卡器的工作區(qū)域內,,它將再次按照圖3順序發(fā)送64位信息,如此重復,,直至ID卡退出讀卡器的有效工作區(qū)域,。
4.2 EM4100數(shù)據(jù)編碼方式
EM4100采用曼徹斯特編碼,如圖4所示:位數(shù)據(jù)“1”對應著電平下跳,,位數(shù)據(jù)“0”對應著電平上跳,。在一串數(shù)據(jù)傳送的數(shù)據(jù)序列中,兩個相鄰的位數(shù)據(jù)傳送跳變時間間隔應為1P,。若相鄰的位數(shù)據(jù)極性相同(相鄰兩位均為“O”或“1”),,則在兩次位數(shù)據(jù)傳送的電平跳變之間,有一次非數(shù)據(jù)傳送的,、預備性的(電平)“空跳”,。電平的上跳、下跳和空跳是確定位數(shù)據(jù)傳送特征的判據(jù),。在曼徹斯*調制方式下,,M4100每傳送一位數(shù)據(jù)的時間是64個振蕩周期,其值由RF/n決定,。若載波頻率為125 kHz,,則每傳送一位的時間為振蕩周期的64分頻,即位傳送時間為:1P=64/125 kHz=512μs,,則半個周期的時間為256μs,。
4.3 解碼軟件設計
ATmega8單片機T/C1的輸入捕捉功能是AVR定時/計數(shù)器的一個非常有特點的功能,,T/C1的輸入捕捉單元可用于精確捕捉一個外部事件的發(fā)生,記錄事件發(fā)生的時間印記,。當一個輸入捕捉事件發(fā)生時,,T/C1的計數(shù)器TCNTl中的計數(shù)值被寫入輸入捕捉寄存器ICRl中,并置位輸入捕獲標志位ICFl,,產(chǎn)生中斷申請,。可通過設置寄存器TCCRlB的第6位ICESl來設定輸入捕捉信號觸發(fā)方式,。本系統(tǒng)利用單片機的輸入捕捉功能進行解碼,。
由曼徹斯特編碼特點可知,每位數(shù)據(jù)都由半個周期的高電平和半個周期的低電平組成,,因此可將一個位數(shù)據(jù)拆分為兩位,,即位數(shù)據(jù)“1”可視為“10”,位數(shù)據(jù)“O”可視為“01”,,則64位數(shù)據(jù)可視為由128位組成,。為了獲得完整且連續(xù)存放的64位ID信息,在此接收兩輪完整的64位數(shù)據(jù),,即接收256位,。則上一輪接收到的停止位后緊跟著的必然是本輪接收到的起始位,據(jù)此找出起始同步頭,。再根據(jù)曼碼特點獲得ID卡的有效數(shù)據(jù)(“10”解碼為“1”,;“01”解碼為“O”)并進行LCR校驗,若校驗無誤,,則將ID卡號輸出至PC機,,并準備下一次的解碼;否則,,直接準備下一次解碼,。另外,在程序中首先定義一個數(shù)組bit[256]用來存放接收到的數(shù)據(jù),;定義一個變量flag用來標記256位數(shù)據(jù)接收完成,;定義一個變量error用來標記校驗有錯誤產(chǎn)生。由于無ID卡靠近讀卡器的有效工作區(qū)時,,單片機輸入捕捉引腳輸入的是高電平,,因此在主程序中先設定為下降沿觸發(fā),清零計數(shù)器TCNTl,,打開T/C1的輸入捕捉功能,。主程序流程圖如圖5所示。
在輸入捕捉中斷程序中定義一個觸發(fā)沿標志tr=1(用于表示由下降沿引起的觸發(fā)),同時定義一個無符號字符型變量i用來對接收到的數(shù)據(jù)個數(shù)進行計數(shù),,由于無符號字符型數(shù)據(jù)的取值范圍為O~255,,所以當接收完256位時,i的值再次變?yōu)?,。接著判斷是否為合法跳變,,由以上分析可知,電平跳變的時間為256μs或512μs為合法跳變,。本系統(tǒng)使用8 MHz時鐘,,T/C1設置為無預分頻,則系統(tǒng)周期為O.125μs,,則256μs對應計數(shù)值應為2 048,,512μs對應計數(shù)值應為4 096。取計數(shù)值TCNTl小于5 000為合法跳變依據(jù),,若TC-NTl大于5 000,,則認為是由干擾信號產(chǎn)生的非法跳變,并將其忽略,,取TCNTl介于3 000~5 000之間為512μs跳變依據(jù)。若為合法跳變,,由于是下降沿觸發(fā)的中斷,,則認為接收到一位數(shù)據(jù)“1”;若為合法跳變且3 000 再將輸入捕捉觸發(fā)方式改為上升沿觸發(fā),,設定觸發(fā)沿標志tr=0(用于表示由上升沿引起的觸發(fā)),。當中斷是由上升沿觸發(fā)時,執(zhí)行類似操作,。圖6為中斷處理程序流程圖,。
5 結語
本設計硬件電路中功放和檢波部分采用分立元件構成,無需讀卡基站芯片,,電路結構簡單,,成本極低;軟件部分采用C語言進行編寫,,提出了一種曼徹斯特編碼的解碼方法,。由于RS 232的傳輸距離最大只有15 m,因此對于需要遠距離數(shù)據(jù)傳送的場合,,可以通過加入RS 485電路以提高傳輸距離,,從而實現(xiàn)遠距離數(shù)據(jù)采集以及實行有關控制。在一些需要較遠讀卡距離的應用中,,可通過改進功率放大電路(例如采用D類功率放大電路)來提高功放的效率,,從而增大發(fā)射功率,增大讀卡距離,。通測試,,系統(tǒng)可成功實現(xiàn)對EM4100 ID卡的讀取,,經(jīng)過微調天線,最大讀取距離可達15 cm,,且讀卡穩(wěn)定,、成功率高,可將其應用于門禁,、公交等系統(tǒng),。