基于STM32的RFID手持終端硬件設(shè)計
射頻識別(Radlo Frequency Identification,RFID)技術(shù)是近年來興起的一種自動識別技術(shù)。該技術(shù)可利用射頻信號識別對象,利用電磁耦合原理交換信息。與傳統(tǒng)的識別技術(shù)相比,RFID技術(shù)具有讀卡器和射頻標(biāo)簽無接觸的特點。由于RFID技術(shù)所具有的優(yōu)點,它目前被廣泛應(yīng)用于身份識別、電子商務(wù)、工業(yè)自動化以及交通運輸?shù)阮I(lǐng)域。但是,現(xiàn)有的RFID讀卡器在大規(guī)模的移動應(yīng)用中仍存在著一些不足,例如處理速度較慢、人機交互不夠友好、成本較高、不能方便與上位機進行通信等。本文設(shè)計的RFID手持終端采用STM32F103VET6嵌入式處理器作為主控芯片,CLRC632作為射頻讀卡芯片,可以讀寫工作在13.56 MHz的多種射頻標(biāo)簽,并且可以存儲大量標(biāo)簽數(shù)據(jù),與上位機進行有線或無線方式的通信。
1 RFID手持終端的整體結(jié)構(gòu)
RFID手持終端系統(tǒng)由微控制器、射頻讀卡、數(shù)據(jù)存儲、TFTLCD顯示、鍵盤輸入、通信模塊等部分組成,RFID手持終端的結(jié)構(gòu)框圖如圖1所示。由丁RFID手持終端屬于移動沒備,對功耗有較嚴(yán)格的要求。另外,手持終端系統(tǒng)需要微控制器與外部模塊通過多種總線進行實時通信,因此采用了ST公司的STM32系列的微控制器作為主控端,該系列芯片基于ARM Cortcx-M3內(nèi)核,具有豐富的外部接口、功能強大。同時,該系列芯片功耗極低,其功耗相當(dāng)于0.5 mA/MHz。CLRC632是NXP公司生產(chǎn)的應(yīng)用于1 3.56 MHz的非接觸式射頻讀卡芯片,該芯片通過SPI總線與微控制器連接。數(shù)據(jù)存儲模塊使用了Atmel公司生產(chǎn)的EEPROM芯片AT24C64存儲手持終端工作狀態(tài),使用大容量SD卡存儲讀取的標(biāo)簽數(shù)據(jù)以及用于顯示的GBK字庫、圖標(biāo)等數(shù)據(jù)。本手持終端采用了2.8寸的TFTLCD屏作為顯示輸出,支持觸摸屏和鍵盤兩種輸入方式。與上位機的通信可以采用USB總線進行有線通信,也可以通過無線通信模塊進行無線通信。
圖1 RFID手持終端的結(jié)構(gòu)框圖
2 RFID手持終端的硬件設(shè)計
2.1 主控芯片及其外圍接口的設(shè)計
主控芯片采用了ST公司生產(chǎn)的基于ARM Cortex-M3內(nèi)核的嵌入式處理器STM32F103VET6。該處理器的工作頻率為72MHz,支持多種通信總線,其中包括2個I2C總線接口、5個USART串行接口、3個SPI總線接口、CAN總線和USB總線。同時,該處理器還具有80個通用I/O接口、16位定時器、A/D轉(zhuǎn)換器、實時時鐘等功能。該處理器可以完全滿足本RFID手持終端的設(shè)計需求。
為了滿足RFID手持終端移動使用的需求,采用了7.4 V的鋰電池進行供電。采用了AMSIII7-5.0芯片提供5 V電壓,AMSIII7-3.3芯片提供3.3 V電壓。AMSIII7系列芯片可以輸出1A的電流,輸入電壓調(diào)節(jié)率小于0.2%,負載調(diào)節(jié)率小于0.4%,輸出電壓穩(wěn)定。為了抗干擾,STM32F103VET6上的每個電源引腳都并聯(lián)了去耦合的0.1μF電容,這些電容應(yīng)該盡可能地靠近電源/地引腳。
STM32F103VET6需要兩個外部時鐘源,高速外部時鐘源(HSE)和低速外部時鐘源(LSE)。HSE晶振的頻率是8 MHz,作用是產(chǎn)生精確的主時鐘,用于驅(qū)動系統(tǒng)時鐘。LSE晶振的頻率是32.768kHz,作用是為片內(nèi)實時時鐘提供一個低功耗且高精度的時鐘源,用于時鐘或日歷等需要計時的場合。晶振和負載電容需要盡可能地靠近芯片的引腳,以減小輸出失真和啟動穩(wěn)定時間。負載電容值必須根據(jù)選定的品振進行調(diào)節(jié)。當(dāng)選擇負載電容值時,PCB板和芯片引腳的電容值也必須被計算進去。這里采用了20pF的電容作為HSE的負載電容,10 pF的電容作為LSE的負載電容。在設(shè)計PCB時,振蕩電路旁邊要避免有高頻信號經(jīng)過,走線長度越短越好。
STM32F103VET6采用4線SPI總線方式與讀卡芯片CLRC632和SD卡進行通信,并與觸摸屏控制器連接,完成觸摸屏的壓力感應(yīng);采用I2C總線方式與外部EEPROM AT24C64進行通信;采用16位的I/O接口與TFTLCD模塊連接,實現(xiàn)系統(tǒng)顯示輸出;采用16位的I/O接口與鍵盤連接,最多可支持64個按鍵輸入;采用USART串行接口實現(xiàn)程序的燒寫和淵試,并與無線通信模塊連接,實現(xiàn)與上位機的無線通信;采用USB總線實現(xiàn)與上位機的高速有線通信。
2.2 射頻讀卡芯片及天線網(wǎng)絡(luò)的設(shè)計
本RFID手持終端使用NXP公司生產(chǎn)的CLRC632作為射頻讀卡芯片。該芯片是一種應(yīng)用于13.56 MHz的非接觸式射頻標(biāo)簽的芯片,支持符合ISO/IEC14443和ISO/IEC15693標(biāo)準(zhǔn)的射頻標(biāo)簽。該芯片支持10 cm的最大操作距離,與NXP公司的其他射頻讀卡芯片MFRC500、MFRC530、MF RC531、SLRC400引腳兼容。該芯片可以用8位并行接口或SPI總線方式與微控制器進行通信。CLRC632電路原理圖如圖2所示。
圖2 CLRC632電路原理圖
本文中的CLRC632使用SPI方式與主控芯片STM32F103VET6進行通信。CLRC632提供了與SPI總線標(biāo)準(zhǔn)兼容的接口,在SPI通信過程中作為從設(shè)備。SPI總線時鐘信號SCK由微控制器產(chǎn)生,主控芯片使用MOSI數(shù)據(jù)線向CLRC632發(fā)送控制信息,CLRC632使用MISO數(shù)據(jù)線向主控芯片發(fā)送數(shù)據(jù)。
對于CLRC632,可以使用兩種方法將天線連接到讀卡器:直接匹配天線和50 Ω匹配天線。本文中采用直接匹配的方式將CLRC632與天線連接,包括了EMC低通濾波器、天線匹配電路與接收電路。CLRC632的工作頻率是13.56 MHz,產(chǎn)生該頻率的晶振同時也產(chǎn)生高次諧波。為了符合國際EMC規(guī)定,采用EMC低通濾波器抑制高次諧波。天線匹配電路與天線進行阻抗匹配,以獲得最大的功率傳輸,增大讀卡距離,同時避免阻抗失配可能對電路造成的損害。本文中的RFID手持終端采用PCB環(huán)形天線,其電感量由如下公式進行估算:
式中長度單位為cm,電感值單位為nH。l1為一圈導(dǎo)線的長度,取值20 cm;D1為導(dǎo)線的直徑,取值0.1 cm;K為天線形狀常數(shù),本文中的天線是矩形天線,取值K=1.47;N為導(dǎo)線的圈數(shù),取值4。代入公式,計算得L1=1857 nH。代入芯片廠家提供的表格進行計算,得到與天線并聯(lián)的電容容值為132.3 pF,與天線串聯(lián)的電容容值為17.5pF。在實際電路設(shè)計中,與天線并聯(lián)的電容采用100 pF與22 pF電容并聯(lián)得到,與天線串聯(lián)的電容采用18 pF。接收電路使用了CLRC632內(nèi)部產(chǎn)牛的VMID引腳作為輸入電壓。在VMID和地線之間連接了一個0.1μF電容,起到了減少干擾的作用。天線及其匹配電路原理圖如圖3所示(L1、L2是天線的等效電感)。
圖3 天線及其匹配電路原理圖
2.3 人機接口部分的設(shè)計
在RFID手持終端的使用過程中,需要向射頻標(biāo)簽發(fā)送數(shù)據(jù)以及實現(xiàn)牧據(jù)存儲、與上位機的數(shù)據(jù)通信等功能,這就要求輸入數(shù)據(jù)和控制信息,并且將數(shù)據(jù)和控制信息直觀地顯示出來。RFID手持終端采用了TFTLCD進行顯示輸出,支持觸摸屏和鍵盤兩種方式的輸入,其中觸摸屏主要用于輸入控制信息,鍵盤主要用于輸入數(shù)據(jù)。
TFTLCD部分采用了26萬色的TFTLCD屏幕,分辨率為320×240,可以實現(xiàn)友好的人機接口界面顯示。TFTLCD控制器采用了Ilitek公司生產(chǎn)的IL19320,可以通過多種并行通信方式與微控制器通信。為了加快傳輸速率以顯示彩色界面,這里采用了16位的并行總線與STM32F103VET6相連接。為了降低系統(tǒng)功耗,通過BL_VDD引腳控制屏幕背光,如果一段時間內(nèi)沒有對觸摸屏或鍵盤進行操作,屏幕背光將熄滅。
TFTLCD屏幕自帶電阻式觸摸屏,利用壓力感應(yīng)進行控制。電阻式觸摸屏成本低、精度高、不怕灰塵、水汽和油污,在惡劣的移動使用環(huán)境下不易損壞,吏適用于本RFID手持終端。采用了TI公司生產(chǎn)的ADS7846作為觸摸屏控制芯片。ADS7846內(nèi)部集成了12位逐次逼近型A/D轉(zhuǎn)換器,轉(zhuǎn)換速率為125 kHz。使用時,ADS7846通過兩次A/D轉(zhuǎn)換得到觸點位置的X、Y坐標(biāo),通過SPI總線與STM32F103VET6通信,完成對控制信息的輸入。ADS7846電路原理圖如圖4所示。
圖4 ADS7846電路原理圖
由于手持終端的便攜性需求,TFTLCD屏幕不可能太大。這樣,若通過TFTLCD屏幕顯示的虛擬鍵盤輸入數(shù)據(jù),每個按鍵的空間很小,會給輸入帶來困難。因此,在STM32F103VET6的通用I/O口上連接了矩陣鍵盤,通過鍵盤掃描完成數(shù)據(jù)的輸入。使用了STM32F103VET6的PD0~PD15共16個通用I/O口連接鍵盤,最多可連接64個按鍵,有效減少了處理器I/O資源的占用。使用時,可以根據(jù)實際需要,連接相應(yīng)數(shù)量的按鍵。
2.4 數(shù)據(jù)存儲部分的設(shè)計
STM432F103VET6內(nèi)部的存儲資源包括64 KB的SRAM和512 KB的Flash。為了完成對RFID手持終端工作狀態(tài)、用于顯示的資源以及大量射頻標(biāo)簽數(shù)據(jù)的存儲,需要對數(shù)據(jù)存儲部分加以擴展。手持終端采用了Atmel公司生產(chǎn)的EEPROM芯片AT24C64存儲手持終端工作狀態(tài)。該芯片可以存儲64 Kb的數(shù)據(jù),相當(dāng)于8192字節(jié)。該芯片通過I2C總線與STM32F103VET6進行通信,包括數(shù)據(jù)線SDA和時鐘線SCL。由于I2C總線接口采用開漏輸出,必須通過外部上拉電阻將信號線拉至高電平。綜合考慮端口驅(qū)動能力和信號傳輸速率,選用4.7 kΩ的上拉電阻。使用時,AT24C64中存儲了手持終端的ID信息,在與上位機通信時進行安全認證。AT24C64中也存儲了觸摸屏的校準(zhǔn)數(shù)據(jù),實現(xiàn)觸摸屏和TFTLCD之間的坐標(biāo)轉(zhuǎn)換。SD卡體積小、容量大、傳輸速率快,廣泛應(yīng)用于移動設(shè)備。本手持終端采用了SD卡存儲漢字字庫、界面圖片和射頻卡中讀取的數(shù)據(jù)。SD卡通過SPI總線與STM32F103VET6進行通信,經(jīng)實驗證明每秒可以傳輸2 MB以上的數(shù)據(jù),可以滿足手持終端對數(shù)據(jù)傳輸速率的要求。另外,由于SD卡可以很方便地從手持終端巾取出,也可以使用上位機的通用讀卡器對SD卡進行讀寫,實現(xiàn)手持終端和上位機的數(shù)據(jù)交換。
2.5 數(shù)據(jù)通信部分的設(shè)計
RFID手持終端使用STM32F103VET6芯片內(nèi)部集成的USB總線與上位機完成有線通信。USB總線支持即插即用和熱插拔,使用方便。同時,USB 2.0全速總線支持480 Mbps的傳輸速率,可以快速將手持終端中的信息傳輸?shù)缴衔粰C。為了滿足手持終端的移動使用需求,采用了Sim com公司牛產(chǎn)的GPRS模塊SIM300,它的工作頻率為GSM/GPRS 900/1800 MHz,可以在低功耗的條件下,完成手持終端數(shù)據(jù)的無線傳輸。在使用時,通過STM32F103VET6的USART串口與SIM300模塊連接,通過AT指令實現(xiàn)網(wǎng)絡(luò)連接、數(shù)據(jù)發(fā)送等功能。
3 系統(tǒng)測試
設(shè)計了RFID手持終端的PCB板,其主板大小約為1 6 cm×9 cm,可以滿足手持終端的便攜需求。使用STM32F103VET6自帶的ISP下載工具通過USART串口將程序下載后,使用本RFID手持終端對符合ISO/IEC14443和ISO/IEC 15693標(biāo)準(zhǔn)的射頻標(biāo)簽進行讀寫,操作距離均不小于8 cm,讀卡及顯示速度均滿足使用需求。
將讀卡得到的數(shù)據(jù)存儲到SD卡中,通過USB總線或GPRS模塊發(fā)送到上位機,上位機可以接收到卡號、扇區(qū)、數(shù)據(jù)等信息以便進行進一步的數(shù)據(jù)處理。
結(jié)語
本文詳細介紹了基于STM32F103VET6的13.56MHz RFID手持終端的硬件沒計方法。該讀卡器具有處理速度快、功耗低、人機交互友好、與上位機通信方便等特點,適用于多種需要移動應(yīng)用的場合,尤其適用于物流行業(yè),具有廣闊的應(yīng)用前景。