孔 陽 武 杰 馬毅超 韓 昭
(中國科學(xué)技術(shù)大學(xué)近代物理系,物理電子學(xué)安徽省重點(diǎn)實(shí)驗(yàn)室 合肥 230026)
大型傳感器網(wǎng)絡(luò)廣泛應(yīng)用于高能物理、核電站以及地質(zhì)勘探儀器中,特點(diǎn)為分布區(qū)域廣、采集節(jié)點(diǎn)多、傳輸數(shù)據(jù)量大、自動控制程度高等[1]。有線傳感器網(wǎng)絡(luò)具有高數(shù)據(jù)率和實(shí)時數(shù)據(jù)傳輸?shù)膬?yōu)點(diǎn)。這些大型分布式傳感器系統(tǒng)通常由大量數(shù)據(jù)采集節(jié)點(diǎn)、高速傳輸節(jié)點(diǎn)以及主機(jī)構(gòu)成。如何實(shí)現(xiàn)高速穩(wěn)定的數(shù)據(jù)傳輸通道,對于系統(tǒng)設(shè)計是一個挑戰(zhàn)。當(dāng)前有線傳輸方案中多用光纖傳輸設(shè)計[2],但光纖對環(huán)境穩(wěn)定性有很高要求。因此,在溫度、濕度變化頻繁、震動較多的環(huán)境中采用雙絞銅纜千兆以太網(wǎng)的傳輸設(shè)計是一個合適的選擇。
千兆以太網(wǎng)是一種成熟的高速傳輸設(shè)計方案,多用于網(wǎng)絡(luò)設(shè)計,有雙絞線、光纖等傳輸協(xié)議。其傳輸穩(wěn)定性高、與主機(jī)接口簡單,且傳輸距離遠(yuǎn)(802.3標(biāo)準(zhǔn)支持百米),是一種合適的高速數(shù)據(jù)傳輸方式。1000BASE-T是一種基于非屏蔽雙絞線傳輸介質(zhì)的傳輸協(xié)議,使用銅物理層Copper PHY編碼解碼方式,傳輸距離100 m。1000BASE-T在傳輸中使用4對雙絞線(10 M/100 M模式時僅使用2對),hybrids和cancellers技術(shù)使收發(fā)器能在一對差分線上實(shí)現(xiàn)250 Mpbs全雙工收發(fā)[3]。
一個1000BASE-T Physical layer (PHY)由PCS(Physical Coding Sublayer)子層以及PMA (Physical Medium Attachment Sublayer)子層構(gòu)成,建立在自協(xié)商(Auto-Negotiation)機(jī)制上。PCS子層經(jīng)過完善定義的以太網(wǎng)MAC功能映射到現(xiàn)存的編碼和物理層信號系統(tǒng)的功能上。1000BASE-T的 PCS未采用8B/10B編碼方式,而采用 4D-PAM5(Four Dimensional-Pulse Amplitude Modulation)編碼方式,將數(shù)據(jù)調(diào)制到5電平信號上。PMA子層實(shí)現(xiàn)真正與傳輸介質(zhì)相關(guān)的通信,數(shù)據(jù)發(fā)送過程中,通過GMII(Gigabit Medium Independent Interface)接口輸入到 PCS子層中的 8位寬的數(shù)據(jù) TXD[7:0]進(jìn)行4D-PAM5編碼轉(zhuǎn)換為{2,1,0,–1,–2}信號,到達(dá)PMA層后產(chǎn)生5電平的差分信號輸出,再通過變壓器和RJ45轉(zhuǎn)接頭,連接到5類線上。
本文提出一種基于千兆以太網(wǎng)物理層的高速傳輸方案,在現(xiàn)場可編程邏輯器件(FPGA)上實(shí)現(xiàn)GMII接口及多個接口間的數(shù)據(jù)交換。
傳感器網(wǎng)絡(luò)中有大量數(shù)據(jù)節(jié)點(diǎn)和控制節(jié)點(diǎn),本設(shè)計采用低速鏈串聯(lián)采集節(jié)點(diǎn),高速鏈匯集各低速鏈數(shù)據(jù)的設(shè)計方式,將整個傳感器網(wǎng)絡(luò)聯(lián)通起來。
如圖1所示,低速線上有大量的傳感器節(jié)點(diǎn)和控制節(jié)點(diǎn),LVDS在50 m的傳輸距離可達(dá)到近百兆的傳輸速率。低速鏈上傳感器節(jié)點(diǎn)相對較少,采用LVDS的傳輸方式是十分適合的[4]。高速鏈上為了滿足足夠多的采集節(jié)點(diǎn)實(shí)時傳輸數(shù)據(jù),采用千兆以太網(wǎng)以達(dá)到更高的傳輸速率。
圖1 傳感器網(wǎng)絡(luò)結(jié)構(gòu)圖○傳感器,□數(shù)據(jù)采集節(jié)點(diǎn),□高速傳輸節(jié)點(diǎn)Fig.1 Schematics of the sensor networks.○Sensor, □Data collection unit,□High speed transmit unit.
為將多個不同速度端口上的數(shù)據(jù)互相連通,本文提出一種交換式的傳輸結(jié)構(gòu),在一片F(xiàn)PGA實(shí)現(xiàn)不同端口間的數(shù)據(jù)交換,大大提高了數(shù)據(jù)傳輸效率。
如圖 2,交換結(jié)構(gòu)有兩個高速鏈端口、兩個低速鏈端口和一個嵌入式CPU端口。FPGA是最合適的交換器件,其管腳使用靈活,能方便實(shí)現(xiàn)各種接口,除兩個高速接口(GMII)和兩個低速接口(LVDS)外,還擴(kuò)展出一個DDR SDRAM接口和嵌入式CPU接口,起橋接作用。
千兆以太網(wǎng)收發(fā)器采用美國 Broadcom公司的單端口以太網(wǎng)BCM5461S芯片,支持1000BASE-T IEEE 802.3ab協(xié)議,高速傳輸節(jié)點(diǎn)之間用4對雙絞銅纜進(jìn)行數(shù)據(jù)傳輸(五類線)。數(shù)據(jù)交換在一片美國Xilinx公司的Spartan3E FPGA內(nèi)進(jìn)行,F(xiàn)PGA直接控制Gigabit-PHY芯片[5]。采用較低頻率的125 MHz管腳時鐘,BCM5461S與FPGA用GMII接口連接。
LVDS收發(fā)器采用美國TI公司8B/10B平衡編碼的低功耗SN65LV1023/1224芯片[6],經(jīng)測試,在50 m傳輸距離下,凈數(shù)據(jù)率達(dá)64 Mbit/s。
圖2 傳輸節(jié)點(diǎn)硬件結(jié)構(gòu)Fig.2 Schematics of hardware of the transmit unit.
為滿足采集總數(shù)達(dá)到數(shù)萬個傳感器節(jié)點(diǎn),高速傳輸節(jié)點(diǎn)上須做足夠多的數(shù)據(jù)緩沖,美國 Micron公司的MT46V64M8是一片64 MByte容量、8位數(shù)據(jù)寬度的DDR芯片。
CPU不僅是主要的控制器件,更擔(dān)任低速鏈上的節(jié)點(diǎn)控制任務(wù)。CPU要給低速鏈上的傳感器節(jié)點(diǎn)和控制節(jié)點(diǎn)分配物理地址,更新其狀態(tài),控制傳感器的采集。CPU與FPGA間的通信包括數(shù)據(jù)幀通信和控制通信,美國 Atmel公司的 AT91SAM7S256芯片基于ARM7內(nèi)核可達(dá)到55 MHz主頻,具有256 kbyte片內(nèi)FLASH和64 k片內(nèi)RAM,并有DMA控制器,很適合有頻繁數(shù)據(jù)通信的實(shí)時操作系統(tǒng)[7]。CPU采用I2C和SSC(Synchronous Serial Con-troller)與FPGA進(jìn)行控制寄存器讀寫和數(shù)據(jù)幀讀取。
GMII是采用 8位接口數(shù)據(jù)的傳輸協(xié)議,工作時鐘頻率125 MHz,傳輸速率可達(dá)1000 Mbps,同時向下兼容MII所規(guī)定的10/100 Mbps低速工作方式。GMII接口數(shù)據(jù)結(jié)構(gòu)符合IEEE以太網(wǎng)標(biāo)準(zhǔn)。
在GMII協(xié)議中發(fā)送端有GTXCLK(1000 M傳輸模式下TX信號的參考時鐘)、TXCLK(10/100 Mbit下TX信號的時鐘信號)、TXD[7:0] (發(fā)送的數(shù)據(jù))、TXEN(發(fā)送器使能信號)、TXER(發(fā)送錯誤標(biāo)志)。接收端有RXCLK(從收到的數(shù)據(jù)中恢復(fù)出的接收時鐘信號,因此與GTXCLK無關(guān)聯(lián))、RXD[7:0] (接收到的數(shù)據(jù))、RXDV(接收數(shù)據(jù)有效)、RXER(接收數(shù)據(jù)出錯標(biāo)志)、COL(沖突檢測,僅用于半雙工狀態(tài))。發(fā)送端在千兆速率下工作時,由控制器向PHY提供GTXCLK信號,頻率為125 MHz。TXD[7:0]、TXEN、TXER信號與GTXCLK時鐘信號同步;在10/100 Mbps速率下工作時,PHY提供 TXCLK時鐘信號,其它信號與此信號同步,其工作頻率為25 MHz(100 Mbps)或2.5 MHz(10 Mbps)。接收端信號始終與RXCLK同步。
為使FPGA片內(nèi)的每個GMII信號到千兆網(wǎng)收發(fā)器BCM5461S接收管腳上的路徑抖動(Skew)盡量小,不但要盡量減少PCB上各信號線的長度差,還要在FPGA上使用管腳寄存器[8],合理的邏輯設(shè)計有效地保證了傳輸穩(wěn)定性。
圖3 FPGA內(nèi)交換邏輯結(jié)構(gòu)Fig.3 The switch algorithm in FPGA.
由圖3,交換邏輯分為交換時鐘域(125 MHz)、2個Gigabit-PHY各自的GMII時鐘域(125 MHz)、DDR時鐘域、CPU的SSC時鐘域。在不同端口傳輸數(shù)據(jù),涉及跨時鐘域問題。數(shù)據(jù)以及控制信號跨時鐘域傳輸帶來的亞穩(wěn)態(tài)問題,給系統(tǒng)穩(wěn)定性帶來很大挑戰(zhàn)[9]。數(shù)據(jù)傳輸采用 BlockRam 構(gòu)成的異步FIFO傳輸數(shù)據(jù);對于流量控制等信號,采用兩級觸發(fā)鎖存以滿足跨時鐘域時序。千兆網(wǎng) IO管理模塊負(fù)責(zé)將GMII接收端的信號以RXCLK為參考時鐘鎖存下來,并保證 GMII發(fā)送端信號同步到GTXCLK。交換邏輯內(nèi)包括2個狀態(tài)機(jī),按照幀的目標(biāo)地址將數(shù)據(jù)幀送到相應(yīng)的目標(biāo)端口,在轉(zhuǎn)發(fā)過程中保持幀的原有數(shù)據(jù)結(jié)構(gòu)不動。在轉(zhuǎn)發(fā)過程的,為千兆網(wǎng)接口上的幀去除或添加 8 byte的幀前導(dǎo)(0x55,0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xD5),以保證以太網(wǎng)的協(xié)議。
系統(tǒng)采用類以太網(wǎng)的幀結(jié)構(gòu),與普通網(wǎng)卡兼容,幀長度為24–792 byte。當(dāng)使用普通PC作主機(jī)時,硬件上只需一塊千兆以太網(wǎng)卡,軟件上采用Winpcap庫函數(shù)[10],即可完成原始以太網(wǎng)幀的捕獲和發(fā)送。
測試系統(tǒng)將多個高速傳輸節(jié)點(diǎn)級聯(lián),每個高速傳輸節(jié)點(diǎn)管理一定數(shù)量的傳感器節(jié)點(diǎn)和控制節(jié)點(diǎn),主機(jī)是一臺PC電腦:Intel公司的Pentium(R) 2.00 GHz,Windows XP Professional SP3操作系統(tǒng),內(nèi)存256 MB,調(diào)用Winpcap 4.0.2庫函數(shù)收發(fā)以太網(wǎng)幀,用一塊Intel PRO 1000 MT千兆位網(wǎng)卡通過五類網(wǎng)線與高速傳輸節(jié)點(diǎn)連接,高速傳輸節(jié)點(diǎn)通過雙絞線與傳感器節(jié)點(diǎn)和控制節(jié)點(diǎn)連接。通過多次采集測試流程,實(shí)現(xiàn)了系統(tǒng)硬件及軟件穩(wěn)定性測試。
由圖4和圖5,GMII中的TXEN和RXDV信號分別標(biāo)識發(fā)送和接收的數(shù)據(jù)流,通過他們能準(zhǔn)確判斷數(shù)據(jù)幀的傳輸延遲。圖4中的信號從上至下分別是經(jīng)過交換邏輯之前的RXDV和TXEN,延遲在160 ns。圖5中的信號從上至下分別是上一級傳輸節(jié)點(diǎn)的TXEN和下一級傳輸節(jié)點(diǎn)的RXDV,延遲在310 ns。
圖4 轉(zhuǎn)發(fā)邏輯延遲測試Fig.4 Schematics of the switch logic delay test.
針對不同幀長測試了交換式設(shè)計千兆以太網(wǎng)和傳統(tǒng)的CPU+MAC控制器+PHY設(shè)計的網(wǎng)傳輸有效數(shù)據(jù)率(除去協(xié)議的數(shù)據(jù))。測試方法為:將固定數(shù)據(jù)量的數(shù)據(jù)按不同的幀長度發(fā)送,查看網(wǎng)絡(luò)使用率以及發(fā)送所需時間。圖6為交換式設(shè)計千兆網(wǎng)發(fā)包時的有效數(shù)據(jù)率,由于幀間隔和傳輸前導(dǎo)的存在,幀長度越大使用效率越高;PC電腦千兆網(wǎng)采用UDP發(fā)包,由于協(xié)議棧消耗資源等因素,效率較低。
圖5 器件傳輸延遲測試Fig.5 Schematics of the PHY transmission delay test.
圖6 有效數(shù)據(jù)率比較Fig.6 Comparison of the effective data rate.
測試結(jié)果表明,千兆以太網(wǎng)連接穩(wěn)定,經(jīng)過1012比特數(shù)據(jù)測試,未發(fā)現(xiàn)誤碼現(xiàn)象,系統(tǒng)誤碼率<10–12。實(shí)驗(yàn)證明,基于千兆以太網(wǎng)的設(shè)計把FPGA的高速數(shù)據(jù)處理能力和 PHY的驅(qū)動能力有效地結(jié)合起來,是一種成功的高速數(shù)據(jù)傳輸方案。
1 Gavin A C, Kenneth J T. Goals and policies for sensor network management. 2ndInternational Conference on Sensor Technologies and Applications, SENSORCOMM,2008, 385–388
2 徐 昊, 劉振安, 盧云鵬, 等. 核技術(shù), 2009, 32(9):706–710 XU Hao, LIU Zhen an, LU Yunpeng,et al. Nucl Tech,2009, 32(9): 706–710
3 IEEE LAN/MAN Standards Committee. IEEE Standard 802.3 Part 3: Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications, 2005, 149–250
4 NS, LVDS Owner’s Manual Low-Voltage Differential Signaling.http://www.national.com/appinfo/lvds/files/own ersmanual.pdf
5 Xilinx. Spartan-3 Generation FPGA User Guide, 2009,http://www.xilinx.com/support/documentation/use r_guides/ug331. pdf
6 Widmer A X, Franaszek P A. A DC-Balanced,Partitioned-Block, 8B-10B Transmission Code IBM J Res Develop, 1983, 27(5): 149–250
7 Atmel. AT91SAM7S Series Preliminary, 2009, http://www.atmel.com/dyn/resources/prod_documents/doc6175. pdf
8 Steve Kilts. Advanced fpga design architecture implementation and optimization. Beijing: China Machine Press, 2009. 179–190
9 Altera. Metastability in Altera Devices. ftp://ftp.altera.com/pub/lit_req/document/an/an042. pdf
10 WANG Xuren, HE Famei. An implement of broadband network monitoring system based on libnids and winpcap.International Conference on New Trends in Information and Service Science, 2009. 812–814