一种TDM与MII接口转换的实现方法

2010-06-14 01:38潘晨昕陈祺云
无线电工程 2010年1期
关键词:双口接收数据信号线

潘晨昕,陈祺云

(中国电子科技集团公司第五十四研究所,河北石家庄050081)

0 引言

长期以来,实时业务和数据业务在不同的网络上实现传输。实时业务主要经过SDH、PDH和PBX来传送;数据业务主要经过以太网和路由器来传送。近年来随着用户需求的多样化、网络管理的复杂化,以及市场竞争所带来的巨大成本压力,2种业务相互融合的需求越来越多。如何在电信网络上传输数据业务以及在IP网络上传输实时业务,已成为业内关注的重点。

为满足设计中远传芯片接口的需要,本文给出了一种TDM与MII接口转换的实现方法,为实时业务和数据业务的融合提供了一种硬件设计思路。

1 接口时序分析及映射关系

1.1 接口时序分析

TDM(时分复用)是指多路信号在同一个信道中传输而没有相互干扰,即各个信号在同一个信道内占用不同的时隙(Time Slot)。在E1信道中,每帧32时隙,每个时隙8 bit。本设计中使用不成帧的E1,即所有32个时隙都用来传输数据。

MII(Medium Independent Interface)接口是IEEE 802.3u规定的一种接口标准,是与介质无关的。其主要作用是连接MAC子层与物理层,负责MAC和以太网PHY之间的信息传递。MII具有16个信号线,可以分成发送数据、接收数据、网络状态3组信号线。

1.1.1 发送数据信号线

发送数据信号线由发送时钟TX CLK 、发送数据线TXD[3∶0]、发送使能TX EN 和发送错误TX_ER组成。TX _CLK是PHY提供的一个参考时钟,工作于2.5 MHz(对10 Mbit/s的网络)或者25MHz(对于100 Mbit/s的网络)。

1.1.2 接收数据信号线

接收数据信号线由接收时钟RX _CLK、接收数据线RXD[3∶0]、接收数据有效RX _DV 和接收数据错误RX_ER 组成。RX_CLK是PHY提供的一个参考时钟,工作于2.5 MHz或25 MHz。

1.1.3 网络状态信号线

网络状态信号线包括载波侦听信号线CRS和冲突信号线COL。CRS信号在发送和接收介质为非空闲状态时由PHY设有效,COL信号在介质中检测到冲突时有效。二者都不需要和时钟同步。

1.2 TDM-以太网帧的结构映射

以太网帧的前导域(Preamble)长度为7 byte,它的值固定为10101010(低位←高位),可以作为检测一帧的开始标志。SFD域长度为1 byte,值固定为10101011(低位←高位),可以作为帧头结束的标志。由于本设计完成的是以太网MAC功能,FPGA中对于源地址和目的地址可不做处理,因此将以太网帧的DA、SA和T/L字段均填充为净荷,映射到TDM帧的时隙,减少了数据的开销,提高了带宽利用率。

2 设计与实现

本设计中主要完成了TDM和以太网MII两种接口的转换、FCS的计算与检测以及封装和解封装等功能。用FPGA实现的TDM和以太网MII接口转换的处理流程图如图1所示。其中TDM和MII的收发处理模块对双口RAM的控制操作是设计的关键部分,它决定了该接口转换模块的性能。

图1 TDM和以太网MII转换处理流程

2.1 双口RAM的控制操作

双口RAM模块主要用来存储数据,作为一种性能优越的快速存储器件,适用于多端口操作的高速数字系统中。其优点是:提供2路完全独立的端口,每个端口都有完整的地址、数据和控制总线,容许2个端口可同时对同一单元进行存取。

双口RAM的控制操作是通过图1中的TDM和MII的收发处理模块共同完成的。在TDM接收处理模块中,收到的TDM比特流每一个NIBBLE往RAM中写一次。因为以太网的收发数据位宽为4 bit,所以对RAM的操作采用NIBBLE操作,从而避免了从RAM中取数时需要区分高低位的问题。以太网帧的发送处理模块从RAM中取数时,首先需要判断RAM的状态,当RAM状态为非空且在等待状态时才可以进入MII口的发送状态,MII的发使能置1,开始发送以太网的数据包。MII发送模块的状态图如图2所示。

图2 以太网发送处理模块状态图

