李晗,杜明玉
(1.武汉邮电科学研究院,湖北 武汉 430074;2.武汉虹信通信技术有限责任公司,湖北 武汉 430205)
光纤分布系统中光口模块和MAC控制器的设计与实现
李晗1,杜明玉2
(1.武汉邮电科学研究院,湖北 武汉 430074;2.武汉虹信通信技术有限责任公司,湖北 武汉 430205)
在光纤分布系统中,为了解决射频信号覆盖和数据高速传输的问题,提出用光纤作为传输媒介,通过MAC控制器将监控数据封装成以太网帧在光口上传输的方法。对光纤分布系统实际的组网需求、信号覆盖和扩展性问题进行了研究,经测试,验证了使用FPGA模拟MAC控制器进行底层链路设计的可行性。不但可以节约成本,在FPGA资源够用的情况下,理论上可以无限扩充MAC控制器的数量,大大增加了系统的可扩展性,满足了灵活的组网需求。
MAC控制器 FPGA 光纤分布系统
现如今4G网络已成为移动网络的主流,其建设重点由广度覆盖转向了深度覆盖及网络优化。光纤分布系统有助于解决目前网络覆盖以及优化问题,该系统可以直接把各种通信制式的无线信号转换成光信号,通过光纤传输到覆盖区,实现网络的深度覆盖。光纤分布系统一般由MU(Main Unit,近端单元)、EU(Extended Unit,扩展单元)、RU(Remote Unit,远端单元)三部分组成。在MU和EU上均有两个相同的光口模块,RU只有一个光口模块,所以1个MU主设备可以管理4台RU从设备,因此光口数量是随着从设备数量呈正比例增长的。为了便于今后设备的扩容升级,设计光口MAC(Media Access Control,媒体介入控制)控制器时必须使其具备较好的扩展性。在这些设备中,光纤是主要的传输媒介,MAC控制器是实现CPU封装数据帧在光纤中传输的必要前提,在光纤分布系统中,CPU片内外设的MAC控制器资源往往不够用,为了满足需求,时常需要增设外部MAC控制器的单芯片方案,但这种方式并不利于设备的扩容和维护。本文旨在通过一种FPGA(Field-Programmable Gate Array,现场可编程门阵列)片内模拟MAC控制器的方式来实现对光口物理层的接入,从而实现各个设备之间的互通。理论上,只要FPGA的资源够用,MAC控制器的数量就可以无限增加,则可高度满足设备今后的扩容需求,大大提高系统的灵活性。
在光纤分布系统中,用户需要给RU设备配置各种监控数据。首先,用户将PC上位机软件通过以太网、串口或者2G/3G/4G Modem连接登陆到MU设备,然后在PC端设置各种监控数据,发送给MU设备;近端通过光口将监控数据发送给EU;扩展单元最后将各种监控数据发送到RU。所有的监控数据在各个设备之间都是依靠光口来传输的,光口模块接收功能是先将从光口接收到的数据进行解帧,得到HDLC(High-level Data Link Control,高级数据链路控制)、DATA数据后将其发送给PPC模块,同时将得到的I、Q数据发送给DUC。发送功能是把PPC的HDLC和DATA数据,DDC的I、Q数据经过协议组帧后发送到底层光口。该设计满足CPRI(Common Public Radio Interface,通用公共无线电接口)协议,实现了链路之间的数据转发和上行求和以及下行广播。其中HDLC和DATA数据是上层链路的数据。CPU主控制器与底层光口之间需要通过MAC控制器来进行组帧、发送、接收、解帧,从而建立起标准的通信链路。光口模块总体设计框图如图1所示。
MAC控制器的系统架构如图2所示,主要由状态模块、控制模块、MAC发送模块、MII(Media Independent Interface,介质无关接口)管理模块、MAC接收模块、主机接口模块构成。
光口模块实现最底层数据流的封装与解析,将监控数据与业务数据分开,而MAC控制器实现数据链路层的封装,提供给CPU一个通用的TCP/IP协议数据链路层接口。光口模块和MAC控制器分别实现了对底层链路和上层协议的封装,CPU即可在光纤这种载体上通过标准的TCP/IP协议来建立多个设备之间的链接,上层软件研发人员则无需关心底层链路的传输媒介,有效降低了软硬件之间的耦合性。
本设计既满足了HDLC数据和Datalink数据的传输,还提供给了上一层MAC控制可以访问的接口,能够实现较好的封装性,同时给了软件一个通用的访问接口,有效降低了系统软硬件之间的耦合度。
3.1 MUX模块
MUX模块的主要任务是检测本机工作模式(包括正常状态和环网),完成光口数据时钟域的转换,BFN、HFN的同步检测,其结构框图如图3所示。光口0和1的处理方法没什么差别,通过FIFO(First Input First Output,先进先出队列)来实现时钟域的转换,FIFO的写时钟为光口的输入时钟,FIFO的读时钟为光口的处理时钟。通过光口的BFN状态可以检测本机的工作模式,Link的BFN状态正常则表示是环网模式,否则则是正常的组网方式(链性、星形组网等)。其中Link1表示MU,Link0表示RU。
3.2 数据接收模块
数据接收模块需要完成包括解帧、IQ数据和HDLC数据的分离、IQ数据的解码、HDLC数据的时钟域转换、光口误码检测等。对于IQ数据处理部分,根据数据包帧格式,在同步状态下把IQ数据分离出来,通过映射表对IQ数据进行解码,并同时解析出帧头标志和基帧指示。对于HDLC数据,根据数据包帧格式在同步状态下把HDLC数据分离出来。由于HDLC的链路速率和光口的处理时钟速率不同,因此是通过FIFO来完成时钟域的转换的。图4为数据接收模块框图。
图1 光口模块内部结构图
图3 MUX模块实现框图
图2 MAC控制器的系统架构
3.3 HDLC数据处理模块
HDLC数据处理模块由HDLC数据接收模块和数据发送模块构成。
HDLC接收处理包括HDLC数据检测,DATA数据检测,SCC、PPC和HDLC数据转发。HDLC接收处理,其数据帧头为3个字节连续的0x7F,帧尾为一个字节的0x7F;而DATA数据的帧头为3个字节连续的0x58,帧尾为一个字节0x58。由于处理HDLC和PPC的时钟不一样,所以PPC在接收HDLC数据和DATA数据时都用FIFO来完成时钟域的转换从而实现同步。图5即为HDLC数据接收处理模块。
单光口的HDLC数据发送的原理框图如图6所示,由图可知,由于处理时钟的频率不相同,两个FIFO是为了实现HDLC数据和DATA数据的时钟域转换与同步。之后将这些数据经过碰撞检测后即可发送。在MU设备中没有Link的转发数据,因此只用进行HDLC和DATA数据的碰撞检测;而RU设备需要进行Link数据的碰撞检测。
3.4 数据发送模块
如图7所示是数据发送模块的原理框图,包括IQ数据的组帧、求和、编码和时钟域的转化等功能。由于HDLC数据是串行模式,而组帧的数据是并行模式,且工作速率也不一样,因此需要FIFO来完成时钟域的同步与串行并行之间的转换。在MU设备中,Link0和Link1链路都会对IQ数据进行编码。而在RU设备中,Link0会对来自Link1方向的IQ数据进行求和、编码操作,而在Link1方向上和MU一样,只进行编码,不求和。最后经过既定的数据帧格式组帧,就可以将数据发送到底层光口上了。
图4 数据接收模块框图
图5 HDLC数据接收处理
图6 HDLC数据发送处理
由于FPGA具有较好的灵活性,因此,在光纤分布系统中,基于FPGA开发的MAC控制器能有效地提高系统的扩展性。MAC控制器通常由状态模块、控制模块、MAC发送模块、MII管理模块、MAC接收模块、主机接口模块构成。其中状态模块和控制模块都是控制和管理发送与接收功能的。MII管理模块用于控制MAC与外部PHY之间的接口,用于对PHY(Physical Layer,物理层)进行配置并读取其状态信息。主机接口模块主要是用于以太网的上层协议(如TCP/IP协议)与MAC控制器之间的数据交换,通过该接口,上层协议可以读取MAC的状态信息、设置MAC工作模式。MAC收发功能即是设计的核心,主要实现发送帧、接收帧、封装帧、解封装,功能框图如图8所示。其中帧计数功能表示按照发送、接收、帧长度、目的地址类型(单播、组播、广播)分别统计包的数量。
4.1 发送模块
MAC发送模块从发送缓冲区读取准备发送的数据,根据800.3以太网传输协议,对原始数据添加相应的字段,包括前导码、CRC(Cyclic Redundancy Code,循环冗余校验)校验和填充字段等,通过这些操作将源数据封装为以太网帧。根据以太网RMII(Reduced Media Independent Interface,简化媒体独立接口)接收的时序传输要求,将一帧数据发送给光口模块,然后经过光口模块的协议处理以及信号转换,数据即可在光纤中传输。与此同时,一帧数据实时的状态信息也会一并通过MAC状态模块反馈给上层协议。MAC发送模块的结构框图如图9所示。
发送端的主要功能包括:
◆判决帧长度。长度不足最短帧长度(64字节,包含FCS)时,补充数据至最短帧;长度大于1 518字节时,为巨帧,若不支持巨帧功能,则抛弃。
图7 数据发送模块设计框图
图8 MAC控制器系统框图
图9 发送模块设计框图
◆发送数据缓存。缓存大小一般最少配置成最大帧长度的两倍,所以由是否支持巨帧功能决定,若支持巨帧,缓存要配置成很大;否则缓存只需大于“1 518×2”字节即可。
◆CRC32计算。计算得到4字节的校验码,补充到帧尾。
◆在帧头处添加8字节前导码,前导码固定为“55555555555555D5”。
◆根据以太网接口情况,按照标准协议转换帧格式并发送。
4.2 接收模块
MAC接收模块的主要目的是完成数据帧的接收、解帧和错误校验。首先从MII数据接口接收从底层光口发过来的数据,识别数据包中的前导码和设备的目的地址,从而决定是否将当前收到的数据交给接收缓冲区,并对这一帧数据进行CRC校验。与此同时,MAC接收模块还会监测该过程中可能发生的各种状况,并在接收结束后产生接收状态信息rx_status,用户可以通过读取该状态信息来得知该帧数据是否接收正常。MAC接收模块的结构框图如图10所示。
接收端主要功能包括:
◆帧格式解析。按照输入数据的以太网接口协议解析以太网帧。
◆去掉帧头处8字节前导码。
◆CRC32计算。包含FCS的以太网帧通过CRC32计算后,结果输出为0,若不为0则表示以太网帧在之前的传输中存在误码。存在错误的帧应抛弃,正确帧则去掉FCS向后传输。
◆接收数据缓存,和发送端一样。
◆目的地址判决。MAC需要解析以太网帧的目的地址(一般在多输入的情况下发挥作用),再按照目的地址过滤掉不需要的包。同时,还有需求多种目的地址包的情况,则可以按照目的地址做简单的优先级判定,优先放过需求的包。
图10 接收模块设计框图
对FPGA端MAC控制器的设计进行了仿真,testbench文件在以太网端口模拟了以太网报文的发送,在CPU端用代码模拟了CPU总线操作FPGA总线的过程,且在此处进行了环回。以下是RGMII接口的仿真时序,发送功能仿真如图11所示,接收功能仿真如图13所示。
图11、图13是接口的RGMII收发时序仿真图,通过对比标准的RGMII时序(图12、图14),图11和图13的时序仿真图显示,在上升沿和下降沿都采集了数据,上升沿发送RXD[3:0]和TXD[3:0]数据,下降沿发送RXD[7:4]和TXD[7:4]数据。在发送端,TX_EN管脚上处理TX_ER和TX_EN信号,TX_CLK管脚的上升沿发送TX_EN数据,下降沿发送TX_ER数据;同样,接收时序也是满足该设计要求的。这些都符合标准RGMII时序要求。经过在FPGA内部做时序约束后,在实际测试过程中是可以建立稳定的通信链路的。综上可知,该系统设计符合标准的RMII时序,因此MAC控制器设计符合802.3规范,是完全兼容单芯片MAC控制器方案的设计,满足设计要求。
图11 发送模块时序仿真
图12 标准RGMII接口发送时序图
图13 接收模块时序仿真
图14 标准RGMII接口接收时序图
基于FPGA设计了一种符合802.3规范的MAC控制器以及符合CPRI协议的光口模块。经实验表明,该设计可以满足上层监控数据通过光口传输的要求。提出的这种应用于光纤分布系统中光口数据传输的专用MAC控制器设计,舍弃了外部板载MAC控制器SOC(System-on-a-Chip,片上系统)的方案,将MAC控制器集成于FPGA内部,通过IP核来实现MAC控制器模拟,降低了系统成本,增加了系统的扩展性、灵活性,更加适用于光纤分布系统中底层光口通信的处理。
[1] 刘君,常明,秦娟,等. 基于硬件描述语言(VHDL)的数字时钟设计[J]. 天津理工大学学报, 2007,23(4): 40-41.
[2] IEEE Std802.3, 2000 Edition. Part3: Carrier sense multiple access with collision detection(CSMA/CD) access method and physical layer specif i cations[S]. 2000.
[3] 廖日坤. CPLD/FPGA嵌入式应用开发技术白金手册[M]. 北京: 中国电力出版社, 2003:212-218.
[4] 王开军,姜宇柏. 面向CPLD/FPGA的VHDL设计[M]. 北京: 机械工业出版社, 2006: 28-65.
[5] 吴善兵,罗家融,吴一纯,等. 基于CP2200的嵌入式以太网模块设计[J]. 微计算机信息,2009(35): 54-55.
[6] 赵保经. 中国集成电路大全[M]. 北京: 国防工业出版社, 1985.
[7] 高吉祥. 电子技术基础实验与课程设计[M].北京: 电子工业出版社, 2002.
[8] 康华光. 电子技术基础[M]. 北京: 高等教育出版社,2002.
[9] 宋春荣. 通用集成电路速查手册[M]. 济南: 山东科学技术出版社, 1995.
[10] 阎石. 数字电子技术基础[M]. 4版. 北京: 高等教育出版社, 1998.
[11] 高泽华,高峰,林海涛,等. 室内分布系统规划与设计——GSM/TD-SCDMA/TD-LTE/WLAN[M]. 北京: 人民邮电出版社, 2013.
[12] 李红卫,吴静怡,夏贵进,等. 光纤通信传输典型设备可靠性模型研究[J]. 半导体光电, 2015(5): 796-799. ★
Design and Implementation of Optical Interface Module and MAC Controller in Optical Fiber Distribution System
LI Han1, DU Mingyu2
(1. Wuhan Research Institute of Post and Telecommunications, Wuhan 430074, China;2. Wuhan Hongxin Communication Technology Co., Ltd., Wuhan 430205, China)
In order to deal with RF signal coverage and high-speed data transmission in the optical fi ber distribution system,a method was proposed, in which fi ber is used as the transmission medium and the monitoring data is encapsulated into Ethernet frame by MAC controller to be transmitted on optical interface. The networking requirements, signal coverage and scalability of optical fi ber distribution systems were investigated. Based on tests, the feasibility that to use FPGA simulates MAC controller to design the underlying link was veri fi ed. This not only saves the cost, but also in fi nitely expands the number of MAC controller in theory, greatly increasing the system expandability and satisfying the fl exible networking requirements.
MAC controller FPGA optical fi ber distribution system
10.3969/j.issn.1006-1010.2017.17.010
TN929
A
1006-1010(2017)17-0048-07
李晗,杜明玉. 光纤分布系统中光口模块和MAC控制器的设计与实现[J]. 移动通信, 2017,41(17): 48-54.
2017-06-26
责任编辑:文竹 liuwenzhu@mbcom.cn
李晗:硕士研究生就读于武汉邮电科学研究院通信与信号系统专业,现于武汉虹信通信技术有限责任公司实习,主要从事嵌入式软件开发,光纤分布系统无线覆盖相关的应用研究等工作。
杜明玉:高级工程师,毕业于华中科技大学,现任职于武汉虹信通信技术有限责任公司,从事无线网络优化设备相关研究工作,主持过行业标准编写,并获得了多个通信相关专利。