基于BCM5396级联的千兆以太网交换设计及测试验证
2022-02-20詹思维
宛 然,张 阳,詹思维
(中国航空工业集团公司西安航空计算技术研究所,陕西 西安 710065)
0 引言
随着核心处理平台的综合化程度越来越高,其内部各硬件单元的处理器节点数量逐渐增多,单片以太网交换芯片所提供的端口数量及交换容量已无法满足系统内交换需求。本文提出了一种基于两片BCM5396以太网交换芯片级联的设计方案,可灵活扩展多路以太网接口,提高了系统内以太网的交换能力。同时,由于本设计体积小、集成度较高、布局布线复杂,当以太网数据传输流量达到设计上限时,以太网接口的物理特性将会对通信质量产生明显的影响。因此,对该方案交换机的每一个以太网接口进行了信号一致性测试,验证传输链路上的电气性能指标是否满足千兆以太网1000BASE-T标准要求。测试结果表明以太网交换机接口信号质量达到标准要求,通信稳定可靠,交换容量满足设计指标需求。
1 硬件设计
1.1 总体架构
千兆以太网交换以2片BroadCom公司的BCM5396级联作为交换核心,构建了30路以太网交换网络;主要硬件电路包括以太网交换电路、物理层(PHY)电路、变压器电路、微处理器交换配置电路、电源转换电路和时钟电路等。
1.2 以太网交换电路
以太网交换电路由2片BCM5396网络交换芯片级联构成。BCM5396是一款二层千兆以太网交换芯片,内置16个1.25 G的SerDes/SGMII接口(串行千兆介质独立接口),最大交换容量为16 Gbps,可支持4 K MAC(介质访问控制)地址搜索表及9 728字节巨帧,支持SPI(串行同步通信接口)和EEPROM(带电可擦可编程只读存储器)两种配置接口。每片BCM5396的15个SGMII外接PHY芯片,1个SGMII接口通过软件配置为SerDes模式作为级联端口。
在本设计中,BCM5396通过SGMII接口连接PHY芯片进行数据传送。数据收发端各有一对差分信号线S_OUT+/-和S_IN+/-,发送和接收信号需要串联0.1 uF或0.01 uF的AC耦合电容,在SGMII接口模式下发送端不需TXCLK时钟输入,MAC侧BCM5396有参考时钟,PHY无须提供接收端参考时钟RXCLK,收发都可从数据中恢复参考时钟。BCM5396通过管理配置接口MDC/MDIO对PHY芯片寄存器进行轮询访问,以控制PHY的行为或获取 PHY 的状态[1]。
BCM5396提供17个硬件配置管脚,可以通过外部上拉或下拉跳线设计完成交换芯片的初始化配置,省去软件配置步骤。大部分硬件配置管脚可根据设计需要的功能、接口类型灵活选择,在本设计中重点关注以下几个配置管脚。
(1)AUTO_POLL_DIS管脚上拉关闭PHY轮询功能。使用PHY轮询功能时,交换芯片每个SGMII接口外接的PHY地址应与SGMII接口顺序一一对应,否则交换芯片将无法读写PHY寄存器。由于本设计中交换芯片使用了级联端口,无须外接PHY,因此应关闭轮询功能。
(2)CPU_EEPROM_SEL管脚上拉选择SPI接口配置交换芯片,若该管脚下拉则选择EEPROM配置。
(3)HW_FWDG_EN管脚上拉使能数据转发功能。
1.3 PHY电路
PHY电路用来连接MAC层到物理媒介,实现对被发送和接收信息的编解码及并串/串并转换功能。物理层PHY芯片选用MARVELL公司生产的88E1111,支持10 Mbps、100 Mbps、1 000 Mbps 3种速率自协商,支持全双工工作模式,与MAC层接口有GMII(吉比特介质独立接口)、RGMII(简化吉比特介质独立接口)、SGMII等类型,本设计中采用SGMII接口与MAC层连接。
88E1111有7个配置引脚CONFIG[6∶0],其中大部分常量可通过软件进行配置,PHYADR[4∶0]、HWCFG_MODE[3∶0]、SEL_TWSI则需通过硬件配置完成。
PHYADR[4∶0]为PHY地址配置,每片BCM5396连接的15个PHY芯片按Port0至Port14的顺序地址从“00000b”至“01110b”,每个PHY配置一个独立地址。HWCFG_MODE[3∶0]为硬件配置模式,配置了88E1111的工作模式。本设计中88E1111工作在SGMII(不需参考时钟)模式下,HWCFG_MODE[3∶0]=“0100b”。SEL_TWSI为接口选择配置,为0时选择MDC/MDIO接口,为1时选择TWSI接口。本设计采用MDC/MDIO接口对PHY芯片寄存器进行读写,因此SEL_TWSI=“0b”。
1.4 变压器电路
变压器电路用于实现信号耦合、信号增强、高压隔离、电磁干扰抑制等功能。本设计选用“迅达”电子的双路千兆以太网变压器LT2808,可满足以太网信号链路传输低插入损耗、高返回损耗及电磁干扰(EMI)抑制要求,具有耐压能力保护芯片避免雷击感应的浪涌损伤,同时可节约布板面积,实现差分信号的高效传输。
在设计变压器电路时需注意PHY芯片发送、接收端的驱动类型,通常分为电压型PHY和电流型PHY。若使用电压型PHY,则变压器中心抽头通过电容直接接地;若使用电流型PHY,则中心抽头需上拉接偏置电压,为PHY提供足够的驱动能力,否则将出现网络通信故障。本设计采用的88e1111为电流型PHY芯片,因此将中心抽头上拉至2.5 V电平。
1.5 微处理器交换配置电路
配置电路用来实现以太网交换电路的配置,完成以太网交换主从模式配置、程序加载方式配置、时钟频率配置、接口工作模式配置等功能,通常采用EEPROM或外部主机方式配置。本设计中采用微处理器进行配置,具有低成本、低功耗、设计简单、可靠性高、灵活性高等优点,除配置功能外,还可实现每路以太网端口的实时监控,读取端口连接状态、连接速率、半双工/全双工状态等寄存器信息,并通过I2C总线将监控状态上报给上位机,更有利于交换机板卡的调试维护及健康管理。
微处理器选用TI公司的CortexTM-M3系列芯片,最高工作频率为80 MHz,内置128 KB FLASH、20 KB SRAM,具有2个SPI串行同步通信接口、2个I2C串行通信接口、3个串行异步通信接口。采用1路SPI接口复用片选信号对两片BCM5396进行交换配置,微处理器为主设备,两个交换芯片为从设备,微处理器可分时访问2个交换芯片。
1.6 时钟电路
以太网交换芯片各需提供2路2.5 V电平、25 MHz频率的时钟,PHY芯片时钟采用8片2.5 V电平、25 MHz频率的独立时钟源,频率-温度稳定度≤±50 ppm,通过时钟驱动器为30片PHY提供时钟。微处理器外部时钟频率为4~16 MHz,本设计中使用8 MHz时钟输入,经锁相环PLL倍频后,系统时钟为48 MHz。
1.7 电源转换电路
交换机板卡外部输入电压为28 V直流电源,通过DC/DC隔离电源实现28 V到5 V的电源转换。板卡的工作电源有 3.3 V、2.5 V、1.2 V,3.3 V 为微处理器及串口供电,采用1片线性电源TPS74401实现;2.5 V和1.2 V为交换芯片和PHY芯片供电,所需的最大电流为8.5 A和11 A,选用2片LTC公司的电源转换芯片LTM4644,可提供的最大电流为16 A,满足设计要求。
2 软件设计
BCM5396可通过SPI接口和EEPROM接口进行交换软件配置,两种接口复用同一管脚,通过寄存器CPU_EEPROM_SEL选择接口模式。本设计中采用SPI接口配置方式,软件开发环境为Keil5。
2.1 SPI接口
BCM5396的SPI接口分为快速和标准两种模式,通过命令字区分,在实现中两种模式不可同时使用,微处理器必须一直使用同一模式传输。
本设计中采用标准模式,MODE bit(bit4)=0,同时规定了bit[7∶5]=011 b。BCM5396作为一个单片系统,CHIP_ID=000 b。bit[0]为读写控制位,0表示读,1表示写。因此该模式中,读操作命令字为60 h,写操作命令字为61 h。
2.2 读写流程
标准SPI模式允许单字节读和多字节写操作,基于CPU轮询方式监视进程。读操作的格式为〈读命令字〉 〈寄存器地址〉,写操作的格式为〈写命令字〉 〈寄存器地址〉 〈数据〉。BCM5396的寄存器采用分页机制,每页地址空间为256个字节,对某一寄存器进行读写操作时,需要先定位至该寄存器的页,再进入寄存器位于页的地址中。
当读一个寄存器时,首先读SPI状态寄存器(地址FEh)查询SPIF是否为0,若为0,则在页寄存器(地址FFh)写入要读取的寄存器的页,再读取该寄存器位于页的地址,然后再次读SPI状态寄存器查询RACK,RACK为1,则可以读取SPI数据I/O寄存器,完成读流程。
当写一个寄存器时,首先同样是读SPI状态寄存器查询SPIF是否为0,若为0,则在页寄存器写入要写的寄存器的页,再在该寄存器位于页的地址中写入要写的数据,完成写流程。
2.3 级联初始化配置
BCM5396级联端口初始化配置分为两种方式。第一种是将级联端口配置为SGMII模式,在该模式下两片BCM5396的级联端口有主从之分。具体配置操作为将主级联端口对应的Serdes / SGMII Control 1寄存器配置为0x01F0h,SGMII主从位配置为主,并使能自动探测。从级联端口无需进行任何配置。第二种是将级联端口配置为FIBER模式,在该模式下两个级联端口直连,不区分主从。具体配置操作为分别将两个级联端口对应的Serdes /SGMII Control 1寄存器配置为0x01C0h,SGMII主从位配置为普通模式,关闭自动探测,FIBER Serdes模式开启。
在软件设计中对以上两种方式均进行了验证,结果显示FIBER模式下的级联端口通信更加稳定。
3 信号一致性测试验证
千兆以太网1000BASE-T标准使用4对双绞线同时进行双向信号传输,测试时需对每个以太网接口的每对双绞线都进行测试。每对传输线上的数据传输速率达到250 Mbps,由于采用5电平的PAM5信号编码方式,实际上每对差分线上的波特率为125 MBaud,因此可选用1 GHz以上带宽示波器[2]。为了更方便地将每路千兆以太网RJ45接口上的信号引出,加入传输线模型,提供信号端接收并进行以太网信号的分析,测试使用Agilent公司的N5395C以太网测试夹具并配合以太网一致性测试软件。
千兆以太网1000BASE-T信号一致性测试项目主要有峰值电压测试、模板测试、电平衰落测试、失真测试、共模电压测试、主模式抖动测试等,测试时需针对不同测试项目将被测以太网接口对应的PHY芯片设置在不同测试模式下(Test Mode)。根据IEEE802.3以太网标准,Test Mode 1为发送波形测试,Test Mode 2为主模式发送抖动测试,Test Mode 3为从模式发送抖动测试,Test Mode 4为失真测试[3]。
3.1 峰值电压、模板、电平衰落测试
峰值电压、模板、电平衰落测试目的是为了验证以太网端口的驱动能力,是否能够将信号传输到较远的距离,也是保证输出端能够发送标准的以太网电平,电平过低会导致驱动能力不足,电平过高会在链路中引入其他故障或干扰[3]。
将被测以太网接口对应的PHY芯片1000BASE-T控制寄存器设置为Test Mode 1,使用以太网一致性测试软件进行测试,波形如图1所示。
图1 峰值电压、模板、电平衰落测试波形
按照IEEE802.3以太网标准要求,峰值电压测试A、B点峰值电压为670~820 mV,A、B点峰值电压差值幅度小于1%,C、D点峰值电压与A、B点峰值电压平均值1/2的差值小于2%。模板测试要求以太网信号眼图未压模板。电平衰落测试要求G点、H点分别与F点、H点的电压比值大于73.1%。实际测试结果均在电平要求范围内,测试通过。
3.2 失真测试
将被测以太网接口对应的PHY芯片1000BASE-T控制寄存器设置为Test Mode 4,峰值失真电压≤10 mV即测试合格。实测峰值失真电压为2.9 mV。
3.3 共模电压测试
共模电压测试需在以太网的差分信号上增加外部扰动信号,将被测以太网接口对应的PHY芯片1000BASE-T控制寄存器设置为Test Mode 4,共模输出电压绝对值小于50 mV即测试合格。实测共模电压为3.8 mV,测试通过。
3.4 主模式抖动测试
抖动过高会导致误码率增大,降低数据传输的精确性,影响以太网网络传输性能。
将被测以太网接口对应的PHY芯片1000BASE-T控制寄存器设置为Test Mode 2,主从手动配置使能位设置为手动主从配置,主从配置位设置为主模式,使用以太网一致性测试软件进行测试。在无滤波条件下抖动峰峰值小于1.4 ns,有滤波条件下抖动峰峰值小于0.3 ns即测试合格。实测无滤波抖动峰峰值为0.215 ns,有滤波抖动峰峰值为0.186 ns,测试通过。
4 结语
本文设计了一种基于两片BCM5396级联扩展30路端口的千兆以太网交换机,详细阐述了交换机的硬件电路设计与软件开发流程,介绍了千兆以太网1000BASE-T标准的信号一致性测试方法,并以此方法对交换机板卡的信号完整性进行了测试验证。测试结果表明以太网交换机接口信号质量达到标准要求,通信稳定可靠,交换容量满足设计指标需求。但是,受限于芯片选型,本设计未能实现交换机的高度集成,布板面积略大,整体功耗略高。下一步将继续开展小型化、低功耗交换机的设计研究。