孔 阳 武 杰 马毅超 韩 昭
(中国科学技术大学近代物理系,物理电子学安徽省重点实验室 合肥 230026)
大型传感器网络广泛应用于高能物理、核电站以及地质勘探仪器中,特点为分布区域广、采集节点多、传输数据量大、自动控制程度高等[1]。有线传感器网络具有高数据率和实时数据传输的优点。这些大型分布式传感器系统通常由大量数据采集节点、高速传输节点以及主机构成。如何实现高速稳定的数据传输通道,对于系统设计是一个挑战。当前有线传输方案中多用光纤传输设计[2],但光纤对环境稳定性有很高要求。因此,在温度、湿度变化频繁、震动较多的环境中采用双绞铜缆千兆以太网的传输设计是一个合适的选择。
千兆以太网是一种成熟的高速传输设计方案,多用于网络设计,有双绞线、光纤等传输协议。其传输稳定性高、与主机接口简单,且传输距离远(802.3标准支持百米),是一种合适的高速数据传输方式。1000BASE-T是一种基于非屏蔽双绞线传输介质的传输协议,使用铜物理层Copper PHY编码解码方式,传输距离100 m。1000BASE-T在传输中使用4对双绞线(10 M/100 M模式时仅使用2对),hybrids和cancellers技术使收发器能在一对差分线上实现250 Mpbs全双工收发[3]。
一个1000BASE-T Physical layer (PHY)由PCS(Physical Coding Sublayer)子层以及PMA (Physical Medium Attachment Sublayer)子层构成,建立在自协商(Auto-Negotiation)机制上。PCS子层经过完善定义的以太网MAC功能映射到现存的编码和物理层信号系统的功能上。1000BASE-T的 PCS未采用8B/10B编码方式,而采用 4D-PAM5(Four Dimensional-Pulse Amplitude Modulation)编码方式,将数据调制到5电平信号上。PMA子层实现真正与传输介质相关的通信,数据发送过程中,通过GMII(Gigabit Medium Independent Interface)接口输入到 PCS子层中的 8位宽的数据 TXD[7:0]进行4D-PAM5编码转换为{2,1,0,–1,–2}信号,到达PMA层后产生5电平的差分信号输出,再通过变压器和RJ45转接头,连接到5类线上。
本文提出一种基于千兆以太网物理层的高速传输方案,在现场可编程逻辑器件(FPGA)上实现GMII接口及多个接口间的数据交换。
传感器网络中有大量数据节点和控制节点,本设计采用低速链串联采集节点,高速链汇集各低速链数据的设计方式,将整个传感器网络联通起来。
如图1所示,低速线上有大量的传感器节点和控制节点,LVDS在50 m的传输距离可达到近百兆的传输速率。低速链上传感器节点相对较少,采用LVDS的传输方式是十分适合的[4]。高速链上为了满足足够多的采集节点实时传输数据,采用千兆以太网以达到更高的传输速率。
图1 传感器网络结构图○传感器,□数据采集节点,□高速传输节点Fig.1 Schematics of the sensor networks.○Sensor, □Data collection unit,□High speed transmit unit.
为将多个不同速度端口上的数据互相连通,本文提出一种交换式的传输结构,在一片FPGA实现不同端口间的数据交换,大大提高了数据传输效率。
如图 2,交换结构有两个高速链端口、两个低速链端口和一个嵌入式CPU端口。FPGA是最合适的交换器件,其管脚使用灵活,能方便实现各种接口,除两个高速接口(GMII)和两个低速接口(LVDS)外,还扩展出一个DDR SDRAM接口和嵌入式CPU接口,起桥接作用。
千兆以太网收发器采用美国 Broadcom公司的单端口以太网BCM5461S芯片,支持1000BASE-T IEEE 802.3ab协议,高速传输节点之间用4对双绞铜缆进行数据传输(五类线)。数据交换在一片美国Xilinx公司的Spartan3E FPGA内进行,FPGA直接控制Gigabit-PHY芯片[5]。采用较低频率的125 MHz管脚时钟,BCM5461S与FPGA用GMII接口连接。
LVDS收发器采用美国TI公司8B/10B平衡编码的低功耗SN65LV1023/1224芯片[6],经测试,在50 m传输距离下,净数据率达64 Mbit/s。
图2 传输节点硬件结构Fig.2 Schematics of hardware of the transmit unit.
为满足采集总数达到数万个传感器节点,高速传输节点上须做足够多的数据缓冲,美国 Micron公司的MT46V64M8是一片64 MByte容量、8位数据宽度的DDR芯片。
CPU不仅是主要的控制器件,更担任低速链上的节点控制任务。CPU要给低速链上的传感器节点和控制节点分配物理地址,更新其状态,控制传感器的采集。CPU与FPGA间的通信包括数据帧通信和控制通信,美国 Atmel公司的 AT91SAM7S256芯片基于ARM7内核可达到55 MHz主频,具有256 kbyte片内FLASH和64 k片内RAM,并有DMA控制器,很适合有频繁数据通信的实时操作系统[7]。CPU采用I2C和SSC(Synchronous Serial Con-troller)与FPGA进行控制寄存器读写和数据帧读取。
GMII是采用 8位接口数据的传输协议,工作时钟频率125 MHz,传输速率可达1000 Mbps,同时向下兼容MII所规定的10/100 Mbps低速工作方式。GMII接口数据结构符合IEEE以太网标准。
在GMII协议中发送端有GTXCLK(1000 M传输模式下TX信号的参考时钟)、TXCLK(10/100 Mbit下TX信号的时钟信号)、TXD[7:0] (发送的数据)、TXEN(发送器使能信号)、TXER(发送错误标志)。接收端有RXCLK(从收到的数据中恢复出的接收时钟信号,因此与GTXCLK无关联)、RXD[7:0] (接收到的数据)、RXDV(接收数据有效)、RXER(接收数据出错标志)、COL(冲突检测,仅用于半双工状态)。发送端在千兆速率下工作时,由控制器向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片内的每个GMII信号到千兆网收发器BCM5461S接收管脚上的路径抖动(Skew)尽量小,不但要尽量减少PCB上各信号线的长度差,还要在FPGA上使用管脚寄存器[8],合理的逻辑设计有效地保证了传输稳定性。
图3 FPGA内交换逻辑结构Fig.3 The switch algorithm in FPGA.
由图3,交换逻辑分为交换时钟域(125 MHz)、2个Gigabit-PHY各自的GMII时钟域(125 MHz)、DDR时钟域、CPU的SSC时钟域。在不同端口传输数据,涉及跨时钟域问题。数据以及控制信号跨时钟域传输带来的亚稳态问题,给系统稳定性带来很大挑战[9]。数据传输采用 BlockRam 构成的异步FIFO传输数据;对于流量控制等信号,采用两级触发锁存以满足跨时钟域时序。千兆网 IO管理模块负责将GMII接收端的信号以RXCLK为参考时钟锁存下来,并保证 GMII发送端信号同步到GTXCLK。交换逻辑内包括2个状态机,按照帧的目标地址将数据帧送到相应的目标端口,在转发过程中保持帧的原有数据结构不动。在转发过程的,为千兆网接口上的帧去除或添加 8 byte的帧前导(0x55,0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xD5),以保证以太网的协议。
系统采用类以太网的帧结构,与普通网卡兼容,帧长度为24–792 byte。当使用普通PC作主机时,硬件上只需一块千兆以太网卡,软件上采用Winpcap库函数[10],即可完成原始以太网帧的捕获和发送。
测试系统将多个高速传输节点级联,每个高速传输节点管理一定数量的传感器节点和控制节点,主机是一台PC电脑:Intel公司的Pentium(R) 2.00 GHz,Windows XP Professional SP3操作系统,内存256 MB,调用Winpcap 4.0.2库函数收发以太网帧,用一块Intel PRO 1000 MT千兆位网卡通过五类网线与高速传输节点连接,高速传输节点通过双绞线与传感器节点和控制节点连接。通过多次采集测试流程,实现了系统硬件及软件稳定性测试。
由图4和图5,GMII中的TXEN和RXDV信号分别标识发送和接收的数据流,通过他们能准确判断数据帧的传输延迟。图4中的信号从上至下分别是经过交换逻辑之前的RXDV和TXEN,延迟在160 ns。图5中的信号从上至下分别是上一级传输节点的TXEN和下一级传输节点的RXDV,延迟在310 ns。
图4 转发逻辑延迟测试Fig.4 Schematics of the switch logic delay test.
针对不同帧长测试了交换式设计千兆以太网和传统的CPU+MAC控制器+PHY设计的网传输有效数据率(除去协议的数据)。测试方法为:将固定数据量的数据按不同的帧长度发送,查看网络使用率以及发送所需时间。图6为交换式设计千兆网发包时的有效数据率,由于帧间隔和传输前导的存在,帧长度越大使用效率越高;PC电脑千兆网采用UDP发包,由于协议栈消耗资源等因素,效率较低。
图5 器件传输延迟测试Fig.5 Schematics of the PHY transmission delay test.
图6 有效数据率比较Fig.6 Comparison of the effective data rate.
测试结果表明,千兆以太网连接稳定,经过1012比特数据测试,未发现误码现象,系统误码率<10–12。实验证明,基于千兆以太网的设计把FPGA的高速数据处理能力和 PHY的驱动能力有效地结合起来,是一种成功的高速数据传输方案。
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 徐 昊, 刘振安, 卢云鹏, 等. 核技术, 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