国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

S3C6410和CR95HF的RFID讀卡系統(tǒng)設(shè)計(jì)*

2014-09-06 10:49:59劉占杰張艷趙陽(yáng)
關(guān)鍵詞:讀卡讀卡器串口

劉占杰,張艷,趙陽(yáng)

(天津大學(xué) 電子信息工程學(xué)院,天津 300072)

?

S3C6410和CR95HF的RFID讀卡系統(tǒng)設(shè)計(jì)*

劉占杰,張艷,趙陽(yáng)

(天津大學(xué) 電子信息工程學(xué)院,天津 300072)

針對(duì)目前讀卡器主頻低、速度慢、便攜性差等不足,提出了一種基于S3C6410的RFID讀卡系統(tǒng)設(shè)計(jì)方案。本文以高性能的S3C6410嵌入式微處理器為核心,選用新型的CR95HF射頻芯片,開(kāi)發(fā)設(shè)計(jì)了一款高主頻的搭載Android嵌入式系統(tǒng)的新型手持式RFID讀卡器。該讀卡器工作在高頻13.56 MHz,支持ISO14443、ISO15693等多種協(xié)議。實(shí)驗(yàn)證明,該讀卡器能對(duì)符合協(xié)議的標(biāo)簽進(jìn)行讀寫(xiě)操作,讀寫(xiě)距離能夠滿(mǎn)足需要,具有便攜、穩(wěn)定性高、處理速度快等特點(diǎn)。

S3C6410;RFID;讀卡器;CR95HF;Android;嵌入式系統(tǒng)

引 言

射頻識(shí)別(RFID)是一種新興的通過(guò)射頻載波來(lái)發(fā)現(xiàn)目標(biāo)和進(jìn)行無(wú)線數(shù)據(jù)交換的識(shí)別與跟蹤技術(shù)[1]。RFID與其他技術(shù)相比,具有識(shí)別速度快、抗干擾能力強(qiáng)、安全性高、非接觸等優(yōu)點(diǎn)[2]。因此該技術(shù)已廣泛應(yīng)用于門(mén)禁系統(tǒng)、物流配送、校園卡等多種日常生活,作為物聯(lián)網(wǎng)關(guān)鍵技術(shù),未來(lái)的發(fā)展?jié)摿薮骩3]。但是現(xiàn)有的讀卡器普遍存在主頻低、處理速度慢、便攜性差等缺點(diǎn),難以滿(mǎn)足日益發(fā)展的使用需求。針對(duì)這些不足,本文基于高主頻、性能強(qiáng)悍的S3C6410嵌入式微處理器,選用新型的CR95HF射頻芯片,開(kāi)發(fā)設(shè)計(jì)了一款工作在高頻13.56 MHz的手持式RFID讀卡器,同時(shí)創(chuàng)新性地搭載新興的Android嵌入式系統(tǒng),支持ISO14443、ISO15693等多種協(xié)議,處理速度快且準(zhǔn)確度高。

1 系統(tǒng)結(jié)構(gòu)與工作原理

本文設(shè)計(jì)的嵌入式RFID讀卡系統(tǒng)由微處理器、觸摸屏、電源、射頻、存儲(chǔ)、天線等組成。整體結(jié)構(gòu)如圖1所示。

圖1 RFID讀卡系統(tǒng)結(jié)構(gòu)

讀卡器要求處理速度快,能夠?qū)崟r(shí)顯示信息,因而選用性能強(qiáng)悍、功耗極低的S3C6410嵌入式微處理器作為核心,其基于先進(jìn)的ARM11內(nèi)核,燒寫(xiě)Android嵌入式系統(tǒng)。射頻芯片采用ST公司的新型非接觸芯片CR95HF,與微處理器之間通過(guò)串口進(jìn)行通信。工作原理為:讀取標(biāo)簽數(shù)據(jù)時(shí),將標(biāo)簽靠近讀卡器,觸摸屏操控端傳輸讀命令給S3C6410,其操控射頻模塊將該命令發(fā)送給標(biāo)簽,標(biāo)簽收到后將所需數(shù)據(jù)返還給讀卡器顯示;執(zhí)行寫(xiě)入操作時(shí),S3C6410收到觸摸屏寫(xiě)命令后操控射頻模塊向標(biāo)簽寫(xiě)入數(shù)據(jù)。

