• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于STM32的RFID手持式閱讀器的研究與設(shè)計(jì)*

      2013-08-13 06:11:12程小輝康燕萍
      電子技術(shù)應(yīng)用 2013年8期
      關(guān)鍵詞:PC機(jī)驅(qū)動(dòng)程序閱讀器

      程小輝,康燕萍

      (桂林理工大學(xué) 信息科學(xué)與工程學(xué)院,廣西 桂林 541004)

      繼計(jì)算機(jī)和互聯(lián)網(wǎng)發(fā)展之后,物聯(lián)網(wǎng)的應(yīng)用在各個(gè)領(lǐng)域迅速發(fā)展起來(lái)。射頻識(shí)別技術(shù)(RFID)是物聯(lián)網(wǎng)的核心技術(shù)之一。RFID是一種非接觸式的自動(dòng)識(shí)別技術(shù),其基本原理是利用射頻信號(hào)及其空間耦合和傳輸特性,實(shí)現(xiàn)對(duì)靜止或移動(dòng)物體的自動(dòng)識(shí)別[1]。RFID系統(tǒng)主要由閱讀器、射頻卡等部分組成,其中射頻識(shí)別閱讀器根據(jù)應(yīng)用場(chǎng)合可分為固定式閱讀器和手持式閱讀器[2]。手持式閱讀器靈活性大、便于操作人員快速完成某一區(qū)域內(nèi)的信息采集。

      隨著物聯(lián)網(wǎng)射頻識(shí)別技術(shù)的不斷發(fā)展,RFID閱讀器被廣泛應(yīng)用于制造業(yè)、物流、港口、碼頭、車輛及人員管理等領(lǐng)域。

      1 硬件設(shè)計(jì)

      1.1 硬件結(jié)構(gòu)設(shè)計(jì)

      RFID閱讀器基于STM32單片機(jī)設(shè)計(jì),芯片型號(hào)選擇為STM32F103RBT6。該芯片為L(zhǎng)QFP64封裝,內(nèi)部有128KB Flash和 20KB RAM,采用32位的ARM CortexTM-M3內(nèi)核,最高支持主頻72MHz,擁有2個(gè)SPI接口、2個(gè)USART接口、1個(gè) USB接口、2個(gè) I2C接口和 7個(gè)定時(shí)器。支持SWD和JTAG調(diào)試模式及IAP和ISP編程。

      STM32單片機(jī)支持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信號(hào)線,相比JTAG模式更加節(jié)約I/O口資源。閱讀器的硬件結(jié)構(gòu)框圖如圖1所示。

      圖1 硬件結(jié)構(gòu)框圖

      1.2 電源模塊設(shè)計(jì)

      系統(tǒng)可使用直流電源或電池供電,外部直流電源電壓為8.4 V;電池電壓為7.2 V,2 600 mA/h的鋰電池。電源模塊設(shè)計(jì)原理圖如圖2所示。

      圖2 電源模塊設(shè)計(jì)原理圖

      電源模塊工作原理:當(dāng)插座J1連接外部直流電源時(shí),電流可經(jīng)過(guò)D4給電池充電,直流電源經(jīng)開關(guān)JP1連接 IRF7404的G極,使IRF7404的 D極與 S極斷開,則系統(tǒng)使用外部直流電源供電;當(dāng)不使用直流電源、按下開關(guān)時(shí),D4可將 CD_POWER與電池?cái)嚅_,IRF7404的 G極為低電平,IRF7404導(dǎo)通,則系統(tǒng)使用電池供電。SYS_POWER電壓經(jīng)過(guò)LM2576S-3.3轉(zhuǎn)換為3.3 V為系統(tǒng)的各模塊供電。

      1.3 MF RC522模塊設(shè)計(jì)

      MF RC522是閱讀器的讀卡芯片,工作頻率為13.56 MHz,工作模式支持ISO 14443A標(biāo)準(zhǔn),芯片內(nèi)部驅(qū)動(dòng)器可以直接驅(qū)動(dòng)閱讀器的天線,無(wú)需其他電路。MF RC522具有3種接口模式:SPI接口模式、UART模式和 I2C總線模式[3]。其中SPI模式的通信速度最快,可達(dá)到10 Mb/s。

      MF RC522與主機(jī)接口模式有關(guān)的兩個(gè)引腳為IIC和EA:當(dāng)IIC引腳拉高時(shí),表示當(dāng)前模式為I2C模式,若IIC引腳為低電平時(shí),再通過(guò)EA引腳電平來(lái)區(qū)分。EA為高電平時(shí),表示SPI模式;為低電平時(shí),則表示UART模式[4]。本設(shè)計(jì)中MF RC522與MCU采用SPI通信,與AT45DB161共享一個(gè)MCU的SPI2接口。

      在系統(tǒng)中,MF RC522和天線電路一起作為單獨(dú)模塊使用,以便于更換與維修。天線模塊與主板之間通過(guò)插座連接。

      天線是閱讀器中的一個(gè)重要組成部分。其作用是向外發(fā)射一組固定頻率的電磁波,為射頻卡提供能量、傳遞數(shù)據(jù)。

      本系統(tǒng)中使用的是PCB天線,天線的設(shè)計(jì)關(guān)系到閱讀器的讀寫距離,甚至關(guān)系到閱讀器是否能正常與射頻卡通信。RC522的天線設(shè)計(jì)須注意以下兩點(diǎn):(1)為了讓射頻卡能獲取足夠大的能量驅(qū)動(dòng)本身的集成電路,設(shè)計(jì)天線時(shí)應(yīng)該保證向外輻射足夠大的電磁波;(2)為了提高讀卡數(shù)據(jù)的準(zhǔn)確性,需要考慮調(diào)諧電路的通頻帶,確保調(diào)制信號(hào)的準(zhǔn)確性。

      天線的匹配電路可分為:天線線圈、LC諧振電路和EMC濾波電路。RC522的天線匹配電路如圖3所示,其中RQ為品質(zhì)因素Q的匹配電阻,Lant為天線的電感。

      1.4 顯示模塊設(shè)計(jì)

      閱讀器選用2.8英寸的TFT LCD觸摸屏。在本系統(tǒng)中移植了GUI模塊,使得人機(jī)交流界面操作更加便捷、友善。觸摸屏為四線電阻屏,使用ADS7843作為A/D轉(zhuǎn)換芯片。ADS7843是內(nèi)置12位模/數(shù)轉(zhuǎn)換、低導(dǎo)通電阻模擬開關(guān)的串行接口芯片,模/數(shù)轉(zhuǎn)換輸出范圍 0~4 095,工作電壓 2.7 V~5 V,參考電壓VREF為 1 V~VCC,轉(zhuǎn)換電壓的輸入范圍為 0~VREF,最高轉(zhuǎn)換速率為 125 kHz[5]。ADS7843與 MCU的接口為 SPI1。

      圖3 天線匹配電路原理圖

      2 軟件設(shè)計(jì)

      2.1 軟件設(shè)計(jì)結(jié)構(gòu)

      閱讀器的軟件設(shè)計(jì)層次分為驅(qū)動(dòng)層、中間服務(wù)層和應(yīng)用層。系統(tǒng)軟件架構(gòu)如圖4所示。

      圖4 系統(tǒng)軟件架構(gòu)圖

      驅(qū)動(dòng)層的程序基于硬件平臺(tái),主要是為中間服務(wù)層提供硬件驅(qū)動(dòng)接口函數(shù),完成底層的硬件操作。編寫STM32的內(nèi)部資源驅(qū)動(dòng)程序時(shí),調(diào)用了ST公司的固件庫(kù)函數(shù)。

      中間服務(wù)層主要是為上層應(yīng)用程序提供庫(kù)支持和服務(wù)接口。中間服務(wù)層的程序在驅(qū)動(dòng)層程序上開發(fā),并封裝驅(qū)動(dòng)程序的接口。如FATS文件系統(tǒng)是在AT45DB161的驅(qū)動(dòng)程序上移植,為上層的應(yīng)用程序提供文件創(chuàng)建、寫入、讀出、刪除等服務(wù);GUI模塊是在 LCD顯示驅(qū)動(dòng)程序上開發(fā),將LCD驅(qū)動(dòng)的畫點(diǎn)畫線函數(shù)封裝成不同的控件,在控件上加載相應(yīng)的數(shù)據(jù)結(jié)構(gòu),為界面應(yīng)用程序提供控件的創(chuàng)建、銷毀等操作。

      應(yīng)用層程序是面向用戶,通過(guò)調(diào)用中間服務(wù)函數(shù)和庫(kù)函數(shù)來(lái)完成相應(yīng)的數(shù)據(jù)處理和控制功能等。

      2.2 Free RTOS實(shí)時(shí)操作系統(tǒng)

      Free RTOS是一個(gè)輕量級(jí)的操作系統(tǒng),基本滿足較小系統(tǒng)的需要。該操作系統(tǒng)完全免費(fèi)且源碼公開,同時(shí)具有可移植、可裁減、調(diào)度策略靈活的特點(diǎn)。

      在本設(shè)計(jì)中Free RTOS的任務(wù)之間的關(guān)系如圖5所示。

      圖5 Free RTOS任務(wù)關(guān)系圖

      2.3 GUI模塊

      GUI模塊是一個(gè)中間服務(wù)層程序,為顯示應(yīng)用程序提供控件顯示服務(wù)。如控件的顯示位置、尺寸、顏色以及控件響應(yīng)的回調(diào)函數(shù)入口地址等。在本系統(tǒng)中GUI控件包含有文本框、編輯框、進(jìn)度條、圖像框、下拉列表、按鈕等。每個(gè)控件都可以注冊(cè)一個(gè)回調(diào)函數(shù),這個(gè)函數(shù)對(duì)應(yīng)了該控件的響應(yīng)功能函數(shù)。

      2.4 FAT文件系統(tǒng)

      FatFs文件系統(tǒng)是中間服務(wù)層程序,建立在 AT45DB161驅(qū)動(dòng)程序上,文件系統(tǒng)提供了磁盤I/O接口和應(yīng)用程序接口。磁盤I/O接口函數(shù)位于diskio.c文件,常用的接口函數(shù)有讀磁盤disk_read()和寫磁盤disk_write()。這兩個(gè)函數(shù)分別調(diào)用AT45DB161驅(qū)動(dòng)程序的讀扇區(qū)和寫扇區(qū)函數(shù)。在文件系統(tǒng)中一個(gè)扇區(qū)的大小為512 B,與AT45DB161的頁(yè)大小一致。

      為了使FatFs文件系統(tǒng)與Windows的文件系統(tǒng)兼容,要使用FAT32格式來(lái)格式化磁盤。f_open()函數(shù)與f_close()函數(shù)必須要成對(duì)出現(xiàn),即打開一個(gè)文件操作完成后必須要關(guān)閉這個(gè)文件。在對(duì)文件進(jìn)行操作前必須先調(diào)用 f_mount(0,&Fs)函數(shù)對(duì)工作區(qū)進(jìn)行注冊(cè),操作完成后也需要調(diào)用f_mount(0,NULL)函數(shù)對(duì)工作區(qū)進(jìn)行注銷。

      2.5 MF RC522驅(qū)動(dòng)程序流程

      本系統(tǒng)中使用的射頻卡為Mifare1 S50,也簡(jiǎn)稱為M1卡,該卡有16個(gè)扇區(qū),每個(gè)扇區(qū)有 4個(gè)塊,每個(gè)塊可存儲(chǔ)16 B的數(shù)據(jù)。MF RC522對(duì)M1卡進(jìn)行讀寫控制,分別有尋卡、防碰撞、選卡、認(rèn)證、讀塊和寫塊等過(guò)程。

      MF RC522驅(qū)動(dòng)程序流程如下:

      (1)尋卡:尋找感應(yīng)區(qū)內(nèi)所有符合 ISO14443A標(biāo)準(zhǔn)的卡,尋卡成功后,返回卡的類型。

      (2)防碰撞:通過(guò)防碰撞命令查看多張M1卡之間是否發(fā)生碰撞,若發(fā)生碰撞,使用防碰撞算法進(jìn)行處理;若未發(fā)生碰撞,則MF RC522與M1卡進(jìn)行通信,如果通信成功,讀出M1卡中的序列號(hào)。

      (3)選卡:根據(jù)M1卡的序列號(hào)進(jìn)行選卡。

      (4)密碼驗(yàn)證:密碼驗(yàn)證模式有驗(yàn)證A密鑰和驗(yàn)證B密鑰,通過(guò)這兩種模式來(lái)驗(yàn)證塊地址、密碼和卡片序列號(hào)。

      (5)讀數(shù)據(jù)塊:根據(jù)提供的塊地址讀取塊數(shù)據(jù)。

      (6)寫數(shù)據(jù)塊:根據(jù)提供的塊地址寫入塊數(shù)據(jù),操作完成后命令M1卡進(jìn)入休眠狀態(tài)。

      2.6 AT45DB161D驅(qū)動(dòng)程序

      AT45DB161D是一個(gè)外部Flash存儲(chǔ)器,擁有2 MB的容量,分為 4 096個(gè)頁(yè),可配置為每頁(yè)512 B,還擁有2個(gè)512 B的緩沖區(qū)。在主存儲(chǔ)器正在編程時(shí),緩沖區(qū)允許接收數(shù)據(jù),且支持?jǐn)?shù)據(jù)流式寫入。AT45DB161的初始化包括STM32的引腳配置和SPI2接口配置,初始化之后才能進(jìn)行讀寫操作。讀寫頁(yè)操作流程如下:

      (1)讀頁(yè)操作流程

      ①檢測(cè)AT45芯片是否忙。若忙,則繼續(xù)讀忙,直到芯片空閑;若芯片空閑,則執(zhí)行流程②。

      ②向AT45芯片寫入命令0x53和頁(yè)地址。0x53命令是將Flash中整頁(yè)的數(shù)據(jù)讀到緩沖區(qū)1中。

      ③向AT45芯片寫入命令0xD4和頁(yè)偏移地址及數(shù)據(jù)長(zhǎng)度。0xD4命令是讀緩沖區(qū)1中的數(shù)據(jù)。

      ④讀頁(yè)操作完成。

      (2)寫頁(yè)操作流程

      ①檢測(cè)AT45芯片是否忙。若忙,則繼續(xù)讀忙,直到芯片空閑;若芯片空閑,則執(zhí)行流程②。

      ②向AT45芯片寫入命令0x84、頁(yè)偏移地址及需要寫入的數(shù)據(jù)。0x84命令是將數(shù)據(jù)寫到緩沖區(qū)1中。

      ③向AT45芯片寫入命令0x83和頁(yè)地址。0x83命令是將緩沖區(qū)1中的數(shù)據(jù)寫到Flash指定的頁(yè)。使用0x83命令,寫入前不需要對(duì)頁(yè)進(jìn)行擦除操作。

      ④寫頁(yè)操作完成。

      3 性能測(cè)試與實(shí)驗(yàn)分析

      3.1 手持式閱讀器的功能測(cè)試

      需要測(cè)試的功能有對(duì)M1卡讀寫、文件讀寫、與PC機(jī)數(shù)據(jù)通信等功能。為了便于測(cè)試上述功能,將本設(shè)計(jì)應(yīng)用在校園消費(fèi)系統(tǒng)上進(jìn)行測(cè)試。測(cè)試步驟如下:

      (1)用串口線將RFID閱讀器與PC機(jī)相連。運(yùn)行PC機(jī)的上位機(jī)程序,設(shè)置串口參數(shù)為:波特率9 600 b/s,數(shù)據(jù)位 8 bit,停止位 1 bit,無(wú)校驗(yàn)位,無(wú)流控制。

      (2)對(duì)M1卡讀寫功能測(cè)試。通過(guò)上位機(jī)軟件發(fā)送指令和數(shù)據(jù)至閱讀器,閱讀器將指定數(shù)據(jù)寫入M1卡。然后再將M1卡數(shù)據(jù)讀出,傳回給上位機(jī)軟件顯示,并比較寫入數(shù)據(jù)和讀出數(shù)據(jù),如圖6所示。

      圖6 讀M1卡結(jié)果

      (3)文件讀寫測(cè)試。由于讀M1卡的數(shù)據(jù)以文件的形式存放在閱讀器的外部Flash中,該Flash由文件系統(tǒng)管理。用USB線連接閱讀器和PC機(jī),閱讀器以盤符的形式在PC機(jī)上顯示,從磁盤中將文件復(fù)制到PC機(jī)上,用上位機(jī)軟件打開讀出軟件,記錄測(cè)試數(shù)據(jù)。

      (4)與PC機(jī)數(shù)據(jù)通信測(cè)試。以上兩項(xiàng)測(cè)試通過(guò)則表明閱讀器能與PC機(jī)進(jìn)行正常通信。

      3.2 性能測(cè)試與分析

      系統(tǒng)的性能測(cè)試主要是鋰電池的續(xù)航時(shí)間及RFID有效讀卡距離等。系統(tǒng)性能測(cè)試如表1所示。

      (1)鋰電池的續(xù)航時(shí)間需要分別測(cè)試最長(zhǎng)待機(jī)時(shí)間和連續(xù)工作時(shí)間。

      ①最長(zhǎng)待機(jī)時(shí)間測(cè)試:將鋰電池充滿電,閱讀器使用電池供電,將閱讀器開機(jī)而不使用,記錄待機(jī)時(shí)間。

      表1 系統(tǒng)性能測(cè)試記錄表

      ②連續(xù)工作時(shí)間測(cè)試:將鋰電池充滿電,閱讀器使用電池供電,編寫一個(gè)測(cè)試程序,讓閱讀器定時(shí)每30 s讀取M1卡信息。記錄工作時(shí)間。

      ③用萬(wàn)用表分別測(cè)量閱讀器的待機(jī)消耗電流和工作消耗電流,并記錄電流值。

      (2)RFID有效讀卡距離。將閱讀器固定不動(dòng),M1卡平行放在閱讀器天線平面的正上方200 mm處,將M1卡緩慢向閱讀器移動(dòng),直到閱讀器能正確讀取M1卡中數(shù)據(jù)為止。測(cè)量卡與閱讀器天線之間的距離并記錄數(shù)據(jù)。

      通過(guò)對(duì)上述的系統(tǒng)功能、性能進(jìn)行驗(yàn)證,分析實(shí)驗(yàn)測(cè)出的相應(yīng)數(shù)據(jù),系統(tǒng)的功能基本能達(dá)到了初期預(yù)設(shè)的技術(shù)指標(biāo)。

      本文設(shè)計(jì)的閱讀器有良好的人機(jī)交流界面,可通過(guò)觸控操作,顯示屏可顯示M1卡中存儲(chǔ)信息。經(jīng)過(guò)實(shí)驗(yàn)證明,在70 mm的范圍內(nèi)能準(zhǔn)確讀寫M1卡中的數(shù)據(jù)。該閱讀器具有超長(zhǎng)待機(jī)和低功耗的功能。經(jīng)過(guò)實(shí)際功能測(cè)試,已成功地將該設(shè)計(jì)應(yīng)用于校園消費(fèi)系統(tǒng)。

      [1]高天寶,王敬超,張春,等.便攜式RFID讀寫器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2008,34(5):56-58.

      [2]潘盛輝,郭毅鋒,黃麗敏.基于MSP430F149的手持式RFID讀寫器低功耗設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2008,34(11):51-53.

      [3]陳保平,王月波,馬伯元.基于 MFRC522的 Mifare射頻卡讀寫模塊開發(fā)[J].微計(jì)算機(jī)信息,2007,23(11-2):230-231.

      [4]黃俊祥,陶維青.基于 MFRC522的RFID讀卡器模塊設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2010,29(22):16-18.

      [5]翟霄翔,郝久玉,鄭軍.電阻式觸摸屏在嵌入式系統(tǒng)中的應(yīng)用[J].電子測(cè)量技術(shù),2006,29(2):36-37,71.

      猜你喜歡
      PC機(jī)驅(qū)動(dòng)程序閱讀器
      基于反向權(quán)重的閱讀器防碰撞算法
      一種高效的RFID系統(tǒng)冗余閱讀器消除算法
      基于PC機(jī)與單片機(jī)的多機(jī)通信技術(shù)及抗干擾方法
      基于三菱FXPLC的感應(yīng)淬火機(jī)床與PC機(jī)的串行通信實(shí)現(xiàn)
      VC.NET下實(shí)現(xiàn)dsPIC單片機(jī)與PC機(jī)的通信
      電子制作(2017年23期)2017-02-02 07:16:47
      一種RFID網(wǎng)絡(luò)系統(tǒng)中消除冗余閱讀器的高效算法
      盲人閱讀器
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      东丰县| 田林县| 平利县| 三门县| 通河县| 遂宁市| 云龙县| 贵南县| 酒泉市| 阿城市| 于都县| 祁阳县| 红原县| 亚东县| 西贡区| 无极县| 扎赉特旗| 安溪县| 高平市| 五指山市| 成武县| 宾阳县| 乌拉特前旗| 叙永县| 鄢陵县| 潞城市| 平定县| 盐津县| 凉城县| 太湖县| 武威市| 溧阳市| 莱阳市| 吴川市| 四会市| 德昌县| 田林县| 罗源县| 乐都县| 金川县| 商丘市|