,,
(海南熱帶海洋學(xué)院 海洋信息工程學(xué)院,三亞 572022)
RFID射頻識(shí)別技術(shù)屬于自動(dòng)識(shí)別技術(shù)中的一種,也是物聯(lián)網(wǎng)技術(shù)中的核心技術(shù)之一,其原理是通過(guò)無(wú)線(xiàn)射頻方式產(chǎn)生電磁場(chǎng)或者是交變磁場(chǎng),然后對(duì)場(chǎng)內(nèi)的電子標(biāo)簽進(jìn)行非接觸式的數(shù)據(jù)通信[1-2]。常見(jiàn)的RFID系統(tǒng)中主要有低頻LF頻段系統(tǒng)、高頻HF頻段系統(tǒng)、超高頻UHF頻段系統(tǒng)和微波頻段系統(tǒng),各頻段系統(tǒng)的特征不盡相同[3-4]。本文針對(duì)LF頻段RFID展開(kāi)研究,該頻段RFID系統(tǒng)具備相關(guān)國(guó)際標(biāo)準(zhǔn),電子標(biāo)簽的形式較為多樣,相關(guān)基站芯片的種類(lèi)也較多,對(duì)常規(guī)建筑物、木材、石板等穿透力較強(qiáng),但市面上該頻段RFID閱讀器識(shí)別距離普遍較短,閱讀器產(chǎn)生的磁場(chǎng)強(qiáng)度不夠,磁場(chǎng)分布不均,可能導(dǎo)致移動(dòng)電子標(biāo)簽的“丟卡”現(xiàn)象,無(wú)法適用于中遠(yuǎn)距離的射頻識(shí)別需求[5-6]。基于此類(lèi)問(wèn)題,本文設(shè)計(jì)了一種大電流高電壓的射頻前端諧振電路,改進(jìn)了天線(xiàn)線(xiàn)纜材料,優(yōu)化了曼徹斯特解碼程序,綜合提升了RFID識(shí)別距離和解碼響應(yīng)速度。
常見(jiàn)的LF頻段RFID讀寫(xiě)器系統(tǒng)均基于電感耦合模型設(shè)計(jì),該耦合方式類(lèi)似于變壓器裝置,讀寫(xiě)器上電后會(huì)產(chǎn)生高頻交變磁場(chǎng),激勵(lì)信號(hào)頻率一般是125 kHz,如果特定頻段的電子標(biāo)簽進(jìn)入了磁場(chǎng)就能感應(yīng)磁場(chǎng)產(chǎn)生電壓,感應(yīng)電壓就可以用于電子標(biāo)簽內(nèi)部的工作[7-8]。讀寫(xiě)器一般具備3個(gè)必要組成部分,即讀寫(xiě)器接口、讀寫(xiě)器主板和天線(xiàn)線(xiàn)圈,接口負(fù)責(zé)與后級(jí)設(shè)備連接,用于傳輸電子標(biāo)簽信息或者接收控制指令。讀寫(xiě)器主板一般包含天線(xiàn)驅(qū)動(dòng)電路、微控制器處理電路、信號(hào)處理與放大電路及電源電路。讀寫(xiě)器天線(xiàn)線(xiàn)圈一般設(shè)計(jì)在產(chǎn)品外形框內(nèi)部,根據(jù)實(shí)際需求可變化外形及長(zhǎng)度,多以矩形和圓形為主,用于產(chǎn)生交變磁場(chǎng)和耦合標(biāo)簽信號(hào),也是影響距離參數(shù)的重點(diǎn)之一,基于此模型設(shè)計(jì)的讀寫(xiě)器結(jié)構(gòu)框圖如圖1所示。