2 系統(tǒng)硬件設(shè)計(jì)

2.1 微處理器外圍和電源電路設(shè)計(jì)

本設(shè)計(jì)采用三星公司的S3C6410嵌入式微處理器作為主控芯片,其主頻高達(dá)667 MHz,是一款基于ARM11內(nèi)核的高性能RISC處理器。S3C6410包括電源管理、串口、SPI、I2C總線、USB和I/O等多種硬件接口,具有性能強(qiáng)悍、處理速度快且功耗低等優(yōu)點(diǎn)[4],能滿(mǎn)足系統(tǒng)的設(shè)計(jì)需要。并行使用2片128M DDR芯片K4X1G163PC來(lái)實(shí)現(xiàn)256M的RAM電路。主控芯片利用串口和射頻模塊通信,并通過(guò)USB接口和上位機(jī)通信。

系統(tǒng)設(shè)計(jì)了5 V直流和3.7 V鋰電池兩種方式供電來(lái)滿(mǎn)足讀卡器手持需求,并用跳線帽選擇。鋰電池供電時(shí)讀卡器能手持使用。系統(tǒng)電源需要5 V和3.3 V兩種。3.7 V鋰電池通過(guò)升壓芯片轉(zhuǎn)化為5 V,之后通過(guò)穩(wěn)壓芯片LM1117轉(zhuǎn)換為3.3 V給微處理器、射頻芯片供電。直流電源供電時(shí)通過(guò)LM1117就能完成供電。LM1117能支持接近1 A的大電流輸出,其電路如圖2所示。輸入為VCC5,輸出為VCC3.3,C1~C4為去耦電容,用于消除電源引腳自激,保持電源穩(wěn)定。

圖2 電源轉(zhuǎn)換電路

2.2 射頻電路及匹配網(wǎng)絡(luò)設(shè)計(jì)

本文設(shè)計(jì)的讀卡器射頻芯片采用CR95HF,其是ST公司具有SPI和串口的高頻13.56 MHz新型收發(fā)器芯片,支持ISO14443、ISO15693、ISO18092等多種協(xié)議,主要用于RFID和NFC近場(chǎng)通信[5]。射頻電路如圖3所示,CR95HF利用串口與微處理器通信,其串口引腳為UART_TX和UART_RX。將SSI_0、SSI_1接地置0來(lái)實(shí)現(xiàn)串口模式。上拉電阻R5、R6將電平鉗制在高電平,并起到限流保護(hù)作用。C2、C5為去耦電容。兩個(gè)TX和RX引腳連接匹配網(wǎng)絡(luò)和天線。

圖3 射頻電路

匹配網(wǎng)絡(luò)設(shè)計(jì)時(shí)首先通過(guò)0 Ω電阻和不焊的接地電容來(lái)構(gòu)成低通濾波器抑制高次諧波,之后設(shè)計(jì)匹配電容。采用PCB矩形天線,由于其與匹配網(wǎng)絡(luò)等效電容構(gòu)成13.56 MHz的LC諧振電路[6],從而可以得到電感參數(shù)進(jìn)行天線設(shè)計(jì)。設(shè)計(jì)PCB時(shí)注意將電源線加寬并與射頻部分隔離,盡量縮短射頻電路之間的連線長(zhǎng)度,并減少回路面積來(lái)防止PCB各線路的信號(hào)串?dāng)_和電磁干擾(EMI),提高制板的穩(wěn)定性。

