好文档 - 专业文书写作范文服务资料分享网站

FPGA光通信视频传输PCIE采集方案

天下 分享 时间: 加入收藏 我要投稿 点赞

光通信视频传输PCIE采集方案

1.1概述

8B/10B编码是1983年由IBM公司的Al Widmer和PeterFranaszek所提出的数据传输编码标准,目前已经被广泛应用到高速串行总线,如IEEE1394b、SATA、PCI-Express、Infini-band、FiberChannel、XAUI、RapidIO、USB 3.0的美好。 8B/10B编码将待发送的8位数据转换成10位代码组,其目的是保证直流平衡,以及足够密集的电平转换。

本课程讲解“7 Series FPGAs Transceivers Wizard”IP的使用。测试方案,利用HDMI输入1080P视频信号后经光模块回传回来,再通过HDMI输出视频图像,以此测试光通信功能。

本课程的理论部分摘录自网络文章“8B10B 详解&综述”,如有侵权请联系本公司。 本课程还给出了开发板到开发板的视频输出传输demo。

1.2 8B10B编码原理

以下是理论部分,学习完成后对于我们后面分析代码还是有所帮助。

在光纤通信中, 线路编码是必要的, 因为电端机输出的数字信号是适合电缆传输的双极性码, 而光源不能

发射负脉冲, 只能用光脉冲的“有” 和“无” 来表示二进制码中的“1”和“0\。 该方法虽然简单, 却存在三个问题:

1)遇到数字序列中出现长连“0” 或长连“1” 时, 将给光纤线路上再生中继器和终端光接收机的定时信息提取工

作带来困难;

2)简单的单极性码中含有直流分量。 由于线路上光脉冲中“1” 和“0” 是随机变化的,这将导致单极性码的直流成分也作随机性的变化。 这种随机性变化的直流成分, 可以通过光接收机的交流耦合电路引起数字信号的基线漂移, 给数字信号的判决和再生带来困难; 3)不能实现不中断通信业务下的误码检测;

为解决以上问题, 通常对于由电端机输出的信号码流, 在未对 LED(或 LD)调制以前,一般要先进行码型变换使调制后的光脉冲码流由简单的单极性码,转换为适合于数字光纤传输系统传输的线路码。适合于光纤通信的线路码型有多种,但都要满足以下要求: a)能保证比特序列独特性。

b)能提供足够的定时信息。

由于在光纤数字传输系统的传输中, 只传送信码, 而不传送时钟, 因此在接收端, 必须从收到的码流中提取出定时信息, 以利于上述的定时提取。 必须限制线路码流中同符号连续数不能过大, 也就是说, 应避免长连“0” 及长连“1” 的出现, 提高电平跳变的密度, 使定时提取较为简单。

c)减少功率密度中的高低频分量。

线路码的功率谱密度中的低频分量是由码流中的“0”、“1” 分布状态来决定的, 低频分量小, 说明“0”、 “1”分布比较均匀, 直流电平比较恒定, 也就是信号基线浮动小, 有利于接收端判决电路的正常工作。 高频分量是由线路码的速率决定的, 这在带宽(色散)限制系统中特别值得注意, 在这种系统中, 中继距离主要由光纤线路的总带宽(总色散)决定, 如果线路码速率提高的太多, 会使中继距离大大缩短。

d)要有利于减少码流的基线漂移, 即要求码流中的“1\、 \码分布均匀, 否则不利于接收端的的再生判决 e)码率增加要少, 光功率代价要低。 f)接收端将线路码还原后, 误码增殖要小。

线路传输中发生的一个误码, 往往使接收端的解码(反变换)发生多个错误, 这就是误码倍增, 也叫做误码扩展或误码增值。 由于误码倍增, 使光接收机要达到原要求的误码性能指标, 必须付出光功率代价, 即光接收机灵敏度劣化。 因此误码倍增系数越小越好。 g)能提供适当的冗余度。 h)低的对称抖动。

传输的比特序列必须保持低的码型相关的抖动。

i)易于实现。

数字光纤通信系统中常用的线路码型有:加扰二进码、 插入比特码和 mBnB 码。

8B/10B编码最初由IBM公司的Albert X.Widemer和Peter A.Franaszek发明,并应用于ESCON(200M互连系统)中。 它是mBnB编码中的一个特例。

