APP下载

基于交换芯片MAC 与PHY 数据通信系统的设计与研究

2020-05-27黄景毅

通信电源技术 2020年6期
关键词:数据通信寄存器数据包

黄景毅

(广州海格通信集团股份有限公司,广东 广州 510663)

0 引言

随着以太网技术的发展,人们的生活也发生了巨大的变化,从100M 宽带到如今的光纤直接入户。数据在光纤中传输速度比在网线中要快得多,光纤直接入户,离用户距离越近,中间经过转换越少,则数据传输的速度也会更快,所以光电转换是必不可少的环节。本文介绍了一种交换芯片MAC 与PHY 数据通信系统的设计,主要是由交换芯片通过PHY[1]转换出光口。

1 主要接口介绍

1.1 MAC

MAC(Media Access Control),即媒体访问控制子层协议[2]。该协议位于OSI 七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。

1.2 RGMII

RGMII(Reduced Gigabit Media Independent Interface)是Reduced GMII(吉比特介质独立接口)[3]。RGMII 均采用4 位数据接口,工作时钟为125 MHz,并且在上升沿和下降沿同时传输数据,因此传输速率可达1 000 Mb/s。

2 系统的设计及分析

本文设计了一种基于交换芯片MAC 与PHY 数据通信系统。该系统是在通用交换芯片实现基本网口功能的基础上,再扩展出光口,以便能连接光纤,这样普通网口和光纤都能使用。

图1 为数据通信系统的系统连接框图。该系统使用一个交换芯片实现基本100M 网口功能,同时交换芯片的RGMII 口与PHY 相连接进行数据通信,再通过PHY 转出光模块所需的SFP 信号,从而能连接光纤。交换芯片和PHY 芯片由MCU(选用STM32F103 系列芯片)控制,并通过SMI 接口进行配置。

图1 系统框图

SMI:串行管理接口(Serial Management Interface),包括MDC 和MDIO 两条信号线。MDIO 为管理接口,用来读/写芯片的寄存器,以控制其行为或获取其状态,MDC 为MDIO 提供时钟。

根据交换芯片需要有多路100M 网口和至少有1 路1 000M 网口的需求,选用了BROADCOM 的BCM53242,此芯片为第九代RoboSwitch™基于经过现场验证的BCM5324 器件进行设计。它完全符合IEEE 802.3 和IEEE 802.3x 规范,并包含24 个全双工10BASE-T/100BASE-TX 快速以太网收发器,支持高级电缆诊断功能。此外,BCM53242 还具有两个GMII/RGMII/TBI 接口,可提供灵活的10/100/1000BASE-TX/FX 连接,通过RvMII 或MII 接口包含用于CPU 连接的附加MAC。

PHY 则选用了能转换出SFP 信号的MARVELL 的88E1111[4]。该芯片为千兆以太网[5]PHY 芯片,支持GMII、RGMII、MII 等接口,并能转出SFP 信号,具备4 个GMII 时钟模式,支持自适应功能、超低功耗模式、功率降低模式,MCU 可通过MDC/MDIO 接口对芯片进行配置。

2.1 硬件设计

根据系统框图进行相关硬件设计,STM32F103 对BCM53242 和88E1111 进行管理和配置,BCM53242 与88E1111 通过RGMII 接口进行数据通信,再由88E1111的SFP 数据口连接到光模块,由此实现BCM53242 所连接的网口与外接光纤进行通信。

由于STM32F103 使用3.3 V 供电,而BCM53242和88E1111 使用2.5 V,需要在MDC/MDIO 信号上增加电平转换芯片,电平转换后才能使得芯片的电平匹配。BCM53242 和88E1111 都支持RGMII,所以数据接口只需要接收和发送数据各4 个、随路时钟接收和发送信号各1 个、使能和错误报送信号各1 个。88E1111 的SFP 信号与光模块之间需串接10 nF 电容,以保证与光模块转换出信号的隔离和耦合效果。BCM53242 要求的PHY 地址不能随意使用,如果使用多个PHY 芯片,需地址按0x19H、0x1AH 逐个加1 递增。图2 为88E1111的信号连接图。

图2 88E1111 的信号连接图

2.2 数据通信分析

关于交换芯片与PHY 之间的数据通信,正常情况下只要电路供电正常、连接不出错,配置正确,在最初调试时也按以往调试交换芯片与PHY 通信情况进行,电路板在上电后数据通信没有问题。

在STM32 对BCM53242 配置好后,其所出的百兆网口通信无问题,RGMII 也能通过示波器检测到它们之间有数据通信。但当接上光模块后发现88E1111 的千兆口与交换芯片通信不正常。检查交换芯片的其他接口是能正常通信,因此排除交换芯片故障,PHY 芯片与交换芯片的硬件配置管脚也无问题,交换芯片是没有划分VLAN 的,所有接口都是可以相互连通的[4]。

经过仔细分析和重新对电路板进行查看,发现PHY 的千兆口接收灯有闪烁,说明PHY 已收到信号,但确不能与交换芯片正常通信。之后通过STM32 读取交换芯片和PHY 的MAC 接口接收寄存器,发现交换芯片根本接收不到数据包,而PHY 可以接收到数据包,但数据包都是错的。收发两个方向的情况不一样,对通信数据的信号质量和时序进行测量,交换芯片接收方向上,数据和时钟的上升延是对齐的,黄色为时钟信号,绿色为数据信号,如图3 所示。

图3 交换芯片接收数据和时钟

对PHY 的寄存器重新配置,增加发送给交换芯片数据的时延,如图4 所示(黄色为时钟信号,绿色为数据信号),让数据与时钟错开,交换芯片则可以接收到正确的数据包。

交换芯片发送给PHY 的数据包,均为错误包。测量该发送的数据时序,数据与时钟有错开,按理说应该是没有问题,但查看PHY 芯片资料,芯片对发送的时钟时延要求是大于1 ns,而交换芯片资料显示发送来的时钟的时延是小于0.5 ns,因此满足不了PHY 芯片对时延要求[5]。

图4 增加时延后的交换芯片接收到的时序

经过对PHY 资料进一步查阅,发现可通过对该芯片寄存器RGMII Transmit Timing Control 进行设置来增加发送端时钟与数据的时延,配置寄存器增加时延后,PHY 再也没有收到错误包。

BCM53242 与88E1111 之间的数据通信经过多次分析、测量和查阅相关资料,最终解决了无法进行正常数据通信的问题。

3 结论

通过本文所述基于BCM53242 与88E1111 之间的数据通信系统的设计和实际问题分析,可以看出不同交换芯片和PHY 之间实现数据通信功能时会略有差别,特别是不同芯片之间对时延的要求。只有根据实际功能、芯片时序要求来完成电路的设计和功能的实现,才能满足产品的实际需求。

猜你喜欢

数据通信寄存器数据包
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
Lite寄存器模型的设计与实现
二进制翻译中动静结合的寄存器分配优化方法
数据通信网络维护与网络安全问题探讨
C#串口高效可靠的接收方案设计
移位寄存器及算术运算应用
关于数据通信电源现状和高压直流供电新系统的分析
基于EDA技术的通用异步收发器设计
一种高效可靠的串行数据通信协议及处理算法