摘要:为解决目前高速信号处理中的数据传输速度瓶颈以及传输距离的问题,设计并实现了一种基于FPGA 的高速数据传输系统,本系统借助ALTEra Cyclone III FPGA 的LVDS I/O 通道产生LVDS 信号,稳定地完成了数据的高速、远距离传输。系统所需的8B/10B 编解码、数据时钟恢复(CDR)、串/并行转换电路、误码率计算模块均在FPGA 内利用VHDL 语言设计实现,大大降低了系统互联的复杂度和成本,提高了系统集成度和稳定性。
0、引言
在地质勘探、工业环境监测、大型科学实验等领域中需要将实时采集到的大量数据以较高的速率传输距离较远,复杂而庞大的数据传输任务给传输系统的设计带来极大的挑战。目前常见的远距离高速传输方案多采用较为复杂的光纤通道等方案,系统的成本、设计难度、体积和功耗都相对较大,限制了其应用场合。
LVDS(Low Voltage Differential Signaling)是一种小振幅差分信号技术,它允许单个信道传输速率达到每秒数百兆比特,其特有的低振幅及恒流源模式驱动只产生极低的噪声,消耗非常小的功率。LVDS 是目前常见的高速数据传输方案,但其多用于芯片间、背板间或设备间进行近距离的数据传输。
本文中提出的高速数据远距离传输系统方案以Altera 公司Cyclone III 系列低成本FPGA 芯片EP3C5E144C8 的为核心,以LVDS 信号为基础,通过增加信道编码、数据时钟恢复、预加重和均衡等技术,保证了数据传输的稳定性和同步性。保证采用UTP-5 双绞线为传输介质时传输速率不低于400Mbps,传输距离为50 米时上的,实现低成本的远距离高速数据传输。
1、方案总体设计
LVDS 信号一种低振幅高速差分信号,由于其电气特性决定了其传输距离有限。为了满足系统使用UTP-5 双绞线实现距离50m 的数据传输要求,需要通过增加预加重和均衡技术来恢复线路上传输的信号波形。由于传输距离较远且传输速率较高,无法直接采用传送位时钟信号和帧同步脉冲来保证系统同步。本系统采取接收端从接收数据中恢复时钟信号的方法简化系统设计方案。
系统整体设计框图如图1 所示,整个系统的核心模块包括了8B/10B 编码、CDR(时钟恢复)、并-串/串-并转换模块、LVDS 接口电路、电缆驱动器(Cable Driver)和电缆均衡器(Cable Equalizer)等。数据在发送端的FPGA 内经过8B/10B 编码,并-串转换经LVDS 模式的I/O 端口转化为LVDS 信号,然后经过线路驱动器芯片CLC001 预加重后,通过UTP-5 双绞线传出数据。接收端收到的信号经过均衡器芯片LMH0074SQ 均衡后进入FPGA,在接收端FPGA 内,数据先经过CDR 模块提取时钟信号,然后字对齐后经过串-并转换产生并行数据流,最后经过8B/10B 解码模块得到传输数据。
整个系统除电缆驱动器和电缆均衡器采用专用芯片外其它功能均在FPGA内部实现,从而极大的减小了系统的复杂度和PCB 板的面积。
图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 编码模块逻辑框图
www.55dianzi.com
解码模块如图3 所示,可分为6B/5B 解码模块、4B/3B 解码模块和误码检测模块。解码模块相对编码模块而言逻辑过程要简单的多,该模块首先将10 bit 信号分割成4 bit 和6bit 两部分(高低位必须和编码端对应),然后4 bit 和6 bit 数据根据编码列表分别解码成3 bit 和5 bit,在解码过程中判断是否有误码产生有则报错,无则并行输出。
图3 8B/10B 解码模块逻辑框图
2.2.数据时钟恢复模块
在单向数据传输中,串行通信通常需要同时提供数据、位时钟、帧同步脉冲三路信号。在本系统说要求的高速率、长距离的数据传输要求下,这种三线连接方式不但浪费导线,而且往往受环境的影响很难实现三路信号间的同步。在本系统中由于输入信号频率已知,因此可以在FPGA 芯片内部产生与之同频的时钟信号。通过数字锁相环电路锁定输入信号的相位,并使用此时钟信号对输入数据进行采样,从而完成信号的接收。因而,利用数据时钟恢复模块可以从串行位流数据中恢复出接收位同步时钟、帧同步脉冲和接收的数据。
数字锁相环(DPLL)是一种相位反馈控制系统。它根据输入信号与本地估算时钟之间的相位误差对本地估算时钟的相位进行连续不断的反馈调节,从而达到使本地估算时钟相位跟踪输入信号相位的目的。DPLL 通常有三个组成模块:数字鉴相器(DPD)、数字环路滤波器(DLF)、 数控振荡器(DCO)。根据各个模块组态的不同,DPLL 可以被划分出许多不同的类型。根据设计的要求,本文采用超前滞后型数字锁相环(LL-DPLL)作为解决方案,图5 是其实现结构。在LL-DPLL 中,DPD 采用微分型超前-滞后数字鉴相器,DLF 用双向计数逻辑和比较逻辑实现,DCO 采用加扣脉冲式数控振荡器。这样设计出来的DPLL 具有结构简洁明快,参数调节方便,工作稳定可靠的优点,其结构框图如图4 所示。
图4 超前滞后型数字锁相环
环路的工作原理如下:超前滞后型数字鉴相器LL-DPD 比较输入位流数据DataIn 与本地估算时钟ClkEst 的相位,给出相位误差信号Sign 和AbsVal。DLF 对相位误差信号进行平滑滤波,并生成控制DCO 动作的控制信号Deduct 和Insert。DCO 根据控制信号给出的指令,调节内部高速振荡器的震荡频率,使其输出时钟ClkEst(同时反馈给LL-DPD)的相位跟踪输入数据DataIn 的相位。
3.板级电路设计
本系统核心芯片采用ALTEra 公司的Cyclone III 系列FPGA 中的EP3C5E144C8, Altera 公司的Cyclone III FPGA 系列组合了高性能,低功耗和低成本,逻辑单元(LE) 从5K 到200K,存储器从0.5Mb 到8Mb,静态功耗小于1/4 瓦.
由于设计要求达到高速率、50 米的传输距离,传统的LVDS 接口虽然可以达到较高的传输速率却不能支持长距离传输。所以本系统采用高速串行数字接口(SDI)自适应电缆均衡器及电缆驱动器芯片来实现数据高速率、长距离的传输。
预加重是在信号发送前对其进行预扭曲,以使接收器上的信号质量如同原始发送的质量。当信号在直流电平上保持超过一个比特的时间时,预加重就会抬高高频分量而降低低频分量。本文选用CLC001 电缆驱动芯片,CLC001 采用3.3V 供电,输出幅度可调,理论数据速率最高可达622Mbps 。
接收均衡通过对输入数据运用相对频率特征来补偿信号的损耗特征。本文选用LMH0074SQ 接收均衡芯片,LM0074SQ 是标准清晰度SDI 电缆均衡器,可在540 Mbps 的速度范围内操作,输出抖动典型值为0.2UI。
FPGA 外部电路如图5所示,在发送端,FPGA 产生的LVDS 信号经CLC001 预加重后通过UTP-5 双绞线传输;在接收端,信号先经过LMH0074SQ 均衡后隔直输出。由于LVDS 接口电平标准要求输入电压直流偏置为1.2V,因此需要通过偏置电路在引入1.2V 的直流偏置后再传给FPGA。
图5 FPGA 外围电路
本文关键字:成本 DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术