图1 系统整体框图
2.FPGA 关键模块设计
FPGA 作为系统的核心芯片,根据系统整体方案的设计思路,FPGA 中含有的模块主要有信道编解码模块、数据时钟恢复模块、串/并转换模块。
2.1 信道编解码模块
在高速数据传输过程中,为了使数据时钟恢复模块中的数字锁相环能够得到足够充足的跳变沿信息,需要采用信道编解码技术消除或减少数字电信号中的直流和低频分量。8B/10B 编码是其中最常用的一种编码方式。
8B/10B 编码被广泛应用于多种高速串行通信协议中。它将8bits 的基带信号映射成10bits 的数据进行发送,防止在基带数据中过多的0 码流或1 码流。通过8B/10B 编码可以提高数据在链路上的传输的性能;使接收器可以正确地恢复时钟;提高码流中一个或者多个比特错误的检测能力;定义特定的码元使接收器能够正确地对齐码元。在本系统中分别在两块FPGA 中实现了8B/10B 编码模块和8B/10B 解码模块。
8B/10B 编码模块如图2 所示,该模块在逻辑上又分成3B/4B 编码模块、5B/6B 编码模块、RD 控制模块等3 部分。编码器首先将接收到的8B 数据分成3 bit 和5 bit 两部分,然后分别编码成4 bit 和6 bit,编码完成的4 bit 和6 bit 再按顺序组合成10B 码。整个系统首先将3 bit 编码成4 bit,RD 控制器读出4 bit 数据的RD 值,然后反馈控制5B/6B 编码模块选择合适的编码。最终RD 控制器判断10B 数据的RD 值,若满足要求则输出,否则将报错。
图2 8B/10B 编码模块逻辑框图
解码模块如图3 所示,可分为6B/5B 解码模块、4B/3B 解码模块和误码检测模块。解码模块相对编码模块而言逻辑过程要简单的多,该模块首先将10 bit 信号分割成4 bit 和6bit 两部分(高低位必须和编码端对应),然后4 bit 和6 bit 数据根据编码列表分别解码成3 bit 和5 bit,在解码过程中判断是否有误码产生有则报错,无则并行输出。
?
5.总结
本系统高速数据远距离传输方案以Altera 公司的Cyclone III 系列EP3C5E144C8 为核心,使用LVDS 信号传输数据,通过信道编码、数据时钟恢复、预加重和均衡等技术的使用,保证了数据传输的稳定性和同步性,在传输速率为400Mbps,传输距离为50 米时,误码率为0。可以广泛的应用于各种高速远距离数据传输的场合。
Altera 公司新推出的Cyclone IV GX FPGA 中含有8 个收发器,具有时钟数据恢复(CDR)功能,并有在片内集成可编程预加重设置和可调差分输出电压(VOD)提高了信号完整性。本文的后续工作将在Cyclone IV GX 上实现本系统的所有功能,以进一步提高数据传输速率、传输距离、误码率等指标。