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