文獻標識碼: B
文章編號: 0258-7998(2013)08-0130-04
繼計算機和互聯(lián)網(wǎng)發(fā)展之后,,物聯(lián)網(wǎng)的應用在各個領域迅速發(fā)展起來,。射頻識別技術(RFID)是物聯(lián)網(wǎng)的核心技術之一。RFID是一種非接觸式的自動識別技術,,其基本原理是利用射頻信號及其空間耦合和傳輸特性,,實現(xiàn)對靜止或移動物體的自動識別[1]。RFID系統(tǒng)主要由閱讀器,、射頻卡等部分組成,其中射頻識別閱讀器根據(jù)應用場合可分為固定式閱讀器和手持式閱讀器[2],。手持式閱讀器靈活性大、便于操作人員快速完成某一區(qū)域內(nèi)的信息采集,。
隨著物聯(lián)網(wǎng)射頻識別技術的不斷發(fā)展,RFID閱讀器被廣泛應用于制造業(yè),、物流,、港口、碼頭,、車輛及人員管理等領域,。
1 硬件設計
1.1 硬件結構設計
RFID閱讀器基于STM32單片機設計,芯片型號選擇為STM32F103RBT6。該芯片為LQFP64封裝,, 內(nèi)部有128 KB Flash和20 KB RAM,采用32位的ARM CortexTM-M3內(nèi)核, 最高支持主頻72 MHz,擁有2個SPI接口,、 2個USART接口、1個USB接口,、2個I2C接口和7個定時器,。支持SWD和JTAG調(diào)試模式及IAP和ISP編程。
STM32單片機支持J-Link在線調(diào)試,,J-Link調(diào)試有兩種模式:JTAG調(diào)試和SWD調(diào)試,。在線調(diào)試的便捷性,可以極大縮短程序的開發(fā)周期,,提高開發(fā)效率,。本系統(tǒng)采用的調(diào)試模式為SWD模式,只需2根SWDIO和SWCLK信號線,,相比JTAG模式更加節(jié)約I/O口資源,。閱讀器的硬件結構框圖如圖1所示。
1.2 電源模塊設計
系統(tǒng)可使用直流電源或電池供電,,外部直流電源電壓為8.4 V,;電池電壓為7.2 V,2 600 mA/h的鋰電池,。電源模塊設計原理圖如圖2所示,。
電源模塊工作原理:當插座J1連接外部直流電源時,,電流可經(jīng)過D4給電池充電,直流電源經(jīng)開關JP1連接IRF7404的G極,,使IRF7404的D極與S極斷開,則系統(tǒng)使用外部直流電源供電,;當不使用直流電源、按下開關時,,D4可將CD_POWER與電池斷開,,IRF7404的G極為低電平, IRF7404導通, 則系統(tǒng)使用電池供電。SYS_
POWER電壓經(jīng)過LM2576S-3.3轉換為3.3 V為系統(tǒng)的各模塊供電,。
1.3 MF RC522模塊設計
MF RC522是閱讀器的讀卡芯片,工作頻率為13.56 MHz,,工作模式支持ISO 14443A標準,芯片內(nèi)部驅動器可以直接驅動閱讀器的天線,無需其他電路,。MF RC522具有3種接口模式:SPI接口模式,、UART模式和I2C總線模式[3]。其中SPI模式的通信速度最快,,可達到10 Mb/s,。
MF RC522與主機接口模式有關的兩個引腳為IIC和EA:當IIC引腳拉高時,表示當前模式為I2C模式,,若IIC引腳為低電平時,再通過EA引腳電平來區(qū)分,。EA為高電平時,表示SPI模式,;為低電平時,,則表示UART模式[4]。本設計中MF RC522與MCU采用SPI通信,,與AT45DB161共享一個MCU的SPI2接口,。
在系統(tǒng)中,MF RC522和天線電路一起作為單獨模塊使用,,以便于更換與維修,。天線模塊與主板之間通過插座連接。
天線是閱讀器中的一個重要組成部分,。其作用是向外發(fā)射一組固定頻率的電磁波,為射頻卡提供能量,、傳遞數(shù)據(jù)。
本系統(tǒng)中使用的是PCB天線,,天線的設計關系到閱讀器的讀寫距離,,甚至關系到閱讀器是否能正常與射頻卡通信。RC522的天線設計須注意以下兩點:(1)為了讓射頻卡能獲取足夠大的能量驅動本身的集成電路,,設計天線時應該保證向外輻射足夠大的電磁波,; (2)為了提高讀卡數(shù)據(jù)的準確性,需要考慮調(diào)諧電路的通頻帶,,確保調(diào)制信號的準確性,。
天線的匹配電路可分為:天線線圈,、LC諧振電路和EMC濾波電路。RC522的天線匹配電路如圖3所示,,其中RQ為品質因素Q的匹配電阻,,Lant為天線的電感。
1.4 顯示模塊設計
閱讀器選用2.8英寸的TFT LCD觸摸屏,。在本系統(tǒng)中移植了GUI模塊,,使得人機交流界面操作更加便捷、友善,。觸摸屏為四線電阻屏,使用ADS7843作為A/D轉換芯片,。ADS7843是內(nèi)置12位模/數(shù)轉換、低導通電阻模擬開關的串行接口芯片,,模/數(shù)轉換輸出范圍0~4 095,,工作電壓2.7 V~5 V,參考電壓VREF為1 V~VCC,,轉換電壓的輸入范圍為0~VREF,,最高轉換速率為125 kHz[5]。ADS7843與MCU的接口為SPI1,。
驅動層的程序基于硬件平臺,主要是為中間服務層提供硬件驅動接口函數(shù),,完成底層的硬件操作,。編寫STM32的內(nèi)部資源驅動程序時,調(diào)用了ST公司的固件庫函數(shù)。
中間服務層主要是為上層應用程序提供庫支持和服務接口,。中間服務層的程序在驅動層程序上開發(fā),,并封裝驅動程序的接口。如FATS文件系統(tǒng)是在AT45DB161的驅動程序上移植,,為上層的應用程序提供文件創(chuàng)建,、寫入、讀出,、刪除等服務,;GUI模塊是在LCD顯示驅動程序上開發(fā),將LCD驅動的畫點畫線函數(shù)封裝成不同的控件,,在控件上加載相應的數(shù)據(jù)結構,,為界面應用程序提供控件的創(chuàng)建、銷毀等操作,。
應用層程序是面向用戶,,通過調(diào)用中間服務函數(shù)和庫函數(shù)來完成相應的數(shù)據(jù)處理和控制功能等。
2.2 Free RTOS實時操作系統(tǒng)
Free RTOS是一個輕量級的操作系統(tǒng),基本滿足較小系統(tǒng)的需要,。該操作系統(tǒng)完全免費且源碼公開,,同時具有可移植,、可裁減、調(diào)度策略靈活的特點,。
在本設計中Free RTOS的任務之間的關系如圖5所示,。
2.3 GUI模塊
GUI模塊是一個中間服務層程序,為顯示應用程序提供控件顯示服務,。如控件的顯示位置,、尺寸、顏色以及控件響應的回調(diào)函數(shù)入口地址等,。在本系統(tǒng)中GUI控件包含有文本框,、編輯框、進度條,、圖像框,、下拉列表、按鈕等,。每個控件都可以注冊一個回調(diào)函數(shù),,這個函數(shù)對應了該控件的響應功能函數(shù)。
2.4 FAT文件系統(tǒng)
FatFs文件系統(tǒng)是中間服務層程序,建立在AT45DB161驅動程序上,,文件系統(tǒng)提供了磁盤I/O接口和應用程序接口,。磁盤I/O接口函數(shù)位于diskio.c文件,常用的接口函數(shù)有讀磁盤disk_read()和寫磁盤disk_write(),。這兩個函數(shù)分別調(diào)用AT45DB161驅動程序的讀扇區(qū)和寫扇區(qū)函數(shù),。在文件系統(tǒng)中一個扇區(qū)的大小為512 B,與AT45DB161的頁大小一致,。
為了使FatFs文件系統(tǒng)與Windows的文件系統(tǒng)兼容,,要使用FAT32格式來格式化磁盤。f_open()函數(shù)與f_close()函數(shù)必須要成對出現(xiàn),,即打開一個文件操作完成后必須要關閉這個文件,。在對文件進行操作前必須先調(diào)用f_mount(0,&Fs)函數(shù)對工作區(qū)進行注冊,,操作完成后也需要調(diào)用f_mount(0,NULL)函數(shù)對工作區(qū)進行注銷,。
2.5 MF RC522驅動程序流程
本系統(tǒng)中使用的射頻卡為Mifare1 S50,也簡稱為M1卡,該卡有16個扇區(qū),,每個扇區(qū)有4個塊,,每個塊可存儲16 B的數(shù)據(jù)。MF RC522對M1卡進行讀寫控制,,分別有尋卡,、防碰撞、選卡、認證,、讀塊和寫塊等過程,。
MF RC522驅動程序流程如下:
(1)尋卡:尋找感應區(qū)內(nèi)所有符合ISO14443A標準的卡,尋卡成功后,,返回卡的類型,。
(2)防碰撞:通過防碰撞命令查看多張M1卡之間是否發(fā)生碰撞,若發(fā)生碰撞,,使用防碰撞算法進行處理,;若未發(fā)生碰撞,則MF RC522與M1卡進行通信,如果通信成功,,讀出M1卡中的序列號,。
(3)選卡:根據(jù)M1卡的序列號進行選卡。
(4)密碼驗證:密碼驗證模式有驗證A密鑰和驗證B密鑰,,通過這兩種模式來驗證塊地址,、密碼和卡片序列號。
(5)讀數(shù)據(jù)塊:根據(jù)提供的塊地址讀取塊數(shù)據(jù),。
(6)寫數(shù)據(jù)塊:根據(jù)提供的塊地址寫入塊數(shù)據(jù),,操作完成后命令M1卡進入休眠狀態(tài)。
2.6 AT45DB161D驅動程序
AT45DB161D是一個外部Flash存儲器,,擁有2 MB的容量,,分為4 096個頁,可配置為每頁512 B,,還擁有2個512 B的緩沖區(qū),。在主存儲器正在編程時,緩沖區(qū)允許接收數(shù)據(jù),,且支持數(shù)據(jù)流式寫入。AT45DB161的初始化包括STM32的引腳配置和SPI2接口配置,,初始化之后才能進行讀寫操作,。讀寫頁操作流程如下:
(1)讀頁操作流程
①檢測AT45芯片是否忙。若忙,,則繼續(xù)讀忙,,直到芯片空閑;若芯片空閑,則執(zhí)行流程②。
②向AT45芯片寫入命令0x53和頁地址,。0x53命令是將Flash中整頁的數(shù)據(jù)讀到緩沖區(qū)1中,。
③向AT45芯片寫入命令0xD4和頁偏移地址及數(shù)據(jù)長度。0xD4命令是讀緩沖區(qū)1中的數(shù)據(jù),。
④讀頁操作完成,。
(2)寫頁操作流程
①檢測AT45芯片是否忙。若忙,則繼續(xù)讀忙,,直到芯片空閑;若芯片空閑,,則執(zhí)行流程②。
②向AT45芯片寫入命令0x84,、頁偏移地址及需要寫入的數(shù)據(jù),。0x84命令是將數(shù)據(jù)寫到緩沖區(qū)1中。
③向AT45芯片寫入命令0x83和頁地址,。0x83命令是將緩沖區(qū)1中的數(shù)據(jù)寫到Flash指定的頁,。使用0x83命令,寫入前不需要對頁進行擦除操作,。
④寫頁操作完成,。
3 性能測試與實驗分析
3.1手持式閱讀器的功能測試
需要測試的功能有對M1卡讀寫、文件讀寫,、與PC機數(shù)據(jù)通信等功能,。為了便于測試上述功能,將本設計應用在校園消費系統(tǒng)上進行測試,。測試步驟如下:
(1)用串口線將RFID閱讀器與PC機相連,。運行PC機的上位機程序,設置串口參數(shù)為:波特率9 600 b/s,,數(shù)據(jù)位8 bit,,停止位1 bit,無校驗位,,無流控制,。
(2)對M1卡讀寫功能測試。通過上位機軟件發(fā)送指令和數(shù)據(jù)至閱讀器,,閱讀器將指定數(shù)據(jù)寫入M1卡,。然后再將M1卡數(shù)據(jù)讀出,傳回給上位機軟件顯示,,并比較寫入數(shù)據(jù)和讀出數(shù)據(jù),,如圖6所示。
(3)文件讀寫測試,。由于讀M1卡的數(shù)據(jù)以文件的形式存放在閱讀器的外部Flash中,,該Flash由文件系統(tǒng)管理。用USB線連接閱讀器和PC機,,閱讀器以盤符的形式在PC機上顯示,,從磁盤中將文件復制到PC機上,用上位機軟件打開讀出軟件,,記錄測試數(shù)據(jù),。
(4)與PC機數(shù)據(jù)通信測試。以上兩項測試通過則表明閱讀器能與PC機進行正常通信。
3.2 性能測試與分析
系統(tǒng)的性能測試主要是鋰電池的續(xù)航時間及RFID有效讀卡距離等,。系統(tǒng)性能測試如表1所示,。
(1)鋰電池的續(xù)航時間需要分別測試最長待機時間和連續(xù)工作時間。
①最長待機時間測試:將鋰電池充滿電,,閱讀器使用電池供電,,將閱讀器開機而不使用,記錄待機時間,。
②連續(xù)工作時間測試:將鋰電池充滿電,,閱讀器使用電池供電,編寫一個測試程序,讓閱讀器定時每30 s讀取M1卡信息。記錄工作時間,。
③用萬用表分別測量閱讀器的待機消耗電流和工作消耗電流,,并記錄電流值。
(2)RFID有效讀卡距離,。將閱讀器固定不動,,M1卡平行放在閱讀器天線平面的正上方200 mm處,將M1卡緩慢向閱讀器移動,,直到閱讀器能正確讀取M1卡中數(shù)據(jù)為止,。測量卡與閱讀器天線之間的距離并記錄數(shù)據(jù)。
通過對上述的系統(tǒng)功能,、性能進行驗證,,分析實驗測出的相應數(shù)據(jù),系統(tǒng)的功能基本能達到了初期預設的技術指標,。
本文設計的閱讀器有良好的人機交流界面,,可通過觸控操作,顯示屏可顯示M1卡中存儲信息,。經(jīng)過實驗證明,,在70 mm的范圍內(nèi)能準確讀寫M1卡中的數(shù)據(jù)。該閱讀器具有超長待機和低功耗的功能,。經(jīng)過實際功能測試,,已成功地將該設計應用于校園消費系統(tǒng)。
參考文獻
[1] 高天寶,,王敬超,,張春,,等.便攜式RFID讀寫器的設計與實現(xiàn)[J].電子技術應用,,2008,34(5):56-58.
[2] 潘盛輝,, 郭毅鋒,, 黃麗敏. 基于MSP430F149的手持式RFID讀寫器低功耗設計[J]. 電子技術應用, 2008,34(11):51-53.
[3] 陳保平,,王月波,,馬伯元.基于MFRC522的Mifare射頻卡讀寫模塊開發(fā)[J].微計算機信息,2007,,23(11-2):230-231.
[4] 黃俊祥,,陶維青.基于MFRC522的RFID讀卡器模塊設計[J].微型機與應用,2010,,29(22):16-18.
[5] 翟霄翔,,郝久玉,鄭軍.電阻式觸摸屏在嵌入式系統(tǒng)中的應用[J].電子測量技術,,2006,,29(2):36-37,71.