非接觸式RFID的讀寫器系統(tǒng)設(shè)計(jì)
引言
隨著計(jì)算機(jī)和嵌入式系統(tǒng)的發(fā)展,IC卡已經(jīng)融入人們的日常生活,并發(fā)展成幾大類,其中非接觸IC卡的出現(xiàn)引起了人們的特別關(guān)注。與之相應(yīng),能夠讀取非接觸IC卡內(nèi)信息的讀寫器(閱讀器)也在不斷地發(fā)展和更新。非接觸式卡又稱射頻卡(應(yīng)答器),它使用無(wú)線電調(diào)制方式和閱讀器進(jìn)行信息交換。通常根據(jù)以下幾種標(biāo)準(zhǔn)來(lái)設(shè)計(jì),即ISO/IEC10536標(biāo)準(zhǔn)、ISO/IEC14443標(biāo)準(zhǔn)、 ISO/IEC15693標(biāo)準(zhǔn)。根據(jù)ISO/IEC10536標(biāo)準(zhǔn)設(shè)計(jì)的卡稱為"密耦合卡",對(duì)應(yīng)的閱讀器也相應(yīng)遵循ISO/IEC10536標(biāo)準(zhǔn)設(shè)計(jì);根據(jù)ISO/IEC14443標(biāo)準(zhǔn)設(shè)計(jì)的卡是近耦合卡,對(duì)應(yīng)的閱讀器遵循ISO/IEC14443標(biāo)準(zhǔn)設(shè)計(jì);根據(jù)ISO/IEC15693標(biāo)準(zhǔn)設(shè)計(jì)的卡是遙耦合卡,對(duì)應(yīng)的閱讀器遵循ISO/IEC15693標(biāo)準(zhǔn)設(shè)計(jì)。遙耦合卡比近耦合卡具有更遠(yuǎn)的讀卡距離,但二者均采用13.56 MHz工作頻率,均具有防沖突機(jī)制[1]。
本文以射頻識(shí)別技術(shù)的實(shí)際應(yīng)用為背景,以智能車輛識(shí)別系統(tǒng)的設(shè)計(jì)為實(shí)例,闡述了使用一種TI公司生產(chǎn)的工作于13.56 MHz的典型射頻IC卡進(jìn)行系統(tǒng)開發(fā)的方法。該系統(tǒng)
1系統(tǒng)總體結(jié)構(gòu)及方案設(shè)計(jì)
本系統(tǒng)采用基于IS015693協(xié)議的TI公司的工作于13.56 MHz的射頻標(biāo)簽(RI-I02-112A,RI-I03-112A等)為射頻信息鈕,由基于RI-R6C一001A[2]的射頻信息鈕讀頭模塊、天線、單片機(jī)、電源穩(wěn)壓模塊(UA7805)、串口通信電路(MAX232)、液晶顯示電路(SED1335、MAX749)[3]、無(wú)線收發(fā)模塊(AYG一 59C)[4]等組成。電源穩(wěn)壓模塊把整個(gè)系統(tǒng)的工作電壓穩(wěn)定在5 V,MAX749芯片主要是為液晶模塊提供所需的負(fù)電壓。系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。
把此系統(tǒng)用于城市的公交車運(yùn)行情況的統(tǒng)計(jì)上,前提是要把每輛公交車上貼一個(gè)射頻卡,在每一個(gè)站牌處安裝一個(gè)由閱讀器組成的系統(tǒng)(包括閱讀器、液晶模塊、無(wú)線收發(fā)模塊)。該系統(tǒng)的工作過(guò)程如下:
首先,由應(yīng)用軟件通過(guò)單片機(jī)(PIC16F874)向射頻信息鈕讀卡模塊(RI-R6C一001A)發(fā)出指令(如讀射頻卡的UID),射頻信息鈕讀卡模塊把單片機(jī)發(fā)過(guò)來(lái)的數(shù)據(jù)按所選擇的射頻協(xié)議(ISO15693)[5]的要求對(duì)數(shù)據(jù)進(jìn)行編碼和調(diào)制,然后經(jīng)過(guò)天線發(fā)送出去。此時(shí),在閱讀距離范圍內(nèi)的電子標(biāo)簽(射頻卡)收到此命令,經(jīng)過(guò)認(rèn)證,如果正確,則按命令的要求把自己的UID發(fā)送出去(如果錯(cuò)誤,則返回錯(cuò)誤信息)。讀卡模塊經(jīng)過(guò)天線收到此信息,對(duì)其進(jìn)行解調(diào)和解碼后,通過(guò)SPI串口送給單片機(jī)。單片機(jī)把收到的數(shù)據(jù)通過(guò)RS232串口送給收發(fā)模塊(AYG一59C),收發(fā)模塊以短消息的形式把數(shù)據(jù)發(fā)送給控制中心,然后控制中心把收到的數(shù)據(jù)以短消息群發(fā)的形式送給各個(gè)智能站牌。站牌處的無(wú)線收發(fā)模塊收到此信息后,通過(guò)串口RS232送給單片機(jī)。單片機(jī)把此信息送給液晶顯示模塊,通過(guò)液晶顯示模塊乘客就可以知道公交車行駛的情況。
2系統(tǒng)硬件設(shè)計(jì)
硬件主要包括單片機(jī)MCU、RI一R6C-001A、液晶顯示器、時(shí)鐘電路、匹配電路及接口等外圍電路。下面給出各部分的詳細(xì)說(shuō)明及相關(guān)設(shè)計(jì)。
2.1 MCU部分
圖2為MCU加外圍器件的應(yīng)用原理[6],也即控制部分電路原理。
控制部分首先輔助RI-R6C一001A工作。因?yàn)镽I-R6C一001A芯片要正常工作,實(shí)現(xiàn)射頻閱讀器的功能,不但要有外圍電路,而且還要有控制器對(duì)其進(jìn)行適當(dāng)?shù)目刂?。PIC16F874控制器有豐富的位操作指令,有SPI串行口和精簡(jiǎn)的指令集,能夠很容易地模擬RI-R6C-001A傳送數(shù)據(jù)的時(shí)序以及時(shí)鐘切換的時(shí)序。由于RI-R6C一001A對(duì)外只提供4個(gè)引腳(DOUT、DIN、SCLOCK、M-ERR),所以控制器的接口電路相對(duì)較簡(jiǎn)單。DOUT、DIN、SCLOCK三個(gè)引腳分別連接到單片機(jī)的SPI串行口SDI、SDO、SCK三根線上,用來(lái)實(shí)現(xiàn)數(shù)據(jù)的串行傳輸。M-ERR引腳用來(lái)檢測(cè)接收到射頻卡中的數(shù)據(jù)是否發(fā)生錯(cuò)誤(若有錯(cuò)誤,則此引腳變?yōu)楦唠娖?,因此把此引腳接到單片機(jī)的外部中斷輸入33引腳,用于檢測(cè)接收數(shù)據(jù)是否有錯(cuò)誤,進(jìn)而單片機(jī)對(duì)其作出相應(yīng)的處理。由于RI-R6C一001A在接收射頻卡中的數(shù)據(jù)并把它發(fā)送給控制器時(shí),要求控制器對(duì)其發(fā)送的數(shù)據(jù)是否結(jié)束作出判斷,并且RI-R6C-001A不發(fā)送數(shù)據(jù)時(shí)就不再送時(shí)鐘,所以在此電路設(shè)計(jì)中把RI-R6C一001A的SCLOCK引腳也接到了具有電壓變化中斷功能的 RB4引腳。RB4引腳外接一個(gè)二極管,與軟件結(jié)合起來(lái),要求當(dāng)控制器供應(yīng)時(shí)鐘時(shí),RB4引腳處于高電平輸出狀態(tài),經(jīng)過(guò)二極管,RB4引腳不會(huì)輸入時(shí)鐘;當(dāng)RI-R6C-001A供應(yīng)時(shí)鐘時(shí),RB4引腳處于輸入狀態(tài),SCLOCK信號(hào)輸入此引腳,從而可以對(duì)發(fā)送數(shù)據(jù)是否結(jié)束作出相應(yīng)的判斷。其次控制器還要適時(shí)控制LCD的液晶顯示,圖2中,ADJ、CTRL是與MAX749相連的,提供LCD所需的-20 V電壓;C5、C6、C7、E4、E7以及DO~D7是與LCD相連的控制信號(hào)與數(shù)據(jù)信號(hào);同時(shí)也通過(guò)MAX232控制無(wú)線收發(fā)模塊AYG一59C數(shù)據(jù)的發(fā)送和接收。
2.2射頻部分
微處理器與RI-R6C一001A之間的通信主要通過(guò)幾根連線實(shí)現(xiàn),圖3所示為射頻芯片加外圍器件的應(yīng)用原理[2]。
射頻電路由三大部分組成:RI-R6C一001A應(yīng)用電路,與單片機(jī)相連的接口電路,天線發(fā)送、接收電路。在RI-R6C-001A應(yīng)用電路中,L1、 L2、C2組成的T型網(wǎng)絡(luò)以及L3、C9組成的LC網(wǎng)絡(luò)都起濾波作用,使RI-R6C-001A通過(guò)天線接收的數(shù)據(jù)不至于流向發(fā)送端TX-OUT,因?yàn)榇诵酒l(fā)送數(shù)據(jù)時(shí)頻率是13.56 MHz,而接收
3系統(tǒng)軟件設(shè)計(jì)
RI-R6C-001A射頻芯片正常工作時(shí),一個(gè)基本的請(qǐng)求、應(yīng)答時(shí)序如圖4所示。
由圖4可知,當(dāng)控制器由發(fā)送轉(zhuǎn)換為接收過(guò)程中,它同時(shí)由主動(dòng)轉(zhuǎn)化為被動(dòng),由發(fā)送時(shí)鐘轉(zhuǎn)換為接收時(shí)鐘。這里有時(shí)鐘切換問(wèn)題。
a時(shí)刻表示控制器發(fā)送數(shù)據(jù)結(jié)束(發(fā)送數(shù)據(jù)時(shí)由控制器送出時(shí)鐘);b時(shí)刻控制器把DIN置高電平,為SCLOCK準(zhǔn)備一個(gè)控制模式的轉(zhuǎn)換或者準(zhǔn)備一個(gè)結(jié)束信號(hào) ES1;c時(shí)刻DIN下降,控制器明確表明把SCLOCK的控制權(quán)交給射頻芯片RI-R6C一001A(此時(shí)SCLOCK=O,并且控制器和射頻芯片RI -R6C-001A的時(shí)鐘線都處于輸出狀態(tài));d時(shí)刻DIN再次置高電平,表明控制器離開對(duì)總線的控制,直到DIN下降從而要求收回時(shí)鐘的控制權(quán)。在d時(shí)刻,SCLOCK仍然等于O,但控制器的SCLOCK引腳為輸入狀態(tài),射頻芯片RI-R6C-001A的SCLOCK引腳為輸出狀態(tài)。d時(shí)刻之后,射頻芯片RI-R6C-001A便開始把接收到的從標(biāo)簽過(guò)來(lái)的數(shù)據(jù)送給控制器,以便下一步對(duì)收到的數(shù)據(jù)進(jìn)行處理。當(dāng)射頻芯片RI-R6C-001A控制時(shí)鐘時(shí),它將發(fā)送一個(gè)S2給控制器。S2對(duì)應(yīng)于標(biāo)簽發(fā)過(guò)來(lái)的SOF,然后接著發(fā)送數(shù)據(jù)7位(圖中所示)和一個(gè)ES2對(duì)應(yīng)于標(biāo)簽過(guò)來(lái)的EOF。e時(shí)刻表示標(biāo)簽過(guò)來(lái)的數(shù)據(jù)射頻芯片RI-R6C-001A傳送結(jié)束。e時(shí)刻之后,控制器把DIN置低的目的是收回時(shí)鐘的控制權(quán),DIN引腳再一次出現(xiàn)一個(gè)高電平脈沖,表示控制器收回了對(duì)時(shí)鐘的控制權(quán),在高電平脈沖期間時(shí)鐘將改變方向。根據(jù)需要,可以再進(jìn)行下一次發(fā)送指令。
在智能車輛識(shí)別系統(tǒng)中,閱讀器對(duì)應(yīng)答器的操作主要是讀標(biāo)簽的UID,因此,實(shí)現(xiàn)軟件時(shí),應(yīng)嚴(yán)格按照?qǐng)D4所示的時(shí)序要求。其實(shí),閱讀器對(duì)接收到的一系列數(shù)據(jù)先進(jìn)行判斷,然后決定執(zhí)行什么命令,再將該命令轉(zhuǎn)換為應(yīng)答器所能接受的無(wú)線處理方式。注意,由于閱讀器對(duì)命令的分析和執(zhí)行都需要時(shí)間,所以要保證操作完成的速度和正確性。例如,在發(fā)命令CMD 之后,要有一個(gè)很短的時(shí)間延遲,再發(fā)二進(jìn)制數(shù)據(jù),以確保RI-R6C-001A能正確地動(dòng)作。操作指令和參數(shù)均用十六進(jìn)制數(shù)表示;同時(shí),閱讀器按照 ISO15693無(wú)線協(xié)議規(guī)范,將命令信息包調(diào)制發(fā)出。當(dāng)?shù)玫綉?yīng)答器的應(yīng)答信息后,再向控制器發(fā)送操作結(jié)果信息。命令處理過(guò)程實(shí)際上是命令的解釋和執(zhí)行過(guò)程。下面以讀一個(gè)標(biāo)簽的UID為例(其他命令的用法與之類似),給出系統(tǒng)的工作流程,如圖5所示。
下面是讀標(biāo)簽UID的程序段[5-6]:
由SPI口模擬的RI-R6C-001A的時(shí)序結(jié)果如圖6所示。圖6中,上升沿采樣數(shù)據(jù),兩幅圖中均有兩個(gè)信號(hào),上面的是時(shí)鐘信號(hào) SCLOCK,下面的是數(shù)據(jù)線DIN。起始位后,發(fā)送的數(shù)據(jù)是十六進(jìn)制的7D,緊接著是停止位,然后又是一個(gè)起始位,依次循環(huán)。從時(shí)序圖中可以看出,用 SPI口能完全模擬該射頻芯片的協(xié)議。
結(jié)語(yǔ)
本系統(tǒng)在完成硬件和軟件設(shè)計(jì)后進(jìn)行了制版、調(diào)試和測(cè)試。經(jīng)過(guò)測(cè)試,閱讀器完成了與IC卡之間的數(shù)據(jù)傳輸,已經(jīng)可以使用。系統(tǒng)中程序的設(shè)計(jì)采用PIC16F87X匯編語(yǔ)言和C語(yǔ)言,通過(guò)利用PC機(jī)、仿真器以及MPLAB ICE集成開發(fā)環(huán)境,完成了軟件的調(diào)試。如果硬件和軟件設(shè)計(jì)合理,則可進(jìn)一步提高其可靠性和安全性,再加上成本低廉、讀寫電路簡(jiǎn)單,應(yīng)用必然會(huì)更加廣泛。