基于ARM的雙頻RFID讀寫系統設計
3 系統的軟件設計
3.1 RFID 模塊操作
CR001 模塊與S3C44B0X 的串口(UART0)相連,在接收數據前首先要對UART0 進行初始化。根據CR001 的使用規范,設置波特率為9600Baud,數據位為8 位,1 位停止位,無校驗位。為使ARM 對低頻RFID 卡及時作出響應,軟件采用中斷方式接收數據,即當S3C44B0X 的UART0 接收到數據時,產生中斷,在中斷服務程序中接收CR001 模塊的數據。
根據 CR001 射頻讀寫模塊的使用規范,CR001 模塊輸出的數據包有5 個字段,即起始符(STX,02H)、數據(10 個ASCII 字符)、校驗和(2 個ASCII 字符)、LD 和LF(0DH和0AH)、結束符(ETX,03H)。因此在軟件設計中,當收到UART0 的數據時,首先要判斷一個數據包的起始符和結束符,以確定一個數據幀的起止位置,然后再檢驗數據的校驗和是否正確。只有在接收的數據無誤時,再將其中的數據取出、存儲,并在LCD 上顯示。中斷服務軟件的流程如圖2 所示。

圖 2 CR001 模塊的中斷服務程序流程
CR013 射頻讀寫模塊是采用Philips 公司的Mifare 技術設計的微型嵌入式、非接觸式IC卡讀寫模塊,內嵌ISO14443 Type A 協議解釋器,并可直接驅動射頻天線。這是一種以被動方式工作的卡,剛進入天線有效感應區的卡得電進入空閑(IDLE)狀態,它只吸收感應區內的磁場能量,不會首先發出信號。當讀卡設備發出請求信號,符合條件的卡才會響應。因此處理器與模塊之間以一問一答式的半雙工方式進行通信。
對 CR013 模塊的讀寫過程相對較復雜,要執行一系列的操作指令,包括詢卡、請求、防沖突、選卡、裝載密鑰、驗證密碼、讀塊、寫塊,這一系列的操作必須按固定的順序。尋卡時,處理器需要執行請求、防沖突、選卡操作,與CR013 模塊建立起通信關系,在通過裝載密鑰、驗證密碼操作后,才可進行讀卡或寫卡操作。
1、防沖突
防沖突就是從多張卡中選出一張卡來操作,又叫防碰撞、防重疊。如果知道卡的序列號,則可跳過此步,直接執行下一步選卡命令。若不知道卡的序列號,則必須調用防碰撞函數,得到感應區內卡的序列號。若同時有多張卡在感應區內,防碰撞函數能檢測到,并且從中選出一張卡的序列號來。












評論