一種基于S3C6410的RFID讀卡系統(tǒng)設(shè)計(jì)方案
本文引用地址:http://www.ex-cimer.com/article/249841.htm
3.2 讀卡器驅(qū)動(dòng)設(shè)計(jì)
讀卡器軟件主要由底層驅(qū)動(dòng)、數(shù)據(jù)處理及交互界面組成。微處理器和射頻芯片通過(guò)串口通信,串口驅(qū)動(dòng)的開(kāi)發(fā)使用Android NDK將Linux的C函數(shù)通過(guò)JNI接口生成相應(yīng)的.so動(dòng)態(tài)鏈接庫(kù)供Java語(yǔ)言開(kāi)發(fā)的安卓軟件使用。由于數(shù)據(jù)采用十六進(jìn)制傳輸,因而串口通信需要配置為原始數(shù)據(jù)輸入/輸出。為提高通信速率,本文采用高速波特率921 600 b/s,并通過(guò)奇偶校驗(yàn)有效降低了誤碼率,修改寄存器實(shí)現(xiàn)了8數(shù)據(jù)位的傳輸,較傳統(tǒng)7數(shù)據(jù)位速率提升1/8,主要C代碼如下:
CR95HF支持ISO14443、693等無(wú)線協(xié)議,根據(jù)協(xié)議標(biāo)準(zhǔn)調(diào)用串口函數(shù)和延時(shí)函數(shù)并加載數(shù)據(jù)來(lái)實(shí)現(xiàn)射頻驅(qū)動(dòng)。射頻指令格式如圖6所示。
由不同的CMD命令來(lái)選擇不同協(xié)議,協(xié)議命令參見(jiàn)表1。
3.3 數(shù)據(jù)處理
讀卡器需具有尋卡、防沖突和讀寫卡等功能。設(shè)置串口波特率和選擇協(xié)議,防沖突來(lái)判斷附近存在一張還是多張標(biāo)簽卡。根據(jù)所選CMD及返回結(jié)果對(duì)數(shù)據(jù)處理來(lái)實(shí)現(xiàn)讀卡器和標(biāo)簽的無(wú)線通信,其處理流程如圖7所示。
尋卡、防沖突后選擇地址進(jìn)行讀寫卡,每地址可存儲(chǔ)32位數(shù)據(jù),默認(rèn)為ISO15693協(xié)議。由于原始數(shù)據(jù)輸入/輸出,因而收到信息后通過(guò)函數(shù)ByteArrToHex(byte[])轉(zhuǎn)換為Hex字符串。
搜尋到標(biāo)簽卡后,卡的惟一標(biāo)識(shí)符UID數(shù)據(jù)必須在Android讀卡器軟件里全局通用才能讓讀卡界面和寫卡界面共同來(lái)操控該數(shù)據(jù)。
由于各個(gè)Activity界面數(shù)據(jù)均獨(dú)立,而用傳統(tǒng)的Intent類在多個(gè)界面間傳輸同一組數(shù)據(jù)操作繁瑣且易發(fā)生數(shù)據(jù)沖突,本文通過(guò)Applicat ion類對(duì)接收到的標(biāo)簽卡信息存入數(shù)組RcvBuffer實(shí)現(xiàn)了全局共享。實(shí)現(xiàn)全局共享Java程序如下:
3.4 人機(jī)交互界面軟件設(shè)計(jì)
Android界面開(kāi)發(fā)通過(guò)XML布局文件和Java程序混合實(shí)現(xiàn)。設(shè)計(jì)時(shí),在AndroidManifest.xml文件中注冊(cè)所需界面并通過(guò)網(wǎng)格視圖Grid View來(lái)實(shí)現(xiàn)主界面的圖片按鈕顯示。主界面包括設(shè)置、尋卡、讀卡、寫卡等功能按鈕,選擇后會(huì)通過(guò)Intent類調(diào)用相應(yīng)的子界面組件Activ ity,其通過(guò)setContentView()函數(shù)來(lái)啟動(dòng)相應(yīng)的XML。
4 系統(tǒng)測(cè)試
所開(kāi)發(fā)的讀卡器實(shí)物如圖8所示,左側(cè)為主體,右側(cè)為天線。將RFID軟件下載到讀卡器后的測(cè)試結(jié)果如圖9、圖10所示。圖9為選用4張支持ISO15693協(xié)議的標(biāo)簽放到讀卡器附近時(shí)的尋卡結(jié)果,每個(gè)標(biāo)簽對(duì)應(yīng)唯一的UID標(biāo)識(shí)符,可見(jiàn)讀卡器尋到了附近的所有標(biāo)簽。圖10為讀卡測(cè)試結(jié)果,選擇UID和輸入地址時(shí)能夠成功讀取到該地址的標(biāo)簽數(shù)據(jù)“AA1107FF”??梢?jiàn)讀卡系統(tǒng)能夠成功地與標(biāo)簽無(wú)線通信。
對(duì)讀卡器尋卡和讀寫卡各測(cè)試了400次,只有1次發(fā)生數(shù)據(jù)丟失,表明讀卡器穩(wěn)定性非常高。經(jīng)測(cè)試,無(wú)障礙物遮擋時(shí)讀卡器讀寫距離至少為6.4 cm,有木板、書、皮革等障礙物時(shí)讀寫距離至少為5 cm,可見(jiàn)識(shí)別距離能夠滿足需要。同時(shí)對(duì)ISO14443協(xié)議的標(biāo)簽測(cè)試也表明讀卡器可以對(duì)其穩(wěn)定讀寫。
結(jié)語(yǔ)
本文詳細(xì)介紹了基于S3C6410和CR95HF的新型嵌入式RFID讀卡系統(tǒng)解決方案。該讀卡器工作在13.56MHz的高頻頻段并支持多種協(xié)議。經(jīng)測(cè)試,該讀卡器能對(duì)符合協(xié)議的標(biāo)簽進(jìn)行穩(wěn)定的讀寫,具有便攜、性能強(qiáng)悍、功耗低等特點(diǎn)。本設(shè)計(jì)應(yīng)用范圍廣,可用于航空物流行業(yè)等要求便攜性強(qiáng)且處理速度快的場(chǎng)合。
低通濾波器相關(guān)文章:低通濾波器原理
上拉電阻相關(guān)文章:上拉電阻原理
評(píng)論