一种基于IOSERDES的cameralink接口系统的制作方法

文档序号:12133473阅读:796来源:国知局
一种基于IOSERDES的cameralink接口系统的制作方法与工艺

本发明涉及高速图像传输接口领域,特别涉及一种基于IOSERDES的cameralink接口系统。



背景技术:

随着各种光学相机载荷在卫星平台上的广泛使用,图像信号源作为遥感信息的主要获取方式,其传输方式和信号质量是影响系统性能的重要因素。cameralink接口协议是国家半导体实验室提出的一种开放式的协议,具有规范的物理连接器和连接线缆,因其具有良好的可靠性和抗干扰的能力,使它成为光学相机载荷接口的首要选择。

目前cameralink接口的实现大部分是采用控制器加上专用的协议收发芯片来实现,如国家半导体公司的DS90CR287/288,其优点是性能可靠稳定,并得到的广泛的应用验证;其缺点是控制单个的DS90CR287/288需要消耗30个FPGA管脚,cameralink接口的BASE,MEDIUM,FULL模式分别需要1个、2个、3个DS90CR287/288,需要消耗30个、60个、90个FPGA引脚。同时多片DS90CR287/288在电路板布局布线上消耗的空间和资源,也是光学相机载荷小型化,甚至是微型化设计的瓶颈之一。

随着FPGA技术的快速发展,很多FPGA引脚具备了LVDS电平标准,同时具备数字阻抗匹配功能,使得基于FPGA的cameralink接口实现成为一种可能。本发明提出了一种基于IOSERDES的cameralink接口实现方法,所有的逻辑功能和物理接口都由FPGA实现,使用FPGA的专有资源能够保证高速串并转换和并串转换的正确性,能够替代现有的cameralink协议芯片的全部功能,能够配置成BASE、MEDIUM、FULL三种cameralink工作模式。能够极大的简化cameralink接口的实现,便于移植和维护。



技术实现要素:

本发明的目的是提供一种基于IOSERDES的cameralink接口系统,cameralink逻辑功能和物理接口都由FPGA实现,使用专有资源能够保证高速串并转换和并串转换的正确性,能够替代现有的cameralink协议芯片的全部功能,能够配置成BASE、MEDIUM、FULL三种cameralink工作模式。能够极大的简化cameralink接口的实现,降低成本,便于移植和维护。

为了实现以上目的,本发明是通过以下技术方案实现的:

一种基于IOSERDES的cameralink接口系统,其通过FPGA实现cameralink接口,其特点是,包含:

所述的接收模块包含:

差分输入缓存,用于将LVDS的cameralink物理信号转换为单端信号;

输入时钟模块,用于对输入的cameralink时钟信号进行倍频、时序对齐和时钟约束;

串并转换模块,用于将cameralink接口输入的串行信号按照时序和逻辑转换为并行数据;

输入数据逻辑映射模块,用于将串并转换后的并行数据按照第一帧有效信号、第一行有效信号、第一数据有效信号和第一数据信号输出;

所述的发送模块包含:

输出数据逻辑映射模块,用于将第二帧有效信号、第二行有效信号、第二数据有效信号和第二数据信号组织成并串转换前的逻辑顺序;

并串转换模块,用于将并行信号按照cameralink接口输出逻辑转换成串行信号;

输出时钟模块,其通过OSERDES模块生成cameralink输出时钟;

差分输出缓存,用于将cameralink输出逻辑转换为LVDS物理信号。

配置所述输入时钟模块的引脚到FPGA全局时钟上,利用FPGA内部的锁相环或数字时钟管理器对采样时钟进行相位调整及倍频,并对调整后的时钟进行时钟约束,用于ISERDES基于时钟上升沿的串并转换。

所述的串并转换模块包含若干个相邻的ISEDES模块,完成比特的串并转换,控制逻辑实现先到达比特位位于转换结果的低位,最后到达比特位位于转换结果的高位的原则。

所述的接收模块在BASE、MEDIUM、FULL模式下分别需要1个、2个、3个串并转换模块,对应需要4个、8个、12个ISERDES模块。

所述的输入数据逻辑映射模块将并行数据转换为图像像素的灰度值后,将离散的灰度值转换为具有逻辑顺序的图像像素。

所述的输出数据逻辑映射模块将帧有效信号、行有效信号、数据有效信号和数据信号逻辑转换成图像数据像素值的排列组合后,将图像数据像素值进一步映射成比特逻辑。

所述的并串转换模块包含若干个相邻的OSEDES模块,实现低位先输出,高位后输出。

所述的发送模块在BASE、MEDIUM、FULL模式下分别需要1个、2个、3个并串转换模块,对应需要4个、8个、12个OSERDES模块。

