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