EMZ3118ZigBee在RFID射頻識別閱讀器中的應(yīng)用
摘要:針對目前應(yīng)用廣泛的有線傳輸射頻識別閱讀器,提出了一種以EMZ3118 ZigBee為無線收發(fā)器,在傳統(tǒng)的RFID射頻識別閱讀器上進(jìn)行無線功能拓展的無線傳輸射頻識別系統(tǒng)。無線傳輸射頻識別系統(tǒng)主要包括與上位機(jī)進(jìn)行無線通信的功能模塊和RFID射頻識別閱讀器模塊,重點(diǎn)對EMZ3118 ZigBee模塊的工作原理、使用配置、RFID射頻讀寫電路的設(shè)計(jì)及工作原理進(jìn)行了詳細(xì)介紹。測試結(jié)果顯示,該設(shè)計(jì)具有一定實(shí)際應(yīng)用價(jià)值。
本文引用地址:http://2s4d.com/article/201610/306113.htm關(guān)鍵詞:EMZ3118 ZigBee;無線傳輸;射頻識別
引言
射頻識別(RFID)技術(shù)是一種自動(dòng)識別技術(shù),被廣泛應(yīng)用于動(dòng)物識別、鐵路車皮識別、自動(dòng)高速公路收費(fèi)、航空行李處理、資產(chǎn)跟蹤、公共交通等。該系統(tǒng)主要包括電子標(biāo)簽和閱讀器兩部分,兩者之間通過電磁波進(jìn)行通信。通過這種方式閱讀器可以遠(yuǎn)距離、非接觸地讀出電子編碼中的所有信息,并通過串口將數(shù)據(jù)傳輸?shù)焦芾碇鳈C(jī)中,供工作人員記錄讀取。
實(shí)際應(yīng)用中,閱讀器和主機(jī)之間是通過串口或網(wǎng)口進(jìn)行通信的,這種通信方式會(huì)造成射頻識別系統(tǒng)布線繁瑣、成本高、工程量大。一旦系統(tǒng)安裝完成后,就不能隨意變動(dòng)位置,降低了系統(tǒng)的重復(fù)利用率。
為了使射頻識別系統(tǒng)能夠突破位置限制、節(jié)省空間、降低成本及減小工程量,對傳統(tǒng)的閱讀器進(jìn)行了重新設(shè)計(jì),實(shí)現(xiàn)了閱讀器和主機(jī)之間無線方式的信息交互傳輸。
1 整體設(shè)計(jì)方案
無線傳輸射頻識別閱讀器的系統(tǒng)結(jié)構(gòu)如圖1所示,主要包括ZigBee模塊、主控模塊、RFID射頻讀寫模塊、天線模塊、USB轉(zhuǎn)串通信模塊和電源模塊。
使用了一對ZigBee模塊,一個(gè)設(shè)計(jì)在閱讀器內(nèi),另一個(gè)獨(dú)立設(shè)計(jì)成帶USB接口的信息收發(fā)器,安裝在上位機(jī)上。主控模塊是以STM32F107VCT6 為核心的微控制系統(tǒng)模塊,RFID射頻讀寫模塊負(fù)責(zé)數(shù)據(jù)的傳輸和信號的處理工作,以及對電子標(biāo)簽進(jìn)行讀寫操作。核心芯片是EM4094(USB轉(zhuǎn)串通信模塊),主要作為備用上位機(jī)讀寫通道設(shè)計(jì),當(dāng)無線通信距離超出有效范圍或者無線通信發(fā)生故障時(shí),可以使用串口通信連接上位機(jī)及閱讀器。天線模塊采用傳統(tǒng)設(shè)計(jì),這里不做重點(diǎn)介紹。
此外,還設(shè)計(jì)了音頻報(bào)警和信號指示,分別用來提醒操作人員讀卡是否成功指示閱讀器通信或電源的狀態(tài)。
2 硬件電路設(shè)計(jì)
2.1 ZigBee模塊
EMZ3118模塊是基于STM32W108的一款完整的嵌入式ZigBee應(yīng)用模塊,帶外部射頻功率放大器(PA),發(fā)射功率最大為+20 dBm(100 mW)。模塊提供了ZigBee/IEEES02.15.4兼容的無線解決方案,可滿足低成本、遠(yuǎn)距離的無線傳感網(wǎng)應(yīng)用需求。
EMZ3118采用先進(jìn)的系統(tǒng)級芯片STM32W108,擁有穩(wěn)定可靠的Ember ZigBee Pro協(xié)議棧、開發(fā)簡單便捷、便于集成ZigBee解決方案、通信范圍廣、網(wǎng)絡(luò)可靠性高。最大傳輸距離為1.6 km,具有24個(gè)GPIO端口、4個(gè)中斷端口、支持兩個(gè)串行接口、6路12位A/D端口。支持點(diǎn)到點(diǎn)、點(diǎn)到多點(diǎn)、P2Pmesh的網(wǎng)絡(luò)協(xié)議,還提供16個(gè)直序擴(kuò)頻信道。EMZ3118引腳基本上都對應(yīng)到STM32W108的引腳上。
設(shè)計(jì)中使能EMZ3118的外部射頻功率放大器(PA),必須進(jìn)行一些簡單的配置。該模塊使用4個(gè)CPU引腳來控制外部功放,根據(jù)他們的功能定義做出相應(yīng)的配置,如下所示。
PA3:輸出控制引腳,用于控制外部功放的供電。設(shè)置為0,外部功放電源打開;設(shè)置為1,外部功放電源關(guān)閉。
PA6:輸出控制引腳,外部功放的使能控制。設(shè)置為0,外部功放不工作;設(shè)置為1,外部功放工作。
PA7:輸出控制引腳,用于選擇射頻信號的輸出天線。設(shè)置為0,射頻信號從UFL天線接口輸出;設(shè)置為1,射頻信號從MMCX天線接口輸出。
PC5:外部功放收發(fā)切換控制引腳,這個(gè)引腳需要設(shè)置為特殊功能輸出模式。
本設(shè)計(jì)中EMZ3118直接使用外置天線,無需設(shè)計(jì)。
2. 2 主控芯片
STM32F107VCT6是意法半導(dǎo)體推出的全新STM32互連型(Connectivity)系列微控制器中一款性能較強(qiáng)的產(chǎn)品。該芯片基于ARM Cortex—M3內(nèi)核,具有256 KBFlash和64 KB SRAM,工作頻率可達(dá)72 MHz。其集成了多種高性能工業(yè)標(biāo)準(zhǔn)接口:一個(gè)全速USB(OTG)接口、兩個(gè)CAN2.0B控制器、一個(gè)硬件支持IEEE1588精確時(shí)間協(xié)議 (PTP)的以太網(wǎng)接口(由硬件實(shí)現(xiàn)該協(xié)議可降低CPU開銷,提高實(shí)時(shí)應(yīng)用和聯(lián)網(wǎng)設(shè)備同步通信的響應(yīng)速度)。此外,該微控制器還支持以太網(wǎng)、USB OTG和CAN2.0B外設(shè)接口同時(shí)工作,因此只需一塊芯片就能設(shè)計(jì)整合所有這些外設(shè)接口的網(wǎng)關(guān)設(shè)備。
設(shè)計(jì)中使用100引腳的STM32F107VCT6,EMZ3118與主控芯片的電路連接原理如圖2所示。
圖2中,EMZ3118和主控芯片之間進(jìn)行SPI通信,EMZ3118為主控芯片的從設(shè)備。PA6為主控芯片在主動(dòng)模式下的數(shù)據(jù)輸入端(SDO);PA7 為主控芯片在主動(dòng)模式下的數(shù)據(jù)輸出端(SDI);PA5為串口時(shí)鐘(SCK);PA4為從設(shè)備選擇端(NSS),用來使能ZigBee模塊;PA3用來控制EMZ3118的外部Rx/Tx切換邏輯控制端。
2.3 RFID射頻讀寫模塊
RFID射頻讀寫模塊中的核心器件是EM4094芯片,是一款集成收發(fā)器芯片,可用于構(gòu)成RFID閱讀器的模擬前端讀寫基站模塊。EM4094支持所有EM公司頻率為13.56 MHz的收發(fā)器芯片,支持ISO15693協(xié)議、ISO14443協(xié)議和Sony Felicia協(xié)議。
EM4094三個(gè)不同的電源引腳分別是VDDA1、VDDA2和VDD。其中,VDDA1和VDDA2為內(nèi)部天線驅(qū)動(dòng)器ANT1、ANT2供電,每個(gè)驅(qū)動(dòng)器需要獨(dú)立供電。由于兩個(gè)驅(qū)動(dòng)器可能產(chǎn)生較大的電流,為了給天線提供足夠電能,需要在VDDA1及VDDA2引腳間接入一個(gè)3.3 μF電容,再分別并聯(lián)一個(gè)1 nF和100 nF的電容,對電源進(jìn)行濾波和去耦。VDD用于給其他的內(nèi)部邏輯電路供電。在這個(gè)電源線上同樣并聯(lián)一個(gè)1 nF和100nF的電容對電源進(jìn)行濾波和去耦。這3個(gè)電源施加相同的電壓(5 V或3.3 V),所有電源線都應(yīng)當(dāng)與模擬地相連。
在OSCOUT和OSCIN兩端外接13.56 MHz的晶振,用來提供脈沖信號,該信號被送至天線驅(qū)動(dòng)器輸出端。為了保證晶振的起振以及穩(wěn)定性,在晶振兩端跨接兩個(gè)NPO電容。NPO電容的大小由EM4094芯片的可選跨導(dǎo)和晶振參數(shù)決定。
為了確保閱讀器內(nèi)部芯片的穩(wěn)定性及可靠性,分別用100 nF和1 nF的電容對帶隙參考輸出(AGD)電壓進(jìn)行去耦。
引腳ANT1和ANT2是兩個(gè)天線驅(qū)動(dòng)器的輸出端,它們可同相或反相驅(qū)動(dòng),如果將閱讀器天線與EM4094芯片集成到同一塊PCB板上,便可選用直接天線連接的方法。這種情況下,天線線圈和串聯(lián)的電容形成LC振蕩回路,回路的諧振頻率設(shè)計(jì)為閱讀器的頻率。串聯(lián)一個(gè)電阻可以抑制品質(zhì)因數(shù),且將天線電流設(shè)計(jì)在 EM4094額定電流值以下。當(dāng)工作于其諧振頻率時(shí),天線即可獲得較高的輸出功率。
引腳RFIN1、RFIN2是該芯片接收鏈上的輸入引腳,用來解調(diào)芯片收發(fā)器發(fā)送過來的數(shù)據(jù)。該引腳上的電壓應(yīng)設(shè)計(jì)在VDD和GND之間,這兩個(gè)輸入設(shè)計(jì)必須具有相同性能及相同靈敏度。另外,外接一個(gè)阻抗匹配電路,這兩個(gè)輸入端就可用于解調(diào)輸入相位或幅度來調(diào)制信號。沒有使用的輸入引腳要通過一個(gè)10 nF電容接到模擬地,高靈敏度的輸入引腳使得讀卡器即使在電子標(biāo)簽最小的電源級別上,還能具有較遠(yuǎn)的讀寫距離。
引腳EN用于關(guān)閉或使能閱讀器電子電路,該引腳可由一個(gè)外部單片機(jī)進(jìn)行控制。
在SPI串行通信模式下,引腳DIN用于數(shù)據(jù)輸入,引腳DOUT用于數(shù)據(jù)輸出,引腳DCLK用于SPI總線的時(shí)鐘信號。SPI接口可用來對讀寫器芯片內(nèi)部的位寄存器進(jìn)行設(shè)置,并參與不同模塊參數(shù)的設(shè)定。在正常模式下,可通過在DIN引腳上施加邏輯電平來關(guān)閉或打開天線驅(qū)動(dòng)器。在DOUT引腳上可直接讀取引腳DIN上的應(yīng)答信息。
RFID射頻讀寫模塊電路工作原理圖如圖3所示。
2.4 天線模塊
天線負(fù)責(zé)發(fā)送閱讀器對電子標(biāo)簽的讀寫指令,同時(shí)接收標(biāo)簽返回的數(shù)據(jù)。在射頻識別系統(tǒng)中,天線線圈可看作兩個(gè)相互耦合的電感。兩個(gè)電感諧振頻率必須設(shè)計(jì)在閱讀器工作頻率(即13.56 MHz)附近,才能使得電感的耦合程度最高,因此必須先知道天線線圈的電感值,再搭配適當(dāng)?shù)碾娙葜担鶕?jù)不同的應(yīng)用計(jì)算出天線的品質(zhì)因數(shù)和電感的電阻值。
本設(shè)計(jì)中,參考demo板的參數(shù)設(shè)計(jì),在PCB板上印刷天線線圈、矩形形狀。圈數(shù)為4圈,線圈外圈長6.8cm、寬5.5 cm、線寬1 mm、線間距0.2 mm、并聯(lián)一個(gè)3.3kΩ的電阻,容性的阻抗匹配網(wǎng)絡(luò)(8.2 pF+120 pF并聯(lián))電容值串聯(lián)56 pF+680 pF并聯(lián)后的電容值。
USB轉(zhuǎn)串口通信模塊采用常用電路,電源模塊相關(guān)電路除了給芯片EM4094兩個(gè)獨(dú)立供電電源使用了磁珠隔離,其他的也采用了常用電路。
3 軟件設(shè)計(jì)
3.1 上位機(jī)軟件設(shè)計(jì)
上位機(jī)軟件主要實(shí)現(xiàn)對遠(yuǎn)端閱讀器的讀寫操作。上位機(jī)軟件通過RS485口向EMZ3118發(fā)送帶有閱讀器地址的讀寫指令,EMZ3118將指令無線傳輸給遠(yuǎn)端EMZ3118接收并解析。符合接收閱讀器地址的指令會(huì)發(fā)送給主控芯片,主控芯片進(jìn)一步解析指令后對閱讀器進(jìn)行相關(guān)讀寫操作,并監(jiān)測閱讀器對指令執(zhí)行的結(jié)果是否正確,同時(shí)將相關(guān)的結(jié)果數(shù)據(jù)原路徑傳輸給上位機(jī),閱讀器的工作狀態(tài)實(shí)時(shí)顯示在工作狀態(tài)燈上。本設(shè)計(jì)中的上位機(jī)采用C#開發(fā)。
3.2 下位機(jī)軟件設(shè)計(jì)
下位機(jī)軟件包括ZigBee模塊本身的收發(fā)配置、閱讀器驅(qū)動(dòng)及工作程序設(shè)計(jì)、主控芯片的初始化及網(wǎng)絡(luò)通信程序設(shè)計(jì),以及系統(tǒng)控制、串行 Flash存儲、硬件外圍模塊驅(qū)動(dòng)、EMZ3118為ZigBee模塊的Host驅(qū)動(dòng)、其他接口驅(qū)動(dòng)等。本文重點(diǎn)介紹EMZ3118的Host驅(qū)動(dòng),軟件架構(gòu)如圖4所示。
EMZ3118為ZigBee模塊的Host驅(qū)動(dòng),完成STM32F107與EMZ3118模塊的SPI通信并提供通用SPI讀寫能力。代碼框架如下所示:
Assemble Command and put it into cmdbuf.
While(get_EMZ3118_int_status());
Spi_send_data(cmdbuf,cmdlen);
Recvlen=spi_rec_data(resbuf);
Handle response buffer.
其中,函數(shù)get_EMZ3118_int_status()用于獲取模塊/INT狀態(tài)。
結(jié)語
經(jīng)過實(shí)際測試,本系統(tǒng)能夠通過無線傳感網(wǎng)絡(luò)遠(yuǎn)程對RFID射頻識別閱讀器進(jìn)行讀寫操作,同時(shí)控制RFID射頻識別閱讀器對電子標(biāo)簽進(jìn)行讀寫操作。系統(tǒng)工作穩(wěn)定可靠、傳輸數(shù)據(jù)正確、反應(yīng)時(shí)間短,具有較高實(shí)際應(yīng)用價(jià)值。
評論