所述的输出时钟模块利用OSERDES模块进行并串转换,对转换结果进行时钟约束,从FPGA全局时钟管脚输出作为cameralink输出时钟。

本发明与现有技术相比,具有以下优点:

(1)将cameralink的收发逻辑完全在FPGA内部实现,同时FPGA引脚具有LVDS标准,不需要额外使用cameralink协议收发芯片,可大大简化图像采集与显示系统电子学系统,降低成本,使得系统的集成度高,体积小,功耗低。

(2)与传统的使用cameralink协议收发芯片相比,full模式下,仅需消耗30个FPGA引脚资源,减小到原来的30%,能够进一步提高FPGA资源利用率。

(3)在不需要增减芯片的情况下,无须改动电路板,只须调整逻辑代码,能够实现cameralink的BASE、MEDIUM、FULL三种模式,电路板升级更新方便。

附图说明

图1为本发明接收模块的框图;

图2为本发明发送模块的框图;

图3为本发明cameralink输入时钟的相位调整图;

图4为本发明接收模块BASE、MEDIUM、FULL三种模式示意图;

图5为本发明cameralink输出时钟的相位控制图;

图6为本发明发送模块BASE、MEDIUM、FULL三种模式示意图。

具体实施方式

以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。

如图1、2所示,一种基于IOSERDES的cameralink接口系统,其通过FPGA实现cameralink接口,该接口系统包含:接收模块100和发送模块200;所述的接收模块100包含:差分输入缓存,用于将LVDS的cameralink物理信号转换为单端信号,利用FPGA内部的数字阻抗匹配技术实现差分信号的阻抗匹配;输入时钟模块,用于对输入的cameralink时钟信号进行倍频、时序对齐和时钟约束;串并转换模块,其通过ISERDES模块控制逻辑,用于将cameralink接口输入的串行信号按照时序和逻辑转换为并行数据;输入数据逻辑映射模块,用于将串并转换后的并行数据按照帧有效信号、行有效信号、数据有效信号和数据信号输出;

上述的发送模块200包含:输出数据逻辑映射模块,用于将帧有效信号、行有效信号、数据有效信号和数据信号组织成并串转换前的逻辑顺序;并串转换模块,其通过OSERDES模块控制逻辑,用于将并行信号按照cameralink接口输出逻辑转换成串行信号;输出时钟模块,其通过OSERDES模块生成cameralink输出时钟;差分输出缓存,用于将cameralink输出逻辑转换为LVDS物理信号。

配置所述输入时钟模块的引脚到FPGA全局时钟上,cameralink输入时钟相位为-103°,利用FPGA内部的锁相环或数字时钟管理器对采样时钟进行相位调整到0°;其频率为比特频率的1/7,利用FPGA内部的锁相环或数字时钟管理器对采样时钟进行倍频到输入时钟的7倍;对调整后的时钟进行时钟约束,用于ISERDES基于时钟上升沿的串并转换。

所述的串并转换模块包含若干个相邻的ISEDES模块,完成比特的串并转换,控制逻辑实现先到达比特位位于转换结果的低位,最后到达比特位位于转换结果的高位的原则,具体为利用4个ISERDES模块完成28比特的串并转换,控制逻辑实现先到达比特位位于转换结果的低位,最后到达的比特位位于转换结果的高位的原则。接收模块在BASE、MEDIUM、FULL模式下分别需要1个、2个、3个串并转换模块,即分别需要4个、8个、12个ISERDES模块。通过位置约束控制每4个ISEDES模块各自相邻,也控制相每个串并转换模块相邻。

上述的输入数据逻辑映射模块将并行数据转换为图像像素的灰度值后,将离散的灰度值转换为具有逻辑顺序的图像像素,具体的输入串行顺序参考芯片DS90CR287的输出逻辑,根据Camera Link Bit Assignment逻辑将串并转换的结果转换为图像像素的灰度值,进一步的根据Camera Link Data Routing for Base,Medium,and Full Configurations逻辑将离散的灰度值转换一定逻辑顺序的图像像素。最终映射成帧有效信号、行有效信号、数据有效信号和数据信号的形式便于其他图像处理模块使用。

所述的输出数据逻辑映射模块将帧有效信号、行有效信号、数据有效信号和数据信号逻辑转换成图像数据像素值的排列组合后,将图像数据像素值进一步映射成比特逻辑,具体的,将其他图像处理模块生成的帧有效信号、行有效信号、数据有效信号和数据信号根据Camera Link Data Routing for Base,Medium,and Full Configurations逻辑转换成图像数据像素值的排列组合,然后根据Camera Link Bit Assignment逻辑将每个像素灰度值进一步映射成比特逻辑,最终参考DS90CR288的输入逻辑映射成并串转换前的逻辑。