2.3 觸摸屏與存儲(chǔ)電路

讀卡器采用4.3寸、分辨率為272×480的LCD液晶屏,能夠?qū)崿F(xiàn)良好的界面顯示。屏幕為電阻觸摸屏,利用24條I/O口與微處理器通信來(lái)顯示信息。微處理器通過(guò)10條控制I/O口和屏幕相連來(lái)實(shí)現(xiàn)控制功能。

內(nèi)核代碼、顯示數(shù)據(jù)、應(yīng)用程序和讀取的標(biāo)簽信息均需要存儲(chǔ),因而讀卡器設(shè)計(jì)了FLASH和SD卡。FLASH選用K9G8G08U0A芯片,1 GB容量,利用片選信號(hào)CSN2控制,用來(lái)存儲(chǔ)內(nèi)核代碼與應(yīng)用軟件。SD卡容量為8 GB,和微處理器通過(guò)高速M(fèi)MC接口相連,用來(lái)存儲(chǔ)顯示數(shù)據(jù)和標(biāo)簽信息,其電路如圖4所示。時(shí)鐘引腳為MMC0_CLK,MMC0_CDN、MMC0_WPN、MMC0_CMD為控制引腳,用來(lái)控制SD卡讀寫(xiě)。R17~R24為上拉電阻,MMC0_DATA0~MMC0_DATA3為數(shù)據(jù)通信引腳,用來(lái)傳輸讀寫(xiě)數(shù)據(jù)。

圖4 SD卡電路

3 系統(tǒng)軟件設(shè)計(jì)

3.1 嵌入式系統(tǒng)移植

本讀卡器移植嵌入式Android 2.3操作系統(tǒng)并開(kāi)發(fā)RFID應(yīng)用軟件。Android是谷歌公司推出的基于Linux內(nèi)核的手機(jī)操作系統(tǒng),是一種真正開(kāi)源且功能強(qiáng)大的嵌入式移動(dòng)系統(tǒng),采用軟件堆層架構(gòu)[7-8]。嵌入式系統(tǒng)移植如圖5所示。PC機(jī)通過(guò)arm-linux-gcc交叉編譯工具構(gòu)建開(kāi)發(fā)環(huán)境,編譯Uboot生成燒入FLASH引導(dǎo)程序,編譯Linux內(nèi)核生成Android所需的底層映像zImage,并裁減、編譯Android源碼生成根系統(tǒng)rootfs.yaffs2,將以上文件導(dǎo)入SD卡來(lái)實(shí)現(xiàn)系統(tǒng)的移植和燒寫(xiě)。

圖5 嵌入式Android系統(tǒng)移植

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代碼如下:

newtio.c_lflag &= ~(ICANON|ECHO|ECHOE|ISIG);

//以原始數(shù)據(jù)(十六進(jìn)制)輸入

newtio.c_oflag &= ~(OPOST); //以原始數(shù)據(jù)輸出

newtio.c_cflag |= (CLOCAL|CREAD); //使能串口接收

newtio.c_cflag &= ~CSIZE;

newtio.c_cflag |= CS8; //選用8數(shù)據(jù)位

newtio.c_iflag |= (INPCK ); //配置實(shí)現(xiàn)8數(shù)據(jù)位加偶校驗(yàn)

newtio.c_cflag |= PARENB; //偶校驗(yàn)

newtio.c_cflag &= ~PARODD;

cfsetispeed(&newtio, B921600); cfsetospeed(&newtio, B921600); //波特率921 600 b/s

