- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
以太网到多路E1适配电路设计及FPGA实现
适配电路的一侧为MII标准以太网MAC接口,采用100MHz/全双工模式,另一侧是8路E1(HDB3)差分接口。发送方向将以太网数据封装为HDLC帧,反向复用到1~8路可配E1信道传输,接收方向同步多路E1,还原出以太网数据。带宽从2MHz到16MHz(1~8路E1)可配,接收侧多路E1之间可以容纳16毫秒的延时。
鉴于目前国内类似产品较少,而ASIC开发成本较高,本电路采用VHDL编程→FPGA实现设计流程。
1反向复用定义
反向复用的基本概念就是把一路高速数据适配到多路低速信道中传输,提供相当于多路低速之和的传输带宽。对于点对点通信,主要关心以下几点性能。
1.1 带宽利用率
低速信道在传输高速数据的同时,必然有附加的开销,会影响带宽利用率。在本设计中,以太网包进入适配电路后封装成HDLC帧需要四字节的附加信息。E1帧在传输HDLC数据的同时要携带的同步信息,占用6.25%带宽。综合上述两点,有效数据平均带宽利用率大约在90%。
1.2 容纳延时
由于各路低速信道在传输过程中经历的路径不同,到达对端后各路间会有延时,设计中要考虑如何消除这部分延时。
1.3 线路故障处理
算法设计中必需有同步保护状态机,保证传输信道出现错误时,算法不会产生过高的附加误码率,并且在信道错误恢复时,保证数据传输同步恢复。
1.4 数据包突发性
以太网的满发送速率为100MHz,而低速信道的最大可配带宽为16MHz,这将导致即使平均流量小于配置带宽,一个短时间内,接收的数据量还有可能远大于传输带宽。所以在以太网数据的输入侧必须设计高容量的缓存队列以容纳一定的突发数据包。
2 算法设计
以下就设计中一些核心电路的算法做具体说明。
2.1 以太网数据→多路E1反向复用
数据反向适配一般可以采用三种方式:包间插、比特间插和字节间插。所谓包间插就是指数据包到达后,连续检测各个E1信道,在第一个查到的空闲信道上顺序传输整个数据包,下一包到达后再重复这一过程。这种方式的优点是设计简单,在对端也不需要对多路E1进行同步,各路数据可单独处理。缺点是由于各路E1传输过程中经历延时不同,导致对端接收数据包的顺序与发端顺序有较大差别。考虑到发包比较稀疏的情况,一个长包完全可以在一路E1中传递,而其它E1通道没有数据包传送。这样,一方面造成带宽浪费,另一方面也引入较大的转发延时。
比特间插在传输过程中没有包的概念,只是顺序从以太网数据输入缓存区内读出比特流并按1→n(n路E1)循环编号,编号为i的比特在第i路E1中传输。这种设计电路十分复杂,对端要对多路E1同步到比特单位才能还原出有效数据。其优点就是没有带宽的浪费和输入输出包顺序的变化,转发延时也是固定的。
本设计采用的字节间插是比较折中的解决方案。它的基本原理与比特间插类似,但从缓存区读出的数据和编号都是以字节为单位,每个字节经过串并转后在对应编号的E1信道中传输。它继承了比特间插的优点,同时由于对端只需同步到字节单位上,处理时钟较为宽裕,同步电路设计也就相对简单。其具体的算法实现如下:
以太网数据包进入适配电路后封装成HDLC帧存入缓存区Buff,Buff的出口侧速率与多路E1信道传输速率匹配,一个2MHz时钟周期内完成的操作如图1所示。
图中,Fcnt:8比特帧计数(E1帧有256个bit);
MFcnt:8比特复帧计数;
L3:Fcnt的低三位比特;
E1out:输出8路E1数据(8bit);
Framecode:E1帧同步码“10011011”;
N:配置E1路数(1~8);
Rdaddr:Buff读地址;
P2S:2
如何成为一名优秀的射频工程师,敬请关注: 射频工程师养成培训
上一篇:推动全球移动——访企业移动解决方案提供商Symbol副总裁Alan Marcus
下一篇:NI发布Measurement Studio 8.1简化远程监控功能的操作