孫奇燕,王宜懷,馮德旺,景 林
(1.福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院,福建福州350002;2.蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇蘇州215006)
無線射頻識(shí)別技術(shù)(RFID)作為一種利用射頻通信方法實(shí)現(xiàn)非接觸式、快速、實(shí)時(shí)地采集和處理數(shù)據(jù)的自動(dòng)識(shí)別和數(shù)據(jù)采集技術(shù),已經(jīng)廣泛應(yīng)用到生產(chǎn)、物流、醫(yī)療、交通運(yùn)輸?shù)缺姸囝I(lǐng)域[1-2].目前RFID在全球尚沒有一個(gè)成熟的統(tǒng)一標(biāo)準(zhǔn),主流的13.56 MHz的RFID標(biāo)準(zhǔn)有ISO/IEC14443A、ISO/IEC14443B以及ISO/IEC15693三種,其中,ISO/IEC15693讀寫距離較遠(yuǎn),可達(dá)1 m;而ISO/IEC14443A、ISO/IEC14443B讀寫距離稍近,大約7-15 cm,這3種協(xié)議都有著比較廣泛的應(yīng)用[3].市場(chǎng)上現(xiàn)有的13.56 MHz射頻讀卡器,一般只能支持一種固定的協(xié)議[4],而RFID應(yīng)用系統(tǒng)發(fā)展趨勢(shì)是朝著多接口、多制式、模塊化、防碰撞、嵌入式等方向發(fā)展[5].因此,本文提出一種13.56 MHz頻率RFID讀卡器軟硬件構(gòu)件化設(shè)計(jì)方案,它是以飛思卡爾公司的Kinetis 60系列微控制器為核心,采用TI公司的TRF7960芯片搭建射頻電路,可識(shí)別ISOIEC14443A、ISOIEC14443B以及ISOIEC15693三種協(xié)議的標(biāo)簽,具有防碰撞功能,解決了在讀寫器工作范圍內(nèi)多個(gè)標(biāo)簽同時(shí)通信所引起的相互干擾問題.該讀卡器配有以太網(wǎng)、USB、UART串口、SPI通信接口,擴(kuò)展了顯示、聲音等外圍設(shè)備,可應(yīng)用于多種場(chǎng)合.
RFID讀卡器的軟硬件構(gòu)件化設(shè)計(jì)層次模型如圖1所示.硬件構(gòu)件是指將一個(gè)或多個(gè)功能模塊、支撐電路及其功能描述封裝成為一個(gè)可重用的硬件實(shí)體,提供一系列規(guī)范的輸入、輸出接口.硬件構(gòu)件層根據(jù)硬件構(gòu)件存在形式的不同,可分為內(nèi)部硬件構(gòu)件和外部硬件構(gòu)件.內(nèi)部硬件構(gòu)件內(nèi)嵌在微控制器中,不需要添加額外的功能芯片,只需要相關(guān)的支撐電路即可實(shí)現(xiàn)其功能;外部硬件構(gòu)件則是由設(shè)計(jì)者自己設(shè)計(jì)完成的、位于微控制器外的外部功能模塊,它同時(shí)需要集成功能芯片及其支撐電路.軟件構(gòu)件的設(shè)計(jì)則通過分析構(gòu)件的共性和個(gè)性,抽取構(gòu)件的屬性和對(duì)外接口函數(shù),實(shí)現(xiàn)對(duì)硬件驅(qū)動(dòng)程序的封裝.軟件構(gòu)件層包括針對(duì)硬件構(gòu)件編程的底層軟件構(gòu)件層和與硬件無關(guān)的高層構(gòu)件層,其中底層外設(shè)構(gòu)件可以調(diào)用底層內(nèi)部構(gòu)件,高層構(gòu)件層只能調(diào)用底層外設(shè)構(gòu)件和功能構(gòu)件,而不能直接調(diào)用GPIO構(gòu)件.K60微控制器頭文件為所有寄存器定義.采用該設(shè)計(jì)方案,RFID讀卡器的軟硬件只需少量改動(dòng)便可應(yīng)用到其他嵌入式系統(tǒng)中,從而提高了設(shè)計(jì)的可重用性和可移植性.
圖1 RFID讀卡器軟硬件構(gòu)件層次模型Fig.1 The RFID reader component level model
Kinetis系列微控制器是飛思卡爾公司推出的首款基于ARM Cortex-M4內(nèi)核的微控制器.其子系列K60微控制器因具有IEEE1588以太網(wǎng),全速和高速USB2.0,大閃存,豐富的模擬、通信、定時(shí)和控制外設(shè)等強(qiáng)大功能得到最廣泛的應(yīng)用[6].K60微控制器核心構(gòu)件即為其硬件最小系統(tǒng),由電源、晶振及復(fù)位等電路組成.該構(gòu)件對(duì)外的引腳較多,電源類引腳MAPBGA封裝22個(gè),LQFP封裝27個(gè),復(fù)位引腳1個(gè),晶振引腳3個(gè),JTAG引腳5個(gè),ADC、DAC和USB引腳共14個(gè),IO端口引腳100個(gè).
RFID讀卡器與上位機(jī)的通信可以有多種方式,如以太網(wǎng)、USB、串口等.本文采用串口方式,但是為了方便今后的擴(kuò)展預(yù)留了以太網(wǎng)接口和USB接口.K60微控制器內(nèi)部集成了以太網(wǎng)模塊,但僅僅是以太網(wǎng)控制器(MAC)部分,所以需要添加以太網(wǎng)物理層收發(fā)器(EPHY).EPHY芯片是BroadCom公司生產(chǎn)的AC101L,它支持10/100BASE-T,能完成所有以太網(wǎng)物理層功能,具有單通道、低功耗和支持MII接口的特點(diǎn).物理層收發(fā)器AC101L構(gòu)件與K60的連接如圖2所示.AC101L的XO和X1引腳接25 M的晶振;構(gòu)件左邊的引腳為MII接口的信號(hào)線、復(fù)位和中斷引腳,用于連接K60的以太網(wǎng)控制器部分;構(gòu)件右邊的TD+、TD-、RD+和RD-為以太幀的輸出輸入數(shù)據(jù)線.
射頻芯片是TI(德州儀器)公司推出的高頻(13.56 MHz)、多協(xié)議、防碰撞射頻識(shí)別芯片TRF7960[7].TRF7960采用超小32 pin QFN的高級(jí)封裝設(shè)計(jì),支持ISO/IEC14443A、ISO/IEC14443B、ISO/IEC15693等協(xié)議.它與MCU的通信可以采用8位并行方式或者串行(SPI)方式.由于K60內(nèi)部集成了3個(gè)SPI接口,連接方便,所以RFID構(gòu)件此處使用的是串行方式.RFID構(gòu)件與K60的SPI2口連接如圖3所示.此外,TRF7960硬件上還提供了一個(gè)IRQ中斷引腳,接收數(shù)據(jù)、發(fā)送數(shù)據(jù)、CRC錯(cuò)誤、碰撞等共用該中斷引腳.它連接K60的GPIO腳PTB19,當(dāng)接收到該引腳的請(qǐng)求信號(hào)時(shí),提示K60對(duì)TRF7960的中斷狀態(tài)寄存器(0x0c)進(jìn)行查詢,以查明產(chǎn)生中斷信號(hào)的原因,并做出相應(yīng)的處理.
圖2 以太網(wǎng)物理層收發(fā)器構(gòu)件Fig.2 The Ethernet physical layer transceiver component
圖3 RFID構(gòu)件Fig.3 RFID component
LCD構(gòu)件、指示燈及蜂鳴器構(gòu)件構(gòu)成了終端構(gòu)件.LCD用于顯示讀卡過程中的提示信息.此處采用耀宇科技的YM12864,該LCD可以顯示4行,每行8個(gè)漢字或者16個(gè)字母.它有2種通信方式:并行和串行.并行通信采用11根引腳線,串行通信采用3根引腳線.為了減少引腳連接數(shù)量,此處采用串行通信方式.另外還需一個(gè)引腳控制背光燈電源的正極LEDA開關(guān).LCD構(gòu)件與K60的連接如圖4所示.指示燈及蜂鳴器構(gòu)件中2盞指示燈用于觀察系統(tǒng)的運(yùn)行狀態(tài)和用戶的操作,一盞作為運(yùn)行指示燈常閃,另一盞作為故障指示燈常亮.蜂鳴器在進(jìn)入識(shí)別范圍的卡不能被系統(tǒng)接受時(shí)報(bào)警提示.如圖4所示,指示燈及蜂鳴器構(gòu)件通過GPIO引腳與K60連接.
圖4 終端構(gòu)件Fig.4 Terminal component
K60控制器主函數(shù)按以下順序編程:系統(tǒng)上電初始化,關(guān)總中斷,對(duì)串口、SPI2口、USB、TRF7960等構(gòu)件初始化,開串口中斷和SPI中斷,開總中斷.主循環(huán)包括指示燈狀態(tài)循環(huán)控制和尋卡操作,其流程如圖5所示.上位機(jī)以中斷方式與K60的串口通信,TRF7960射頻芯片通過中斷方式與K60的SPI2口進(jìn)行數(shù)據(jù)傳輸,因此需開串口和SPI2口的中斷.K60對(duì)TRF7960進(jìn)行初始化時(shí)通過設(shè)置ISO控制寄存器(地址0x01h)的protocol參數(shù)可以選擇不同ISO協(xié)議.當(dāng)protocol為0x01時(shí),選擇ISO/IEC15693協(xié)議;當(dāng)proto2col為0x02時(shí),選擇ISO/IEC14443A協(xié)議;當(dāng)protocol為0x03時(shí),選擇ISO/IEC14443B協(xié)議.
圖5 主函數(shù)流程圖Fig.5 The flow chart of main function
為適應(yīng)不同的應(yīng)用場(chǎng)合,尋卡操作有2種模式,自動(dòng)尋卡模式和上位機(jī)命令模式.自動(dòng)尋卡模式不接收上位機(jī)的命令,如果有效磁場(chǎng)區(qū)域內(nèi)有符合協(xié)議標(biāo)準(zhǔn)的電子標(biāo)簽,讀寫器就會(huì)識(shí)別標(biāo)簽的UID號(hào),并將UID傳送給上位機(jī),適合對(duì)標(biāo)簽進(jìn)行自動(dòng)化固定操作,如會(huì)議簽到、自動(dòng)收費(fèi)等.上位機(jī)命令模式是通過讀卡器與上位機(jī)采用的一問一答的方式工作.讀寫器一直處于等待上位機(jī)命令的狀態(tài),只有接收到一個(gè)完整的操作命令數(shù)據(jù)包,讀寫器才去執(zhí)行相應(yīng)的操作,并將操作結(jié)果傳給上位機(jī),適用于對(duì)電子標(biāo)簽進(jìn)行讀寫操作的場(chǎng)合,如開戶、充值、注銷等.
考慮到如果在RFID讀卡器的工作范圍內(nèi)同時(shí)存在多張標(biāo)簽,則有可能發(fā)生多標(biāo)簽沖突的現(xiàn)象,因此在設(shè)計(jì)時(shí)加入防碰撞算法實(shí)現(xiàn)程序.TRF7960射頻芯片可支持多種協(xié)議,雖然不同協(xié)議采集標(biāo)簽信息的方式不相同,防碰撞算法也各不相同,但是都可以通過設(shè)置TRF7960的內(nèi)部相關(guān)寄存器實(shí)現(xiàn)多標(biāo)簽防碰撞功能[8].這里僅給出ISO15693協(xié)議的16時(shí)隙防碰撞算法流程(圖6).讀卡器發(fā)送inventory(清點(diǎn))命令選擇開辟16個(gè)時(shí)隙,按照遞歸查詢方式,第1輪掩碼值等于0,掩碼長(zhǎng)度為0.UID(標(biāo)簽的唯一標(biāo)識(shí)碼)的最低有效位與時(shí)隙號(hào)和掩碼值的和相比較,在某個(gè)時(shí)隙如果匹配的標(biāo)簽只有1張,表明無多標(biāo)簽碰撞,讀卡器識(shí)別出一張標(biāo)簽并且產(chǎn)生一個(gè)接收完(End OF RX)中斷;如果匹配的標(biāo)簽有多張,表明多標(biāo)簽碰撞,則進(jìn)入第2輪查詢.第2輪查詢時(shí)掩碼值等于0,加上發(fā)生碰撞的時(shí)隙號(hào),掩碼長(zhǎng)度為4.UID的最低有效位與時(shí)隙號(hào)左移4位加上掩碼值相比較,有碰撞則再進(jìn)行下一輪循環(huán),依次類推直到所有標(biāo)簽被識(shí)別.
圖6 防碰撞算法流程圖Fig.6 The flow chart of anti-collision algorithm
遵循構(gòu)件化的設(shè)計(jì)思想,調(diào)用各個(gè)軟件構(gòu)件時(shí)只需了解其接口函數(shù)的功能及參數(shù).各個(gè)軟件構(gòu)件接口函數(shù)如表1所示.
表1 構(gòu)件接口函數(shù)Table 1 The interface function of components
本文基于飛思卡爾的Kinetis 60系列微控制器和TI公司的13.56 MHz頻段射頻芯片TRF7960,提出了一種面向3種協(xié)議、具有多種接口和多標(biāo)簽防碰撞功能的RFID讀卡器設(shè)計(jì)方案.同時(shí)為了提高軟硬件的可重用性和可移植性,采用了構(gòu)件化的封裝方法,給出了軟硬件構(gòu)件的模型和接口說明.它為多協(xié)議、多標(biāo)簽RFID讀卡器開發(fā)提供了一個(gè)快速、通用的模型.
[1]DOU Y W,YIN Y,WANG J W.Research and Design of RFID Middleware on Hierarchy[J].激光與光電子進(jìn)展,2012,49(5):1-4.
[2]朱仕浪,王宜懷,馮德旺,等.基于流水線和RFID技術(shù)的快速門禁系統(tǒng)[J].福建農(nóng)林大學(xué)學(xué)報(bào):自然科學(xué)版,2013,42(5):552-556.
[3]薛涵,馮攀,陳鵬飛,等.支持多協(xié)議的13.56MHz RFID讀卡器芯片解調(diào)電路設(shè)計(jì)與實(shí)現(xiàn)[J].固體電子學(xué)研究與進(jìn)展,2012,32(2):155-159.
[4]張捍東,張淳.一種適合多協(xié)議防碰撞的射頻識(shí)別閱讀器設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2009(6):43-46.
[5]張吉婷,李澤滔.基于TRF7960的讀寫器的設(shè)計(jì)[J].中國(guó)新技術(shù)新產(chǎn)品,2012(18):11-13.
[6]王宜懷,吳瑾,蔣銀珍.嵌入式系統(tǒng)原理與實(shí)踐[M].北京:電子工業(yè)出版社,2012:29-32.
[7]Texas Instruments.TRF7960 DATASHEET[EB/OL].[2010-08-01].http://www.ti.com.cn/cn/lit/ds/symlink/trf796 0.pdf.
[8]Texas Instruments.Implementation of the ISO15693 Protocol in the TI TRF796x[EB/OL].[2009-04-01].http://www.ti.com.cn/cn/lit/an/sloa138/sloa138.pdf.