高頻RFID讀卡器軟件設計
作者:沈忱,胡明
來源:RFID世界網
日期:2011-06-07 16:02:28
摘要:文中主要闡述了基于Philips 系統的RFID讀卡器的設計,并著重于軟件部分程序的設計。對初始化、發送請求、防沖突、選擇卡、三重認證、讀卡和寫卡模塊都給出了詳細的程序流程圖,并作了相應的說明。
一、引言
RFID(Radio Frequency Identification)即無線射頻識別系統達,也稱為無線IC 標簽、電子標簽、感應式電子芯片、非接觸卡等,它是一種透過無線電波來到非接觸的資料獲取和存取的技術,即一種非接觸式的自動識別技術,通過射頻信號自動識別目標對象并獲取相關數據,識別工作無須人工干預,可工作于各種惡劣環境。RFID 技術可識別高速運動物體并可同時識別多個標簽,操作快捷方便。自2004 年以來,與RFID 技術相關的文章在各個媒體上不斷涌現相關的報道讓這個歷史其實并不短的技術在短時間內成為國際追逐的焦點。從全球巨型商業帝國沃爾瑪,到國際IT 巨頭IBM、HP、微軟等等,從美國國防部到中國國家標準委,全都在RFID魔棒的指揮下舞蹈起來。本文所論述的工作,主要是在基于Philips系統的RFID 讀卡器的軟件設計及其調試。具體來說,主要是在利用AT89S51 單片機控制Philips 的RFID 芯片,讀取射頻卡上的信息,并將其顯示在數碼管上。
二、基本原理及相關理論
1.RFID 標簽的組成
(1)讀寫器:也是由天線、信號收發報機與譯碼器組成。RFID 標簽上的芯片被激活啟動后,就進行需要的讀出、寫入數據操作,讀寫器可把通過天線得到的標簽芯片中的數據,經過譯碼器進行譯碼,送往主計算機處理。
(2)天線:標簽和讀寫器收發報機之間的管道,通過天線來控制系統信號的獲得與交換。天線的形狀和大小有多種多樣,例如可以裝在門框上,接收從該門通過的人或物品的相關數據;還可安裝在適當地點監控道路上的交通情況等。
(3)標簽:其核心部分是發射機應答器,能夠接收并發送信號,一般被做成低功率的集成電路,與外部的電磁波或電磁感應相互作用,產生RFID 標簽工作時所需的功率并進行數據傳輸。RFID 標簽通常是由印刷層、芯片層與底層構成。芯片層在印刷層與底層之間,是標簽的核心部分,芯片層不能承受印刷壓力,因此通常的做法是先印好印刷層,做好底層,再與芯片層復合。
2.RFID 讀卡器工作原理
RFID(射頻識別)系統由兩部分組成:讀/寫單元和電子收發器。讀寫器通過天線發出一定頻率的射頻信號,當射頻卡進入發射天線工作區域時產生感應電流,射頻卡獲得能量被激活;射頻卡將自身編碼等信息通過卡內置發送天線發送出去。系統接收天線接收到從射頻卡發送來的載波信號,經天線調節器傳送到讀寫器,讀寫器對接收的信號進行解調和解碼然后送到后臺主系統進行相關處理;主系統根據邏輯運算判斷該卡的合法性,針對不同的設定做出相應的處理和控制,發出指令信號控制執行機構動作。讀寫器的控制單元的功能包括:與應用系統軟件進行通信,并執行應用系統軟件發來的命令;控制與射頻卡的通信過程(主—從原則);信號的編解碼。對一些特殊的系統還有執行防沖突算法,對射頻卡與讀寫器間要傳送的數據進行加密和解密,以及進行射頻卡和讀寫器間的身份驗證等附加功能。射頻識別系統的讀寫距離是一個很關鍵的參數。目前,長距離射頻識別系統的價格還很貴,因此尋找提高其讀寫距離的方法很重要。影響射頻卡讀寫距離的因素包括天線工作頻率、讀寫器的射頻輸出功率、讀寫器的接收靈敏度、射頻卡的功耗、天線及諧振電路的Q 值、天線方向、讀寫器和射頻卡的耦合度,以及射頻卡本身獲得的能量及發送信息的能量等。大多數系統的讀取距離和寫入距離是不同的,寫入距離大約是讀取距離的40%~80%。系統工作原理如圖1 所示。
本次設計的目的是設計一款應用于13.56MHz 的射頻讀卡器,使其能非接觸地讀取IC 卡信息,使信息準確無誤地顯示在數碼管上,并保證一定的讀卡距離。
編程平臺:Keil uVision2;程序燒錄軟件:AtmelMicrocontroller ISP Software
1.對IC卡操作的流程如圖2 所示。
(2)發送請求:發送請求命令過程為ISO/IEC14443 TYPE A 通信協議中的REQA 命令。借助RC500 的TRANSCEIVE 命令將REQA 命令發送至IC 卡,并接收返回的數據。發送請求命令的作用就是搜尋有無IC 卡靠近,跟據返回得數據判斷有無需要與之通信的IC 卡。
請求模式有Request all 和Request std 兩種。Request all 指令是非連續性的讀卡指令,只讀一次。但有個例外,當某一次Request all 指令讀卡片失敗時,例如,卡片沒能通過密碼認證或其它原因而出錯時,Request all 指令將連續地讀卡,直到讀卡成功才進入非連續性的讀卡模式。
Request std 指令的使用和Request all 指令剛巧相反。Request std 指令是連續性的讀卡指令。當某一張卡片在天線的有效的工作范圍(距離)內,Request std 指令在成功地讀取這一張卡片之后,進入對卡片的其它操作。如果其它操作完成之后,程序員又將程序進入Request std 指令操作,則Request std 指令將連續地再次進行讀卡操作,而不管這些片卡是否被拿卡。只要有一張卡片進入天線的有效的工作范圍內,Request std 指令將始終連續地再次進行讀卡操作。對于Mifare One 卡,該函數反回值為0004H。發送請求程序流程圖如圖4 所示。
(4)選擇卡:選擇卡的過程即為ISO/IEC14443 TYPE A 協議中的SELECT 命令。作用是選擇一張卡。其程序流程圖如圖5 所示。
①由IC 卡向讀卡器發送一個隨機數據RB。
②讀卡器收到RB 后,向IC 卡發送一個令牌數據TOKEN AB,其中包含了讀卡器發出的一個隨機數據RA。
③IC 卡收到TOKEN AB 后,對TOKEN AB 的加密部分進行解密,并校驗第一次由步驟①中IC 卡發出的隨機數RB 是否與步驟②中接收到的TOKEN AB 中的RB 相一致。
④如果步驟③中校驗結果正確,則IC 卡向讀卡器發送令牌TOKEN BA 給讀卡器。
⑤讀卡器收到令牌TOKEN BA 后,將對令牌TOKEN BA中的RB 進行解密;并校驗由步驟②中讀卡器發出的隨機數RA是否與步驟④中接收到的TOKEN BA 中的RA 相一致。如果上述的每一個步驟都能正確通過驗證。則整個認證過程將成功,讀寫器將能對剛通過認證的這一分區進行下一步的操作。反之,如果認證過程中的任何一個環節出錯,則整個認證過程終止,認證過程必須重新開始。MF RC500 認證程序步驟是固定的,即采用LoadKeyE2或LoadKey 命令將密鑰裝入密鑰緩沖區;采用Authent1 命令,結束時檢測錯誤標志以獲得該命令執行的狀態,若所接收數據的最后一位為000B,表示由IC 卡讀入的該字節是正確的;啟動Authent2 命令,結束時檢測錯誤標志和CryptolOn標志位,若CryptolOn 標志位為1,說明認證成功;若為0則認證失敗。三重認證程序流程圖8 所示。
四、結束語
RFID 的應用范圍非常的廣泛,凡是我們日常生活中的食、衣、住、行、育、樂所有牽涉到的物品,皆能使用RFID。本文基于Philips 系統進行RFID 讀卡器的設計,著重于整個軟件設計流程。
參考文獻
[1] 游戰清,李蘇劍.無線射頻識別技術(RFID)理論與應用[J].北京:電子工業出版社,2004:101-103.
[2] 曾雋芳.RFID 技術發展與應用現狀分析及未來趨勢展望[J].金卡工程,2007,11(1):55-59.
[3] GINNY LU. 掀起的技術熱潮.A&S:國際中文版,2007,(2):64-65.
[4] 李素彩.RFID 技術在物流領域的應用——RFID 技術概述[J].物流技術與應用,2006,11(12):64-67.
[5] 李成.RFID——實現生產過程自動化[J].汽車制造業,2007,(2):39-41.
[6] 孫劍,陳琪明.RFID 中間件在世界及中國的發展現狀[J].物流技術與應用,2007,12,(2):98-101.
RFID(Radio Frequency Identification)即無線射頻識別系統達,也稱為無線IC 標簽、電子標簽、感應式電子芯片、非接觸卡等,它是一種透過無線電波來到非接觸的資料獲取和存取的技術,即一種非接觸式的自動識別技術,通過射頻信號自動識別目標對象并獲取相關數據,識別工作無須人工干預,可工作于各種惡劣環境。RFID 技術可識別高速運動物體并可同時識別多個標簽,操作快捷方便。自2004 年以來,與RFID 技術相關的文章在各個媒體上不斷涌現相關的報道讓這個歷史其實并不短的技術在短時間內成為國際追逐的焦點。從全球巨型商業帝國沃爾瑪,到國際IT 巨頭IBM、HP、微軟等等,從美國國防部到中國國家標準委,全都在RFID魔棒的指揮下舞蹈起來。本文所論述的工作,主要是在基于Philips系統的RFID 讀卡器的軟件設計及其調試。具體來說,主要是在利用AT89S51 單片機控制Philips 的RFID 芯片,讀取射頻卡上的信息,并將其顯示在數碼管上。
二、基本原理及相關理論
1.RFID 標簽的組成
(1)讀寫器:也是由天線、信號收發報機與譯碼器組成。RFID 標簽上的芯片被激活啟動后,就進行需要的讀出、寫入數據操作,讀寫器可把通過天線得到的標簽芯片中的數據,經過譯碼器進行譯碼,送往主計算機處理。
(2)天線:標簽和讀寫器收發報機之間的管道,通過天線來控制系統信號的獲得與交換。天線的形狀和大小有多種多樣,例如可以裝在門框上,接收從該門通過的人或物品的相關數據;還可安裝在適當地點監控道路上的交通情況等。
(3)標簽:其核心部分是發射機應答器,能夠接收并發送信號,一般被做成低功率的集成電路,與外部的電磁波或電磁感應相互作用,產生RFID 標簽工作時所需的功率并進行數據傳輸。RFID 標簽通常是由印刷層、芯片層與底層構成。芯片層在印刷層與底層之間,是標簽的核心部分,芯片層不能承受印刷壓力,因此通常的做法是先印好印刷層,做好底層,再與芯片層復合。
2.RFID 讀卡器工作原理
RFID(射頻識別)系統由兩部分組成:讀/寫單元和電子收發器。讀寫器通過天線發出一定頻率的射頻信號,當射頻卡進入發射天線工作區域時產生感應電流,射頻卡獲得能量被激活;射頻卡將自身編碼等信息通過卡內置發送天線發送出去。系統接收天線接收到從射頻卡發送來的載波信號,經天線調節器傳送到讀寫器,讀寫器對接收的信號進行解調和解碼然后送到后臺主系統進行相關處理;主系統根據邏輯運算判斷該卡的合法性,針對不同的設定做出相應的處理和控制,發出指令信號控制執行機構動作。讀寫器的控制單元的功能包括:與應用系統軟件進行通信,并執行應用系統軟件發來的命令;控制與射頻卡的通信過程(主—從原則);信號的編解碼。對一些特殊的系統還有執行防沖突算法,對射頻卡與讀寫器間要傳送的數據進行加密和解密,以及進行射頻卡和讀寫器間的身份驗證等附加功能。射頻識別系統的讀寫距離是一個很關鍵的參數。目前,長距離射頻識別系統的價格還很貴,因此尋找提高其讀寫距離的方法很重要。影響射頻卡讀寫距離的因素包括天線工作頻率、讀寫器的射頻輸出功率、讀寫器的接收靈敏度、射頻卡的功耗、天線及諧振電路的Q 值、天線方向、讀寫器和射頻卡的耦合度,以及射頻卡本身獲得的能量及發送信息的能量等。大多數系統的讀取距離和寫入距離是不同的,寫入距離大約是讀取距離的40%~80%。系統工作原理如圖1 所示。

