《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于ARM的雙頻RFID讀寫設計
基于ARM的雙頻RFID讀寫設計
摘要: 本文設計了能對低頻和高頻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)連接,,使用方便靈活,。
Abstract:
Key words :

 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 接口與其連接,,不需要電平轉(zhuǎn)換即可輕松實現(xiàn)與RFID 模塊的通信。嵌入式系統(tǒng)與 PC 機的連接則通過USB 接口實現(xiàn),。

  因為低頻 RFID 卡一般都是只讀卡,,進入讀卡器磁場范圍后,就自動發(fā)出信號,。ARM微處理器通過不斷檢測端口捕捉信號,,一旦讀到卡,就讀取信息,,并在LCD 上顯示,。對于高頻卡,可根據(jù)需要進行讀或?qū)懖僮鳌?/p>

  LCD 顯示器采用320*240 點陣的STN 型彩色液晶模塊,,可直接與S3C44B0X 連接,,成本也較低。對LCD 的顯示控制直接使用 S3C44B0X 內(nèi)部的LCD 驅(qū)動控制器實現(xiàn),,它能自動產(chǎn)生LCD 驅(qū)動控制所需的信號,。在這種接口方式下,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 所示。


圖 2 CR001 模塊的中斷服務程序流程
CR013 射頻讀寫模塊是采用Philips 公司的Mifare 技術設計的微型嵌入式,、非接觸式IC卡讀寫模塊,,內(nèi)嵌 ISO14443 Type A 協(xié)議解釋器,,并可直接驅(qū)動射頻天線。這是一種以被動方式工作的卡,,剛進入天線有效感應區(qū)的卡得電進入空閑(IDLE)狀態(tài),,它只吸收感應區(qū)內(nèi)的磁場能量,不會首先發(fā)出信號,。當讀卡設備發(fā)出請求信號,,符合條件的卡才會響應。因此處理器與模塊之間以一問一答式的半雙工方式進行通信,。

  對 CR013 模塊的讀寫過程相對較復雜,,要執(zhí)行一系列的操作指令,包括詢卡,、請求,、防沖突、選卡,、裝載密鑰,、驗證密碼、讀塊,、寫塊,,這一系列的操作必須按固定的順序。尋卡時,,處理器需要執(zhí)行請求,、防沖突、選卡操作,,與CR013 模塊建立起通信關系,,在通過裝載密鑰、驗證密碼操作后,,才可進行讀卡或?qū)懣ú僮鳌?/p>

  1),、防沖突

  防沖突就是從多張卡中選出一張卡來操作,又叫防碰撞,、防重疊,。如果知道卡的序列號,則可跳過此步,,直接執(zhí)行下一步選卡命令,。若不知道卡的序列號,則必須調(diào)用防碰撞函數(shù),,得到感應區(qū)內(nèi)卡的序列號,。若同時有多張卡在感應區(qū)內(nèi),防碰撞函數(shù)能檢測到,,并且從中選出一張卡的序列號來,。

  2),、選擇卡片

  根據(jù)上一步收到的卡號,發(fā)出選卡命令,。經(jīng)過這一步后才真正選中了一張要操作的卡,,以后的操作都對這張卡進行,。

  整個尋卡過程包括請求,、防沖突、選卡三個步驟,。當微處理器發(fā)出尋卡命令時,,實際上微處理器執(zhí)行了以上3 個步驟。為防止死鎖,,本文設置每步操作的最大次數(shù)為3 次,,若3次不成功則尋卡失敗。程序流程如圖3 所示,。


