高速实时光纤图像传输系统的实现

发布时间:2015-05-16 08:39:04   来源:文档文库   
字号:

高速实时光纤图像传输系统的实现

1引 言

  高速实时图像传输的可靠性,稳定性将直接影响到光电经纬仪图像处理的最终结果,是关系到整个经纬仪性能指标的重要因素之一。光电经纬仪的图像源来自高速CCD相机,相机实时输出的高速图像数据均需通过标准的Camera link并行接口输出,并且是在经纬仪工作情况下实时传输。传统的数据传输办法是通过电滑环的传输通道,但电滑环抗干扰性差,带宽低,特别是由于磨损导致使用寿命有限[1-6]而无法传输高速的Cam-era link标准图像数据,因此,处理系统只能置于机上。另外,标准的Camera link并行接口线多,配线复杂,数据传输极易受外界工作环境的干扰,特别是在恶劣环境下,系统很难稳定、可靠的工作。

随着光纤技术的普遍推广,光纤滑环替代电导环成为必然趋势。目前,国际市场上已有商业用光纤图像传输系统,但该类产品仍具有局限性。

比如,美国THINKLOGICAL公司的几款Cam-era link光纤产品,可以实现对Camera link标准图像数据包括全配置型和基本型的相机的高速光

纤传输[1-6],在机上(发送端)完成Camera link并行接口至光纤接口的转换,在机下(接收端)则完成光纤接口至Camera link并行接口的转换,但

用户在机下的接收端只能得到Camera link并行接口数据,且其传输结构同样给用户造成配线工作量大,配线复杂,系统稳定性差等困难。若用户需要光纤接口数据,则另需花昂贵的费用购买协议,因此,有必要自主开发光纤图像传输协议。

近年来,高速串行传输互联技术的日益成熟,使得高速率、宽带宽、抗干扰性强的串行传输越来越受到设计者们的青睐;特别是 Xilinx公司的FPGA内 RocketIO IP核 案,搭 了FPGA与光纤通信的桥梁,使得高速串行传输从板上芯片级间互联和板间互联向系统与系统间的高速串行互联成为现实。本设计根据工程项目背景需求,结合国内研究条件,实现了系统接口转换功能,并在此基础上提出了自定义的光纤图像传输协议,利用该协议,实现了图像传输系统与各个分系统的通信和整个系统的串行化传输,使得图像可在机下进行实时处理、显示和记录,减少了系统的配线工作量,提高了系统的抗电磁干扰性能,降低了开发成本。系统的应用测试结果表明,系统在高速传输运行状态下,图像传输稳定,且机上、机下相互之间通过光纤传输系统可靠通信,系统运行性能良好,满足系统的传输性能要求。

2 系统总体设计

  如图1所示,系统由发送端和接收端两部分组成,其中发送端完成图像从Camera link输入至光纤输出的转换,接收端则完成图像从光纤输入至Camera link输出的转换,发送端和接收端之间(即机上至机下)采用单模光纤传输。在发送

端,实时图像源来自于相机,图像输出接口均为标准的Camera link接口输出。相机输出图像连接至Camera link转光纤模块即发送端部分,由于经纬仪的转动,实时图像要经过光纤滑环(光导环)传输,将光纤图像送至机下。在接收端,实时图像经过光纤滑环(光导环)后,再把图像接入光纤转Camera link接收模块,接收端输出的Cam-era link图像直接输出给记录系统,实现实时记录图像。同时,在接收端模块上,通过FPGA内部逻辑设计转发两路光纤图像传输通道,其中一路将实时图像发送到主控中心 CPCIE(Compact-PCIExpress)架构的交换板,由交换板经过主控中心的背板,分别将实时图像发送至系统板、处理板、以及电机伺服、系统后板等单元模块;另一路光纤传输通道将图像转发到显示系统,实现图像实时显示。此外主控中心发出的相机控制命令以及外同步时序,在接收端经过本地时钟采样后,把采样值打包,并沿光纤传输通道发送至发送端,在发送端(机上)将接收到的数据包解包为采样值,再根据采样值恢复为原始时序信号,由发送端(机上)的Camera link接口送至相机,实现主控中心(机下)实时控制相机。

3 系统硬件设计

3.1 发送端硬件设计