圖1 讀寫(xiě)器結(jié)構(gòu)框圖
硬件電路中含有多個(gè)功能單元,重點(diǎn)設(shè)計(jì)了電源、高品質(zhì)因數(shù)的射頻前端電路、衰減補(bǔ)償?shù)臋z波放大電路以及聲光指示電路、單片機(jī)處理電路和讀寫(xiě)器功能接口電路。讀寫(xiě)器部分主要完成對(duì)LF頻段電子標(biāo)簽的數(shù)據(jù)通信和讀寫(xiě)標(biāo)簽數(shù)據(jù),具備調(diào)制、解調(diào)和解碼功能。
實(shí)物天線(xiàn)采用了5圈外徑約為3.25 mm的滌綸聚氨酯漆包線(xiàn)繞制而成,每一圈滌綸聚氨酯漆包線(xiàn)內(nèi)部又是由600股線(xiàn)徑0.1 mm的滌綸聚氨酯漆包線(xiàn)合成的。實(shí)物設(shè)計(jì)的天線(xiàn)線(xiàn)圈把多股漆包線(xiàn)按計(jì)算后的矩形位置束合在一起,形成眾多圓周表面以降低集膚效應(yīng),使高頻電阻下降而提高天線(xiàn)線(xiàn)圈的品質(zhì)因素。在設(shè)計(jì)時(shí)先選定矩形線(xiàn)圈外形,用理論計(jì)算討論線(xiàn)圈的最佳尺寸,再配合仿真工具,經(jīng)過(guò)多次繞制測(cè)試,也更換過(guò)多次天線(xiàn)材料,最終設(shè)計(jì)了一款長(zhǎng)寬均為23 cm、天線(xiàn)感量為14.015 μH,天線(xiàn)損耗電阻值為0.056 2 Ω的天線(xiàn)線(xiàn)圈作為讀寫(xiě)器天線(xiàn),制作實(shí)物如圖2所示。

圖2 天線(xiàn)線(xiàn)圈實(shí)物圖
射頻前端電路中包含天線(xiàn)線(xiàn)圈接入部分、電容陣列部分、天線(xiàn)線(xiàn)圈信號(hào)功率放大部分和基頻濾除部分以及諧振信號(hào)單向整流電路部分,電路原理如圖3所示。左側(cè)部分的多圈圖形即為天線(xiàn)線(xiàn)圈,天線(xiàn)與C4、C5、C6、C23、C24、C25等CBB電容組成串聯(lián)諧振電路,中間的C15和C16是保留的電容焊盤(pán),可以用來(lái)微調(diào)諧振參數(shù)。C6電容的非接地端接出信號(hào)分為兩路:第一路是將自舉放大后的諧振信號(hào)Net_A送至包絡(luò)檢波電路,第二路是經(jīng)過(guò)LC濾波電路去除基頻后再單向整流送至單片機(jī)處理單元中。U3、U4、U5和U6是4個(gè)MOS管組成了橋式驅(qū)動(dòng)單元,P20、P18、P19和P1電氣網(wǎng)絡(luò)來(lái)自單片機(jī)處理單元,傳輸了單片機(jī)產(chǎn)生的互補(bǔ)式125 kHz驅(qū)動(dòng)信號(hào)。

圖3 射頻前端電路原理圖
包絡(luò)檢波是利用二極管的單向?qū)щ娞匦院蜋z波負(fù)載RC的充放電過(guò)程來(lái)提取調(diào)制信號(hào)的,經(jīng)過(guò)了包絡(luò)檢波變換后的信號(hào)與之前高頻調(diào)幅的信號(hào)是相似的,兩種信號(hào)的包絡(luò)變化是同步的,這種電路就是本章需要設(shè)計(jì)的射頻后級(jí)包絡(luò)檢波器。包絡(luò)檢波電路如圖4所示,該電路是一個(gè)典型的無(wú)源包絡(luò)檢波電路單元,讀寫(xiě)器射頻前端輸出的調(diào)幅信號(hào)其實(shí)就是Net_A,該信號(hào)進(jìn)入了由二極管和相關(guān)阻容器件所構(gòu)成的無(wú)源包絡(luò)檢波電路單元中,D7、D6、D10、D11就是檢波二極管,信號(hào)經(jīng)過(guò)這些二極管的時(shí)候負(fù)半周的信號(hào)被消去,只剩下了正半周信號(hào)能過(guò)通過(guò)電路到達(dá)后級(jí),這時(shí)如果利用低通濾波器對(duì)每個(gè)信號(hào)周期取平均值,就可以提取得到射頻信號(hào)中混雜的原始基帶低頻信號(hào)。
這個(gè)過(guò)程利用了包絡(luò)檢波電路的解調(diào)和檢波功能。在原理圖中,Net_A電氣網(wǎng)絡(luò)為射頻前端網(wǎng)絡(luò)的輸出信號(hào),Net_B電氣網(wǎng)絡(luò)為圖4中包絡(luò)檢波后的信號(hào)輸出,P14連接到了單片機(jī)處理單元,作為信號(hào)反饋和天線(xiàn)諧振狀態(tài)檢測(cè)。