CR95HF支持ISO14443、ISO15693等無(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。

圖6 射頻指令格式

通信協(xié)議選擇命令I(lǐng)SO144430202010DISO1569302020200

3.3 數(shù)據(jù)處理

圖7 數(shù)據(jù)處理流程

讀卡器需具有尋卡、防沖突和讀寫(xiě)卡等功能。設(shè)置串口波特率和選擇協(xié)議,防沖突來(lái)判斷附近存在一張還是多張標(biāo)簽卡。根據(jù)所選CMD及返回結(jié)果對(duì)數(shù)據(jù)處理來(lái)實(shí)現(xiàn)讀卡器和標(biāo)簽的無(wú)線通信,其處理流程如圖7所示。

尋卡、防沖突后選擇地址進(jìn)行讀寫(xiě)卡,每地址可存儲(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讀卡器軟件里全局通用才能讓讀卡界面和寫(xiě)卡界面共同來(lái)操控該數(shù)據(jù)。

由于各個(gè)Activity界面數(shù)據(jù)均獨(dú)立,而用傳統(tǒng)的Intent類(lèi)在多個(gè)界面間傳輸同一組數(shù)據(jù)操作繁瑣且易發(fā)生數(shù)據(jù)沖突,本文通過(guò)Application類(lèi)對(duì)接收到的標(biāo)簽卡信息存入數(shù)組RcvBuffer實(shí)現(xiàn)了全局共享。實(shí)現(xiàn)全局共享Java程序如下:

public class Application extends android.app.Application {

//采用Application類(lèi)

private byte[] RcvBuffer=new byte[64];

//共享數(shù)組RcvBuffer;

public SerialPortFinder mSerialPortFinder = new SerialPortFinder();

//串口權(quán)限公有

public void setRcvBuffer(byte[] RcvBufferSet){

//將標(biāo)簽信息存入數(shù)組RcvBuffer

for(w=0;w<64;w++) this.RcvBuffer[w]=(byte)RcvBufferSet[w];

}

public byte[] getRcvBuffer(){

//得到數(shù)組RcvBuffer,實(shí)現(xiàn)全局共享

return RcvBuffer;

}

}

3.4 人機(jī)交互界面軟件設(shè)計(jì)

Android界面開(kāi)發(fā)通過(guò)XML布局文件和Java程序混合實(shí)現(xiàn)。設(shè)計(jì)時(shí),在AndroidManifest.xml文件中注冊(cè)所需界面并通過(guò)網(wǎng)格視圖GridView來(lái)實(shí)現(xiàn)主界面的圖片按鈕顯示。主界面包括設(shè)置、尋卡、讀卡、寫(xiě)卡等功能按鈕,選擇后會(huì)通過(guò)Intent類(lèi)調(diào)用相應(yīng)的子界面組件Activity,其通過(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ú)線通信。

圖8 讀卡器實(shí)物圖

圖9 尋卡測(cè)試結(jié)果

圖10 讀卡測(cè)試結(jié)果

對(duì)讀卡器尋卡和讀寫(xiě)卡各測(cè)試了400次,只有1次發(fā)生數(shù)據(jù)丟失,表明讀卡器穩(wěn)定性非常高。經(jīng)測(cè)試,無(wú)障礙物遮擋時(shí)讀卡器讀寫(xiě)距離至少為6.4 cm,有木板、書(shū)、皮革等障礙物時(shí)讀寫(xiě)距離至少為5 cm,可見(jiàn)識(shí)別距離能夠滿(mǎn)足需要。同時(shí)對(duì)ISO14443協(xié)議的標(biāo)簽測(cè)試也表明讀卡器可以對(duì)其穩(wěn)定讀寫(xiě)。

結(jié) 語(yǔ)

[1] Soodmand S, Brown T W C, Gluhak A. Evaluation of HF band NFC/RFID antennas for smart shelf applications[C]//2013 7th European Conference onAntennas and Propagation (EuCAP). IEEE, 2013: 1895-1898.

[2] 薛涵. 13.56MHz射頻識(shí)別讀卡器芯片接收子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 武漢:華中科技大學(xué),2012.

[3] 龔潔中,陳恭亮,李林森,等. 基于流密碼的RFID安全認(rèn)證協(xié)議[J]. 計(jì)算機(jī)工程,2012,38(18):126-129.

[4] Samsung Electronics Co., Ltd. S3C6410X Datasheet[EB/OL]. [2009-02-13]. http://www.samsungsemi.com.

[5] STMicroelectronics. CR95HF Datasheet[EB/OL]. [2012-07-31]. http://www.st.com/web/cn/catalog/mmc/FM76/CL1766/SC1540.

[6] Li Y, Liu J, Lee H. Ground switching load modulation with ground isolation for passive HF RFID transponders[J]. Very Large Scale Integration (VLSI) Systems, IEEE Transactions on, 2012, 20(8): 1443-1452.

[7] 肖文平,楊斌. 基于Android的車(chē)載導(dǎo)航系統(tǒng)的研究與設(shè)計(jì)[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012,12(4):67-70.

[8] 李琴,陳立定,任志剛. 基于Android智能手機(jī)遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計(jì)[J]. 電視技術(shù),2012,36(7):134-136.

劉占杰、張艷(碩士研究生),主要研究方向?yàn)樯漕l識(shí)別技術(shù)、嵌入式系統(tǒng)應(yīng)用;趙陽(yáng)(博士研究生),主要研究方向?yàn)闊o(wú)線射頻定位技術(shù)、射頻識(shí)別技術(shù)。

RFID Reader System Based on S3C6410 and CR95HF

Liu Zhanjie, Zhang Yan, Zhao Yang

(Electronic Information Engineering Academy, Tianjin University, Tianjin 300072, China)

For the lack of readers' weak performance, slow speed and poor portability, a design method of RFID reader system based on S3C6410 is proposed. Using S3C6410 microprocessor as a core, choosing CR95HF radio chip, a new kind of handled RFID reader is developed which performs at high frequency and runs Android OS. The reader works at 13.56MHz HF frequency, supporting ISO 14443 and ISO 15693 protocols. Experiment shows that the reader can read and write tags compiled with the protocols ,and the communication distance can meet the requirement. The reader has the features of portability, high stability and fast speed.

S3C6410; RFID; reader; CR95HF; Android; embedded system

天津市科技支撐計(jì)劃重點(diǎn)項(xiàng)目(項(xiàng)目編號(hào):10ZCKFGX03600)。

TN919

A

迪娜

2014-01-05)

