国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

多標簽多協議RFID讀寫器設計

發布時間:2010-3-30 12:15    發布者:我芯依舊
關鍵詞: RFID , 設計 , 協議
1 引言

國內現有RFlD讀寫器,一般僅支持一種協議,且功能較為單一。本設計使用最新的RFID芯片。實現了支持多種協議及協議自適應功能的RFID讀寫器。該讀寫器易于擴展,可根據需要實現各種功能。

2 硬件設計

多協議讀寫器系統硬件框圖如圖1所示.其主要由四部分組成:核心控制模塊、閱讀器模塊、人機接口模塊和通用外設接口。多協議讀寫器使用Linux嵌入式操作系統,闃此核心控制模塊的CPU選擇三星公司基于ARM9內核的S3C2410芯片,它與RAM和Flash Rom共同組成核心控制模塊。閱讀器模塊由TRF7960以及外圍的射頻電路PCB天線組成,考慮到端口資源和布線的岡素,閱讀器與CPU通過SPI和中斷接口相連接。TRF7960是TI最新的高頻RFID讀寫芯片,支持IS014443A/B,ISO15693,IS018000-3和Tag-it等協議,主要完成各協議所規定的組幀/拆幀、調制/解調等功能,以及上下變頻、功放、小信號放大等射頻信號處理。人機接口采用LCD觸摸屏,另外,由于S3C2410內帶液晶和觸摸屏的驅動,因此可省卻這部分電路。為了實現與多種設備的互通,以及擴展無線數據傳輸等功能,設計了USB。SD,RS232等多種通用接口。

3 軟件總體設計

本文提出一種基于Linux2.6操作系統的多協議RFID讀寫器軟件設計方案。主要實現TRF7960設備驅動和讀寫器控制程序,前者完成TRF7960模塊的控制和協議實現,后者通過對前者的調用完成協議選擇和標簽數據的處理。

軟件總體設計框圖如圖2,整個軟件結構分為應用層和驅動層。應用層是基于QT的主程序,主要完成數據的收發、處理、交換和人機界面的實現。驅動層包括TRF7960驅動和多種標準驅動,TRF7960驅動完成數據的采集和向應用層的傳遞,其中的設備接口程序通過GPIO操作7FRF7960,并結合中斷處理程序和多協議控制程序完成數據的收發,并通過標準接口程序和讀寫器控制程序連接;標準驅動程序則為應用層提供各種標準硬件設備的操作,為系統的擴展提供了良好的條件。


圖1系統硬件框圖


圖2軟件總體設計框圖

4 軟件設計詳述

4.1設備接口程序設計

設備接口程序是對TRF7960硬件直接操作的程序,主要完成GPIO的配置,并輸出符合TRl'7960工作時序的SPI控制時序,通過該時序對TRF7960寄存器進行讀寫操作。

操作系統已完成GPIO硬件端口與軟件之間的映射,因此只需調用相應的內核函數,就能實現對GPIO的控制。設計中使用的內核函數有:GPIO端口配置函數s3c2410_gpio_cfgpin(),GPIO端口輸出函數s3c2410_gpio_setpin()和GPIO端口輸入函數。s3c2410_gpio_getpin(),通過這些內核函數完成各個端口的配置和初始化,并實現TRF7960工作需要的SPI時序。根據S3C2410 Data Sheet, 將S3C2410_GPG7、S3C2410_GPG6、S3C2410_GPG5、S3C24l0_GPF1的屬性務別配置為輸出、輸出、輸人和外部中斷1,依次對應設計中的SPICLK、SPIMOSI、SPIMISO和中斷。外部中斷觸發模式使用函數set_irq_type()設置為上升沿觸發,并通過函數request_irq()注冊中斷處理程序。

根據TRF7960串行SPI時序要求,當SCLK(SPICLK)為高電平時,Date_IN(SPIMOSI)出現上升沿表示起始位,DATA_IN(SPIMISO)出現下降沿表示結束位。在起始位和結束位之間傳輸8比特數據(可以是地址,數據或命令),高位先傳。發送時,CPU在SCLK為高電平時將數據放到DATA_IN上,接收時,TRF7960在SCLK出現上升沿時將數菇放到DATA_OUT(SPIMISO)上,供CPU采集。

4.2 TRF7960操作方式

