手持式RFID讀寫(xiě)器網(wǎng)絡(luò )接口設計
RFID 技術(shù)目前廣泛應用于身份識別、防偽應用、供應鏈應用、公共交通管理、物流管理、生產(chǎn)線(xiàn)自動(dòng)化與過(guò)程控制、容器識別等領(lǐng)域。由于手持式RFID讀寫(xiě)器的存儲器容量有限,保存在讀寫(xiě)器中的數據可以通過(guò)USB 等接口傳送到計算機中進(jìn)行處理,但為更方便快捷地將讀寫(xiě)器中的數據傳送到遠程的計算機系統中,將便攜設備網(wǎng)絡(luò )化是解決上述問(wèn)題的有效途徑之一。但目前的手持式RIFD 讀寫(xiě)器并不具備與互聯(lián)網(wǎng)進(jìn)行網(wǎng)絡(luò )連接的網(wǎng)絡(luò )接口。另外,手持式RFID 讀寫(xiě)器是通過(guò)內部所裝有的電池進(jìn)行供電,所以降低其工作功耗也是主要問(wèn)題之一。而MSP430F149 單片機是一款16 位超低功耗的處理芯片,它將多個(gè)不同功能的模擬電路,數字電路模塊集成于一身,適合應用與需要電池供電的便攜式儀器儀表中。
因此,文中主要介紹手持式RFID 讀寫(xiě)器中MSP430F149 單片機與以太網(wǎng)控制器RTL8139 接口的硬件設計的方法,以及相應的硬件設備驅動(dòng)程序的設計和TCP /IP 協(xié)議棧的處理方法。
1 網(wǎng)絡(luò )接口硬件結構。
1. 1 網(wǎng)絡(luò )接口
手持式RFID 讀寫(xiě)器是便攜式射頻識別系統的主要設備,其網(wǎng)絡(luò )接口主要由MSP430 單片機與以太網(wǎng)控制器RTL8139 塊等組成。其網(wǎng)絡(luò )接口硬件結構如圖1 所示。
圖1 網(wǎng)絡(luò )接口框圖
根據便攜設備的低功耗要求,MSP430 單片機采用MSP430F149,具有超低功耗、強大處理能力、豐富片上外圍模塊及多種存儲器形式等功能,其中有2 個(gè)具有中斷功能的8 位并行端口P1與P2和4 個(gè)8 位的通用并行端口P3、P4、P5與P6,可以滿(mǎn)足和以太網(wǎng)控制器的接口,而且能夠實(shí)現RFID 讀寫(xiě)器的其他接口功能。
隔離變壓器選用PM34 - 1006M10 /100 /1000M 變壓器。采用RTL8139 以太網(wǎng)控制器作為網(wǎng)絡(luò )接口。
由于RTL8139 是PCI 總線(xiàn)接口,不能直接與8 位的MCU 接口,需要一個(gè)PCI 接口進(jìn)行轉接。單片機在進(jìn)行外部存儲器操作時(shí)采用的信號有P0口、P2口、ALE以及RD 和WR 信號。其中,P0口為地址( 低8 位) /數據復用,P2口為高8 位地址信號; ALE 為地址鎖存信號,為高電平時(shí)將P0口的值鎖存到低8 位數據線(xiàn)上; RD 和WR 為讀寫(xiě)有效信號,低電平有效。因此,PCI 接口實(shí)際上是起到一個(gè)從單片機讀寫(xiě)時(shí)序到32位PCI 讀寫(xiě)時(shí)序轉換的作用。
1. 2 RTL8139 的結構及編程接口
RTL8139 是臺灣Realtek 公司生產(chǎn)的一種高度集成的全面支持IEEE802. 3 標準的以太網(wǎng)控制器芯片,支持微軟的PnP 規范。利用雙絞線(xiàn)可以和全雙工網(wǎng)絡(luò )交換機相連接,能夠同時(shí)接收和發(fā)送數據。支持UTP( Unshielded Twisted Paired) ,AUI( Attachment UnitInterface) 自動(dòng)偵測。支持IO 地址全解碼模式。其主要特性如下:
。 1 ) 符合Ethernet Ⅱ 和IEEE802. 3 ( 10Base5,10Base2,10BaseT) 標準。
。 2) 支持跳線(xiàn)和免跳線(xiàn)兩種工作方式。
。 3) 全雙工,收發(fā)可同時(shí)達到100 Mbit·s - 1 的速率。
。 4) 支持32 位數據PCI 總線(xiàn)。
。 5) 允許3 個(gè)診斷LED 可編程輸出。
。 6) 128 腳LQFP 封裝,縮小了PCB 尺寸。
如圖2 所示,RTL8139 內部已經(jīng)包含有整個(gè)網(wǎng)絡(luò )接口層的協(xié)議,因此應用起來(lái)較簡(jiǎn)單。用戶(hù)不必考慮鏈路控制問(wèn)題,而只需考慮單片機如何從RTL8139 中去讀TCP /IP 協(xié)議的數據即可。
圖2 RTL8139AS 內部結構圖
PCI 總線(xiàn)信號有3. 3 V 標準和5 V 標準,信號線(xiàn)眾多,但并不是所有的PCI 設備都使用全部的PCI 接口信號,實(shí)際只使用需要的即可。RTL8139AS 以太網(wǎng)控制器遵循3 V 標準,并且只使用了PCI 總線(xiàn)信號中的以下部分: AD[31: 0]為數據信號復用總線(xiàn)。
FRAME 為幀周期信號,由當前主設備驅動(dòng),表示一次訪(fǎng)問(wèn)的開(kāi)始和持續時(shí)間。IRDY 為主設備準備好信號。
TRDY 為從設備準備好信號。C /BE 為總線(xiàn)命令和字節使能復用信號。地址期是總線(xiàn)命令,數據期是字節使能。IDSEL 為初始化設備選擇信號。在參數配置讀寫(xiě)傳輸期間,用作片選。對于只有一個(gè)PCI 設備的情況,它可以總接高電平。RST 為復位信號。CLK 為系統時(shí)鐘信號,頻率范圍DC ~ 33 MHz.以上信號都在CLK 的上升沿有效。INTA 為中斷請求信號,RTL8139數據準備好后可以用來(lái)向主控制器發(fā)出中斷。
DEVSEL 為設備選擇信號,表明驅動(dòng)它的設備已成當前訪(fǎng)問(wèn)的設備,由于系統中,RTL8139 是單一的PCI 設備,因此該信號可以不用。
2 網(wǎng)絡(luò )接口軟件結構
RFID 讀寫(xiě)器系統網(wǎng)絡(luò )接口軟件主要包括硬件設備驅動(dòng)程序、TCP /IP 協(xié)議棧、應用協(xié)議和其他用戶(hù)應用程序。網(wǎng)絡(luò )接口軟件的流程如圖3 所示。
圖3 網(wǎng)絡(luò )接口軟件流程圖。
其中應用協(xié)議和其他用戶(hù)應用程序將在二次開(kāi)發(fā)時(shí)根據RFID 讀寫(xiě)器的具體功能要求進(jìn)行設計,這里主要介紹硬件設備驅動(dòng)程序、TCP /IP 協(xié)議棧的實(shí)現方法。
2. 1 硬件設備驅動(dòng)程序
硬件設備驅動(dòng)是將PCI 接口當作單片機的外部存儲器看待,單片機以讀寫(xiě)外部存儲器的時(shí)序對PCI 接口進(jìn)行讀寫(xiě),再由PCI 接口將這種讀寫(xiě)操作時(shí)序轉換成PCI 時(shí)序對以太網(wǎng)控制器進(jìn)行操作。主要包括3 個(gè)部分,網(wǎng)絡(luò )初始化,發(fā)送控制和接收控制。主要完成對CR,TCR,RCR IMR ISR,RBSTART,MAR 等寄存器操作。
發(fā)送控制過(guò)程在網(wǎng)絡(luò )中,幀傳輸的過(guò)程是發(fā)送方將待發(fā)送的數據按幀格式要求封裝成幀,然后同過(guò)網(wǎng)卡發(fā)送到網(wǎng)絡(luò )的傳輸線(xiàn)上。發(fā)送程序框圖如圖4所示。
圖4 RTL8139 數據發(fā)送流程圖。
接收控制過(guò)程分成2 步,第1 步是根據哈稀算法判斷數據包是否是本地的數據包,如果是則接收放入FIFO,如果FIFO 里的數據包達到了RCR 寄存器預先設定閾值,把數據報放入RX_BUFF.第2 步主機程序將RX_BUFF 里的數據讀取到內存進(jìn)行處理。
RFID 技術(shù)目前廣泛應用于身份識別、防偽應用、供應鏈應用、公共交通管理、物流管理、生產(chǎn)線(xiàn)自動(dòng)化與過(guò)程控制、容器識別等領(lǐng)域。由于手持式RFID讀寫(xiě)器的存儲器容量有限,保存在讀寫(xiě)器中的數據可以通過(guò)USB 等接口傳送到計算機中進(jìn)行處理,但為更方便快捷地將讀寫(xiě)器中的數據傳送到遠程的計算機系統中,將便攜設備網(wǎng)絡(luò )化是解決上述問(wèn)題的有效途徑之一。但目前的手持式RIFD 讀寫(xiě)器并不具備與互聯(lián)網(wǎng)進(jìn)行網(wǎng)絡(luò )連接的網(wǎng)絡(luò )接口。另外,手持式RFID 讀寫(xiě)器是通過(guò)內部所裝有的電池進(jìn)行供電,所以降低其工作功耗也是主要問(wèn)題之一。而MSP430F149 單片機是一款16 位超低功耗的處理芯片,它將多個(gè)不同功能的模擬電路,數字電路模塊集成于一身,適合應用與需要電池供電的便攜式儀器儀表中。
因此,文中主要介紹手持式RFID 讀寫(xiě)器中MSP430F149 單片機與以太網(wǎng)控制器RTL8139 接口的硬件設計的方法,以及相應的硬件設備驅動(dòng)程序的設計和TCP /IP 協(xié)議棧的處理方法。
1 網(wǎng)絡(luò )接口硬件結構。
1. 1 網(wǎng)絡(luò )接口
手持式RFID 讀寫(xiě)器是便攜式射頻識別系統的主要設備,其網(wǎng)絡(luò )接口主要由MSP430 單片機與以太網(wǎng)控制器RTL8139 塊等組成。其網(wǎng)絡(luò )接口硬件結構如圖1 所示。
圖1 網(wǎng)絡(luò )接口框圖
根據便攜設備的低功耗要求,MSP430 單片機采用MSP430F149,具有超低功耗、強大處理能力、豐富片上外圍模塊及多種存儲器形式等功能,其中有2 個(gè)具有中斷功能的8 位并行端口P1與P2和4 個(gè)8 位的通用并行端口P3、P4、P5與P6,可以滿(mǎn)足和以太網(wǎng)控制器的接口,而且能夠實(shí)現RFID 讀寫(xiě)器的其他接口功能。
隔離變壓器選用PM34 - 1006M10 /100 /1000M 變壓器。采用RTL8139 以太網(wǎng)控制器作為網(wǎng)絡(luò )接口。
由于RTL8139 是PCI 總線(xiàn)接口,不能直接與8 位的MCU 接口,需要一個(gè)PCI 接口進(jìn)行轉接。單片機在進(jìn)行外部存儲器操作時(shí)采用的信號有P0口、P2口、ALE以及RD 和WR 信號。其中,P0口為地址( 低8 位) /數據復用,P2口為高8 位地址信號; ALE 為地址鎖存信號,為高電平時(shí)將P0口的值鎖存到低8 位數據線(xiàn)上; RD 和WR 為讀寫(xiě)有效信號,低電平有效。因此,PCI 接口實(shí)際上是起到一個(gè)從單片機讀寫(xiě)時(shí)序到32位PCI 讀寫(xiě)時(shí)序轉換的作用。
1. 2 RTL8139 的結構及編程接口
RTL8139 是臺灣Realtek 公司生產(chǎn)的一種高度集成的全面支持IEEE802. 3 標準的以太網(wǎng)控制器芯片,支持微軟的PnP 規范。利用雙絞線(xiàn)可以和全雙工網(wǎng)絡(luò )交換機相連接,能夠同時(shí)接收和發(fā)送數據。支持UTP( Unshielded Twisted Paired) ,AUI( Attachment UnitInterface) 自動(dòng)偵測。支持IO 地址全解碼模式。其主要特性如下:
。 1 ) 符合Ethernet Ⅱ 和IEEE802. 3 ( 10Base5,10Base2,10BaseT) 標準。
。 2) 支持跳線(xiàn)和免跳線(xiàn)兩種工作方式。
。 3) 全雙工,收發(fā)可同時(shí)達到100 Mbit·s - 1 的速率。
。 4) 支持32 位數據PCI 總線(xiàn)。
。 5) 允許3 個(gè)診斷LED 可編程輸出。
。 6) 128 腳LQFP 封裝,縮小了PCB 尺寸。
如圖2 所示,RTL8139 內部已經(jīng)包含有整個(gè)網(wǎng)絡(luò )接口層的協(xié)議,因此應用起來(lái)較簡(jiǎn)單。用戶(hù)不必考慮鏈路控制問(wèn)題,而只需考慮單片機如何從RTL8139 中去讀TCP /IP 協(xié)議的數據即可。
圖2 RTL8139AS 內部結構圖
PCI 總線(xiàn)信號有3. 3 V 標準和5 V 標準,信號線(xiàn)眾多,但并不是所有的PCI 設備都使用全部的PCI 接口信號,實(shí)際只使用需要的即可。RTL8139AS 以太網(wǎng)控制器遵循3 V 標準,并且只使用了PCI 總線(xiàn)信號中的以下部分: AD[31: 0]為數據信號復用總線(xiàn)。
FRAME 為幀周期信號,由當前主設備驅動(dòng),表示一次訪(fǎng)問(wèn)的開(kāi)始和持續時(shí)間。IRDY 為主設備準備好信號。
TRDY 為從設備準備好信號。C /BE 為總線(xiàn)命令和字節使能復用信號。地址期是總線(xiàn)命令,數據期是字節使能。IDSEL 為初始化設備選擇信號。在參數配置讀寫(xiě)傳輸期間,用作片選。對于只有一個(gè)PCI 設備的情況,它可以總接高電平。RST 為復位信號。CLK 為系統時(shí)鐘信號,頻率范圍DC ~ 33 MHz.以上信號都在CLK 的上升沿有效。INTA 為中斷請求信號,RTL8139數據準備好后可以用來(lái)向主控制器發(fā)出中斷。
DEVSEL 為設備選擇信號,表明驅動(dòng)它的設備已成當前訪(fǎng)問(wèn)的設備,由于系統中,RTL8139 是單一的PCI 設備,因此該信號可以不用。
2 網(wǎng)絡(luò )接口軟件結構
RFID 讀寫(xiě)器系統網(wǎng)絡(luò )接口軟件主要包括硬件設備驅動(dòng)程序、TCP /IP 協(xié)議棧、應用協(xié)議和其他用戶(hù)應用程序。網(wǎng)絡(luò )接口軟件的流程如圖3 所示。
圖3 網(wǎng)絡(luò )接口軟件流程圖。
其中應用協(xié)議和其他用戶(hù)應用程序將在二次開(kāi)發(fā)時(shí)根據RFID 讀寫(xiě)器的具體功能要求進(jìn)行設計,這里主要介紹硬件設備驅動(dòng)程序、TCP /IP 協(xié)議棧的實(shí)現方法。
2. 1 硬件設備驅動(dòng)程序
硬件設備驅動(dòng)是將PCI 接口當作單片機的外部存儲器看待,單片機以讀寫(xiě)外部存儲器的時(shí)序對PCI 接口進(jìn)行讀寫(xiě),再由PCI 接口將這種讀寫(xiě)操作時(shí)序轉換成PCI 時(shí)序對以太網(wǎng)控制器進(jìn)行操作。主要包括3 個(gè)部分,網(wǎng)絡(luò )初始化,發(fā)送控制和接收控制。主要完成對CR,TCR,RCR IMR ISR,RBSTART,MAR 等寄存器操作。
發(fā)送控制過(guò)程在網(wǎng)絡(luò )中,幀傳輸的過(guò)程是發(fā)送方將待發(fā)送的數據按幀格式要求封裝成幀,然后同過(guò)網(wǎng)卡發(fā)送到網(wǎng)絡(luò )的傳輸線(xiàn)上。發(fā)送程序框圖如圖4所示。
圖4 RTL8139 數據發(fā)送流程圖。
接收控制過(guò)程分成2 步,第1 步是根據哈稀算法判斷數據包是否是本地的數據包,如果是則接收放入FIFO,如果FIFO 里的數據包達到了RCR 寄存器預先設定閾值,把數據報放入RX_BUFF.第2 步主機程序將RX_BUFF 里的數據讀取到內存進(jìn)行處理。
手持式RFID讀寫(xiě)器網(wǎng)絡(luò )接口設計