基于ARM的雙頻RFID讀寫系統(tǒng)設計
2、選擇卡片
根據上一步收到的卡號,發(fā)出選卡命令。經過這一步后才真正選中了一張要操作的卡,以后的操作都對這張卡進行。
整個尋卡過程包括請求、防沖突、選卡三個步驟。當微處理器發(fā)出尋卡命令時,實際上微處理器執(zhí)行了以上3 個步驟。為防止死鎖,本文設置每步操作的最大次數為3 次,若3次不成功則尋卡失敗。程序流程如圖3 所示。
圖3 CR013 模塊尋卡程序流程
3、密鑰裝載和驗證密碼
微處理器發(fā)出讀、寫命令后,在進行讀寫操作前必須先執(zhí)行密鑰裝載和驗證密碼。驗證密碼又叫認證、證實。模塊將裝載到讀卡芯片FM1702SL 中的密碼與卡中指定扇區(qū)的密碼進行認證,如果密碼相同,則認證成功,卡允許進行讀寫操作。
3.2 LCD 顯示軟件設計
LCD 用于顯示用戶操作界面,為此需要在屏幕上繪制圖形,顯示數據和文字。在對LCD 控制器進行操作前,首先要對LCD 控制器的專用寄存器進行初始化,內容包括定義3個LCD 控制寄存器,3 個幀緩沖區(qū)地址寄存器和3 個顏色查找表寄存器。
為了在 LCD 上顯示字符和圖形,需要建立繪圖和字符顯示庫函數。繪圖函數包含一些基本的繪圖功能,如畫點、畫線、畫矩形框和區(qū)域填充等。其中畫點是最基本的函數,其它函數都可以調用畫點函數實現。
為了在 LCD 上顯示字符,還要建立ASCII 字符和漢字字符的點陣庫和顯示函數。顯示ASCII 字符的原理是在特定的坐標位置畫點,形成人們可以識別的字符圖形。點的坐標根據建立的ASCII 字符點陣庫來確定。ASCII 字符的點陣庫可以根據字符的點陣位置生成點陣數組供調用。漢字的顯示原理與ASCII 字符相同,事先也要建立漢字點陣字庫,這一過程可通過專用的字庫生成軟件實現。另外,為了節(jié)省存儲器空間,只需建立本系統(tǒng)要用到的漢字小字庫,而不必生成所有常用字的點陣。
3.3 鍵盤和指示燈的軟件設計
對鍵盤和指示燈的操作控制是由 ZLG7290 實現的,由于S3C44B0X 具有I2C 接口,因此可直接與ZLG7290 連接。編程時首先要對I2C 總線進行初始化,然后打開鍵盤中斷。當鍵盤有鍵被按下時,ZLG7290 的INT 引腳會產生一個低電平的中斷請求信號。在ARM 的中斷程序中通過I2C 總線讀取鍵值,再根據鍵值完成相應功能。
3.4 USB 接口通信
為方便與 PC 機接口,本系統(tǒng)采用應用廣泛的USB 接口與PC 機通信。因S3C44B0X 本身不帶USB 接口,必須要進行擴展。但是,USB 接口協(xié)議非常復雜,固件編程和WDM 驅動程序的編寫都是相當麻煩的工作。為降了設計難度,縮短開發(fā)周期,本文采用哈爾濱訊通公司的通用串行總線模塊USB100。該模塊內部封裝了USB 協(xié)議和細節(jié),即插即用,完全滿足USB1.1 標準,對 USB 接口的操作如同對外部存儲器操作一樣方便,無需任何外接元件。
USB100 模塊有2 根狀態(tài)信號RXF 和TXE,用于與ARM 聯(lián)絡。RXF 為低表示模塊有數據輸出,ARM 可以讀取數據;TXE 則表示USB100 發(fā)送緩沖區(qū)的狀態(tài),TXE 為低表示USB100 發(fā)送緩沖器未滿,可以向發(fā)送緩沖區(qū)寫數據。在編程時,可以采用查詢方式實現數據的收發(fā)。
3.5 RTC 實時時鐘顯示功能
為了顯示讀卡和寫卡的時間,需要使用實時時鐘(RTC)。S3C44B0X 具有一個獨立的RTC 功能模塊,能夠像鐘表和日歷一樣保存并自動計算時間。RTC 的寄存器保存了表示時間的8 位BCD 碼數據,包括秒、分、時、日、星期、月和年,編程時主要是對這些參數進行初始化設置。在LCD 上顯示實時時鐘時,需定時地從上述的寄存器中取出相應的數據。由于LCD 上字符是根據ASCII 碼顯示的,而RTC 的寄存器中存放的時間參數都以BCD 碼形式存儲,因此在LCD 顯示日期和時間之前,必須先對時間數據進行格式轉換,即將BCD碼轉換為ASCII 碼。
3.6 PC 機軟件
PC 機軟件基于windows 操作系統(tǒng),采用Visual C# 2005 進行編程。軟件的功能主要包括在PC 機上顯示操作面板,通過與ARM 嵌入式系統(tǒng)通信實現對RFID 卡的讀寫操作,并將卡的相關信息在PC 機上顯示;此外,軟件還能訪問數據庫,將從卡中讀取的數據存入數據庫中,或將數據庫中的取出數據寫入RFID 卡,還能根據用戶的需要查詢相關信息。數據庫采用Microsoft office Access 數據庫系統(tǒng),并采用結構化查詢語言(SQL)對數據庫訪問。
4 結束語
本文以 ARM 微處理器S3C44B0X 為核心,設計實現了RFID 雙頻讀寫器系統(tǒng)。在對高頻RFID 卡的尋卡過程中,通過對最大操作次數的限制,有效地防止了死鎖。系統(tǒng)具有LCD 顯示器,通過鍵盤操作便可對RFID 卡的進行讀寫。設計的USB 接口可方便地與PC機連接,在PC 機上實現對RFID 卡的操作。系統(tǒng)功能強,使用靈活,可滿足多種應用場合。由于采用了低成本的ARM 微處理器,簡化了硬件,提高了系統(tǒng)的性價比。
評論