潘世華
摘 要 基于P89LPC931微控制器和MF RC530讀寫(xiě)芯片,為教儀開(kāi)放使用控制系統(tǒng)設(shè)計(jì)一種小型、低功耗、低成本的高頻RFID讀卡模塊,該模塊可以通過(guò)RS232或SPI接口進(jìn)行通信。詳細(xì)說(shuō)明模塊的電路設(shè)計(jì)及通信規(guī)范,該模塊可作為其他應(yīng)用系統(tǒng)中的通用RFID讀寫(xiě)模塊。
關(guān)鍵詞 教儀開(kāi)放使用控制系統(tǒng);RFID模塊;微控制器;讀寫(xiě)芯片
中圖分類號(hào):TN919 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1671-489X(2016)04-0038-04
Design of Small Type RFID Module for Teaching Instrument Open Access Control System//PAN Shihua
Abstract Based on P89LPC931 microcontroller and MF RC530, a small type, low power consumption, low cost, high frequency RFID card reader module is designed for Teaching Instrument Open Access Control System. The module can communicate through RS232 or SPI interface. This article details the module circuit design and communication specification, and the module can be used for other application system as a general RFID read-write module.
Key words teaching instrument open access control system; RFID Module; microcontroller; Read and Write Chip
1 引言
基于RFID的教儀開(kāi)放使用控制系統(tǒng)(見(jiàn)圖1),通過(guò)RFID授權(quán)進(jìn)行教儀設(shè)備供電控制,從而實(shí)現(xiàn)教儀設(shè)備開(kāi)放使用的目的。系統(tǒng)中包含一個(gè)教儀使用授權(quán)的RFID模塊,該模塊是一種低成本、小型通用、高可靠的高頻RFID模塊,可用于:1)應(yīng)用系統(tǒng)的IC卡的發(fā)行和管理;2)本系統(tǒng)控制的IC卡識(shí)別與記錄回寫(xiě);3)其他RFID應(yīng)用系統(tǒng)的通用讀寫(xiě)模塊。
2 模塊設(shè)計(jì)方案
由于13.56 MHz高頻RFID在校園、市民卡等公共應(yīng)用中非常普及[1],本系統(tǒng)采用ISO14443A協(xié)議的高頻RFID。目前支持ISO14443A協(xié)議的RFID讀寫(xiě)芯片很多,本系統(tǒng)采用NXP的MFRC530[2]。該芯片的應(yīng)用已非常成熟,它利用先進(jìn)的調(diào)制和解調(diào)概念,集成了13.56 MHz的被動(dòng)非接觸式通信方式和協(xié)議的所有類型,支持ISO14443A多層協(xié)議。內(nèi)部的發(fā)送器部分不需增加有源電路就能夠直接驅(qū)動(dòng)近距天線(可達(dá)10 cm);接收器部分則包含一個(gè)先進(jìn)的解調(diào)和解碼電路,用于ISO14443A兼容信號(hào)的應(yīng)答;內(nèi)部的數(shù)字部分負(fù)責(zé)ISO14443A幀及奇偶CRC錯(cuò)誤檢測(cè)。它支持用于驗(yàn)證MIFARE系列產(chǎn)品的快速CRYPTO1加密算法。
模塊的處理器采用NXP的P89LPC931微控制器,同一生產(chǎn)商的IC更好保證產(chǎn)品的可靠性。P89LPC931是8位微處理器,內(nèi)含8 K字節(jié)可擦除程序存儲(chǔ)器Flash和256字節(jié)RAM數(shù)據(jù)存儲(chǔ)器,為2時(shí)鐘的80C51內(nèi)核,與標(biāo)準(zhǔn)80C51指令系統(tǒng)兼容,但它指令執(zhí)行只需2~4個(gè)時(shí)鐘周期,速度是標(biāo)準(zhǔn)80C51處理器的6倍,且集成了更多的系統(tǒng)級(jí)功能,從而有效減少模塊的元器件數(shù)目和PCB面積,可以滿足高集成度、低成本的應(yīng)用需求。
另外,本模塊還提供SPI、RS232通信接口,并通過(guò)232-USB轉(zhuǎn)換模塊,可以直接和PC機(jī)的USB口通信。RFID讀寫(xiě)模塊的結(jié)構(gòu)如圖2所示。
3 模塊硬件設(shè)計(jì)
控制器及外圍電路 控制器采用28腳TSSOP小型封裝的P89LPC931FDH,充分利用芯片內(nèi)部資源,減少外圍器件電路。采用片內(nèi)獨(dú)立振蕩器的看門(mén)狗定時(shí)器,使用片內(nèi)上電復(fù)位電路,低電平復(fù)位,不需要外接元件,且其片內(nèi)的復(fù)位干擾抑制電路和復(fù)位計(jì)數(shù)器可有效防止不完全或虛假的復(fù)位。同時(shí),采用其低電壓掉電檢測(cè)的功能,可在電源故障時(shí)做應(yīng)急處理,如讓系統(tǒng)安全關(guān)閉。采用片內(nèi)RC振蕩器,震蕩頻率設(shè)置為7.373 MHz,亦無(wú)需外接振蕩器件。所有的端口均有LED驅(qū)動(dòng)能力(20 mA),可根據(jù)需要將各端口編程設(shè)置為準(zhǔn)雙向、開(kāi)漏輸出、推挽輸出或僅為輸入功能,不用外接上拉電阻??刂破骷巴鈬娐啡鐖D3所示,外圍器件極少[3]。
RFID讀寫(xiě)芯片及天線電路 RFID讀寫(xiě)芯片電路圖如圖4所示[4],非接觸式IC卡(Mifare)讀寫(xiě)芯片選用SO32封裝的MFRC530。該芯片使用了3個(gè)獨(dú)立的電源,在設(shè)計(jì)時(shí)需要特別關(guān)注其電源線的布局,DVDD、AVDD、TVDD分別提供數(shù)字部分、模擬部分和射頻發(fā)射器部分的電源,以實(shí)現(xiàn)其在EMC和信號(hào)退耦方面能夠達(dá)到最佳性能。雖然本模塊采用一個(gè)統(tǒng)一的+3.3 V直流電源供電,但在PCB設(shè)計(jì)時(shí)要細(xì)心布局這三個(gè)電源線和對(duì)應(yīng)的地線,如圖4和圖5中的Vdd-Gdd、Vaa-Gaa、Vtt-Gtt。采用四層PCB設(shè)計(jì)更易實(shí)現(xiàn)其最佳性能。條件允許的話,模擬部分和射頻發(fā)射器部分的電源采用+5 V供電,以增加RFID的操作距離,達(dá)到出色的RF性能。
天線部分電路如圖5所示,MFRC530的非接觸式天線使用4個(gè)管腳:TX1、TX2、WMID、RX(表1)。
根據(jù)內(nèi)部寄存器的設(shè)定,MFRC530對(duì)要通過(guò)天線發(fā)射的數(shù)據(jù)進(jìn)行調(diào)制(100%調(diào)制變形的Miller編碼),得到的射頻信號(hào)經(jīng)過(guò)TX1和TX2來(lái)驅(qū)動(dòng)天線,并發(fā)送13.56 MHz的能量載波。天線拾取的RFID卡片發(fā)回的回波信號(hào)(為10%調(diào)制的Manchester編碼信號(hào)),由天線匹配回路送至RX腳,MFRC530的內(nèi)部接收器對(duì)此回波信號(hào)進(jìn)行檢測(cè)并解調(diào),然后根據(jù)寄存器的設(shè)定進(jìn)行相關(guān)的處理,再將數(shù)據(jù)由并行接口發(fā)送給微控制器。
Miller碼波形調(diào)制的幅度大,數(shù)據(jù)易于識(shí)別,但其中間會(huì)有短時(shí)間(3 ?s)無(wú)波形的現(xiàn)象,這樣就會(huì)有瞬間不能向RFID卡發(fā)送載波能量,要求卡片中有較大的電源濾波電容以保持電源的穩(wěn)定。在RFID射頻電路的設(shè)計(jì)中,需要抑制和防止電磁干擾,有效提高其電磁兼容性。PCB要選擇介電常數(shù)小的基材,電路的數(shù)字部分和模擬射頻部分分開(kāi)進(jìn)行供電處理。射頻部分盡量使用表面貼裝小型元件,盡量減少過(guò)孔,采用多層PCB設(shè)計(jì)加接地金屬屏蔽層。
MFRC530數(shù)據(jù)讀寫(xiě)控制端口ALE、CS、RD、WR分別為控制器的P1.7、P2.1、P2.6、P2.7,內(nèi)部產(chǎn)生的VMID電位分壓后作為管腳RX的輸入電位。為減少干擾擾動(dòng),需用電容C9將VMID接地。
接口電路 本模塊對(duì)外部的通信方式有兩種,分別是RS232和三線SPI,對(duì)應(yīng)的接口是J2和J3。RS232采用3.3 V
供電的MAX3221進(jìn)行電平轉(zhuǎn)換,可以和PC機(jī)等進(jìn)行基于標(biāo)準(zhǔn)RS232的數(shù)據(jù)通信。SPI則是TTL電平的接口,方便短距離模塊間的通信。為方便模塊的應(yīng)用和調(diào)試,設(shè)立了3.3 V的電源接口J1,P89LPC931的編程接口J4,如圖6所示。
4 模塊通信規(guī)范設(shè)計(jì)
本模塊(暫命名為L(zhǎng)PC530模塊)可方便地通過(guò)RS232或三線SPI與任何控制器進(jìn)行接口。在應(yīng)用中,本模塊作為從機(jī)使用,外部控制器為主機(jī)。
RS-232串行通信接口規(guī)范 LPC530模塊可通過(guò)標(biāo)準(zhǔn)RS-232接口與外部控制器進(jìn)行UART通信。
UART接口一幀的數(shù)據(jù)格式為1個(gè)起始位,8個(gè)數(shù)據(jù)位,無(wú)奇偶校驗(yàn)位,1個(gè)停止位,波特率為19200。其控制字符定義如表2。
通信必須先由外部控制器(主機(jī))發(fā)送命令和數(shù)據(jù)給LPC530(從機(jī)),LPC530執(zhí)行命令完畢后,將命令執(zhí)行的狀態(tài)和響應(yīng)數(shù)據(jù)發(fā)回外部控制器。
外部控制器發(fā)送格式見(jiàn)表3。
然后外部控制器(主機(jī))等待LPC530發(fā)回的狀態(tài)和響應(yīng)數(shù)據(jù)。若在300 ms內(nèi)沒(méi)有檢測(cè)到響應(yīng),則退出本次傳輸,進(jìn)行通信錯(cuò)誤處理,如表4所示。
三線SPI串行通信接口規(guī)范 LPC530模塊也可方便地通過(guò)三線SPI與外部控制模塊(下稱主控模塊)進(jìn)行接口。在該應(yīng)用中,本模塊也作為從機(jī)使用。
三線SPI分別為片選使能線SS、數(shù)據(jù)線SDATA以及時(shí)鐘線SCLK。主控模塊和LPC530通過(guò)這三線相連,該三線上的實(shí)際電平是主從雙方口線上狀態(tài)的邏輯。
在接口空閑時(shí),主控模塊的SS置1,SCLK清0,SDATA為0;LPC53的SS置1,SDATA為0。其中片選SS和數(shù)據(jù)線SDATA是雙向的。時(shí)鐘線SCLK由主控模塊產(chǎn)生,是單向的,其時(shí)序要求嚴(yán)格,必須遵從,否則通信將不會(huì)成功。
SS是數(shù)據(jù)發(fā)送的使能信號(hào)。如果一方要將數(shù)據(jù)發(fā)給另一方,則SS由該方控制,將SS線設(shè)為0,并在數(shù)據(jù)發(fā)送結(jié)束后將SS線置為1,數(shù)據(jù)接收方不得控制SS線。
數(shù)據(jù)線SDATA由數(shù)據(jù)發(fā)送方控制,接收方必須釋放該線。
1)時(shí)序圖。SPI線上信號(hào)的波形如圖7所示。由圖中可以看出,要進(jìn)行數(shù)據(jù)傳輸時(shí),要將SS設(shè)為低電平,此時(shí)時(shí)鐘SCLK和數(shù)據(jù)線SDATA信號(hào)才有效,且SDATA的變化應(yīng)該在SCLK為低電平時(shí)進(jìn)行;在SCLK為高電平時(shí),SDATA應(yīng)保持不變,變化無(wú)效。
2)外部控制器向LPC530寫(xiě)數(shù)據(jù)(主機(jī)向從機(jī)傳輸)。如表5所示,除信號(hào)響應(yīng)外,SPI三線上的信號(hào)均由外部控制器(主機(jī))產(chǎn)生。首先由主機(jī)在SS線上生成一個(gè)下降沿,向從機(jī)發(fā)出數(shù)據(jù)傳輸?shù)恼?qǐng)求信號(hào),等待LPC530(從機(jī))響應(yīng)(從機(jī)將SDATA置高電平);有響應(yīng)后該次數(shù)據(jù)傳輸開(kāi)始,從機(jī)在SCLK為高電平時(shí)讀取SDATA線上的狀態(tài)。主機(jī)在數(shù)據(jù)傳輸完畢后將SS線置為高電平,結(jié)束本次傳輸。
3)外部控制器從LPC530讀數(shù)據(jù)(從機(jī)向主機(jī)傳輸)。當(dāng)從機(jī)向主機(jī)傳輸數(shù)據(jù)時(shí),由從機(jī)發(fā)出數(shù)據(jù)傳輸請(qǐng)求,主機(jī)進(jìn)行數(shù)據(jù)傳輸響應(yīng),并產(chǎn)生SCLK信號(hào)。各動(dòng)作如表6所示時(shí)序。
5 結(jié)語(yǔ)
本模塊為教儀開(kāi)放使用控制系統(tǒng)中的RFID讀卡模塊,采用P89LPC931微控制器和MF RC530讀寫(xiě)芯片,可以通過(guò)標(biāo)準(zhǔn)RS232或SPI三線接口與外部控制器進(jìn)行通信,經(jīng)驗(yàn)證,其讀寫(xiě)卡距離>3 cm,是一種通用小型、低功耗、低成本的高頻RFID讀卡模塊,也可作為其他RFID應(yīng)用系統(tǒng)化中的讀寫(xiě)模塊。
參考文獻(xiàn)
[1]況夫容,鐘曉玲.基于RFID技術(shù)的智能多媒體控制系統(tǒng)的應(yīng)用研究[J].中國(guó)集成電路,2013(11):71-74,81.
[2]鮑茂潭,趙春江,薛美盛,等.用于農(nóng)產(chǎn)品信息管理的RFID讀寫(xiě)器設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2008(3):68-71.
[3]唐洪富.基于LPC系列單片機(jī)的串口擴(kuò)展器設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2015,34(13):97-99
[4]程偉,何俊華.基于MFRC530的非接觸式IC讀卡系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2009(14):276-277.