本次設計的目的是設計一款應用于13.56MHz 的射頻讀卡器,使其能非接觸地讀取IC 卡信息,使信息準確無誤地顯示在數碼管上,并保證一定的讀卡距離。
編程平臺:Keil uVision2;程序燒錄軟件:AtmelMicrocontroller ISP Software
1.對IC卡操作的流程如圖2 所示。


(2)發送請求:發送請求命令過程為ISO/IEC14443 TYPE A 通信協議中的REQA 命令。借助RC500 的TRANSCEIVE 命令將REQA 命令發送至IC 卡,并接收返回的數據。發送請求命令的作用就是搜尋有無IC 卡靠近,跟據返回得數據判斷有無需要與之通信的IC 卡。
請求模式有Request all 和Request std 兩種。Request all 指令是非連續性的讀卡指令,只讀一次。但有個例外,當某一次Request all 指令讀卡片失敗時,例如,卡片沒能通過密碼認證或其它原因而出錯時,Request all 指令將連續地讀卡,直到讀卡成功才進入非連續性的讀卡模式。
{$page$}
Request std 指令的使用和Request all 指令剛巧相反。Request std 指令是連續性的讀卡指令。當某一張卡片在天線的有效的工作范圍(距離)內,Request std 指令在成功地讀取這一張卡片之后,進入對卡片的其它操作。如果其它操作完成之后,程序員又將程序進入Request std 指令操作,則Request std 指令將連續地再次進行讀卡操作,而不管這些片卡是否被拿卡。只要有一張卡片進入天線的有效的工作范圍內,Request std 指令將始終連續地再次進行讀卡操作。對于Mifare One 卡,該函數反回值為0004H。發送請求程序流程圖如圖4 所示。