发送端硬件原理框图如图2所示,相机的Camera link接口有Base型、Medium型、Full型三种配置,本设计使用的是 Base型配置相机,Full型配置相机输入接口。由于Camera link标准接口输入电平为LVDS,在硬件设计上,采用

图2 发送端硬件原理框图

DS90CR288A芯片,完成LVDS电平至 TTL电平转换;选择型号为 XC2VP20FG676的FPGA作为主处理芯片,该FPGA单片最多集成了8个ROCKTIO核,每 ROCKTIO 从600Mb/s到3.125Gb/s传输速度。PROM 芯片选择xcf32p作为程序存储芯片;选择高精度晶振JFVNY-1007-X075NAGRC的25.000 00 MHz为时钟源,时钟芯片选择IDT5V9885作为系统的主时钟,该时钟芯片可根据设计需要灵活配置输出时钟频率,本设计使用时钟频率为125 MHz,在时钟芯片内部完成5倍频,时钟芯片输出为

125MHz高精度时钟供给ROCKTIO使用,Vir-tex-Ⅱ的ROCKTIO内部将时钟20倍频后得2.5Gb/s的传输速度。采用 MAX3225E为串口电平转换 片。 OPT0STAR 的CWDM光模块SFP-2.5G,波长为1 470~1 610nm,共8个通道。

3.2接收端硬件设计

接收端硬件原理框图如图3所示,接收端硬件结构和发送端相同,仅区别在接收端Cameralink的输出,采用DS90CR287芯片,完成TTL电平至Cameralink的LVDS电平转换。

4 系统软件设计

4.1 图像信息提取

由于 Camera link并 中,Cameralink标准接口输入有28位数据位和一位像素时钟位,以 号,Camera Control 1(CC1)、Camera Control 2(CC2)、Camera Con-trol 3(CC3)、Camera Control 4(CC4)。图像数据格式为当FV(高)有效,且LV(高)有效时,若带有的DV亦(DV高)有效时,此时图像数据才有效。因此需要在发送端将每一帧的起始(帧首标志),每一帧的结束(帧尾标志)提取出来,同样每一行的起始(行首标志),每一行的结束(行尾标志)提取出来。帧首提取方法是将其FV延迟一个时钟周期后逻辑取反,再将其逻辑取反信号和原FV逻辑相与得到帧首标志。同理,可得帧尾标志,行首标志,行尾标志。

(1)像素/行的统计,当每一行的开始,行首标志为1有效时统计值清零,当FV、LV都有效,且每一个像素时钟上升沿到来时才开始统计像素/行的值;行尾标志为1有效时提取出该行的像素/行的统计值。

(2)行/帧统计,设计当每一行的像素统计值大于16个像素时才认为该行是有效行,且每一个像素时钟上升沿到来时才开始统计行/帧值,当帧尾标志为1有效时提取出该帧的行/帧统计值。在每一帧的帧消隐期间,行/帧的统计值清零。

4.2图像帧协议设计

利用帧消隐期间添加自定义帧协议的附加信息,在自定义帧协议中,附加信息的添加是在图像数据写入 RAM 时完成的,采用 FPGA 内部的RAMB16_S18_S18 存,巧 了RAMB16_S18_S18的奇偶校验位即parity位作为RocketIO传输链路中的K字符指示。图像串行传输的位宽为16bit(双字节),自定制的帧协议如图4所示,帧首过后延迟一个时钟周期,在下一个时钟上升沿时,开始添加行/帧统计值、像素/行统计值、以及用于协议自校验的帧编号;预留8Byte作为下一步扩展完善协议功能使用,紧接着就是图像的有效数据发送;最后,每一帧的结束位置添加帧尾标志。添加的帧首标志、帧尾标志用特殊字符和K字符指示来共同表示,特殊字符及K字符指示从8B/10B编码字符表里选用,行/帧统计,像素/行统计、帧编号以及有效数据都将 K字符指示作为辅助标志,以便于传输通道链路的自检测,在接收端快速、可靠提取帧首、帧尾特殊标志字符。

4.3 Rocket IO属性例化设计

基于自定制的帧传输协议,设计中 RocketIO对时钟的精度要求非常 格。本设计 用IDT_5V9885时钟芯片输出的时钟作为 RocketIO的参 时钟,Rocket IO 为2.5

图4 帧传输协议格式