圖4 包絡(luò)檢波電路原理圖

圖5 P87LPC767單片機(jī)核心電路原理圖
讀寫(xiě)器主控制器單元部分采用了Philips公司生產(chǎn)的P87LPC767單片機(jī),該單片機(jī)核心主要負(fù)責(zé)天線(xiàn)線(xiàn)圈射頻前端電路的諧振狀態(tài)檢測(cè),以及接收數(shù)據(jù)的解碼和與第一個(gè)單片機(jī)單元的數(shù)據(jù)交互,其電路原理圖如圖5所示。電路中包含了基本的信號(hào)放大電路和單片機(jī)控制器核心電路,U11為單片機(jī)芯片P87LPC767,電氣網(wǎng)絡(luò)P4為U11單片機(jī)芯片的復(fù)位信號(hào)輸出網(wǎng)絡(luò),該復(fù)位電路既能上電自動(dòng)為U11單片機(jī)芯片提供復(fù)位操作,又可以根據(jù)用戶(hù)的實(shí)際情況采用手動(dòng)方式對(duì)U11單片機(jī)芯片P87LPC767進(jìn)行復(fù)位操作。U12、U13、U14和U15主要是對(duì)X1X和X2X網(wǎng)絡(luò)信號(hào)進(jìn)行二次放大,便于單片機(jī)檢測(cè)射頻前端狀態(tài)。其中,619和718均是國(guó)產(chǎn)三極管,BAV99W是二極管。
本文設(shè)計(jì)和實(shí)現(xiàn)的LF頻段RFID讀寫(xiě)器軟件部分主要實(shí)現(xiàn)的功能包括:基于單片機(jī)處理單元產(chǎn)生射頻125kHz信號(hào)、產(chǎn)生無(wú)源蜂鳴器激勵(lì)信號(hào)、檢測(cè)射頻前端諧振電路狀態(tài)、解析EM4100芯片的Manchester編碼、封裝數(shù)據(jù)幀格式以及初始化串口資源向后臺(tái)發(fā)送電子標(biāo)簽信息。軟件部分的設(shè)計(jì)重點(diǎn)在Manchester編碼上。
EM4100芯片的內(nèi)部已經(jīng)固化了一組64位數(shù)據(jù),64位數(shù)據(jù)中包含了8位版本號(hào)和廠家的編號(hào),剩下的32位數(shù)據(jù)就是芯片電子標(biāo)簽的ID序列了,芯片內(nèi)部固化的64位數(shù)據(jù)開(kāi)頭是由9個(gè)“1”組成的同步頭,這個(gè)同步頭非常重要,在解碼程序中就需要檢測(cè)同步頭以獲得有效和完整的數(shù)據(jù)編碼[9-10]。同步頭之后是10組4位的電子標(biāo)簽數(shù)據(jù),最前的兩組一共是8位,表示版本號(hào)和廠家編號(hào),后面的8組就是ID序列,每組4位數(shù)據(jù)后面還有偶校驗(yàn)位。最后一組4位數(shù)據(jù)是對(duì)前面的10組數(shù)據(jù)各列的偶校驗(yàn)結(jié)果。當(dāng)電子標(biāo)簽進(jìn)入天線(xiàn)場(chǎng)獲得能量后就會(huì)連續(xù)傳出數(shù)據(jù)編碼到讀寫(xiě)器。
按照Manchester編碼的組成規(guī)律、EM4100信號(hào)數(shù)據(jù)的同步頭規(guī)則以及每一位數(shù)據(jù)的持續(xù)時(shí)間,就可以在程序上構(gòu)建解碼算法,可以用單片機(jī)的定時(shí)計(jì)數(shù)器捕獲外部編碼數(shù)據(jù),然后檢測(cè)波形的跳變邊沿,判斷每位的時(shí)間寬度和邊沿跳變的時(shí)間就能得到編碼所對(duì)應(yīng)的二進(jìn)制數(shù)據(jù),再將數(shù)據(jù)進(jìn)行提取和組合,最后得到有效的電子標(biāo)簽ID卡號(hào)序列。
在程序的實(shí)現(xiàn)上采用了軟件精確延時(shí)方法,編寫(xiě)了Delay384μs()延時(shí)函數(shù)提供精確的384 μs延時(shí)間隔,該時(shí)間間隔只要在256~512 μs之間即可,不能超過(guò)512 μs,因?yàn)閭鬏?位數(shù)據(jù)的持續(xù)時(shí)間不超過(guò)512 μs,必須在其持續(xù)范圍內(nèi)去檢測(cè)。利用C語(yǔ)言編寫(xiě)的Manchester編碼延時(shí)法解碼核心代碼如下:
ulong GetRead_Card(){ //讀取卡號(hào)功能函數(shù)
{
while(1)//進(jìn)入死循環(huán)
{
if(TOUT==10)return 0;
//判斷10次同步頭失敗后返回“0”
else TOUT++;Find_NO=0;
while(ManchesterCode==0)
//等待64位序列中的“1”
{
if(Finde_NO==TIME_OF)break;else Finde_NO++;
}
if(Finde_NO==100)continue;
//結(jié)束本次主循環(huán)
else Finde_NO=0;
delay ();
//延時(shí)等待下一個(gè)碼元數(shù)據(jù)
if(ManchesterCode)
//確定高電平起始頭
{
for(i=0;i<8;i++)
//限時(shí)判斷起始位有效性
{ Finde_NO=0;
while(ManchesterCode)
{
if(Finde_NO==TIME_OF)
//時(shí)間溢出則退出
{ERROR_bit=1;break;}
else Finde_NO++;
}
delay(); //延時(shí)等待下一個(gè)碼元數(shù)據(jù)
if(ManchesterCode&&ERROR_bit==0);
//判定下一位電平及時(shí)間溢出情況
else break;
}
if(ERROR_bit) //時(shí)間溢出,退出本次主循環(huán)
{ERROR_bit=0;continue;}else;
if(i==8) //開(kāi)始接收起始位之后數(shù)據(jù)
{
ERROR_bit=0;Finde_NO=0;
while(ManchesterCode)
{
if(Finde_NO==TIME_OF)
//時(shí)間溢出錯(cuò)誤
{ERROR_bit=0;break;}else Finde_NO++;
}
if(ERROR_bit)
//若數(shù)據(jù)錯(cuò)誤則退出本次主循環(huán)
{ERROR_bit=0;continue;}else;
何必這樣的奔逃呢,前路也是在下著雨,張開(kāi)我的傘來(lái)的時(shí)候,我這樣漫想著。不覺(jué)已走過(guò)了天潼路口。大街上浩浩蕩蕩地降著雨,真是一個(gè)偉觀,除了間或有幾輛摩托車(chē),連續(xù)地沖破了雨仍舊鉆進(jìn)了雨中地疾馳過(guò)去之外,電車(chē)和人力車(chē)全不看見(jiàn)。我奇怪它們都躲到什么地方去了。至于人,行走著的幾乎是沒(méi)有,但在店鋪的檐下或蔽陰下是可以一團(tuán)一團(tuán)地看得見(jiàn),有傘的和無(wú)傘的,有雨衣的和無(wú)雨衣的,全都聚集著,用嫌厭的眼望著這奈何不得的雨。我不懂他們這些雨具是為了怎樣的天氣而買(mǎi)的。
COLP[0]=0;COLP[1]=0;COLP[2]=0;
COLP[3]=0;COLP[4]=0; //清零列校驗(yàn)
}
}
}
在Manchester編碼的解碼核心代碼中,i變量是無(wú)符號(hào)字符型用于表示起始位的計(jì)數(shù)值,F(xiàn)inde_NO是時(shí)間溢出的計(jì)數(shù)值,ERROR_bit是時(shí)間溢出標(biāo)志,row和col為行列變量,ROWP為行校驗(yàn)變量,COLP[5]為列校驗(yàn)變量,data是數(shù)據(jù)變量,temp是無(wú)符號(hào)長(zhǎng)整型變量,用來(lái)裝載卡號(hào),TOUT是搜索次數(shù)變量。
讀寫(xiě)器實(shí)物設(shè)計(jì)包括PCB設(shè)計(jì)及器件裝貼,讀寫(xiě)器實(shí)物如圖6所示。在設(shè)計(jì)之中,實(shí)物電源線(xiàn)不能連接成環(huán)路,在設(shè)計(jì)電源模塊電路時(shí)反復(fù)檢查了電源網(wǎng)絡(luò),確保了電源非環(huán)路布線(xiàn),同時(shí)還對(duì)電源線(xiàn)進(jìn)行了加粗處理。單片機(jī)的串口通信線(xiàn)路避開(kāi)了射頻125 kHz的信號(hào)線(xiàn)路和外圍石英晶體振蕩器線(xiàn)路,以防止信號(hào)打擾導(dǎo)致的串口亂碼。對(duì)PCB中單片機(jī)處理模塊進(jìn)行了敷銅,以確保單片機(jī)處理核心不會(huì)收到干擾。盡量縮短了單片機(jī)射頻125 kHz的信號(hào)線(xiàn)路到達(dá)2SK2962功放電路的走線(xiàn),在走線(xiàn)過(guò)程中避免接近MCP6002運(yùn)算放大器電路。

圖6 LF頻段RFID讀寫(xiě)器實(shí)物
在實(shí)際的測(cè)試中,隨機(jī)對(duì)5套成品LF頻段RFID讀寫(xiě)器進(jìn)行了射頻距離測(cè)量,射頻距離的長(zhǎng)短都不一致,但是大都滿(mǎn)足70~100 cm的范圍,經(jīng)過(guò)環(huán)境測(cè)試和參數(shù)分析可以得出導(dǎo)致差異的原因,其原因主要是因?yàn)樯漕l前端電路中元器件的性能差異及手工繞制天線(xiàn)線(xiàn)圈的寄生參數(shù)影響。
在諧振電路中采用的諧振電容容值精度是10~20%,這個(gè)精度范圍內(nèi)對(duì)諧振頻率影響較大。另外手工繞制的天線(xiàn)線(xiàn)圈測(cè)試得到的參數(shù)也有較大差異,在實(shí)測(cè)過(guò)程中只能進(jìn)行挑選和讀寫(xiě)器匹配后才能配套使用。
將讀寫(xiě)器與上位機(jī)聯(lián)調(diào)時(shí),在串口調(diào)試助手的串口數(shù)據(jù)接收窗口中有6次數(shù)據(jù)的接收過(guò)程,前三次刷卡時(shí)采用了十六進(jìn)制數(shù)據(jù)顯示格式,接收到的數(shù)據(jù)是數(shù)據(jù)串為(02 30 31 30 42 37 44 31 35 42 44 0D 0A 03)H,后面的三次刷卡是采用了ACSII碼數(shù)據(jù)顯示格式。通過(guò)對(duì)不同格式的接收數(shù)據(jù)的比對(duì)可以發(fā)現(xiàn),讀卡6次所接收到的數(shù)據(jù)在各自格式下均是相同的。實(shí)測(cè)中使用的電子標(biāo)簽實(shí)物及串口調(diào)試數(shù)據(jù)如圖7所示。

圖7 LF頻段電子標(biāo)簽實(shí)物及實(shí)測(cè)數(shù)據(jù)
本文設(shè)計(jì)和實(shí)現(xiàn)了一款LF頻段RFID讀寫(xiě)器,使用無(wú)源電子標(biāo)簽的射頻識(shí)別距離可達(dá)70~100 cm,該讀寫(xiě)器適合于中遠(yuǎn)距離應(yīng)用場(chǎng)合。設(shè)計(jì)采用了Philips半導(dǎo)體公司的P87LPC767單片機(jī)作為核心控制器,構(gòu)建了射頻數(shù)據(jù)處理單元,二次開(kāi)發(fā)者可以將本系統(tǒng)進(jìn)行功能裁剪或者增加相關(guān)外設(shè),構(gòu)成多接口數(shù)據(jù)交互的嵌入式組件。

龍順宇(碩士),主要研究方向?yàn)榍度胧綉?yīng)用、單片機(jī)智能、物聯(lián)網(wǎng)技術(shù)應(yīng)用。