8B/10B编码方法是把8bit代码组合编码成10bit代码,代码组合包含256个数据字符编码和12个控制字符编码,分别记为Dx. y和Kx.y。 通过仔细选择编码方法可以获得不同的优化特性。 这些特性包括满足串行/解串行器功能必须的变换; 确保“0” 码元与“1” 码元个数的一致, 又称为直流均衡; 确保字节同步易于实现(在一个比特流中找到字节的起始位); 以及对误码率有足够的容忍能力和降低设计复杂度。 8B/10B编码方案是把8bit数据分成2个子分组: 3个最高有效位(y)和5个最低有效位( x)。 代码字按顺序排列,从最高有效位到最低有效位分别记为H、 G、 F和E、 D、 C、 B、 A。 3bit的子分组编码成4 bit,记为j、 h、 g、 f; 5 bit的子分组编码成6bit,记为i、 e、 d、 c、 b、a,其映射关系如下图所示,4bit和6bit的子分组再组合成10bit的编码值。

编码时,低5bit原数据 EDCBA经过5B/6B编码成为6bit码abcdei,高3bit原数据HGF经3B/4B成为4bit码fghj,最后再将两部分组合起来形成一个10bit码abcdeifghj。10B码在发送时,按照先发送低位在发送高位的顺序发送。

将8bit数据分成3bit和5bit两组,分别对应10bit中的4bit和6bit,直流平衡代码的不平衡度就是通过“0” 的个数减去“1” 的个数来计算得到的。 如果4bit和6bit的各分组中“0”和“1” 的个数相等,称为完美平衡代码,或称为完美的直流平衡代码,无需补偿,但是这种情况是不可能的。 因为在4bit的子分组中,16种编码中只有6 种是完美平衡的,这对于3bit的8种编码值是不够的。 同时,在6bit的子分组中也只有20种编码是完美平衡的,对于5bit的32种编码值也是不够的。 由于4 bit和6bit的两个子分组都是偶数个位数,而不平衡度不可能是“+1” 或“-1”,因此,在8B/10B编码方案中还要使用不平衡度为“+2” 和“-2” 的值。 在编码过程中,用一个极性偏差( running disparity,RD)参数表示不平衡度,在不平衡时用2个10 bit字符表示一个8位字符,其中一个称为RD- ,表示“1” 的个数比“0” 的个数多2个,另一个称为RD+ ,表示“0” 的个数比“1” 的个数多2个。这种不平衡差值为2的数需要采用2个10bit 表示1个8bit,主要用于K码的控制字符。

8B/10B编码中将K28.1、K28.5和K28.7作为K码的控制字符,称为“comma”。在任意数据组合中,comma只作为控制字符出现,而在数据负荷部分不会出现,因此可以用comma字符指示帧的开始和结束标志,或始终修正和数据流对齐的控制字符。 5B/6B编码和3B/4B编码的映射有标准化的表格,可以通过基于查找表的方式实现。使用 “不一致性(Disparity)”来描述编码中\的位数和\的位数的差值,它仅允许有\ \比\多两个)、\( \与\个数相等)以及\(\比\多两个)这三种状况。 由于数据流不停地从发送端向接收端传输,前面所有已发送数据的不一致性累积产生的状态被称为“运行不一致性(Runing Disparity,RD)”。RD仅会出现+1与-1两种状态,分别代表位\比位\多或位\比位\多,其初始值是-1。Next RD值依赖于Current RD以及当前6B码或者4B码的Disparity。根据Current RD的值,决定5B/4B和 3B/4B编码映射方式,如下图所示。

这样,经过8B/10B编码以后,连续的“1”和“0”基本上不会超过5bit,只有在使用comma时,才会出现连续的5个0或1。接收端的数据解码过程如下图所示:

1.3 gtx IP核设置

好了,现在开始我们的课程实验的具体内容部分,完成利用光纤实现视频图像的传输方案。 打开vivado在IP中搜索7 series FPGAs,找到7 Series FPGAs Transceivers Wizard如图所示:

双击打开gtx ip核,按如下步骤设置: 1:第一页设置:默认即可

2:第二页设置:红色箭头所指,首先设置Protocol为aurora 8b10b single lane 4 byte ,也就是对外接口为32位;设置Line Rate为5G,参考时钟为125,这个是来源于板子的差分晶振,左下角黄色的地方就是我们用到的高速收发器。以下内容对于不同的开发板设置不一样,由于MK7325开发板上只有2个SFP接口,分别定义到了GTX_X0Y12和GTX_X0Y13,因此对于使用1个光模块的配置,选择GTX_X0Y12,对于使用2个光模块的配置为选择GTX_X0Y12,GTX_X0Y13。

FPGA光通信视频传输PCIE采集方案

光通信视频传输PCIE采集方案1.1概述8B/10B编码是1983年由IBM公司的AlWidmer和PeterFranaszek所提出的数据传输编码标准,目前已经被广泛应用到高速串行总线,如IEEE1394b、SATA、PCI-Express、Infini-band、FiberChannel、XAUI、RapidIO、USB3.0的美好。8B/10B编码
推荐度:
点击下载文档文档为doc格式
8yj5m6vtgb4c2db011p1797950lq6e00f7k
领取福利

微信扫码领取福利

微信扫码分享