張海峰,張 沛
(杭州電子科技大學(xué)電子信息學(xué)院,浙江杭州310018)
射頻識(shí)別是一種無線通信技術(shù),通過電磁耦合方式對(duì)應(yīng)答器中的數(shù)據(jù)進(jìn)行讀寫操作。根據(jù)工作頻率的不同可分為低頻(125kHz)、高頻(13.56MHz)、超高頻等。一個(gè)典型的射頻識(shí)別系統(tǒng)由讀卡器和應(yīng)答器組成。應(yīng)答器是射頻識(shí)別系統(tǒng)真正的數(shù)據(jù)載體,在讀卡器的響應(yīng)范圍內(nèi)應(yīng)答器才工作[1]。近年來射頻識(shí)別技術(shù)發(fā)展迅速,結(jié)合數(shù)據(jù)保護(hù)技術(shù)而生產(chǎn)出的各種智能卡已經(jīng)廣泛的應(yīng)用在電子支付、物流管理和門禁控制系統(tǒng)等領(lǐng)域[2]。巨大的智能卡市場(chǎng)加速了與之配套的讀卡器產(chǎn)業(yè)的發(fā)展。通常一種智能卡對(duì)應(yīng)一種讀卡器,如Mifare系列智能卡需要Mifare讀卡器,讀卡器的專用性比較強(qiáng)。本文所設(shè)計(jì)的高頻RFID讀卡器不僅支持傳統(tǒng)的Mifare智能卡讀寫,同時(shí)能夠識(shí)別二代身份證、Felica和SRI512卡片序列號(hào)。除此之外還具有模擬和點(diǎn)對(duì)點(diǎn)通信功能,結(jié)合相應(yīng)軟件便可以滿足NFC應(yīng)用。
讀卡器主要由ST公司的STM32F103RET6和NFC控制器PN532組成。顯示部分采用Nokia的LCD6100液晶顯示屏。STM32F103是一款Cortex-M3內(nèi)核的32位處理器,工作時(shí)鐘為72MHz,有一個(gè)USB2.0設(shè)備控制器[3]。PN532是NXP公司的一款NFC芯片,內(nèi)部使用80C51內(nèi)核來管理通信,有6種不同的操作模式,提供I2C、SPI和串行口3種方式與主機(jī)通信,本設(shè)計(jì)中采用SPI方式。讀卡器的組成框圖如圖1所示,連接PC后被識(shí)別為一個(gè)HID類設(shè)備。通過上位機(jī)軟件可以對(duì)智能卡進(jìn)行完整的讀寫操作。主控芯片STM32與PN532通過4線SPI接口相連,其中SPI時(shí)鐘為5MHz。時(shí)鐘信號(hào)高電平有效,數(shù)據(jù)在第一個(gè)上升沿被PN532采樣。天線線圈為13.56MHz的PCB天線。讀卡器中的天線設(shè)計(jì)也很重要,直接影響讀寫距離。顯示部分用來進(jìn)行菜單選擇,可以顯示讀取到的卡片唯一序列號(hào)。LCD6100顯示屏與STM32的通信也采用了SPI方式。
圖1 讀卡器系統(tǒng)框圖
讀卡器采用5V直流電源供電,由于STM32和PN532需要3.3V工作電壓,因此需要一個(gè)3.3V電壓轉(zhuǎn)換芯片。本設(shè)計(jì)中采用常用的LM1117芯片,提供的最大電流也滿足本讀卡片,如圖2所示??刂埔_CTRL信號(hào)來自STM32,VOUT和FB的引腳電壓提供給液晶器需求。LCD6100的背光也需要一定的電壓,采用LINEAR公司的LT3465A電流型驅(qū)動(dòng)芯顯示器。此芯片的工作電壓也來自LM1117的輸出。
圖2 LCD6100背光驅(qū)動(dòng)電路
考慮到STM32的IO口需求:2個(gè)LED指示燈、3個(gè)按鍵、兩路SPI接口以及一些必要的信號(hào)接口,64個(gè)引腳的STM32F103RET6已經(jīng)夠用。這部分的硬件電路主要由復(fù)位電路、晶振電路、按鍵接口、JTAG電路、USB電路等部分組成。PA8連接到LT3465A的CTRL引腳,用來控制LCD背光。SPI1外設(shè)接口連接到PN532,PA2和PA3分別連接PN532復(fù)位與中斷請(qǐng)求引腳。另外還有3個(gè)按鍵與2個(gè)LED接口,使用STM32的GPIO接口便可。按鍵1和2用來進(jìn)行菜單上下選擇,按鍵3是確定操作。LCD6100的數(shù)據(jù)輸入每次只接收9位:1位命令/數(shù)據(jù)+8位數(shù)據(jù),而STM32的SPI接口只提供8位或16位數(shù)據(jù)格式,直接用SPI2外設(shè)并不能正確操作LCD,因此要使用I/O口模擬方式來發(fā)送數(shù)據(jù)。
PN532是NXP公司的一款NFC控制芯片,工 作 頻 率 為 13.56MHz,支 持ISO14443A&B[4]和 ISO18092[5]協(xié)議,同時(shí)支持A類卡的模擬與點(diǎn)對(duì)點(diǎn)通信功能。內(nèi)部的收發(fā)器模塊具有輸出緩沖,最遠(yuǎn)讀寫距離可達(dá)到10cm[6]。應(yīng)用電路如圖3所示。采用SPI接口時(shí)10引腳接地,I1引腳接高電平。IRQ引腳可向主機(jī)發(fā)出中斷請(qǐng)求。此芯片采用 27.12MHz的晶振來工作。3.3V電源引腳的去耦電容采用4.7μF和100nF的組合,VDD電壓由PN532內(nèi)部的電壓管理器提供,去耦電容用100nF便可。
圖3 PN532應(yīng)用電路
13.56 M讀卡器采用的是電感耦合,天線產(chǎn)生的電磁場(chǎng)要能給智能卡供電和傳輸數(shù)據(jù)。天線電路設(shè)計(jì)包括發(fā)送部分、接收部分和天線線圈,線圈采用中間點(diǎn)接地方式連接到圖3中的3個(gè)端點(diǎn)。影響讀寫距離的主要因素包括線圈的大小、匹配電路和接收電路的敏感性。EMC濾波電路采用560nH的電感,考慮到接收帶寬,其諧振頻率要接近上邊頻,由于副載波頻率為847kHz,諧振頻率要在13.56MHz+847kHz=14.4MHz附近,因此可選用220pF的電容。C1和C2組成匹配電路,其值在10-300pF之間。具體的計(jì)算方法可參考NXP的應(yīng)用筆記[7]。簡易的方法是線圈做好后,接上示波器,通過調(diào)節(jié)這兩個(gè)電容的大小觀察波形峰峰值,峰峰值最大時(shí)說明電路匹配良好。接收電路中的電阻R2對(duì)讀寫距離有影響,R3為阻尼電阻,可減小天線的Q值,這里選擇5Ω、1%精度的電阻即可。讀卡器的線圈采用4圈方形PCB天線,走線寬度為0.305mm,間距為0.355mm,按最外圈計(jì)算可得總面積為58mm×47mm。
該讀卡器采用USB方式與上位機(jī)通信,屬于自定義HID設(shè)備,使用了兩個(gè)端點(diǎn)。端點(diǎn)0為控制端點(diǎn),端點(diǎn)1為中斷斷點(diǎn)。上位機(jī)軟件主程序中創(chuàng)建了兩個(gè)線程,一個(gè)用于接收端點(diǎn)1的輸入數(shù)據(jù),另一個(gè)用來檢測(cè)用戶輸入的命令。當(dāng)檢測(cè)到正確的命令格式后,發(fā)送命令給讀卡器來完成用戶請(qǐng)求的操作。
STM32微處理器中的軟件工作流程如圖4所示。系統(tǒng)上電后執(zhí)行初始化操作。初始化內(nèi)容包括按鍵、LED、USB外設(shè)控制器、LCD顯示和系統(tǒng)時(shí)鐘配置等。接下來在LCD上顯示可執(zhí)行的操作菜單供用戶選擇。然后喚醒PN532芯片使其進(jìn)入正常工作模式,接著程序進(jìn)入主循環(huán)。按鍵1和2用來移動(dòng)光標(biāo),按鍵3按下后調(diào)用對(duì)應(yīng)處理子程序。整個(gè)處理過程中如果發(fā)生USB中斷請(qǐng)求,則先將接收到的命令解碼并調(diào)用相應(yīng)函數(shù),然后將數(shù)據(jù)按照一定的格式打包上傳。
圖4 讀卡器主程序流程圖
電路板完成后首先要借助示波器調(diào)節(jié)匹配電容,調(diào)制波形如圖5所示。
圖5 Type A和Type B調(diào)制波形
圖5(a)為106kbps Type A波形,圖5(b)為106kbps Type B波形。最終的C1為18pF,C2為56pF。參數(shù)均滿足ISO14443標(biāo)準(zhǔn)。使用本讀卡器對(duì)5種不同類型的智能卡分別進(jìn)行了30次UID讀取測(cè)試后,得到的平均操作距離如表1所示。前兩種智能卡為NXP公司的Mifare系列,兼容ISO14443A標(biāo)準(zhǔn),二代身份證和SRI512符合B類標(biāo)準(zhǔn),數(shù)據(jù)速率均為106kpbs。SONY公司的Felica智能卡為ISO18092標(biāo)準(zhǔn),載波采用10%的ASK調(diào)制,數(shù)據(jù)速率為212kbps。
表1 距離測(cè)試結(jié)果
本文對(duì)高頻RFID讀卡器的硬件設(shè)計(jì)進(jìn)行了較為詳細(xì)的論述,同時(shí)也介紹了讀卡器的軟件設(shè)計(jì)流程。從實(shí)際測(cè)試結(jié)果中可看出其具有良好的讀寫距離,也可發(fā)現(xiàn)對(duì)A類卡的讀寫距離要略大于B類卡,這是由于B類卡所需要的能量較大。PN532芯片的功能較多,本文只對(duì)其讀卡功能作了介紹,其它如模擬、點(diǎn)對(duì)點(diǎn)通信方面的應(yīng)用開發(fā)還有待進(jìn)一步研究。
[1]Gerhard de Koning Gans.Analysis of the Mifare Classic used in the ov-chipkaart project[D].Dutch:Radboun University Nijmegen,2008.
[2]Klaus Finkenzeller.射頻識(shí)別技術(shù)(第3版)[M].北京:電子工業(yè)出版社,2006:1-7.
[3]徐愛軍.IAR EWARM V5嵌入式系統(tǒng)應(yīng)用編程與開發(fā)[M].北京:北京航空航天大學(xué)出版社,2009:472-477.
[4]ISO/IEC 14443.Identification cards— Contactless integrated circuit(s)cards-Proximity cards[S].2009.
[5]ISO/IEC 18092.Near Field Communication— Interface and Protocol(NFCIP-1)[S].2008.
[6]NXP Semiconductors.PN532 datasheet.Rev.3.4 [EB/OL].http://www.nxp.com/documents/short_data_sheet/PN532_C1_SDS.pdf,2011 -12 -01.
[7]NXP Semiconductors.Antenna design guide for MFRC52x,PN51x and PN53x.Rev.1.2 [EB/OL].http://www.nxp.com/documents/application_note/AN1445_An1444.zip,2010 -10 -11.