所述的并串转换模块包含若干个相邻的OSEDES模块,实现低位先输出,高位后输出,具体的按照cameralink输出时钟的原频率和7倍频频率控制并串转换,每28比特消耗4个OSERDES,控制逻辑实现低位先输出,高位后输出。发送模块在BASE、MEDIUM、FULL模式下分别需要1个、2个、3个输出数据并串转换模块,即分别需要4个、8个、12个OSERDES模块。通过位置约束控制每4个OSERDES模块各自相邻,也控制输出数据并串转换模块相邻。

上述的输出时钟模块利用OSERDES模块进行并串转换,对转换结果进行时钟约束,从FPGA全局时钟管脚输出作为cameralink输出时钟,即按照cameralink输出时钟的原频率和7倍频频率控制并串转换时钟,利用OSERDES模块对“110011”序列进行并串转换,对输出结果进行时钟约束,从全局时钟管脚输出,作为cameralink输出时钟。

请配合参见图3~6,对本发明的实施方式作具体阐述:

假设光学载荷相机的图像输出方式为8tap*8bit,以cameralink接口的FULL模式为例,具体的接收模块实施方式介绍如下:

1.利用FPGA内部的数字阻抗匹配技术(DCM)将LVDS引脚输入阻抗设置为100Ω;将光学载荷相机cameralink FULL输出的12对LVDS数据信号(rx_X_p(n)[3:0]、rx_Y_p(n)[3:0]、rx_Z_p(n)[3:0])通过FPGA内部的IBUFDS转换成12个单端信号(rx[3:0]、ry[3:0]、rz[3:0]);将3对LVDS时钟信号(rx_CLKX_p(n)、rx_CLKY_p(n)、rx_CLKZ_p(n))通过IBUFGDS转换成3个单端信号(clk_rx、clk_ry、clk_rz)。

2.利用FPGA内部的数字时钟管理器对clk_rx进行7倍频得到clk_rx_x7,对clk_rx进行相位延迟103°得到clk_rx_phase,调整后的时钟进行时钟约束,参见图1。

3.采用3个串并转换模块,每个串并转换模块采用4个ISERDES完成28比特的串并转换。通过位置约束控制每4个ISEDES模块各自相邻,也控制相每个输入数据串并转换模块相邻,参见图2。按照先到达比特位位于转换结果的低位,最后到达的比特位位于转换结果的高位的原则对串并转换的结果进行调整。

假设第一组4个ISERDES串并转换的结果为Qx3[6:0]、Qx2[6:0]、Qx1[6:0]、Qx0[6:0],28比特的串并转换结果调整为:

rx_data[27:0]={Qx3[0:6],Qx2[0:6],Qx1[0:6],Qx0[0:6]};

假设第二组4个ISERDES每个串并转换的结果为Qy3[6:0]、Qy2[6:0]、Qy1[6:0]、Qy0[6:0],28比特的串并转换结果调整为:

ry_data[27:0]={Qy3[0:6],Qy2[0:6],Qy1[0:6],Qy0[0:6]};

假设第三组4个ISERDES每个串并转换的结果为Qz3[7:0]、Qz2[6:0]、Qz1[6:0]、Qz0[6:0],28比特的串并转换结果调整为:

rz_data[27:0]={Qz3[0:6],Qz2[0:6],Qz1[0:6],Qz0[0:6]};

4.对输入数据逻辑映射得到帧有效信号rx_f_valid、行有效信号rx_l_valid、数据有效信号rx_d_valid和数据rx_image_data[63:0]信号的结果为:

f_valid=rx_data[15];

l_valid=rx_data[16];

d_valid=rx_data[14];

rx_image_data[63:0]=

{rz_data[24],rz_data[25],rz_data[9],rz_data[10],rz_data[11],rz_data[12],rz_data[13],rz_data[0],

rz_data[26],rz_data[27],rz_data[1],rz_data[2],rz_data[3],rz_data[4],rz_data[5],rz_data[6],

ry_data[22],ry_data[23],ry_data[17],ry_data[18],ry_data[19],ry_data[20],ry_data[7],ry_data[8],

ry_data[24],ry_data[25],ry_data[9],ry_data[10],ry_data[11],ry_data[12],ry_data[13],ry_data[0],

ry_data[26],ry_data[27],ry_data[1],ry_data[2],ry_data[3],ry_data[4],ry_data[5],ry_data[6],

rx_data[22],rx_data[23],rx_data[17],rx_data[18],rx_data[19],rx_data[20],rx_data[7],rx_data[8],

rx_data[24],rx_data[25],rx_data[9],rx_data[10],rx_data[11],rx_data[12],rx_data[13],rx_data[0],

rx_data[26],rx_data[27],rx_data[1],rx_data[2],rx_data[3],rx_data[4],rx_data[5],rx_data[6]

};

