王慧 陳德金 黃浩恩 嚴謹



摘 ? 要:針對接觸式IC卡技術的接觸問題以及有源工作,采取射頻識別技術與IC卡技術相結合的方法,解決了IC卡技術接觸性的問題,實現IC卡的非接觸使用與無源工作的功能,并在此基礎上附加語音播報功能。文章主要研究的帶語音功能的識讀器是以射頻識別技術為基礎,MIFARE卡作為識讀器識別的對象、根據ISO14443A協議、采用非接觸式IC卡常用的讀寫芯片MFRC522作為讀寫模塊核心芯片,以WT588作為語音播報芯片,STC89C52單片機作為主控芯片來達到設計要求的。
關鍵詞:非接觸式IC卡;射頻識別;單片機;語音播報
20世紀90年代中期以來,基于現代微電子技術和射頻識別(Radio Frequency Identification,RFID)技術之上的各種非接觸式集成電路卡(Contactless Integrated Circuit Card,CICC)應運而生,雙稱IC卡。與接觸式IC卡相比較,非接觸式IC卡繼承接觸式IC卡容量大、安全性高等優點,又克服了因觸點外露導致的污染、磨損、靜電以及插卡才能訪問的缺點[1]。而且非接觸IC卡還具有一些其他優越的性能,如操作快捷、抗干擾性強、高可靠性、壽命長、多種工作距離等。正是由于這些優點,非接觸式IC卡在公共汽車自動售票系統、學校一卡通系統、門禁考勤系統、倉庫管理系統、實驗室設備管理系統中都有廣泛的應用。
非接觸式IC卡讀卡器是非接觸式IC卡系統的重要組成部分,它是非接觸式IC卡得以被廣泛應用于各個領域的關鍵。本文介紹了一種帶語音提示功能、抗干擾能力強、低功耗、結構簡單、性能穩定的識讀器設計方案,能可靠實現識讀器與卡之間的數據傳輸。
1 ? ?非接觸式IC卡的內部結構和工作原理
MIFARE卡電氣部分只由一個天線和專用集成電路(Application Specific Intergrated Circuits,ASIC)組成[2]。IC卡內芯片工作需要的所有能量都由讀卡器提供。識讀器通過天線向IC卡發送一組頻率為13.56 MHZ電磁波,IC卡片內有一個LC諧振電路,其頻率與識讀器發射的頻率相同,在電磁波的激勵下,LC諧振電路產生共振,使電容內有了電荷,然后通過一個單向導通的電子泵把電荷存儲起來,當積累的電荷達到2 V時,這個電容就可以作為電源提供工作電壓,就可以正常工作,將卡內數據發射出去或接收識讀器的數據[3]。
STC89C52單片機對于MFRC522的控制主要是通過對MFRC522的內部寄存器的讀寫實現的[4]。MFRC是單片機和IC卡通信的橋梁,所有讀取IC卡或寫進IC卡片上的數據均要通過MFRC522來傳遞,單片機只要寫入不同的指令給MFRC522,就可以實現對MFRC522的控制操作[5]。
2 ? ?系統硬件結構及電路設計
系統硬件主要由MCU,MFRC522,液晶顯示器(Liquid Crystal Display,LCD)顯示屏,語音芯片,Flash,電源,LED燈提示電路等模塊組成,系統的原理框如圖1所示。
微控制單元(Microcontroller Unit,MCU)外圍電路的設計主要包括以下幾個部分:單片機最小系統、LCD液晶顯示接口電路、電源電路、復位電路、上電發光電路等。其中,控制器的核心采用的是STC89C52芯片,是一款具有強抗干擾、功耗低、功能強、價格低等優點的單片機。MCU控制讀卡芯片MFRC522驅動天線對MIFARE卡,也就是應答器(Proximity Card,PICC)進行讀寫操作及控制語音芯片進行寫操作。LCD液晶顯示模塊采用LCD1602,具有良好的人機交互功能,可以實時顯示讀寫芯片讀到的數據,合法性驗證失敗后顯示錯誤信息。語音芯片采用WT588,是一種可編輯語音芯片,用于語音的播放。FLASH芯片采用SPI-FLASH 25P16系列,用于存儲語音數據。電源電路采用ASM1117-5.0和ASM1117-3.3V集成三端穩壓芯片分別為系統提供5 V和3.3 V電壓。
2.1 ?單片機與讀寫模塊的接口及原理
由于MFRC522兼容串行外設接口(Serial Peripheral Interface,SPI)接口,所以MFRC522與微控制器之間采用SPI串行通信。微控制器STC89C52與MFRC522模塊的數據通行是通過SPI四線串行總線實現的,4線分別為MOSI,MISO,SCK,RST,其中,MOSI和MISO為數據線,SCK為時鐘線,RST為復位線,表1為對此4線的描述,圖2是單片機與讀寫模塊的硬件接口電路。
硬件接口分析。在單片機與讀寫模塊的通信中,讀寫模塊的芯片用作從機。SPI通信中,4條線都是單向的,SCK為時鐘線,由主控制器產生,該信號必須嚴格按照時序產生,否則單片機與讀寫模塊將出現通信錯誤。MOSI及MISO為數據線,數據通過MOSI線從單片機到MFRC522。數據通過MISO線從MFRC522發回到單片機。RST為復位線,當單片機發送數據或者接收數據時,RST線要拉低,當數據發送或者接收結束后RST線拉高。
2.2 ?單片機與語音芯片的接口及原理
WT588是一款功能強大的可重復擦除與寫入的語音單片機芯片。支持插入靜音模式,插入靜音不占用SPI-FLASH內存的容量,單個地址單元可插入10 ms~25 min的靜音。WT588擁有6種控制模式,分別為MP3控制模式,3X8按鍵組合控制模式、并口控制模式、一線串口控制模式、三線串口控制模式和三線串口控制I/O口擴展輸出模式[6]。三線串口控制模式下,能控制語音播放、停止、循環播放和音量大小,或者直接發出0~219地址位的任意語音,發碼速度40~4 000 us 可調。
采用三線串口控制模式,使單片機與語音模塊通信通過仿SPI三條線串行總線實現的,其中,三線分別為數據線WT_DATA,時鐘線WT_SCK,片選線WT_CS,單片機STC89C52與語音模塊中的芯片就是通過這3條線連接的。表2為三線的描述,圖3為單片機與語音模塊的硬件接口。
WT_CS,WT_DATA,WT_SCK都是單向線,WT_SCK上的時鐘只能由STC89C52產生,該信號必須嚴格按照WT588的三線串口控制模式的時序規范產生,否則單片機發送給語音模塊的指令和數據將出現錯誤。因為語音模塊只需要接收主控制模塊發送來的指令,所以單片機對語音模塊只需要進行寫操作,WT_DATA為數據線,由單片機控制。WT_CS為數據發送使能線,若主機要發送數據給從機,則該線為低電平。
2.3 ?單片機與語音模塊通信時序
三線控制模式的時序如圖4所示。
三線串口控制模式由片選WT_CS(時序圖中的SS)、時鐘WT_SCK(時序圖中SCK)、數據WT_DATA(時序圖中SDI)腳組成,時序仿照標準的SPI通信方式,復位信號在發碼前先拉低1~5 ms,然后拉高等待5 ms。工作時RESET需要一直保持高電平。片選信號WT_CS拉低2~10 ms以喚醒語音芯片WT588D,接收數據低位在先,在時鐘的上升沿接收數據。時鐘周期介于40 us~2 ms。數據成功接收后,語音播放忙信號BUSY輸出在1 ms之后做出相應反饋。單片機需要嚴格按照以上的時序工作,以確保數據傳輸無誤。
3 ? ?系統軟件設計
識讀器的軟件設計是在KEIL C51 Vision4版本中開發的,源程序的編寫、編譯、生成HEX文件都在KEIL C51 Vision4完成。整個軟件設計包括主程序、單片機初始化程序、MFRC522讀寫模塊初始化程序、語音模塊初始化程序、LCD1602顯示子程序、合法性驗證讀寫子程序、語音播報子程序、延時子程序等。系統軟件主流程和合法性驗證程序如圖5—6所示。
根據圖5所示流程,將上述流程的每一步驟設計成一個個相應的子程序。程序采用C語言編程,在KEIL C51 Vision4環境中編寫,以下是語音模塊的驅動子程序。
#include
#include<1602.h>
#include
#define H 1
#define L 0
void delay ( unsigned int z) ? ?//延時子函數
{
unsigned int i , j;
for(j=0; j for(i=0; i<10; i++); } void WT_3line(unsigned char dat) ? //三線控制模式 { unsigned int i; WT_DATA=1; WT_SCK=1; WT_RST=0; delay(1); WT_RST=1; delay(17); WT_CS=0; delay(1); for(i=0;i<8;i++) { if(dat&0x01) { WT_SCK=0; delay(1); WT_DATA=1; delay(1); WT_SCK=1; } else { WT_SCK=0; delay(1); WT_DATA=0; delay(1); WT_SCK=1; } dat>>1; } WT_CS=1; WT_DATA=1; WT_SCK=1; } void WT_sendaddr(unsigned char addr) ?//地址發送函數 { WT_3line(addr); addr++; if(addr=210) addr=0; } void WT_INT() { WT_DATA=1; WT_SCK=1; WT_CS=1; } 4 ? ?應用 本文研發的非接觸式IC卡射頻識讀器,可適用于以下應用領域。 4.1 ?物體厚度檢測 利用非接觸式IC卡射頻技術,可以檢測體積較小的物體厚度。例如應用在珍珠分揀器上,能夠獲取每個珍珠的厚度,并且通過模數轉換,將厚度參數通過串口通訊方式傳給上位機PC端,并能實時語音播報。 4.2 ?標碼參數識別 利用非接觸式IC卡射頻技術,可以識別每個IC卡上的內容參數,可以在實驗設備上貼放IC卡,通過非接觸式IC卡射頻識讀器,能夠準確讀取每個IC卡上記錄的實驗儀器參數,方便實驗室儀器的管理與使用。 5 ? ?結語 非接觸式IC卡無線射頻識讀器的電路設計合理,以MIFARE卡作為識讀器識別的對象、根據ISO14443A協議,采用非接觸式IC卡常用的讀寫芯片MFRC522作為讀寫模塊核心芯片[7],WT588作為語音播報芯片、STC89C52單片機作為主控芯片,具有性能穩定,抗干擾性能強、讀卡數據準確,結構簡單、低功耗、非接觸等特點,能夠廣泛應用在各檢測領域。 [參考文獻] [1]葛瑞雪.非接觸式IC卡讀寫器的設計與實現[J].數字技術與應用,2016(5):171. [2]周世晶,田濤.基RFID與非接觸式Mifare1復合通行卡設計[J].電子科技,2016(1):91-93. [3]曾志輝,郅富標.基于RFID技術的電子鉛封管理系統研究[J].電子器件,2017(1):183-187. [4]韓進,馬雙.基于STM32的Mifare IC卡讀寫卡器設計[J].電子產品世界,2016(4):31-34. [5]高云嶺,郭元興.一種接觸式IC卡加載設備的設計與實現[J].通信技術,2017(6):1328-1332. [6]曾維鋆,徐志華,夏銘澤.基于LPC54102的射頻卡讀寫器設計[J].電子制作,2016(19):5-7,15. [7]廣州周立功單片機發展有限公司.非接觸式讀卡器IC[Z].MFRC522,2007.