摘要:本文設計了能對低頻和高頻RFID 卡進行操作的雙頻RFID 讀寫系統(tǒng)。系統(tǒng)基于ARM微處理器S3C44B0X,利用S3C44B0X 的內(nèi)部接口實現(xiàn)與RFID 模塊和其它外設的連接,簡化了硬件。軟件設計中,通過對ARM 嵌入式系統(tǒng)的編程實現(xiàn)對RFID 卡的讀寫、顯示以及數(shù)據(jù)的存儲、查詢等功能。系統(tǒng)還可通過USB 接口與上位機(PC)連接,使用方便靈活。
1 引言
RFID(Radio Frequency Identification Technology,無線射頻識別技術)由于具有高速移動物體識別、多目標識別和非接觸識別等特點,顯示出巨大的發(fā)展?jié)摿蛻每臻g,被認為是21 世紀最有發(fā)展前途的信息技術之一。射頻識別技術雖然有很多優(yōu)點,但其技術本身也有局限性。對RFID 系統(tǒng)而言,低頻系統(tǒng)具有良好的對水、肉體等可導媒介的穿透力,而速度、距離、抗沖突性較差;而高頻系統(tǒng)則正好相反。如能結合各種頻率系統(tǒng),用其所長,則可以使RFID 適應多種場合,拓展其應用范圍。本文設計的系統(tǒng)正是基于這一出發(fā)點,將低頻和高頻二種頻率的RFID 模塊組合在一起,構成雙頻系統(tǒng),使系統(tǒng)兼具低頻可穿透性和高頻良好的距離、速度、抗沖突性等方面的優(yōu)勢。鑒于目前國內(nèi)市場上應用最為廣泛的射頻卡和讀寫器實現(xiàn)方法,本文采用ARM 嵌入式系統(tǒng)作為微控制器,設計了能對低頻125KHz 和高頻13.56MHz 的二種頻率RFID 卡操作的讀寫模塊,實現(xiàn)了的雙頻RFID 讀寫系統(tǒng)。
2 系統(tǒng)設計
由于ARM 微處理器具有運行速度快,接口功能豐富,其應用越來越廣泛。本文采用三星公司的S3C44B0X,它是ARM7 系列的低功耗的32 位RISC 處理器,具有ARM7TDMI內(nèi)核,有豐富的內(nèi)置部件,包括8K 字節(jié)Cache 和內(nèi)部SRAM,帶自動握手聯(lián)絡的2 通道UART,定時器,通用 I/O 口,ADC 和I2C-BUS 控制器等。尤其是它的內(nèi)置液晶顯示器接口,可直接連接LCD 顯示器,無需專用LCD 顯示器接口芯片,可使成本降低,很適合在本系統(tǒng)中使用。讀寫系統(tǒng)的結構如圖1 所示。
圖1 系統(tǒng)結構框圖
整個系統(tǒng)由ARM 嵌入式系統(tǒng)(包括S3C44B0X,SDRAM 存儲器和FLASH 存儲器),低頻RFID 卡讀寫模塊,高頻RFID 卡讀寫模塊,USB 接口,LCD 顯示器以及蜂鳴器、狀態(tài)指示燈等組成。RFID 模塊是北京華閏得公司開發(fā)的具有串行數(shù)據(jù)通信接口的模塊,低頻讀寫模塊是CR001,為工作于125kHz 的EM4001 卡;高頻模塊是CR013,為工作于13.56MHz的MF 卡。由于RFID 模塊具有TTL 電平的串行通信接口,這樣ARM 微處理器可直接通過片上的二個UART 接口與其連接,不需要電平轉換即可輕松實現(xiàn)與RFID 模塊的通信。嵌入式系統(tǒng)與PC 機的連接則通過USB 接口實現(xiàn)。
因為低頻 RFID 卡一般都是只讀卡,進入讀卡器磁場范圍后,就自動發(fā)出信號。ARM微處理器通過不斷檢測端口捕捉信號,一旦讀到卡,就讀取信息,并在LCD 上顯示。對于高頻卡,可根據(jù)需要進行讀或寫操作。
LCD 顯示器采用320*240 點陣的STN 型彩色液晶模塊,可直接與S3C44B0X 連接,成本也較低。對LCD 的顯示控制直接使用S3C44B0X 內(nèi)部的LCD 驅動控制器實現(xiàn),它能自動產(chǎn)生LCD 驅動控制所需的信號。在這種接口方式下,LCD 顯示緩沖區(qū)映射在系統(tǒng)的存儲器空間上,程序只需將像素點內(nèi)容寫入存儲器對應地址就可以實現(xiàn)對應LCD 屏上像素點顏色的顯示刷新,控制十分方便。
鍵盤和狀態(tài)指示燈的操作控制采用 ZLG7290 實現(xiàn)。ZLG7290 是一款功能較強的按鍵處理和7 段數(shù)碼管顯示專業(yè)芯片,提供了I2C 串行接口和鍵盤中斷信號,可方便地與S3C44B0X連接。
在上位機(PC 機)上,通過設計專門的軟件實現(xiàn)對RFID 卡的讀寫操作,并對RFID 卡進行管理。由于PC 機功能強大,如再配上數(shù)據(jù)庫系統(tǒng),可以對大量用戶的數(shù)據(jù)和信息進行存儲和查詢等處理,滿足多種應用的需要。
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 所示。