欧美国产日韩另类综合一区,一本久道久久综合狠狠爱,久久99国产综合精品免费

基于ARM嵌入式系統的RFID驅動程序設計

專家觀點
電子技術應用
2014-01-07
[ 導讀 ] 將RFID技術與嵌入式系統相結合,將射頻識別模塊嵌入到嵌入式系統中,在嵌入式Linux下通過設計驅動程序實現射頻模塊的收發功能。嵌入式RFID系統增加了RFID技術的通用性和可移植性,豐富了嵌入式系統通信接口外設功能,提升了嵌入式技術在無線通信領域的發展空間。

  RFID具有讀取速度快、讀取距離遠、儲存信息量大、標簽上數據可加密、使用壽命長、工作環境適應性強等多種優點,已經在各領域廣泛應用[1]。
  將RFID技術與嵌入式系統相結合,將射頻識別模塊嵌入到嵌入式系統中,在嵌入式Linux下通過設計驅動程序實現射頻模塊的收發功能。嵌入式RFID系統增加了RFID技術的通用性和可移植性,豐富了嵌入式系統通信接口外設功能,提升了嵌入式技術在無線通信領域的發展空間。
  當前的嵌入式系統中并不支持RFID系統,所以要進行硬件和軟件兩方面的擴展。硬件方面主要根據nRF905無線收發器的電氣特性進行接口擴展,利用基于ARM9嵌入式平臺的擴展口對nRF905進行控制;軟件方面利用Linux內核良好的移植性和擴展性,編寫驅動程序控制射頻模塊的收發功能,在底層驅動以收集和分組數據并傳遞給上層應用程序,由上層應用程序與用戶進行交互。本文所研究的基于嵌入式系統的RFID驅動,將為嵌入式RFID系統提供底層軟硬件接口程序,為嵌入式內核增添RFID管理機制,為上層應用程序提供良好服務,降低嵌入式RFID的開發難度,縮短開發周期,從而降低其成本,使RFID的應用更加普及。
  1 硬件電路的實現
  圖1是nRF905無線收發器接口擴展的硬件電路原理圖,硬件電路的實現主要基于S3C2440 ARM9微處理器和單片nRF905無線收發器的互聯,以及根據nRF905電氣特性所做的一些外接電路。

  S3C2440是一款采用ARM920T內核的高性能32 bit處理器,其主頻高達405 MHz,采用5級流水線和哈佛結構。S3C2440包括兩個SPI接口,每個接口分別有兩個8 bit數據移位寄存器用于發送和接收。在SPI發送期間,數據同時發送(串行移出)和接收(串行移入)[2]。因此,利用處理器的SPI接口,可以很方便地用SPI接口與nRF905無線收發模塊進行數據傳輸。
  單片nRF905無線收發器工作在433/868/915 MHz的ISM頻段。由一個完全集成的頻率調制器、一個帶解調器的接收器、一個功率放大器、一個晶體振蕩器和一個調節器組成。其所具有的ShockBurst工作模式可以自動產生前導碼和CRC。可以通過SPI接口進行編程配置。
  nRF905采用Nordic公司的VLSI ShockBurst技術。ShockBurst技術使nRF905能夠提供高速的數據傳輸而不需要昂貴的高速MCU來進行數據處理/時鐘覆蓋。通過將與RF協議有關的高速信號處理器放到芯片內,nRF905提供給微控制器一個SPI接口,速率由專為控制器設定的接口速度決定。nRF905通過ShockBurst工作模式在RF以最大速率進行連接時,降低數字應用部分的速率來降低在應用中的平均電流消耗。在ShockBurst接收模式中,地址匹配(AM)和數據準備就緒(DR)信號通知微處理器一個有效的地址和數據包已經各自接收完成。在ShockBurst發送模式中,nRF905自動產生前導碼和CRC校驗碼,數據準備就緒(DR)信號通知微處理器數據傳輸已經完成[3]。
  2 RFID驅動程序設計
  2.1 整體驅動設計思想
  RFID驅動程序的設計采用自底而上(Down-Top)的方法。優先設計底層部分即SPI接口的驅動程序,然后再設計上層RFID驅動。這種自低而上設計方法可以把大模塊分散為幾個小模塊,把大設計分為小設計,便于開發驗證,并且符合Linux模塊化的設計思想,是一種高效的設計方法。
  nRF905采用SPI接口與外界進行通信,因此底層SPI驅動主要完成nRF905的SPI和微處理器S3C2440的SPI模塊間的通信。上層RF驅動程序通過SPI接口向nRF905發送指令和數據,最終由nRF905的主機控制器控制射頻收發器完成數據收發,實現射頻模塊間的無線通信。
  2.2 SPI驅動程序設計
  在硬件電路中,微處理器S3C2440的SPI0模塊與nRF905中的SPI接口相連接。SPI驅動的作用即完成主SPI與nRF905中從SPI的數據傳輸。為了便于驗證功能,提高項目開發效率,底層SPI驅動設計為獨立的模塊,并且進行調試,在SPI驅動設計的基礎上,完成上層RF驅動。
  在ARM9嵌入式平臺的內核Linux2.6.12中,不包含SPI驅動程序,而在Linux內核之后的版本中包含了SPI驅動。這樣,就可以移植新版本中的SPI驅動到本嵌入式平臺Linux2.6.12中。雖然這種SPI驅動通用性和功能性都較強,但其代碼量大,較多功能并不符合本設計的要求。因此,本設計選擇重新編寫SPI底層驅動,簡化其功能,建立環形緩沖區,提高數據收發效率。
  SPI驅動程序作為設備文件,包含write、read、open、release、ioctl等幾個操作[4],其中關鍵性的硬件操作為讀寫操作,寫操作的主要作用是把用戶數據拷貝到內核緩沖區,并控制微控制器中的主SPI發送數據到nRF905中;讀操作與寫操作類似,而過程相反,即把主SPI接到的數據拷貝到內核緩沖區,再由內核緩沖區拷貝到用戶空間申請好的數據結構中。對SPI設備數據接收的監控,驅動程序采用中斷的方式來通知系統SPI數據是否收發完畢,在SPI設備每發送完一組數據或接收到一組數據后,就會觸發中斷,信號由IRQ線進入,傳入CPU進行中斷處理。
  SPI驅動程序的寫過程包括建立數據結構、建立環形緩沖區,從用戶空間把數據拷貝到數據結構中、調用write函數把數據拷貝進環形緩沖區中、寫滿后發送第一組數據到發送寄存器。當SPI發送寄存器中的數據發送完畢后,會發出中斷信號,觸發微處理器中斷,系統進入中斷上下文。為了縮短中斷處理時間,提高中斷處理效率,驅動程序中采用了頂/底半部的處理方法[5],即中斷處理時間盡量地短,在中斷處理例程中調用tasklet調度函數,將需要較多時間的中斷處理發到tasklet(即底半部)中處理。在tasklet中會把環形緩沖區的數據寫入發送寄存器,最終由SPI控制器發送出去。
  SPI驅動程序的讀過程和寫過程類似,SPI接收寄存器接到數據后觸發中斷。CPU接到中斷信號后進入中斷處理例程,調度tasklet進入底半部進行中斷處理,把接收寄存器中的數據拷貝到環形緩沖區中,然后喚醒正在休眠的進程,由read函數把環形緩沖區中的數據拷貝到申請好的數據結構中,再拷貝至用戶空間。
  2.3 RFID驅動程序設計
  完成SPI底層驅動后,上層RFID驅動的內容主要是對nRF905配置寄存器進行配置,包括發送接收數據的字節數、目標地址、工作模式、時鐘頻率等通過nRF905自定義的SPI指令寫入寄存器中。因此要對SPI驅動中的write/read函數進行封裝,通過調用SPI驅動中的函數完成整體驅動的寄存器配置和數據傳輸功能。
  RFID驅動程序作為設備文件,同樣分為write、read、open、release、ioctl等幾個操作。RFID驅動程序的寫操作過程:首先將用戶空間中的數據拷貝至數據結構中;然后使nRF905進入Standby模式,調用SPIwrite函數對數據寄存器和地址寄存器進行配置,把發送數據和目標地址寫入本地nRF905,之后進入ShockBurst發送模式,由本地nRF905向目標nRF905發送數據;最后進程進入休眠狀態,等待數據準備信號DR觸發中斷,由中斷處理例程喚醒進程,完成數據發送。圖2為RFID的發送流程圖。

  RFID的讀操作將判斷緩沖區是否為空,如果不為空,就把緩沖區中的數據拷貝至數據結構中,并拷至用戶空間中;如果為空,進程就會進入休眠,等待緩沖區接收到數據后,進入中斷喚醒進程。在進入ShockBurst RX模式后,本地nRF905會自動監測空中的信息,在nRF905發現和接收頻率相同的載波時,載波檢測信號CD被置高,觸發中斷,在中斷例程中只是延時一段時間,等待nRF905接收到有效的目的地址時,地址匹配信號置高。當nRF905接收到有效的數據包后,數據準備就緒信號DR會觸發中斷,進入中斷例程,進入Standby模式,把接收到的數據通過SPI接口讀入緩沖區內,而后喚醒進程,把緩沖區中的數據拷貝至用戶空間中。當所有的數據被讀出后,nRF905的AM和DR信號線會被置低。nRF905切換到下一狀態。RFID驅動接收流程如圖3所示。

  3 功能測試
  測試主要分為兩部分,首先對底層SPI接口部分做調試,然后在此基礎上,對RFID驅動進行功能測試。
  硬件方面,利用S3C2440開發板的擴展口與nRF905模塊連接,擴展口中用到的GPIO資源在驅動程序中設置。另外,用RS-232串口將開發板與PC機相連,利用內核的Debug功能[6],通過PC機對開發板進行控制,完成驅動加載和應用程序的運行。
  軟件方面,基于S3C2440的嵌入式平臺需要完整的嵌入式操作系統資源,包括bootloader、kernel、文件系統。在對內核進行剪裁后,將bootloader、kernel、文件系統通過JTAG燒入NAND Flash中。操作系統要保證內核、文件系統以及硬件設備正常運行。
  3.1 SPI驅動功能測試
  SPI驅動測試主要測試驅動程序的功能,測試驅動程序是否能夠控制SPI主從設備正確傳輸數據。資源包括S3C2440開發平臺、Linux2.6.12內核源碼包、示波器。系統運行后,加載SPI驅動,運行編寫的上層應用程序進行數據收發,并用示波器觀察波形。
  3.2 RFID驅動程序測試
  在測試SPI驅動成功后,重新啟動系統,待系統成功運行后,加載RFID驅動程序,運行為其編寫的測試程序,測試兩nRF905無線模塊間的通信。S3C2440的GPIO資源與nRF905信號線對應關系如下:
  Power down模式: PWR GPJ12
  載波檢測輸出: CD GPG6
  地址匹配輸出: AM GPB9
  數據就緒輸出: DR GPG1
  SPI主入從出: MISO GPE11
  SPI主出從入: MOSI GPE12
  SPI時鐘: SCK GPE13
  SPI使能: CSN GPB10
  發送/接收使能: TRX_CE GPG8
  發送/接收模式: TX_EN GPG0
  兩個平臺分別為:ARM9嵌入式平臺和MSP430單片機平臺。在ARM平臺運行發送測試程序,而單片機平臺運行接收測試程序,之后交換。接收端將接收到發送端發送的數據,并將數據在PC機終端顯示。
  當ARM發送端的應用程序中發送字符串“aaaaaaaa”時,單片機端的nRF905模塊接收寄存器中收到轉換后的ASCII碼“97”;當ARM端作為接收端而單片機作為發送端時,ARM端運行接收程序后,在用戶空間即顯示終端上顯示了接收到的數據“abcd…”。表明此RFID驅動程序成功實現了控制nRF905無線收發器進行數據接收傳輸的功能。
  本文介紹了一種基于ARM9 S3C2440嵌入式平臺擴展RFID驅動的設計方案,設計了硬件擴展電路和相應的驅動程序,通過了并測試。實現了嵌入式平臺間的RFID短距離即時通信功能。嵌入式RFID驅動將推動RFID技術在應用領域中的發展,將會支持更多的射頻硬件,根據此驅動可以開發更多的應用程序,滿足多種需求。
  參考文獻
  [1] 董麗華.RFID技術與應用[M].北京:電子工業出版社,2008.
  [2] SAMSUNG.S3C2440A user’s manual reltminary[OL]. Revision0,2004.
  [3] NORDIC Semiconductor.nRF905_rev1_1[OL].2004:1-36.
  [4] 劉淼.嵌入式系統接口設計與Linux驅動程序開發[M]. 北京:北京航空航天大學出版社,2006.
  [5] Jonathan Corbet,Alessandro Rubini,Greg Kroah-Hartman. Linux device drivers[M].Sebastopol:O’Reilly Media,2005.
  [6] BOVERT D P,MARCO C著.深入理解Linux內核(第三版)[M].陳莉君,張瓊聲,張宏偉,譯.北京:中國電力出版社,2007.