基于以上時序的實現,CPU可以通過地址模式和命令模式對TRF7960進行操作,在地址模式下,主要完成寄存器的配置和FIFO數據的讀取,在命令模式下,完成直接命令的發送,如初始化,接收使能等。cPu還可以通過連續方式和非連續方式進行數據的收發,在非連續方式下,對指定寄存器地址只進行一個字節的數據讀寫,主要用于對單個寄存器的配置,在連續方式下,從指定起始地址,每字節收發后地址自動加l,實現多字節數據的連續讀寫;谝陨细鞣N操作方式,可以確定發送和接收數據的流程。

連續發送數據流程的實現在文獻巾有明確的闡述,下面為連續讀取數據的流程:CPU向TRF7960發送起始位,再發送連續讀命令字節(具體命令表見),隨后CPU采集TRF7960放到DATA_OUT上的串行數據,讀取指定字節的數據,最后CPU發送結束位。特別的,在串行SPI模式下,中斷狀態寄存器(地址OxOC)的讀時序是特殊的。必須在讀完0x0C寄存器后,再空讀8個時鐘周期。才能讀取正確的寄存器數據。

4.3中斷處理流程

數據的發送和接收都需要結合相應的中斷才能完成。TRF7960硬件上只有一個中斷響應,CPU需要根據中斷狀態寄存器(Ox0c)判斷不同的中斷類犁,必要時需要結合FIFO狀態寄存器(0xlc)進行相應的操作。中斷處理程序的流程為:先讀取中斷標志寄存器和FIFO狀態寄存器,再置各個標志位,最后根據不同的標志位執行相應的操作。以接收結束標志為例:根據FIFO寄存器的值,讀取并存儲數據后退出中斷。

4.4協議程序實現

協議程序實現各協議規定的命令格式和算法流程,并通過配置TRF7960相關寄存器選擇協議,實現多協議及協議自適應的功能。下面以IS015693協議為例,介紹該協議的多卡識讀命令及算法流程的實現。

多卡識讀算法是一種逐位搜索算法,在多卡識讀狀態下,讀寫器的一輪查詢分為16個間隙(slot),從1開始依次標記。在每個時隙中,讀寫器通過發送不同參數的Inventory命令(獲取系統信息命令)查詢當前磁場范圍內標簽的卡號,標簽內則采用相對應的比較機制影單,讀寫器通過中斷,處理碰撞或接受卡號,并發送EOF命令切換到下一個時隙,如果一輪查詢結束后有碰撞發生,再進行新的一輪查詢。

Inventory命令主要是通過掩碼長度(masklength)和掩碼值(maskvalue)這兩個參數實現防碰撞算法。下面舉例說明算法的實現:設定掩碼長度=0,掩碼值=0,當Inventory命令序列發送后,掩碼值會被自動與卡的UID的最低位比較,因為0≠2≠8,所以兩張卡均不會打。同樣的命令,如果掩碼值=2,則第一張卡回答;當掩碼值=8時,第二張卡回答。如果兩張卡的卡號是:E00700000158D1D2和E0070000015869E2,則當掩碼長度=0,掩碼值=2時兩張卡均回答,則發生沖突,解決的方法是:令掩碼長度=4,掩碼值=X2,X從0到F自增,這樣,X2=D2時第一張卡回答,X2=E2時第二張卡回答。依次類推。

T1在文獻中給出了遞歸的防碰撞算法的大致流程,雖然遞歸算法具有結構清晰、程序簡練易讀的特點,但通常需要執行大量的過程調用,并在堆棧中保存所有返回過程的局部變量,效率往往較低,尤其是在嵌入式系統中,系統內存有限,當進行遞歸調用時,堆棧容易益處,可靠性低。因此我們提出非遞歸的防碰撞方法,具體流程圖如圖3,使程序更高效更可靠。

算法中時隙指針具體處理如下,時隙指針的首地址初值設為O,用來標記無碰撞時隙,退出循環。當檢測到碰撞中斷,時隙指針先下移1位,記錄碰撞時隙標號,再下移1位,記錄當前掩碼值,最后下移1位,生成新掩碼長度(舊掩碼長度+4)。新掩碼生成規則為碰撞時隙標號左移新掩碼長度位冉加上舊掩碼值,即掩碼值=(*(時隙指針一2))<<(*(時隙指針))+(*(時隙指針-1)),隨后時隙指針=時隙指針-3,去除已處理掩碼信息。


圖3非遞歸的防碰撞算法流程圖

