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