以cameralink接口的FULL模式为例,具体的基于FPGA发送模块实施方式介绍如下。

1.对输出数据进行逻辑映射,假设待输出的信号为帧有效信号tx_f_valid、行有效信号tx_l_valid、数据有效信号tx_d_valid和数据tx_image_data[63:0],将这些信号分配到tx_data[27:0]、ty_data[27:0]、tz_data[27:0]。

tx_data[27:0]=

{tx_image_data[6],tx_image_data[7],tx_image_data[14],tx_image_data[15],tx_image_data[22],tx_image_data[23],1’b0,

tx_image_data[18],tx_image_data[19],tx_image_data[20],tx_image_data[21],tx_d_valid,tx_f_valid,tx_l_valid,

tx_image_data[9],tx_image_data[10],tx_image_data[11],tx_image_data[12],tx_image_data[13],tx_image_data[16],tx_image_data[17],

tx_image_data[0],tx_image_data[1],tx_image_data[2],tx_image_data[3],tx_image_data[4],tx_image_data[5],tx_image_data[8]};

ty_data[27:0]=

{tx_image_data[30],tx_image_data[31],tx_image_data[38],tx_image_data[39],tx_image_data[46],tx_image_data[47],1’b0,

tx_image_data[42],tx_image_data[43],tx_image_data[44],tx_image_data[45],tx_d_valid,tx_f_valid,tx_l_valid,

tx_image_data[33],tx_image_data[34],tx_image_data[35],tx_image_data[36],tx_image_data[37],tx_image_data[40],tx_image_data[41],

tx_image_data[24],tx_image_data[25],tx_image_data[26],tx_image_data[27],tx_image_data[28],tx_image_data[29],tx_image_data[32],};

tz_data[27:0]=

{tx_image_data[54],tx_image_data[55],tx_image_data[62],tx_image_data[63],3’b0,

4’b0,tx_d_valid,tx_f_valid,tx_l_valid,

tx_image_data[57],tx_image_data[58],tx_image_data[59],tx_image_data[60],tx_image_data[61],2’b0

tx_image_data[48],tx_image_data[49],tx_image_data[50],tx_image_data[51],tx_image_data[52],tx_image_data[53],tx_image_data[56]};

2.采用3个输出数据并串转换模块,每个输入数据串并转换模块采用4个OSERDES完成28比特的并串转换。通过位置约束控制每4个OSERDES模块各自相邻,也控制每个输出数据并串转换模块相邻,参见图4。

上述的tx_data[27:0]需要4个OSERDES进行并串转换,输入分别为Dx3[6:0]、Dx2[6:0]、Dx1[6:0]、Dx0[6:0],输出为tx[3:0],则有:

Dx3[6:0]=tx_data[21:27];Dx2[6:0]=tx_data[14:20];Dx1[6:0]=tx_data[7:13];Dx0[6:0]=tx_data[0:6];

上述的ty_data[27:0]需要4个OSERDES进行并串转换,输入分别为Dy3[6:0]、Dy2[6:0]、Dy1[6:0]、Dy0[6:0],输出为ty[3:0],则有:

Dy3[6:0]=ty_data[21:27];Dy2[6:0]=ty_data[14:20];Dy1[6:0]=ty_data[7:13];Dy0[6:0]=ty_data[0:6];

上述的tz_data[27:0]需要4个OSERDES进行并串转换,输入分别为Dz3[6:0]、Dz2[6:0]、Dz1[6:0]、Dz0[6:0],输出为tz[3:0],则有:

Dz3[6:0]=tz_data[21:27];Dz2[6:0]=tz_data[14:20];Dz1[6:0]=tz_data[7:13];Dz0[6:0]=tz_data[0:6];

3.按照cameralink输出时钟的原频率和7倍频频率控制并串转换时钟,利用OSERDES模块对“110011”序列进行并串转换,对输出结果进行时钟约束,从全局时钟管脚输出,作为cameralink输出时钟tx_clk,参见图3。

4.利用OBUFDS将tx[3:0]、ty[3:0]、tz[3:0]转换为LVDS标准的物理信号tx_X_p(n)[3:0]、tx_Y_p(n)[3:0]、tx_Z_p(n)[3:0],利用OBUFDG将tx_clk转换为LVDS物理信号tx_CLKX_p(n)、tx_CLKY_p(n)、tx_CLKZ_p(n),这些信号可以直接与cameralink接口的采集卡对接。

综上所述,本发明一一种基于IOSERDES的Cameralink接口实现系统,由FPGA实现,使用FPGA的专有资源能够保证高速串并转换和并串转换的正确性,能够替代现有的cameralink协议芯片的全部功能,能够配置成BASE、MEDIUM、FULL三种工作模式,分别消耗10根、20根、30根具有LVDS功能FPGA管脚。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1