標簽:
【聲明】物流產品網轉載本文目的在于傳遞信息,并不代表贊同其觀點或對真實性負責,物流產品網倡導尊重與保護知識產權。如發現文章存在版權問題,煩請聯系小編電話:010-82387008,我們將及時進行處理。

相關文章

一種用于醫療無菌手套自動分配的RFID解決方案

一臺具備RFID功能的機器使醫務人員能夠用ID卡輕靠設備,戴上尺寸合適的手套,從而降低感染風險。在日常工作中,丁腈手套是醫護人員最常用的消耗工具之一,可確保他們在不傳播感染的情況下治療患者。根據德克薩斯醫療技術公司(Texas...

05月21日 11:29RFID世界網

如何提升超高頻RFID多標簽的讀取率?

在RFID的實際應用中,常常有要求同時讀取大量標簽的情況,比如對倉庫貨物數量的盤點,圖書館場景中對館藏圖書數量的盤點,也包括傳送帶或托盤上數十個乃至上百個貨物標簽的讀取情況。針對多數貨物讀取的情形,根據其被讀取成功的概率稱作讀...

07月06日 14:32RFID世界網

智慧食品安全新紀元中的RFID和供應鏈數字化

去年,FDA(美國食品和藥物管理局)發起了一項新的前瞻性運動,以推動供應鏈現代化的長期采用和行業共識。“智慧食品安全新紀元”計劃是通過文化的漸進式變革、新技術的普及和互操作標準的清晰化,朝著建立一個以技術為基礎的食品體系邁出的...

04月09日 12:17RFID世界網

智能rfid柜系統

"智能RFID柜系統憑借無線識別、高效管理優勢正重塑行業,但成本、標準不統一和數據安全三大挑戰亟待突破。通過分階段投入、選用標準化設備和強化加密技術,企業能有效化解難題,未來結合物聯網與AI技術將開啟更智能的資產管理新時代。"

06月03日 13:08杭州物必連科技

RFID機場智慧消防物聯網解決方案

  當前信息化時代的大背景下,智慧消防建設率先在機場、文保單位、軌道交通等重點領域進行建設,此類場所消防工作極為重要,人口集中,且人口流量大,另外像油、電、氣等能源的應用,對消防工作更是提出了更為嚴苛的要求。機場智慧消防物聯網...

01月14日 15:48千智客
主站蜘蛛池模板: 狠狠色噜噜狠狠狠狠色综合久AV | 亚洲综合色婷婷在线观看| 久久久久综合中文字幕| 综合久久一区二区三区 | 色综合合久久天天综合绕视看| 大香网伊人久久综合网2020| 亚洲欧美日韩综合aⅴ视频| 亚洲欧美国产∧v精品综合网| 久久久久高潮综合影院| 丁香色欲久久久久久综合网| 久久久久久久综合日本亚洲| 国产成人亚洲综合| 欧美综合天天夜夜久久| 亚洲国产综合人成综合网站 | 色噜噜狠狠狠狠色综合久一| 亚洲综合伊人久久综合| 欧美日韩国产色综合一二三四| 99热婷婷国产精品综合| 久久婷婷五月综合国产尤物app| 天天做天天爱天天综合网2021| 97SE亚洲国产综合自在线观看| 色综合欧美在线视频区| 伊人久久综合精品无码AV专区| 伊人yinren6综合网色狠狠| 欧美国产综合欧美视频| 久久综合九色综合网站| 一本一本久久aa综合精品| 亚洲狠狠爱综合影院婷婷| 18和谐综合色区| 综合五月激情五月开心婷婷| 色噜噜狠狠色综合日日| 欧美国产日韩另类综合一区| 欧美日韩亚洲国内综合网| 久久综合久久久| 狠狠色噜狠狠狠狠色综合久| 中文字幕亚洲综合久久菠萝蜜 | 亚洲国产综合精品一区在线播放 | 伊人成色综合网| 亚洲国产成人五月综合网| 欧美日韩亚洲国内综合网| 色青青草原桃花久久综合|