相反的方向以太网帧的接收处理模块(状态图如图3所示)往RAM中写数时需要去掉以太网包的包头字段,本设计中的SFD字段为包头和净荷的分界,当收到“0101”时,如果后面的NIBBLE 为“1101”则说明包头字段结束,如果这时的MII接收使能为有效则开始以NIBBLE为单位向RAM中写入净荷,每写一次RAM地址加1,同样RAM有一个空满指示标识。在TDM的发送处理模块从RAM中读数时,如果RAM为非空则置读使能信号开始读数,读到的数据以TDM流的方式发送出去。由此通过对双口RAM的控制操作完成了TDM和以太网数据的存取和转发过程。

图3 以太网接收处理模块状态图

2.2 CRC的算法分析及实现

CRC校验码的编码方法是用待发送的二进制数据t(x)除以生成多项式g(x),将最后的余数作为CRC校验码。其实现步骤如下:

①设待发送的数据块是m位的二进制多项式t(x),生成多项式为r阶的g(x)。在数据块的末尾添加r个0,数据块的长度增加到m+r位时,对应的二进制多项式为xrt(x);

②用生成多项式g(x)去除xrt(x),求得余数阶数为r-1的二进制多项式y(x)。此二进制多项式y(x)就是t(x)经过生成多项式g(x)编码的CRC校验码;

③用xrt(x)以模2的方式减去y(x),得到二进制多项式xrt′(x),xrt′(x)就是包含了CRC 校验码的待发送字符串。

从CRC的编码规则可以看出,CRC编码实际上是将待发送的m位二进制多项式t(x)转换成了可以被g(x)除尽的m+r位二进制多项式xrt(x),所以解码时可以用接收到的数据去除g(x),如果余数为零,则表示传输过程没有错误;如果余数不为零,则在传输过程中肯定存在错误。同时xrt′(x)可以看作是由t(x)和CRC校验码的组合,所以解码时将接收到的二进制数据去掉尾部的r位数据,得到的就是原始数据。对于以太网的数据包采用了CRC-32校验。

CRC-32的生成多项式为:

本设计中CRC校验的实现采用了CRC-32的成熟模块,只需要根据以太网数据包的实际长度来确定CRC-32模块的使能和复位,从而完成CRC-32的校验。这里不再赘述。

2.3 模块性能验证

经试验验证,本接口转换模块的误码率小于10-7量级。设计中在双口RAM中缓存了8个帧,RAM的读指针从中间地址开始读取,即从第5帧开始;写指针从第1帧开始。当读写指针相等时认为RAM为空。因此RAM的缓存能力为8/2=4个帧的长度。

关于RAM的操作时延可以这样定义,即从数据放入RAM中到被读出所经过的时间间隔,用公式表示如下:

本设计中当RAM缓存了4个帧长度时,开始读取数据,又因为每帧的长度为512 byte,MII接口的时钟为25M,由此得到RAM的操作时延为:

由试验数据可以看出,双口RAM的操作速率较快,完全满足工程设计的要求。

3 结束语

随着数据业务在全球范围的爆炸性增长,整个网络的重心也在逐渐向IP网转移。如今的IP网可以说是无处不在,IP网作为未来网络主体架构的趋势也越来越明显。如何在IP网和TDM网之间达到快速、透明的对接是这个研究和应用领域的主流问题。本文中设计实现的TDM和MII接口的转换为解决电信网络向新一代IP网络的过渡提供了一种硬件方案。该转换模块已成功应用于实际工程中,工作性能稳定可靠。

[1]TU-T Recommendation G.704.Synchronous Frame Structures Used at1544,6312,2048,8448 and 44,736 kbit/s Hierarchical Levels[S],1998.

[2]TCP/IP网络互连技术卷 I.原理协议和体系结构(第3版)(影印版)[M].北京:清华大学出版社,2000.

[3]黄智伟.FPGA系统设计与实践[M].北京电子工业出版社,2005.

猜你喜欢
双口接收数据信号线
迈腾B8L 轿车灯光系统应急模式控制策略及开关监测信号线作用研究
三类矩形微屏蔽线主模截止波长特性的矢量有限元计算
双口RAM在航天伺服系统中的应用
低复杂度多输入多输出雷达目标角度估计方法
基于LoRa的低能耗物联网技术研究
聊聊蓄电池的那点事儿小小信号线也能让蓄电池亏电
Matching mechanism analysis on an adaptive cycle engine
单片机模拟串口数据接收程序的实现及优化
一种基于双口RAM的冗余系统通信方法
基于ESPRIT的ULA波达方向估计改进算法