Fig.4 Block diagram of frame protocol formatGb/s,参考时钟为125 MHz,时钟输入方式为差分输入,选择Rocket IO的BREFCLK为参考时钟输入端,且BREFCLK采用静态控制模式,因为REFCLK为参考时钟输入端时,RocketIO最高传输速度只能达到1.25Gb/s。终端阻抗选择50Ω;采用静态8B/10B编码控制机制;预加重选择10%,输出电压摆幅为500mV。预加重、输出电压摆幅并非选择越高越好,因为过高的预加重对输出电压摆幅有过冲影响,会导致传输链路误码率的增加,因此,需要经过实验测试来调节输出电压摆幅值,使得传输链路达到稳定要求。选择Comm字符对齐和 Comm 字符检测序列,Plus-Comm字符序列为0011111000(10bit),选择动态控制Plus-Comm字符检测方式,Minus-Comm字符序列为1100000000(10bit),选择动态控制Minus-Comm字符检测方式,Comm-mask字符序列为1111111000,Align Comm MSB选项必须要选择,这样Comm 字符才能正确对齐在高字节,否则Comm字符有可能对齐在高字节,也有可能对齐在低字节,这样输出的串行数据流就会出错。时钟修正,当RocketIO的接收FIFO写入端的输入数据速率和读取端的输出数据速率不一致时,需要进行时钟修正,输入接收FIFO的输入数据速率是由RXRECCLK恢复时钟的频率决定的,而从接收FIFO读取端输出的数据速率是由RXUSRCLK的频率决定的。消除这两者之间的差异,是通过插入/移除idle时隙的时钟修正模式完成的。设计中使用的时钟修正序列长度为4个字 节,时 为00111111100,00000000000即FC00特殊字符为K28.7;00111111100,00000000000,也就是FC00特殊字符为K28.7,共4个序列,选择了第二个时钟修正序列模板;通道绑定未使用。

4.4 数据包发送协议

图像数据的发送是以数据包的形式发送的,自定义的发送数据包格式如图5所示:每一包数据的长度为1KByte,数据宽度为16bit,所以每

图5 图像数据包格式

一包数据的时钟长度为512个时钟周期,这就要考虑时钟修正的最大时间间隔长度问题,因为在发送图像有效数据期间,只发送图像有效数据,没有发送时钟修正序列,所以要计算时钟修正的频率,每发一包数据使用时间为512+8=520个时钟周期,即发送状态机发送一次时钟修正序列到下一个循环发送时钟修正序列的最大时间间隔为520个时钟周期,而参考时钟的稳定度为5.0×10-5时,按照RocketIO的要求每10 000个字符就需要至少发送一次时钟修正序列,即10 000÷16=625个时钟周期,这个时间间隔要求大于设计使用的时间间隔,本文的设计满足 RocketIO的指标要求。送状态机如图6所示,发送状态

图6 发送状态机转移图

机在S0发送状态发送时钟修正序列,在S1状态字符对齐序列,字符对齐序列需要在发送时钟修正序列之后才能进行发送;在S2发送状态发送串口、外同步时序,当没有数据包发送请求的空闲时间,发送状态机就不断地发送时钟修正、字符对齐序列,用于通道链路的维持;若有请求发送图像有效数据包,则状态机转至发送数据包S3发送状态,从发送数据包的包头开始,包头S4发送状态作为数据包的起始标志,用于接收端接收检测数据包的开始标志,包头标志用特征字符及K字符表示,包头S4发送 (2Byte);包长S5发送状态占用1个时钟周期(2Byte),用于指示发送有效数据的长度,设计中包长为1KByte,包长过后紧接着发送有效数据S6发送状态,当发送完1KByte有效数据后,进入发送当前数据包的累加和S7发送状态,包累加和用