圖3 CR013 模塊尋卡程序流程
3),、密鑰裝載和驗證密碼

  微處理器發(fā)出讀、寫命令后,,在進行讀寫操作前必須先執(zhí)行密鑰裝載和驗證密碼,。驗證密碼又叫認證、證實,。模塊將裝載到讀卡芯片F(xiàn)M1702SL 中的密碼與卡中指定扇區(qū)的密碼進行認證,,如果密碼相同,則認證成功,,卡允許進行讀寫操作,。

  3.2 LCD 顯示軟件設計

  LCD 用于顯示用戶操作界面,為此需要在屏幕上繪制圖形,,顯示數(shù)據(jù)和文字,。在對LCD 控制器進行操作前,首先要對LCD 控制器的專用寄存器進行初始化,,內(nèi)容包括定義3個LCD 控制寄存器,,3 個幀緩沖區(qū)地址寄存器和3 個顏色查找表寄存器。

  為了在 LCD 上顯示字符和圖形,,需要建立繪圖和字符顯示庫函數(shù),。繪圖函數(shù)包含一些基本的繪圖功能,如畫點,、畫線,、畫矩形框和區(qū)域填充等。其中畫點是最基本的函數(shù),,其它函數(shù)都可以調(diào)用畫點函數(shù)實現(xiàn),。

  為了在 LCD 上顯示字符,,還要建立ASCII 字符和漢字字符的點陣庫和顯示函數(shù)。顯示ASCII 字符的原理是在特定的坐標位置畫點,,形成人們可以識別的字符圖形,。點的坐標根據(jù)建立的ASCII 字符點陣庫來確定。ASCII 字符的點陣庫可以根據(jù)字符的點陣位置生成點陣數(shù)組供調(diào)用,。漢字的顯示原理與ASCII 字符相同,,事先也要建立漢字點陣字庫,這一過程可通過專用的字庫生成軟件實現(xiàn),。另外,,為了節(jié)省存儲器空間,只需建立本系統(tǒng)要用到的漢字小字庫,,而不必生成所有常用字的點陣,。

  3.3 鍵盤和指示燈的軟件設計

  對鍵盤和指示燈的操作控制是由 ZLG7290 實現(xiàn)的,由于S3C44B0X 具有I2C 接口,,因此可直接與ZLG7290 連接,。編程時首先要對 I2C 總線進行初始化,然后打開鍵盤中斷,。當鍵盤有鍵被按下時,,ZLG7290 的INT 引腳會產(chǎn)生一個低電平的中斷請求信號。在ARM 的中斷程序中通過I2C 總線讀取鍵值,,再根據(jù)鍵值完成相應功能,。

  3.4 USB 接口通信

  為方便與 PC 機接口,本系統(tǒng)采用應用廣泛的USB 接口與PC 機通信,。因S3C44B0X 本身不帶USB 接口,,必須要進行擴展。但是,,USB 接口協(xié)議非常復雜,,固件編程和WDM 驅(qū)動程序的編寫都是相當麻煩的工作。為降了設計難度,,縮短開發(fā)周期,,本文采用哈爾濱訊通公司的通用串行總線模塊USB100。該模塊內(nèi)部封裝了USB 協(xié)議和細節(jié),,即插即用,,完全滿足USB1.1 標準,對 USB 接口的操作如同對外部存儲器操作一樣方便,,無需任何外接元件,。

  USB100 模塊有2 根狀態(tài)信號RXF 和TXE,用于與ARM 聯(lián)絡。RXF 為低表示模塊有數(shù)據(jù)輸出,,ARM 可以讀取數(shù)據(jù),;TXE 則表示USB100 發(fā)送緩沖區(qū)的狀態(tài),TXE 為低表示USB100 發(fā)送緩沖器未滿,,可以向發(fā)送緩沖區(qū)寫數(shù)據(jù),。在編程時,可以采用查詢方式實現(xiàn)數(shù)據(jù)的收發(fā),。

  3.5 RTC 實時時鐘顯示功能

  為了顯示讀卡和寫卡的時間,,需要使用實時時鐘(RTC)。S3C44B0X 具有一個獨立的RTC 功能模塊,,能夠像鐘表和日歷一樣保存并自動計算時間,。RTC 的寄存器保存了表示時間的8 位BCD 碼數(shù)據(jù),,包括秒,、分、時,、日,、星期、月和年,,編程時主要是對這些參數(shù)進行初始化設置,。在LCD 上顯示實時時鐘時,需定時地從上述的寄存器中取出相應的數(shù)據(jù),。由于LCD 上字符是根據(jù)ASCII 碼顯示的,,而RTC 的寄存器中存放的時間參數(shù)都以 BCD 碼形式存儲,因此在LCD 顯示日期和時間之前,,必須先對時間數(shù)據(jù)進行格式轉(zhuǎn)換,,即將BCD碼轉(zhuǎn)換為ASCII 碼。

  3.6 PC 機軟件

  PC 機軟件基于windows 操作系統(tǒng),,采用Visual C# 2005 進行編程,。軟件的功能主要包括在PC 機上顯示操作面板,通過與 ARM 嵌入式系統(tǒng)通信實現(xiàn)對RFID 卡的讀寫操作,,并將卡的相關信息在PC 機上顯示,;此外,軟件還能訪問數(shù)據(jù)庫,,將從卡中讀取的數(shù)據(jù)存入數(shù)據(jù)庫中,,或?qū)?shù)據(jù)庫中的取出數(shù)據(jù)寫入RFID 卡,還能根據(jù)用戶的需要查詢相關信息,。數(shù)據(jù)庫采用Microsoft office Access 數(shù)據(jù)庫系統(tǒng),,并采用結構化查詢語言(SQL)對數(shù)據(jù)庫訪問。

  4 結束語

  本文以 ARM 微處理器S3C44B0X 為核心,設計實現(xiàn)了RFID 雙頻讀寫器系統(tǒng),。在對高頻RFID 卡的尋卡過程中,,通過對最大操作次數(shù)的限制,有效地防止了死鎖,。系統(tǒng)具有LCD 顯示器,,通過鍵盤操作便可對RFID 卡的進行讀寫。設計的USB 接口可方便地與PC機連接,,在PC 機上實現(xiàn)對 RFID 卡的操作,。系統(tǒng)功能強,使用靈活,,可滿足多種應用場合,。由于采用了低成本的ARM 微處理器,簡化了硬件,,提高了系統(tǒng)的性價比,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉(zhuǎn)載,。