手持式RFID讀寫器網(wǎng)絡接口設計
摘要:為適應RFID 讀寫器在不同應用系統(tǒng)中的要求,開發(fā)了一種以MSP430F149 單片機為核心的具有嵌入式以太網(wǎng)網(wǎng)絡接口的手持式RFID 讀寫器。文中介紹RFID 讀寫器中單片機與以太網(wǎng)控制器RTL8139 組成的網(wǎng)絡接口設計方法,實現(xiàn)了手持式RFID 讀寫器接入Internet 網(wǎng)絡進行數(shù)據(jù)通信。
RFID 技術目前廣泛應用于身份識別、防偽應用、供應鏈應用、公共交通管理、物流管理、生產(chǎn)線自動化與過程控制、容器識別等領域。由于手持式RFID讀寫器的存儲器容量有限,保存在讀寫器中的數(shù)據(jù)可以通過USB 等接口傳送到計算機中進行處理,但為更方便快捷地將讀寫器中的數(shù)據(jù)傳送到遠程的計算機系統(tǒng)中,將便攜設備網(wǎng)絡化是解決上述問題的有效途徑之一。但目前的手持式RIFD 讀寫器并不具備與互聯(lián)網(wǎng)進行網(wǎng)絡連接的網(wǎng)絡接口。另外,手持式RFID 讀寫器是通過內(nèi)部所裝有的電池進行供電,所以降低其工作功耗也是主要問題之一。而MSP430F149 單片機是一款16 位超低功耗的處理芯片,它將多個不同功能的模擬電路,數(shù)字電路模塊集成于一身,適合應用與需要電池供電的便攜式儀器儀表中。
因此,文中主要介紹手持式RFID 讀寫器中MSP430F149 單片機與以太網(wǎng)控制器RTL8139 接口的硬件設計的方法,以及相應的硬件設備驅(qū)動程序的設計和TCP /IP 協(xié)議棧的處理方法。
1 網(wǎng)絡接口硬件結構。
1. 1 網(wǎng)絡接口
手持式RFID 讀寫器是便攜式射頻識別系統(tǒng)的主要設備,其網(wǎng)絡接口主要由MSP430 單片機與以太網(wǎng)控制器RTL8139 塊等組成。其網(wǎng)絡接口硬件結構如圖1 所示。
圖1 網(wǎng)絡接口框圖
根據(jù)便攜設備的低功耗要求,MSP430 單片機采用MSP430F149,具有超低功耗、強大處理能力、豐富片上外圍模塊及多種存儲器形式等功能,其中有2 個具有中斷功能的8 位并行端口P1與P2和4 個8 位的通用并行端口P3、P4、P5與P6,可以滿足和以太網(wǎng)控制器的接口,而且能夠?qū)崿F(xiàn)RFID 讀寫器的其他接口功能。
隔離變壓器選用PM34 - 1006M10 /100 /1000M 變壓器。采用RTL8139 以太網(wǎng)控制器作為網(wǎng)絡接口。
由于RTL8139 是PCI 總線接口,不能直接與8 位的MCU 接口,需要一個PCI 接口進行轉(zhuǎn)接。單片機在進行外部存儲器操作時采用的信號有P0口、P2口、ALE以及RD 和WR 信號。其中,P0口為地址( 低8 位) /數(shù)據(jù)復用,P2口為高8 位地址信號; ALE 為地址鎖存信號,為高電平時將P0口的值鎖存到低8 位數(shù)據(jù)線上; RD 和WR 為讀寫有效信號,低電平有效。因此,PCI 接口實際上是起到一個從單片機讀寫時序到32位PCI 讀寫時序轉(zhuǎn)換的作用。
1. 2 RTL8139 的結構及編程接口
RTL8139 是臺灣Realtek 公司生產(chǎn)的一種高度集成的全面支持IEEE802. 3 標準的以太網(wǎng)控制器芯片,支持微軟的PnP 規(guī)范。利用雙絞線可以和全雙工網(wǎng)絡交換機相連接,能夠同時接收和發(fā)送數(shù)據(jù)。支持UTP( Unshielded Twisted Paired) ,AUI( Attachment UnitInterface) 自動偵測。支持IO 地址全解碼模式。其主要特性如下:
( 1 ) 符合Ethernet Ⅱ 和IEEE802. 3 ( 10Base5,10Base2,10BaseT) 標準。
( 2) 支持跳線和免跳線兩種工作方式。
( 3) 全雙工,收發(fā)可同時達到100 Mbit·s - 1 的速率。
?。?4) 支持32 位數(shù)據(jù)PCI 總線。
?。?5) 允許3 個診斷LED 可編程輸出。
?。?6) 128 腳LQFP 封裝,縮小了PCB 尺寸。
如圖2 所示,RTL8139 內(nèi)部已經(jīng)包含有整個網(wǎng)絡接口層的協(xié)議,因此應用起來較簡單。用戶不必考慮鏈路控制問題,而只需考慮單片機如何從RTL8139 中去讀TCP /IP 協(xié)議的數(shù)據(jù)即可。
圖2 RTL8139AS 內(nèi)部結構圖
PCI 總線信號有3. 3 V 標準和5 V 標準,信號線眾多,但并不是所有的PCI 設備都使用全部的PCI 接口信號,實際只使用需要的即可。RTL8139AS 以太網(wǎng)控制器遵循3 V 標準,并且只使用了PCI 總線信號中的以下部分: AD[31: 0]為數(shù)據(jù)信號復用總線。
FRAME 為幀周期信號,由當前主設備驅(qū)動,表示一次訪問的開始和持續(xù)時間。IRDY 為主設備準備好信號。
TRDY 為從設備準備好信號。C /BE 為總線命令和字節(jié)使能復用信號。地址期是總線命令,數(shù)據(jù)期是字節(jié)使能。IDSEL 為初始化設備選擇信號。在參數(shù)配置讀寫傳輸期間,用作片選。對于只有一個PCI 設備的情況,它可以總接高電平。RST 為復位信號。CLK 為系統(tǒng)時鐘信號,頻率范圍DC ~ 33 MHz.以上信號都在CLK 的上升沿有效。INTA 為中斷請求信號,RTL8139數(shù)據(jù)準備好后可以用來向主控制器發(fā)出中斷。
DEVSEL 為設備選擇信號,表明驅(qū)動它的設備已成當前訪問的設備,由于系統(tǒng)中,RTL8139 是單一的PCI 設備,因此該信號可以不用。
2 網(wǎng)絡接口軟件結構
RFID 讀寫器系統(tǒng)網(wǎng)絡接口軟件主要包括硬件設備驅(qū)動程序、TCP /IP 協(xié)議棧、應用協(xié)議和其他用戶應用程序。網(wǎng)絡接口軟件的流程如圖3 所示。
圖3 網(wǎng)絡接口軟件流程圖。
其中應用協(xié)議和其他用戶應用程序?qū)⒃诙伍_發(fā)時根據(jù)RFID 讀寫器的具體功能要求進行設計,這里主要介紹硬件設備驅(qū)動程序、TCP /IP 協(xié)議棧的實現(xiàn)方法。
2. 1 硬件設備驅(qū)動程序
硬件設備驅(qū)動是將PCI 接口當作單片機的外部存儲器看待,單片機以讀寫外部存儲器的時序?qū)CI 接口進行讀寫,再由PCI 接口將這種讀寫操作時序轉(zhuǎn)換成PCI 時序?qū)σ蕴W(wǎng)控制器進行操作。主要包括3 個部分,網(wǎng)絡初始化,發(fā)送控制和接收控制。主要完成對CR,TCR,RCR IMR ISR,RBSTART,MAR 等寄存器操作。
發(fā)送控制過程在網(wǎng)絡中,幀傳輸?shù)倪^程是發(fā)送方將待發(fā)送的數(shù)據(jù)按幀格式要求封裝成幀,然后同過網(wǎng)卡發(fā)送到網(wǎng)絡的傳輸線上。發(fā)送程序框圖如圖4所示。
圖4 RTL8139 數(shù)據(jù)發(fā)送流程圖。
接收控制過程分成2 步,第1 步是根據(jù)哈稀算法判斷數(shù)據(jù)包是否是本地的數(shù)據(jù)包,如果是則接收放入FIFO,如果FIFO 里的數(shù)據(jù)包達到了RCR 寄存器預先設定閾值,把數(shù)據(jù)報放入RX_BUFF.第2 步主機程序?qū)X_BUFF 里的數(shù)據(jù)讀取到內(nèi)存進行處理。
2. 2 TCP /IP 協(xié)議棧
如圖5 所示,以太網(wǎng)控制器提供了邏輯鏈路層協(xié)議,TCP /IP 協(xié)議棧則通過底層的硬件設備驅(qū)動程序來接收和發(fā)送數(shù)據(jù),對接收到的以太幀數(shù)據(jù)進行協(xié)議的分析,并給其上層應用提供一些簡單、易用的函數(shù)。
圖5 RTL8139 數(shù)據(jù)接收流程圖。
TCP /IP 實質(zhì)上是一系列協(xié)議的總稱,是實現(xiàn)Internet通訊必不可少的部分,包括十幾個協(xié)議標準,在這里要實現(xiàn)的是通過網(wǎng)絡讀取居民用表的讀數(shù),傳輸?shù)臄?shù)據(jù)量少且對實時性要求不高,不需要全部的協(xié)議,只要實現(xiàn)幾個必備的即可,權衡之下,求在最小代碼、最小資源需求和功能實現(xiàn)間取得一個平衡: 只實現(xiàn)了ICMP、TCP、IP、ARP 4 個協(xié)議,組成一個小型化的TCP /IP 協(xié)議。因為任何一個以太網(wǎng)數(shù)據(jù)幀要發(fā)送時都必須要知道對方的物理地址,這能過ARP 協(xié)議獲得,所以要實現(xiàn)ARP 協(xié)議。而IP 協(xié)議是TCP, ICMP協(xié)議數(shù)據(jù)的傳輸格式; TCP 協(xié)議提供可靠的,可重組服務; 而ICMP 協(xié)議是調(diào)試時所不可缺少的。另外,在實現(xiàn)重發(fā)功能時,大多的做法是應用層不參與,當需要重發(fā)時,由TCP /IP 協(xié)議把存儲在數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)再發(fā)送一次即可,但在以單片機為主處理器的情況下,因為單片機自身的資源有限,為了減少RAM 的使用,可以在需要重發(fā)時再由應用層產(chǎn)生這一幀數(shù)據(jù)即可,這無需太多的時間。這樣也不必每發(fā)送一幀數(shù)據(jù)都要存在緩沖區(qū)中以備重發(fā)時使用,進一步節(jié)省了RAM。
3 實驗結果及分析
將手持式RFID 讀寫器通過網(wǎng)線連入局域網(wǎng)交換機,預先將讀寫器的IP 地址設置為192. 168. 1. 37,啟動讀寫器、交換機及電腦,在電腦的命令終端輸入ping192. 168. 1. 37 命令,其結果如圖6 所示。
圖6 RFID 連入局域網(wǎng)結果。
由圖6 可知,手持式RFID 讀寫器已通過交換機成功連入局域網(wǎng),與電腦建立網(wǎng)絡連接。
在電腦中打開RFID 綜合管理系統(tǒng),將實驗用RFID 卡放入手持式RFID 讀寫器后,綜合管理系統(tǒng)讀到信息如圖7 所示。
圖7 綜合管理系統(tǒng)接收信息。
由圖7 可知,手持式RFID 讀寫器將讀到的實驗卡信息,通過局域網(wǎng)交換機成功地傳輸?shù)诫娔X的綜合管理系統(tǒng)當中,實現(xiàn)了網(wǎng)絡接口的功能。
4 結束語
設計的手持式RFID 讀寫器網(wǎng)絡接口硬件采用MSP430F149 作為控制芯片,選用PM34 - 1 006M10 /100 /1 000M 變壓器作為隔離變壓器,以及全面支持IEEE802. 3 標準高度集成的RTL8139 作為以太網(wǎng)控制器芯片,整個系統(tǒng)具有超低功耗等優(yōu)點,實現(xiàn)了RFID 讀寫器的網(wǎng)絡化功能,為提高產(chǎn)品的競爭力創(chuàng)造了條件。同時,網(wǎng)絡接口驅(qū)動程序及TCP /IP C 語言進行開發(fā),具有較好的可讀性和移植性,可以提高開發(fā)效率,縮短開發(fā)周期。