猜你喜歡
讀卡讀卡器串口
煤礦井下車(chē)輛乘人防漏識(shí)別讀卡基站設(shè)計(jì)
煤礦安全(2022年8期)2022-08-16 03:00:24
智能會(huì)議預(yù)約終端內(nèi)置讀卡器性能的改善*
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
與淘汰命運(yùn)抗?fàn)帯】炊P記本的讀卡器
基于EMV非接通信規(guī)范的非接觸讀卡器設(shè)計(jì)
為二維碼識(shí)別的獻(xiàn)禮之作——評(píng)測(cè)平治二維碼門(mén)禁讀卡器
USB接口的多串口數(shù)據(jù)并行接收方法探索
基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無(wú)線通信
MATLAB實(shí)現(xiàn)組態(tài)王中TCP/IP讀卡器監(jiān)控方法
基于LINUX的PBOC3.0關(guān)鍵讀卡技術(shù)的研究與應(yīng)用
灵寿县| 江阴市| 佛山市| 金沙县| 灵宝市| 吉安市| 枞阳县| 噶尔县| 林口县| 岳阳县| 桃园市| 额济纳旗| 博罗县| 旬阳县| 新疆| 泰来县| 永福县| 沙湾县| 三都| 彰化县| 长顺县| 东丽区| 崇礼县| 饶阳县| 渝北区| 惠东县| 岱山县| 英吉沙县| 永福县| 象山县| 银川市| 萍乡市| 莎车县| 桦甸市| 广东省| 望都县| 临颍县| 通渭县| 绥德县| 炉霍县| 比如县|