基于ARM的雙頻RFID讀寫系統(tǒng)設計
3 系統(tǒng)的軟件設計
3.1 RFID 模塊操作
CR001 模塊與S3C44B0X 的串口(UART0)相連,在接收數(shù)據(jù)前首先要對UART0 進行初始化。根據(jù)CR001 的使用規(guī)范,設置波特率為9600Baud,數(shù)據(jù)位為8 位,1 位停止位,無校驗位。為使ARM 對低頻RFID 卡及時作出響應,軟件采用中斷方式接收數(shù)據(jù),即當S3C44B0X 的UART0 接收到數(shù)據(jù)時,產(chǎn)生中斷,在中斷服務程序中接收CR001 模塊的數(shù)據(jù)。
根據(jù) CR001 射頻讀寫模塊的使用規(guī)范,CR001 模塊輸出的數(shù)據(jù)包有5 個字段,即起始符(STX,02H)、數(shù)據(jù)(10 個ASCII 字符)、校驗和(2 個ASCII 字符)、LD 和LF(0DH和0AH)、結束符(ETX,03H)。因此在軟件設計中,當收到UART0 的數(shù)據(jù)時,首先要判斷一個數(shù)據(jù)包的起始符和結束符,以確定一個數(shù)據(jù)幀的起止位置,然后再檢驗數(shù)據(jù)的校驗和是否正確。只有在接收的數(shù)據(jù)無誤時,再將其中的數(shù)據(jù)取出、存儲,并在LCD 上顯示。中斷服務軟件的流程如圖2 所示。
圖 2 CR001 模塊的中斷服務程序流程
CR013 射頻讀寫模塊是采用Philips 公司的Mifare 技術設計的微型嵌入式、非接觸式IC卡讀寫模塊,內嵌ISO14443 Type A 協(xié)議解釋器,并可直接驅動射頻天線。這是一種以被動方式工作的卡,剛進入天線有效感應區(qū)的卡得電進入空閑(IDLE)狀態(tài),它只吸收感應區(qū)內的磁場能量,不會首先發(fā)出信號。當讀卡設備發(fā)出請求信號,符合條件的卡才會響應。因此處理器與模塊之間以一問一答式的半雙工方式進行通信。
對 CR013 模塊的讀寫過程相對較復雜,要執(zhí)行一系列的操作指令,包括詢卡、請求、防沖突、選卡、裝載密鑰、驗證密碼、讀塊、寫塊,這一系列的操作必須按固定的順序。尋卡時,處理器需要執(zhí)行請求、防沖突、選卡操作,與CR013 模塊建立起通信關系,在通過裝載密鑰、驗證密碼操作后,才可進行讀卡或寫卡操作。
1、防沖突
防沖突就是從多張卡中選出一張卡來操作,又叫防碰撞、防重疊。如果知道卡的序列號,則可跳過此步,直接執(zhí)行下一步選卡命令。若不知道卡的序列號,則必須調用防碰撞函數(shù),得到感應區(qū)內卡的序列號。若同時有多張卡在感應區(qū)內,防碰撞函數(shù)能檢測到,并且從中選出一張卡的序列號來。
評論