一種基于S3C6410的RFID讀卡系統設計方案
本文引用地址:http://www.104case.com/article/249841.htm

3.2 讀卡器驅動設計
讀卡器軟件主要由底層驅動、數據處理及交互界面組成。微處理器和射頻芯片通過串口通信,串口驅動的開發使用Android NDK將Linux的C函數通過JNI接口生成相應的.so動態鏈接庫供Java語言開發的安卓軟件使用。由于數據采用十六進制傳輸,因而串口通信需要配置為原始數據輸入/輸出。為提高通信速率,本文采用高速波特率921 600 b/s,并通過奇偶校驗有效降低了誤碼率,修改寄存器實現了8數據位的傳輸,較傳統7數據位速率提升1/8,主要C代碼如下:

CR95HF支持ISO14443、693等無線協議,根據協議標準調用串口函數和延時函數并加載數據來實現射頻驅動。射頻指令格式如圖6所示。

由不同的CMD命令來選擇不同協議,協議命令參見表1。
3.3 數據處理
讀卡器需具有尋卡、防沖突和讀寫卡等功能。設置串口波特率和選擇協議,防沖突來判斷附近存在一張還是多張標簽卡。根據所選CMD及返回結果對數據處理來實現讀卡器和標簽的無線通信,其處理流程如圖7所示。

尋卡、防沖突后選擇地址進行讀寫卡,每地址可存儲32位數據,默認為ISO15693協議。由于原始數據輸入/輸出,因而收到信息后通過函數ByteArrToHex(byte[])轉換為Hex字符串。
搜尋到標簽卡后,卡的惟一標識符UID數據必須在Android讀卡器軟件里全局通用才能讓讀卡界面和寫卡界面共同來操控該數據。
由于各個Activity界面數據均獨立,而用傳統的Intent類在多個界面間傳輸同一組數據操作繁瑣且易發生數據沖突,本文通過Applicat ion類對接收到的標簽卡信息存入數組RcvBuffer實現了全局共享。實現全局共享Java程序如下:


3.4 人機交互界面軟件設計
Android界面開發通過XML布局文件和Java程序混合實現。設計時,在AndroidManifest.xml文件中注冊所需界面并通過網格視圖Grid View來實現主界面的圖片按鈕顯示。主界面包括設置、尋卡、讀卡、寫卡等功能按鈕,選擇后會通過Intent類調用相應的子界面組件Activ ity,其通過setContentView()函數來啟動相應的XML。
4 系統測試
所開發的讀卡器實物如圖8所示,左側為主體,右側為天線。將RFID軟件下載到讀卡器后的測試結果如圖9、圖10所示。圖9為選用4張支持ISO15693協議的標簽放到讀卡器附近時的尋卡結果,每個標簽對應唯一的UID標識符,可見讀卡器尋到了附近的所有標簽。圖10為讀卡測試結果,選擇UID和輸入地址時能夠成功讀取到該地址的標簽數據“AA1107FF”。可見讀卡系統能夠成功地與標簽無線通信。

對讀卡器尋卡和讀寫卡各測試了400次,只有1次發生數據丟失,表明讀卡器穩定性非常高。經測試,無障礙物遮擋時讀卡器讀寫距離至少為6.4 cm,有木板、書、皮革等障礙物時讀寫距離至少為5 cm,可見識別距離能夠滿足需要。同時對ISO14443協議的標簽測試也表明讀卡器可以對其穩定讀寫。
結語
本文詳細介紹了基于S3C6410和CR95HF的新型嵌入式RFID讀卡系統解決方案。該讀卡器工作在13.56MHz的高頻頻段并支持多種協議。經測試,該讀卡器能對符合協議的標簽進行穩定的讀寫,具有便攜、性能強悍、功耗低等特點。本設計應用范圍廣,可用于航空物流行業等要求便攜性強且處理速度快的場合。
低通濾波器相關文章:低通濾波器原理
上拉電阻相關文章:上拉電阻原理
評論