采用這種逐位搜索算法讀取多張標簽的卡號后,通過指定卡號的命令,可以完成對特定卡的讀寫,實現了防碰撞的多卡識讀。

4.5 TRF7960驅動與應用層接口實現

TRF7960驅動與應用層之間的接口是由讀寫器控制程序和標準接口程序共同完成的。讀寫器控制程序包含在主程序中一個自定義類的成員函數中,它通過一組固定的入口點(open,write,ioctl,read等函數)調用標準接口程序中相應的函數。當TRF7960已經通過insmod注冊到linux系統中,通過調用fd=open("/dev/trf",O_RDWR)打開TRF7960驅動并返回該驅動文件標識符;write函數根據文件標識符fd調用trf write,完成對各個端口定義及初始化,具體實現在4.1已介紹;ioctl函數調用trf_ioctl,選擇TRF7960的工作方式;read函數調用trf_read,而trf_read通過調用內核函數copy_to_user()實現數據從驅動層到應用層的傳遞,當主程序完成ioctl功能時,就需調用read函數來讀取驅動層的數據;close函數負責關閉驅動。

4.6多協議、協議自適應功能的實現

讀寫器控制程序中的ioctl函數調用其在驅動中對應的trf_ioctl甬數實現多協議和協議自適應功能,它通過設置參數cmd,選擇不同的協議工作方式。當cmd為0時,選擇在IS014443A協議下工作,cmd為1時。選擇IS014443B;cmd為2時,選擇IS015693;cmd為3時,選擇IS018000—3;cmd為4時,選擇自適應丁作方式。當選擇協議自適應的工作方式后,程序先配置主寄存器及相關寄存器,根據指定協議進行相應的讀寫操作,在設定時間內,若有FIFO中斷或發送結束中斷產生,則采集數據并保存,否則切換協議,直到各個協議都輪詢一遍,最后退出。這樣就實現了具有多協議,防碰撞多標簽,協議自適應RFID讀寫器。

5 結束語

本文設計了一款基于嵌入式CPU和Linux操作系統的RFID讀寫器,對軟硬件設計進行了詳細的描述。該設計的創新點在于實現的濱寫器支持多種協議和協議自適應的功能。且和現有的單一功能的讀寫器相比具有更好的擴展性和圖形化的用戶界面,應用更廣泛,如通過移植USB無線網卡,可實現尤線RFID讀寫器,義如通過SD接口與900M RFID讀寫器相連,實現多頻段RHD讀寫器。該讀寫器作為手持終端,可在世博場館、博物館等復雜環境下,為用戶提供快速,高效、便捷的人性化服務,應用前景廣泛。

本文作者創新點:該設計實現了基于嵌入式CPU和Linux操作系統的RFID讀寫器,具有防碰撞功能,支持多種協議和協議自適應的功能。具有多種外設接口,具備良好的擴展性和用戶友好的圖形化界面。


作者:朱臣元,俞暉    來源:《微計算機信息》(嵌入式與SOC)2009年第3-2期
本文地址:http://www.qingdxww.cn/thread-9996-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人精品免费影视大全 | 日韩在线中文字幕 | 免费污网站在线观看 | 日本加勒比在线精品视频 | 国产wwwww | 欧美性另类高清 | 国产专区第一页 | 花季传媒3.0.3黄版每天三次 | 欧美日韩国产一区 | 日本不卡免费在线 | 免费99视频 | 欧美视频久久久 | 最近韩国高清免费观看视频大全 | 九九九色视频在线观看免费 | 伊伊人成亚洲综合人网香 | www.日本| 性8成人有声小说在线播放 性88分钟在线播放 性88分钟 | 国产精品1024香蕉在线观看 | 日本jjzz| 精品在线视频观看 | 青青草操 | 男女午夜视频在线观看 | 日日摸夜夜欧美一区二区 | 国产欧美亚洲精品第二区首页 | 国自产拍在线天天更新91 | 国产成人精品一区二三区在线观看 | 精品国产一区二区三区在线 | 四虎精品成人a在线观看 | 欧美日本二区 | 欧美在线一 | 欧美日韩视频在线 | 欧美在线视 | 视频一二三区 | 国产一级特黄a大片免费 | 97中文字幕在线观看 | 无限看动漫片的视频高清免费 | 日韩特黄特色大片免费视频 | 黑人操白逼 | 欧美xx在线观看 | 777久久成人影院 | 亚洲最大网址 |