(4)選擇卡:選擇卡的過程即為ISO/IEC14443 TYPE A 協議中的SELECT 命令。作用是選擇一張卡。其程序流程圖如圖5 所示。



①由IC 卡向讀卡器發送一個隨機數據RB。
②讀卡器收到RB 后,向IC 卡發送一個令牌數據TOKEN AB,其中包含了讀卡器發出的一個隨機數據RA。
③IC 卡收到TOKEN AB 后,對TOKEN AB 的加密部分進行解密,并校驗第一次由步驟①中IC 卡發出的隨機數RB 是否與步驟②中接收到的TOKEN AB 中的RB 相一致。
④如果步驟③中校驗結果正確,則IC 卡向讀卡器發送令牌TOKEN BA 給讀卡器。
⑤讀卡器收到令牌TOKEN BA 后,將對令牌TOKEN BA中的RB 進行解密;并校驗由步驟②中讀卡器發出的隨機數RA是否與步驟④中接收到的TOKEN BA 中的RA 相一致。如果上述的每一個步驟都能正確通過驗證。則整個認證過程將成功,讀寫器將能對剛通過認證的這一分區進行下一步的操作。反之,如果認證過程中的任何一個環節出錯,則整個認證過程終止,認證過程必須重新開始。MF RC500 認證程序步驟是固定的,即采用LoadKeyE2或LoadKey 命令將密鑰裝入密鑰緩沖區;采用Authent1 命令,結束時檢測錯誤標志以獲得該命令執行的狀態,若所接收數據的最后一位為000B,表示由IC 卡讀入的該字節是正確的;啟動Authent2 命令,結束時檢測錯誤標志和CryptolOn標志位,若CryptolOn 標志位為1,說明認證成功;若為0則認證失敗。三重認證程序流程圖8 所示。


四、結束語
RFID 的應用范圍非常的廣泛,凡是我們日常生活中的食、衣、住、行、育、樂所有牽涉到的物品,皆能使用RFID。本文基于Philips 系統進行RFID 讀卡器的設計,著重于整個軟件設計流程。
參考文獻
[1] 游戰清,李蘇劍.無線射頻識別技術(RFID)理論與應用[J].北京:電子工業出版社,2004:101-103.
[2] 曾雋芳.RFID 技術發展與應用現狀分析及未來趨勢展望[J].金卡工程,2007,11(1):55-59.
[3] GINNY LU. 掀起的技術熱潮.A&S:國際中文版,2007,(2):64-65.
[4] 李素彩.RFID 技術在物流領域的應用——RFID 技術概述[J].物流技術與應用,2006,11(12):64-67.
[5] 李成.RFID——實現生產過程自動化[J].汽車制造業,2007,(2):39-41.
[6] 孫劍,陳琪明.RFID 中間件在世界及中國的發展現狀[J].物流技術與應用,2007,12,(2):98-101.