摘 要:射頻識別技術已廣泛應用于生產、生活的眾多領域,該技術給人們的生活帶來了眾多的方便。介紹一種以AVR單片機為核心,并利用分立元件構成的125 kHz RFID閱讀器設計,電路結構簡單、無需讀卡基站芯片、成本極低,用于讀取EM4100ID卡,讀卡距離可達8~15 cm。同時介紹了EM4100射頻ID卡的結構及工作原理,提出一種應用AVR單片機對EM4100卡進行解碼的軟件設計方法。實驗驗證了方案的可行性和系統的穩定性,可將其應用于門禁、公交等系統中。
關鍵詞:AVR單片機; RFID; 閱讀器; EM4100
中圖分類號:TP368 文獻標識碼:A
文章編號:1004-373X(2010)07-0111-04
Design of Simple 125kHz RFID Reader with AVR Single Chip Computer
AO Hua1, CHEN Yuan-rui1,2, LUO Zu-guo1, LI Ting1
(1. Electric Power College, South China University of Technology, Guangzhou 510640, China;
2. State Key Laboratory of Subtropical Building Science, South China University of Technology, Guangzhou 510640, China)
Abstract: The technology of radio frequency identification has been widely used in many fields of production and daily life, and it has brought convenience for people. A 125 kHz RFID reader was designed based on AVR microcontroller, which also employed discrete components. The structure of the circuit is very simple, does not need a read base station IC, and has low cost. It is well suitable to the read operation with EM4100 ID card, and its reading distance is about 8~15 cm. The structure and operation principle of EM4100 ID card are introduced. A software design method of adopting AVR microcontroller to decode EM4100 is proposed. The experiment proves the feasibility of the design and the stability of the system. It can be used in many systems such as access control and public transportation.
Keywords: AVR microcontroller; RFID; reader; EM4100
0 引 言
無線射頻識別(Radio Frequency Identification,RFID)是利用感應、電磁場或電磁波為傳輸手段,完成非接觸式雙向通信、獲取相關數據的一種自動識別技術[1]。該技術完成識別工作時無須人工干預,易于實現自動化且不易損壞,可識別高速運動物體并可同時識別多個射頻卡,操作快捷方便,已經得到了廣泛的應用。目前存在的一些讀卡器,都需要讀卡芯片作為基站,成本較高。本文介紹了一種采用分立元件構成的125 kHz RFID閱讀器,電路結構簡單,成本極低,用于讀取EM4100型ID卡。
1 RFID系統的分類
RFID系統的分類方法有很多,在通常應用中都是根據頻率來分,根據不同的工作頻率,可將其分為以下四種[2]:
(1) 低頻(120~135 kHz)。該頻段具有很強的場穿透性,使用不受限制,性能不受環境影響,價格低廉,最大識別距離一般小于60 cm,主要應用于門禁、“一卡通”消費管理、車輛管理等系統;
(2) 高頻(10~15 MHz)。該頻段與低頻相比,具有防沖撞、能同時識別多個標簽的優點,但其性能受環境影響,識別距離一般小于100 cm,主要應用于圖書管理、物流等系統;
(3) 超高頻(850~960 MHz)。該頻段較高頻相比,具有可實現長距離識別的的優點,最大識別距離可達10 m,但其性能受環境影響較大,價格也較貴,主要應用于鐵路車輛識別、集裝箱識別等系統;
(4) 微波(2.45~5.8 GHz)。該頻段可實現遠距離識別,識別距離可達100 m,但其價格也最貴,主要應用于智能交通系統中。
2 RFID系統的組成
射頻識別系統一般由閱讀器、電子標簽、天線三部分組成[3]。
(1) 閱讀器:讀取或讀/寫電子標簽信息的設備,主要任務是控制射頻模塊向標簽發射讀取信號,并接收標簽的應答,對標簽的標識信息進行解碼,將標識信息連帶標簽上其他相關信息傳輸到主機以供處理。一臺典型的閱讀器包含有高頻模塊(發送器和接收器)、控制單元以及與應答器連接的耦合元件。此外,許多閱讀器還有附加的接口(RS 232,RS 485等),以便將所獲得的數據傳輸給另外的系統(如個人計算機),其系統結構框圖如圖1所示。
圖1 RFID閱讀器系統結構框圖
(2) 電子標簽(應答器):由芯片及內置天線組成,芯片內保存有一定格式的電子數據,放在被識別物體上,作為待識別物品的標識性信息,它是射頻識別系統真正的數據載體,內置天線用于和射頻天線間進行通信。通常,應答器沒有自己的供電電源,只有在閱讀器的響應范圍以內,應答器才是有源的。應答器工作所需的能量,是通過耦合單元(非接觸的)傳輸給應答器的。
(3) 天線:標簽與閱讀器之間數據傳輸的載體。
3 硬件電路設計
本設計以AVR系列單片機ATmega8作為微控制器。Atmel公司的AVR是8位單片機中第一個真正采用RSIC結構的單片機,它采用了大型快速存取寄存器組、快速單周期指令系統以及單級流水線等先進技術,使得AVR單片機具有高達1 MIPS/MHz的高速運行處理能力[4]。
硬件電路如圖2所示,在圖2中①為載波產生及功率放大電路,由單片機的T/C2工作于CTC模式, 產生標準125 kHz載波信號,經過限流電阻R1后送入推挽式連接的三極管功率放大電路,放大后的載波信號通過天線發射出去。天線L1與電容C1構成串聯諧振電路,諧振頻率為125 kHz,諧振電路的作用是使天線上獲得最大的電流,從而產生最大的磁通量,獲得更大的讀卡距離[5]。②為檢波電路,檢波電路用來去除125 kHz載波信號,還原出有用數據信號。R2,D1,R3,C2構成基本包絡檢波電路[6],C3為耦合電容,R4,C4為低通濾波電路,D2,D3為保護二極管,輸出接到濾波放大電路。③為濾波放大電路,濾波放大電路采用集成運放LM358對檢波后的信號進行濾波整形放大,放大后的信號送入單片機的定時/計數器T1的輸入捕捉引腳ICP1,由單片機對接收到的信號進行解碼,從而得到ID卡的卡號[7]。
圖2 讀卡器硬件電路
4 軟件設計
本系統的軟件設計包括兩部分:125 kHz載波的產生和ID卡解碼。載波信號產生相對簡單,可利用單片機的T/C2,使其工作于CTC模式,比較匹配時使輸出OC2取反便可得到125 kHz的方波[8]。解碼軟件設計相對較復雜,要對ID卡進行解碼,首先應掌握ID卡的存儲格式和數據編碼方式。
4.1 EM4100數據存儲格式
圖3是EM4100的64位數據信息[9],它由5個區組成:9個引導位、10個行偶校驗位“P0~P9”、4個列偶校驗位“PC0~PC3”、40個數據位“D00~D93”和1個停止位S0。9個引導位是出廠時就已掩膜在芯片內的,其值為“111111111”,當它輸出數據時,首先輸出9個引導位,然后是10組由4個數據位和1個行偶校驗位組成的數據串,其次是4個列偶校驗位,最后是停止位“0”。“D00~D13”是一個8位的晶體版本號或ID識別碼。“D20~D93” 是8組32位的芯片信息,即卡號。每當EM4100將64個信息位傳輸完畢后,只要ID卡仍處于讀卡器的工作區域內,它將再次按照圖3順序發送64位信息,如此重復,直至ID卡退出讀卡器的有效工作區域。
4.2 EM4100數據編碼方式
EM4100采用曼徹斯特編碼[10],如圖4所示:位數據“1”對應著電平下跳,位數據“0” 對應著電平上跳。在一串數據傳送的數據序列中,兩個相鄰的位數據傳送跳變時間間隔應為1P。若相鄰的位數據極性相同(相鄰兩位均為“0”或“1”),則在兩次位數據傳送的電平跳變之間,有一次非數據傳送的、預備性的(電平)“空跳”。電平的上跳、下跳和空跳是確定位數據傳送特征的判據。在曼徹斯特碼調制方式下,EM4100每傳送一位數據的時間是64個振蕩周期,其值由RF/n決定。若載波頻率為125 kHz,則每傳送一位的時間為振蕩周期的64分頻,即位傳送時間為:1P=64/125 kHz=512 μs,則半個周期的時間為256 μs。
圖3 EM4100數據存儲格式
圖4 曼徹斯特編碼
4.3 解碼軟件設計
ATmega8單片機T/C1的輸入捕捉功能是AVR定時/計數器的一個非常有特點的功能,T/C1的輸入捕捉單元可用于精確捕捉一個外部事件的發生,記錄事件發生的時間印記。當一個輸入捕捉事件發生時, T/C1的計數器TCNT1中的計數值被寫入輸入捕捉寄存器ICR1中,并置位輸入捕獲標志位ICF1,產生中斷申請。可通過設置寄存器TCCR1B的第6位ICES1來設定輸入捕捉信號觸發方式 [8]。本系統利用單片機的輸入捕捉功能進行解碼。
由曼徹斯特編碼特點可知,每位數據都由半個周期的高電平和半個周期的低電平組成,因此可將一個位數據拆分為兩位,即位數據“1”可視為“10”,位數據“0”可視為“01”,則64位數據可視為由128位組成。為了獲得完整且連續存放的64位ID信息,在此接收兩輪完整的64位數據,即接收256位。則上一輪接收到的停止位后緊跟著的必然是本輪接收到的起始位,據此找出起始同步頭。再根據曼碼特點獲得ID卡的有效數據(“10”解碼為“1”;“01”解碼為“0”)并進行LCR校驗,若校驗無誤,則將ID卡號輸出至PC機,并準備下一次的解碼;否則,直接準備下一次解碼。另外,在程序中首先定義一個數組bit[256] 用來存放接收到的數據;定義一個變量flag用來標記256位數據接收完成;定義一個變量error用來標記校驗有錯誤產生。由于無ID卡靠近讀卡器的有效工作區時,單片機輸入捕捉引腳輸入的是高電平,因此在主程序中先設定為下降沿觸發,清零計數器TCNT1,打開T/C1的輸入捕捉功能。主程序流程圖如圖5所示。
圖5 主程序流程圖
在輸入捕捉中斷程序中定義一個觸發沿標志tr=1(用于表示由下降沿引起的觸發),同時定義一個無符號字符型變量i用來對接收到的數據個數進行計數,由于無符號字符型數據的取值范圍為0~255,所以當接收完256位時,i的值再次變為0。接著判斷是否為合法跳變,由以上分析可知,電平跳變的時間為256 μs或512 μs為合法跳變。本系統使用8 MHz時鐘,T/C1設置為無預分頻,則系統周期為0.125 μs,則256 μs對應計數值應為2 048,512 μs對應計數值應為4 096。取計數值TCNT1小于5 000為合法跳變依據,若TCNT1大于5 000,則認為是由干擾信號產生的非法跳變,并將其忽略,取TCNT1介于3 000~5 000之間為512 μs跳變依據。若為合法跳變,由于是下降沿觸發的中斷,則認為接收到一位數據“1”;若為合法跳變且3 000 圖6 T/C1輸入捕捉中斷程序流程圖 5 結 語 本設計硬件電路中功放和檢波部分采用分立元件構成,無需讀卡基站芯片,電路結構簡單,成本極低;軟件部分采用C語言進行編寫,提出了一種曼徹斯特編碼的解碼方法。由于RS 232的傳輸距離最大只有15 m,因此對于需要遠距離數據傳送的場合,可以通過加入RS 485電路以提高傳輸距離,從而實現遠距離數據采集以及實行有關控制。在一些需要較遠讀卡距離的應用中,可通過改進功率放大電路(例如采用D類功率放大電路)來提高功放的效率,從而增大發射功率,增大讀卡距離。通測試,系統可成功實現對EM4100 ID卡的讀取,經過微調天線,最大讀取距離可達15 cm,且讀卡穩定、成功率高,可將其應用于門禁、公交等系統。 參考文獻 [1]黃智偉.射頻電路設計[M].北京:電子工業出版社,2006. [2]蔣皓石,張成,林嘉宇.無線射頻識別技術及其應用和發展趨勢[J].電子技術應用,2005(5):1-4. [3]周曉光,王曉華.射頻識別(RFID)技術原理與應用實例[M].北京:人民郵電出版社,2006. [4]馬潮.AVR單片機嵌入式系統原理與應用實踐[M].北京:北京航空航天大學出版社,2007. [5]張明濤.用于RFID系統的天線設計[D].西安:西安電子科技大學,2007. [6]王鑫,賴曉錚,朱海龍,等.一種長距離125 kHz閱讀器硬件電路的設計與實現[J].電子技術應用,2008(2),79-82. [7][日]岡村迪夫.OP放大電路設計[M].王玲,徐雅珍,李武平,譯.北京:科學出版社,2004. [8]金春林,邱慧芳,張皆喜.AVR系列單片機C語言編程與應用實例[M].北京:清華大學出版社,2003. [9]周穎琦.125 kHz射頻識別系統的研究與設計[D].合肥:合肥工業大學,2006. [10]丁明軍,徐健城.射頻卡應用中的曼徹斯特碼解碼技術[J].通信技術,2007(12):65-67.