于包内有效数据的字节统计,占用4Byte,其中高16bit先发,占用2Byte,低16bit后发,也占用2Byte;S8包编号发送状态为发送的每一个数据包都有相应的编号,用于统计发送过程中发送包有无丢失;包累加和、包编号都用于接收端接收数据的有效校验;S9包尾发送状态用于指示当前包的结束,包头标志用特征字符及 K字符表示。S2发送状态,串口、外同步信息的发送是利用数据宽度的最低位(第0位)来发送串口信息,利用数据宽度的第二位(第2位)来发送外同步信息,串口信息和外同步信息在数据位宽度中至少要间隔一个数据位,原因是两个数据位相邻很近的情况下,两种时序经过发送状态机的时钟采样后,采样数据会带有毛刺,这样的采样数据经发送状态机打包发送后,在接收端再恢复为原始时序时,就会带有毛刺。设计使用串口收发波特率为9 600bit/s,本地采样时钟为125MHz,扣除掉发送数据包期间间隔520个时钟周期,即本地时钟对串口的实际 为125×106520=240 384.6,因 240 384.6>9 600×2,采样率远远大于波特率,表明采样速率是可靠的。经过实验证明,两个串口信息在发送数据位里至少相隔一个数据位就能可靠采样,在接收端,从接收到的采样数据恢复出来的时序波形,就能避免毛刺带来的影响,实现串口、外同步信息在光纤通道上的可靠传输。

4.5 接收端图像重构

从接收端接收到的数据流里,根据数据包的特殊字符指示,提取出数据包,并把数据包解包后得到帧首、帧尾标志、图像有效数据及附加信息,其中比较重要的两个附加信息是,原始图像的靶面大小即像素/行、行/帧,这两个附加信息将作为重构图像的依据。重构图像状态机如图7所示,接收到的图像有效数据首先写入FIFO缓存,根据重构图像状态机,S1帧开始状态接收提取得到的帧首标志,作为帧有效使能开始(即FV有效),FV有效开始8个时钟周期后,进入S2行开始状态,在(即LV有效)下,此时需要进入S3状态,判断写入缓存FIFO的有效图像数据是否满一行,

图7 重构图像状态转移

若缓存FIFO已有一行数据,则读出图像有效数据至每一行,每一行结束后进入S4行尾状态,此时状态机也进入S5状态,判断当前行是否为当前帧的最后一行,若不是则跳转至S2行开始状态继续读出行,若是最后一行,则帧结束,即是一整帧图像。此时状态机跳出帧循环状态进入S0空闲状态,等待下一帧的到来。

5 实验测试

5.1 图像在传输过程中的延迟测试

根据单模光模块及单模光纤传输距离远的特点,在发送端,采用收发独立的CWDM 单模光模块及单模光纤来做测试实验,该单模光模块工作波长为1 470nm,在本测试实验中采用60m长的单模光纤进行传输,实验将实时图像数据经单模光模块沿着单模光纤发送出去,再将该单模光纤的另一端回环接至其单模光模块的输入端,实时接收回传的图像数据。此时,用 Chip-Scope-Pro工具采样发送数据和接收数据,触发条件为某一帧的帧首标志,采样数据结果表明,图像数据在整个 为8个 期,即1125×106×8=64ns,实验测试结果表明,图像数据在该传输过程中满足实时性的要求。

5.2 传输链路的可靠性测试

根据Virtex-II PRO的RocketIO属性,当传输链路有错误时,RXNOTINTABLE信号就有错误标志指示,且 RXNOTINTABLE的高低两位分别代表传输数据位的高低两个字节,传输链路

无错误 RXNOTINTABLE 为“00”值,当信号为1时表示发生错误。测试方法为,在发 据,在 用Chip-Scope-Pro工具实时采样监测,以 RXNO-TINTABLE的突变为触发条件,实验测试结果表明,连续监测26个小时无一错误。

5.3 图像传输的可靠性测试

根据发送协议,发送端特别做了帧编号,以及每个数据包的包累加和统计。在接收端,根据帧编号、每个数据包的包累加和统计值,将该帧图像的每一包内的有效数据做累加和校验,再将累加和校验的统计值与相应数据包里的包累加数值相比较,若比较值为零,则说明数据传输无错误,若比较值不为零则说明数据传输有错误,以此为触发条件,用Chip-Scope-Pro工具实时监测采样数据;同时在发送端接相机的Camera Link实时输出图像作为图像源,这样解决了传统实验时,采用仿真图像源,而实际使用时采用相机,导致传输过程中图像时序不匹配的问题,在接受端通过图像采集卡实时采集图像,实验结果表明,靶面大小为1 280×1 024,帧频为90frame/s的图像数据流,连续发送3h无出现错误。其实验结果用Cam-era Link图像采集卡采集到的图像如下图8所示。

图8 实时采集图像

本文来源:https://www.2haoxitong.net/k/doc/2d115942d5bbfd0a7856735c.html

《高速实时光纤图像传输系统的实现.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式