基于ISO14443 TypeA標(biāo)準(zhǔn)讀寫(xiě)器的設(shè)計(jì)與實(shí)現(xiàn)
射頻識(shí)別作為一種非接觸式的自動(dòng)識(shí)別技術(shù),已從物聯(lián)網(wǎng)應(yīng)用領(lǐng)域擴(kuò)展至工業(yè)監(jiān)控領(lǐng)域。針對(duì)這一需求研究射頻識(shí)別技術(shù)、開(kāi)發(fā)相應(yīng)產(chǎn)品已成了相關(guān)科技人員的重點(diǎn)研究方向之一 。本文介紹的基于ISO14443 TypeA標(biāo)準(zhǔn)的低功耗RFID讀寫(xiě)器正是基于上述需求研發(fā)的。
1 低功耗STM8L控制芯片
在互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)數(shù)字邏輯電路中,功耗取決于靜態(tài)功耗和動(dòng)態(tài)功耗兩個(gè)因素之和。靜態(tài)功耗主要由晶體管的偏置電流和漏電流產(chǎn)生;動(dòng)態(tài)功耗則取決于電源電壓和工作時(shí)鐘頻率當(dāng)CMOS邏輯電路以一定時(shí)鐘頻率運(yùn)行時(shí),靜態(tài)功耗與動(dòng)態(tài)功耗相比是可以忽略的。但在低功耗模式下、時(shí)鐘不再運(yùn)行時(shí),靜態(tài)功耗則是主要的功耗源。因此,功耗主要取決于微控制器單元(MCU)的芯片面積、MCU電源電壓、時(shí)鐘頻率、激活的外設(shè)數(shù)目或使用的MCU功能數(shù)目、工作模式等。
依據(jù)上述因素來(lái)分析STFM8L如何降低功耗。
MCU電源電壓。STM8L工作電壓為1.8~3.6 V,其芯片中嵌入了2個(gè)穩(wěn)壓器,主穩(wěn)壓器(MVR)和低功耗穩(wěn)壓器(LPVR),在不同的功能模式對(duì)內(nèi)部數(shù)字電路提供1.65 V以上電壓。
時(shí)鐘頻率。在運(yùn)行模式下,可選擇STM8L內(nèi)部?jī)煞N時(shí)鐘源(16 MHz內(nèi)部高速RC振蕩器(HSI)和128 kHz的內(nèi)部低速RC振蕩器(LSI)),且不影響外設(shè)時(shí)鐘情況下,降低CPU的時(shí)鐘頻率。(CPU時(shí)鐘分頻數(shù)為1到128)
減少外設(shè)時(shí)鐘配置。STM8L通過(guò)設(shè)置外設(shè)門控時(shí)鐘(PCG)來(lái)減少未使用的外沒(méi)時(shí)鐘來(lái)降低功耗。
工作模式。STM8L芯片具有4種主要的低功耗模式。有低功耗運(yùn)行模式(CPU運(yùn)行模式下功耗為5.4μA)、低功耗等待模式(CPU停止,外設(shè)保持工作,功耗為3.3μA)、活躍暫停模式(CPU停止,自動(dòng)喚醒模式打開(kāi),功耗為1.0μA)、暫停模式(所有時(shí)鐘關(guān)閉,自動(dòng)喚醒模式關(guān)閉,功耗為0.4μA)。
因此,STM8L在多種低功耗模式下低于MSP430、HCS08和Microchip的nanoWattXLP,在現(xiàn)有的RFTD讀寫(xiě)器MCU選型下為超低功耗芯片之一。
2 硬件組成
讀寫(xiě)器如圖1所示,包括MCU、讀卡器芯片、天線及其濾波匹配電路、RS232接口、RS485接口、LCD顯示、蜂鳴器、工作指示燈等基本模塊。在該結(jié)構(gòu)中MCU通過(guò)SPI方式與MFRC522連接,供電電壓均為3.3 V,所以不需要外圍的電壓轉(zhuǎn)換電路,外接一個(gè)天線及簡(jiǎn)單的濾波匹配電路,即可實(shí)現(xiàn)與卡片的通信。同時(shí),通信接口加入了可用于工業(yè)現(xiàn)場(chǎng)設(shè)備通信或與其它設(shè)備通信的RS485接口。
MCU選用ST公司的超低功耗單片機(jī)STM8L152C6T6,該單片機(jī)是一款8位微控制器,高達(dá)16MIPS的CPU性能和1.8~3.6 V的電壓范圍,有助于現(xiàn)有的8位系統(tǒng)向電壓更低的電源過(guò)渡。存儲(chǔ)器包括2 kB的內(nèi)部SRAM、多達(dá)32 kB的Flash和1 kB的EERPOM。芯片內(nèi)部包含12位ADC/DAC轉(zhuǎn)換器,最多有25條通道,轉(zhuǎn)換時(shí)間小于3 ms;先進(jìn)的16位控制定時(shí)器,其它外設(shè)包括一個(gè)I2C接口、一個(gè)USART接口和一個(gè)SPI接口。其性能優(yōu)于51系列,性價(jià)比高十TI公司的16位芯片MSP430。
讀寫(xiě)器芯片采用Philips公司推出的MFRC522,該芯片是一款針對(duì)智能儀表領(lǐng)域的符合ISO14443A協(xié)議的射頻卡操作芯片,采用統(tǒng)一的3.3 V供電,內(nèi)置13.56 MHz無(wú)源天線驅(qū)動(dòng),且具有多種串行接口 (I2C、SPI、UART)。相比較MFRC500、MFRC531及CLRC632等一系列典型產(chǎn)品,MFRC522具有低電壓、低功耗、低成本、體積小、與主控器件通訊方便的特點(diǎn)。
控制端的主控芯片STM8L通過(guò)對(duì)MFRC522寄存器操作來(lái)控制芯片,芯片收到STM8L發(fā)來(lái)的命令后,通過(guò)天線按照ISO14443A協(xié)議格式向附近發(fā)出13.56 MHz頻率的調(diào)制信號(hào)與卡片通訊。
2.1 MFRC522與MCU接口
控制端擴(kuò)展口為擴(kuò)展板提供3.3 V電源以及由主控芯片STM8L引出的GPIO口,所以設(shè)計(jì)時(shí)MFRC522使用SPI總線與STM8L的GPIO模擬SPI總線相連。硬件電路如圖2所示(STM8L與MFRC522的連接電路圖)
通信中的時(shí)鐘信號(hào)由MCU產(chǎn)生,MFRC522芯片設(shè)置為從機(jī)模式,接收來(lái)自MCU的數(shù)據(jù)以設(shè)置奇存器,并負(fù)責(zé)射頻接口通信中相關(guān)數(shù)據(jù)的收發(fā)。當(dāng)選擇SPI模式時(shí),需IIC引腳為低電平,EA引腳為高電平,相應(yīng)的SDA和D7、D6、D5分別用作MFSDA、MFMISO、MFMOSI、MFSCK。
2.2 天線及匹配電路
MFRC522根據(jù)其寄存器的設(shè)定對(duì)發(fā)送數(shù)據(jù)進(jìn)行調(diào)制得到發(fā)送的信號(hào),通過(guò)天線驅(qū)動(dòng)引腳TX1和TX2驅(qū)動(dòng)的天線以13.56 MHz的電磁波形式發(fā)送出去。在其射頻范圍內(nèi)的RFID卡采用RF場(chǎng)的負(fù)載調(diào)制進(jìn)行響應(yīng)。天線接收到卡片的響應(yīng)信號(hào)經(jīng)過(guò)天線匹配電路送到MFRC522的接收引腳RX,芯片內(nèi)部的接收器對(duì)接收信號(hào)進(jìn)行解調(diào)、譯碼,并根據(jù)寄存器的設(shè)定進(jìn)行處理,最后將數(shù)據(jù)通過(guò)SPI總線發(fā)送給控制端的STM8L。
為了獲得穩(wěn)定、可靠的射頻信號(hào),天線部分的電路設(shè)計(jì)非常關(guān)鍵。在設(shè)計(jì)讀寫(xiě)模塊的天線電路時(shí),主要分為三個(gè)模塊,天線線圈(Coil)匹配電路(Matching Circuit)和EMC濾波電路(EMCFilter),如圖3所示。
(1) EMC濾波電路
為了減少信號(hào)線上的干擾,使用了EMC低通濾波電路。MFRC522的天線引腳TX1、TX2、RX以及參考電壓VMID先經(jīng)過(guò)EMC低通濾波電路,然后再與天線匹配電路連接。
低通濾波電路參數(shù)計(jì)算
得出:L0=1μH,C0=136 pF。
L0、C0組成了MFRC522射頻發(fā)送信號(hào)的濾波電路;R1、R2、C3、C4組成了接收信號(hào)的濾波電路,為了達(dá)到良好的電磁兼容,在制作印刷電路板(PCB)時(shí),這部分的電路必須緊靠MFRC522的天線引腳RX、TX1、TX2。
本設(shè)計(jì)選用的參數(shù)組成低通濾波器,諧振頻率為13.65 MHz,可以起到濾除13.56 MHz信號(hào)高次諧波的作用,如上公式(1)。
(2)天線及匹配電路
為了給RFID卡提供足夠的能量,天線與卡片間必須實(shí)現(xiàn)緊耦合,耦合系數(shù)最少為0.3(耦合系數(shù)為0時(shí),即由于距離太遠(yuǎn)或磁屏蔽導(dǎo)致完全去耦;耦合系數(shù)為1即全耦合)。因此本設(shè)計(jì)為三圈的80 mmX45 mm矩形天線,可等效為半徑約3.4 cm的等面積環(huán)形天線,其有效工作距離為0~3cm。此時(shí),天線線圈產(chǎn)生的電感,有下列公式計(jì)算:
其中:I1為環(huán)形天線一圈的周長(zhǎng);D1為導(dǎo)線直徑或PCB板上天線導(dǎo)線的寬度;K為天線形狀系數(shù)(圓形天線為1.07,矩形天線為1.47);N1為天線的圈數(shù);p為與線圈結(jié)構(gòu)相關(guān)的系數(shù),印刷電路板線圈取1.8。因此,由公式(2)可計(jì)算出天線線圈的電感值約為705 nH。
在匹配電路中,電容Cs、Cp的值由天線本身和環(huán)境影響來(lái)決定。由于天線電感和電容的實(shí)際值由不同的參數(shù)決定,如PCB類型、導(dǎo)線的厚度、線圈間的距離、附近環(huán)境等,要得到最優(yōu)的性能,Cs、Cp的值要在實(shí)際設(shè)計(jì)中進(jìn)行調(diào)諧,初始值由天線電感決定。
(3)品質(zhì)因數(shù)
天線品質(zhì)因數(shù)Q是保證天線正確調(diào)諧和性能的一個(gè)重要指標(biāo)。較高的品質(zhì)因數(shù)Q值會(huì)使天線線圈中的電流強(qiáng)度大些,由此改善了對(duì)電子標(biāo)簽的功率傳送情況。與此相反,天線的傳輸帶寬剛好與品質(zhì)因數(shù)Q值成反比。選擇的品質(zhì)因數(shù)過(guò)高會(huì)導(dǎo)致帶寬縮小,從而明顯地減弱電子標(biāo)簽接收到的調(diào)制邊帶。
通常情況,由于元件的容差和對(duì)溫度的依靠,ISO14443A標(biāo)準(zhǔn)中Q因子值常取35,來(lái)保證正確的數(shù)據(jù)傳輸。ISO14443A標(biāo)準(zhǔn)的波特率是106 kHz/s,數(shù)據(jù)從讀寫(xiě)器傳輸?shù)娇ㄊ褂妙l率為13.56 MHz,脈寬T=3 μs的改進(jìn)Miller編碼,調(diào)制深度為100%的ASK信號(hào)。
根據(jù)帶寬B的定義
以及時(shí)間與帶寬乘積的規(guī)定
B·T≥1
求得:Q≤f0·T=13.56 MHz·3μs=40.68
關(guān)于天線的重要參數(shù)——品質(zhì)因數(shù)Q,計(jì)算公式如下
若經(jīng)公式(3)汁算的Q值過(guò)高時(shí),會(huì)導(dǎo)致帶通變窄,從而影響調(diào)制信號(hào)的發(fā)送??梢栽谔炀€的兩邊分別串聯(lián)電阻Rest,增加天線阻抗,以降低Q值。相當(dāng)于天線增加電阻,Rest的值用下面的公式算出
式中:ω=2πf0;La為天線電感;Q為擬調(diào)整值;Rest為天線電阻。
(4)天線電阻的估算
在ISO14443A標(biāo)準(zhǔn)的工作頻率為13.56 MHz,在這個(gè)頻率范圍內(nèi)不足以用DC電阻RDC來(lái)描述天線線圈,電阻的集膚效應(yīng)(skin effect)不能忽略。所以,需用天線線圈的AC電阻Rant描述。由于不可能計(jì)算天線線圈完整的Rant,所以由經(jīng)驗(yàn)公式估算天線調(diào)諧時(shí)的Rant。公式如下
ρ為銅的電阻率;L為微帶線長(zhǎng)度;S為微帶線截面積。
3 應(yīng)用軟件
本節(jié)將重點(diǎn)介紹瀆卡器的軟件設(shè)計(jì)。軟件設(shè)計(jì)思想:
(1)讀卡器讀取射頻天線范圍內(nèi)的Mifarel射頻卡數(shù)據(jù);
(2)系統(tǒng)MCU將讀取數(shù)據(jù)進(jìn)行分析處理,符合條件,則進(jìn)入下一步;
(3) MCU將卡片數(shù)據(jù)與當(dāng)前時(shí)間一同存入單片機(jī)內(nèi)部的EEPROM,并在LCD上顯示卡數(shù)據(jù);
(4)在數(shù)據(jù)上傳服務(wù)器時(shí),將單片機(jī)內(nèi)部EEPROM存入的信息通過(guò)串口RS232傳給PC。
該讀寫(xiě)器設(shè)備配有RS485工業(yè)網(wǎng)絡(luò)接口,方便與工業(yè)現(xiàn)場(chǎng)的485總線相對(duì)接。用戶也可通過(guò)增加高級(jí)命令接口函數(shù)進(jìn)行二次開(kāi)發(fā),并在STM8S/A/L系列以及STM32巾互相移植。
3.1 軟件功能概述
讀寫(xiě)模塊的軟件要實(shí)現(xiàn)兩個(gè)基本功能,一是實(shí)現(xiàn)在線編程,可將用戶應(yīng)用程序在線寫(xiě)入到STM8L Flash存儲(chǔ)區(qū)的用戶程序空間,支持用戶的二次開(kāi)發(fā);二是實(shí)現(xiàn)對(duì)RFID卡的操作,提供方便的函數(shù)給用戶應(yīng)用程序調(diào)用,包括與RFID卡通信的底層通信函數(shù)以及供外部調(diào)用的高層命令接口函數(shù)。軟件構(gòu)成如圖4所示。
(1)監(jiān)控程序。駐留在芯片中的監(jiān)控程序可以實(shí)現(xiàn)用戶應(yīng)用程序的在線寫(xiě)入。其內(nèi)部包含了通信握手、Flash擦除、Flash寫(xiě)入、數(shù)據(jù)接收與發(fā)送及斷點(diǎn)調(diào)試處理等主要功能。
(2)底層通信函數(shù)。底層通信函數(shù)主要文現(xiàn)MFRC522與射頻卡之間的通信,并進(jìn)行基本的功能操作,如:詢卡函數(shù)、防沖突函數(shù)、選中卡片函數(shù)、密碼驗(yàn)證函數(shù)等。
(3)高層命令接口。高層命令是基礎(chǔ)命令的集成,它是為方便用戶系統(tǒng)使用特別提供的。用高層命令可極大地提高用戶系統(tǒng)的二次開(kāi)發(fā)速度。該類命令接口函數(shù)包括得卡序列號(hào)函數(shù)(Card GetSn)、讀卡片數(shù)據(jù)塊函數(shù)(ReadCard)、寫(xiě)卡片數(shù)據(jù)塊函數(shù)(WriteCard)等。
(4)應(yīng)用程序。接收PC機(jī)發(fā)來(lái)的讀寫(xiě)卡操作高層命令,直接執(zhí)行事先封裝好的讀寫(xiě)卡操作函數(shù)。
3.2 MCU程序設(shè)計(jì)
主控MCU上電后,首先將控制腳的電位進(jìn)行重置,例如蜂嗚器,LED燈等,然后將MFRC522進(jìn)行復(fù)位(RESET),并且將其天線進(jìn)行重新開(kāi)啟。當(dāng)MFRC522天線正確開(kāi)啟后,一旦卡片到達(dá)可響應(yīng)范圍后,就能夠被MFRC522進(jìn)行檢測(cè)以及讀取,而主控MCU就會(huì)循環(huán)的讀取MFRC522是否有卡片數(shù)據(jù)進(jìn)行了傳輸。當(dāng)有卡片信息被讀取的時(shí)候,就對(duì)該卡片的數(shù)據(jù)進(jìn)行“打包”,然后傳輸給上位機(jī)。流程圖如圖5所示。
同樣,主控MCU也要循環(huán)檢測(cè)是否收到了來(lái)自上位機(jī)的命令。如果有命令收取,則首先對(duì)其完整性以及準(zhǔn)確性進(jìn)行校驗(yàn),如果沒(méi)有通過(guò)校驗(yàn),則將本幀數(shù)據(jù)拋棄,不予響應(yīng),如果通過(guò)了校驗(yàn)則執(zhí)行對(duì)應(yīng)的命令,并且執(zhí)行那個(gè)結(jié)果“打包”,發(fā)送給上位機(jī),并繼續(xù)進(jìn)行卡片、上位機(jī)命令的循環(huán)檢測(cè)。
4 結(jié)束語(yǔ)
本文介紹了射頻芯片MFRC522在讀寫(xiě)器終端中的應(yīng)用設(shè)計(jì),對(duì)硬件、軟件設(shè)計(jì)方面均進(jìn)行了詳細(xì)闡述。經(jīng)實(shí)踐驗(yàn)證,本系統(tǒng)能夠準(zhǔn)確采集射頻卡中的ID信息,并最終成功傳送給服務(wù)器端。此讀寫(xiě)器可供二次開(kāi)發(fā),適合便攜式射頻識(shí)別系統(tǒng)應(yīng)用,對(duì)RFID的推廣具有一定的實(shí)用價(jià)值。