1、CameraLink接口时序控制CameraLink接口1. CameraLink接口简介1.1 CameraLink标准概述Camera Link 技术标准是基于 National Semiconductor 公司的 Channel Link 标准发展而来的,而 Channel Link 标准是一种多路并行 LVDS 传输接口标准。低压差分信号( LVDS )是一种低摆幅的差分信号技术,电压摆幅在 350mV 左右,具有扰动小,跳变速率快的特点,在无失传输介质里的理论最大传输速率在 。 90 年代美国国家半导体公司( National Semiconductor )为了找到平板显示技术的解决
2、方案,开发了基于 LVDS 物理层平台的 Channel Link 技术。此技术一诞生就被进行了扩展,用来作为新的通用视频数据传输技术使用。 如图所示, Channel Link 由一个并转串信号发送驱动器和一个串转并信号接收器组成,其最高数据传输速率可达 。数据发送器含有 28 位的单端并行信号和 1 个单端时钟信号,将 28 位 CMOS/TTL 信号串行化处理后分成 4 路 LVDS 数据流,其 4 路串行数据流和 1 路发送 LVDS 时钟流在 5 路 LVDS 差分对中传输。接收器接收从 4 路 LVDS 数据流和 1 路 LVDS 时钟流中把传来的数据和时钟信号恢复成 28 位的
3、CMOS/TTL 并行数据和与其相对应的同步时钟信号。图 camera link接口电路1.2 CameraLink端口和端口分配1.2.1 端口分配在基本配置模式中,端口 A 、 B 和 C 被分配到唯一的 Camera Link 驱动器 / 接收器对上;在中级配置模式中,端口 D 、 E 和 F 被分配到第二个驱动器 / 接收器对上;在完整配置模式中,端口 A 、 B 和 C 被分配到第一个驱动器 / 接收器对上,端口 D 、 E 和 F 被分配到第二个驱动器 / 接收器对上,端口 G 和 H 被分配到第三个驱动器 / 接收器对上。表给出了三种配置的端口分配, Camera Link 芯片
4、及连接器的使用数量情况。表 3种配置模式的端口分配配置模式端口芯片数量连接器数量基本A,B,C11中级A,B,C,D,E,F22完整A,B,C,D,E,F,G, H32图 各种配置下的端口连接关系1.2.2 端口的位分配从表中我们可以看出在 3 种 Camera Link 配置模式中,图像数据位是怎样分配到端口的。这种位分配方式已经被应用于市场上最流行的相机上了。表 Camera Link 接口的端口分配驱动器输入信号对应芯片引脚StrobeTxCLK Out/TxCLK InLVALTX/RX24FVALTX/RX25DVALTX/RX26SpareTX/RX23PortA0 , PortD
5、0 , PortG0TX/RX0PortA1 , PortD1 , PortG1TX/RX1PortA2 , PortD2 , PortG2TX/RX32PortA3 , PortD3 , PortG3TX/RX3PortA4 , PortD4 , PortG4TX/RX4PortA5 , PortD5 , PortG5TX/RX6PortA6 , PortD6 , PortG6TX/RX27PortA7 , PortD7 , PortG7TX/RX5PortB0 , PortE0 , PortH0TX/RX7PortB1 , PortE1 , PortH1TX/RX8PortB2 , Por
6、tE2 , PortH2TX/RX9PortB3 , PortE3 , PortH3TX/RX12PortB4 , PortE4 , PortH4TX/RX13PortB5 , PortE5 , PortH5TX/RX14PortB6 , PortE6 , PortH6TX/RX10PortB7 , PortE7 , PortH7TX/RX11PortC0 , PortF0TX/RX15PortC1 , PortF1TX/RX18PortC2 , PortF2TX/RX19PortC3 , PortF3TX/RX20PortC4 , PortF4TX/RX21PortC5 , PortF5TX
7、/RX22PortC6 , PortF6TX/RX16PortC7 , PortF7TX/RX17如果只用端口 D 和 G ,那么它们与器件的连接方法与端口 A 相同。同样,如果使用端口 E 和 H ,它们与器件连接方法同端口 B 的相同,端口 F 的与端口 C 的相同。如果相机在每个周期内仅输出 1 个像素,那么就使用分配给像素 A 的端口;如果相机在每个周期内输入 2 个像素,那么使用分配像素 A 和像素 B 的端口;如果在每个周期内输出 3 个像素,那么使用分配给像素 A 、 B 和 C 的端口;依次类推至相机每周期输出 8 个像素,那么分配给 A H 的 8 个端口都将被使用。2. C
8、ameraLink接口模块设计2.1 功能描述该模块主要根据被测FPGA发来的图像地址信号将DDR2中的指定图像数据读取出来,并且分五路发送给CameraLink接口,由CameraLink图像采集卡接收并传给上位机显示。2.2 接口描述CameraLink图像采集端口模块的接口信号如图所示:图 CameraLink图像采集端口示意图表各端口的接口定义端口名端口类型信号类型描述来源/去向Cpsl_Reset_iN输入STD_LOGIC异步复位时钟,低电平有效时钟同步模块Cpsl_CamLinkClk_i输入STD_LOGIC主时钟85MHzCpsl_DdrClk_i输入STD_LOGICDDR
9、2访问时钟被测FPGACpsv_DeBlkEn_i输入STD_LOGIC_VECTOR(6 DOWNTO 0)地址使能信号,选择从A,D1,D2,D3,D4,D5,G中哪一块输出Cpsl_CMOSFsyn_i输入STD_LOGIC帧同步信号Cpsl_CMOSLsyn_i输入STD_LOGIC行同步信号Cpsv_AXaddr_i输入STD_LOGIC_VECTOR(3 DOWNTO 0)A块中的地址选择信号Cpsv_D1Xaddr_i输入STD_LOGIC_VECTOR(10 DOWNTO 0)D1块中的地址选择信号Cpsv_D2Xaddr_i输入STD_LOGIC_VECTOR(10 DOWN
10、TO 0)D2块中的地址选择信号Cpsv_D3Xaddr_i输入STD_LOGIC_VECTOR(10 DOWNTO 0)D3块中的地址选择信号Cpsv_D4Xaddr_i输入STD_LOGIC_VECTOR(10 DOWNTO 0)D4块中的地址选择信号Cpsv_D5Xaddr_i输入STD_LOGIC_VECTOR(10 DOWNTO 0)D5块中的地址选择信号Cpsv_IXaddr_i输入STD_LOGIC_VECTOR(3 DOWNTO 0)I块中的地址选择信号DS90CR287DS90CR287Cpsv_CamDataA_o输出STD_LOGIC_VECTOR(11 DOWNTO 0
11、)第一路Cameralink图像采集输出数据Cpsl_CamFvalA_oP输出STD_LOGIC第一路帧有效信号, 高电平有效Cpsl_CamDvalA_oP输出STD_LOGIC第一路数据有效信号,高电平有效Cpsl_CamLvalA_oP输出STD_LOGIC第一路行有效信号, 高电平有效Cpsl_CamPwrDwnA_o输出STD_LOGIC第一路CameraLink PowerDownCpsl_CamClkA_o输出STD_LOGIC第一路CameraLink时钟Cpsv_CamDataB_o输出STD_LOGIC_VECTOR(11 DOWNTO 0)第二路Cameralink图像
12、采集输出数据Cpsl_CamFvalB_oP输出STD_LOGIC第二路帧有效信号, 高电平有效Cpsl_CamDvalB_oP输出STD_LOGIC第二路数据有效信号,高电平有效Cpsl_CamLvalB_oP输出STD_LOGIC第二路行有效信号, 高电平有效Cpsl_CamPwrDwnB_o输出STD_LOGIC第二路CameraLink PowerDownCpsl_CamClkB_o输出STD_LOGIC第二路CameraLink时钟Cpsv_CamDataC_o输出STD_LOGIC_VECTOR(11 DOWNTO 0)第三路Cameralink图像采集输出数据Cpsl_CamFv
13、alC_oP输出STD_LOGIC第三路帧有效信号, 高电平有效Cpsl_CamDvalC_oP输出STD_LOGIC第三路数据有效信号,高电平有效Cpsl_CamLvalC_oP输出STD_LOGIC第三路行有效信号, 高电平有效Cpsl_CamPwrDwnC_o输出STD_LOGIC第三路CameraLink PowerDownCpsl_CamClkC_o输出STD_LOGIC第三路CameraLink时钟Cpsv_CamDataD_o输出STD_LOGIC_VECTOR(11 DOWNTO 0)第四路Cameralink图像采集输出数据Cpsl_CamFvalD_oP输出STD_LOGI
14、C第四路帧有效信号, 高电平有效Cpsl_CamDvalD_oP输出STD_LOGIC第四路数据有效信号,高电平有效Cpsl_CamLvalD_oP输出STD_LOGIC第四路行有效信号, 高电平有效Cpsl_CamPwrDwnD_o输出STD_LOGIC第四路CameraLink PowerDownCpsl_CamClkD_o输出STD_LOGIC第四路CameraLink时钟Cpsv_CamDataE_o输出STD_LOGIC_VECTOR(11 DOWNTO 0)第五路Cameralink图像采集输出数据Cpsl_CamFvalE_oP输出STD_LOGIC第五路帧有效信号, 高电平有效
15、Cpsl_CamDvalE_oP输出STD_LOGIC第五路数据有效信号,高电平有效Cpsl_CamLvalE_oP输出STD_LOGIC第五路行有效信号, 高电平有效Cpsl_CamPwrDwnE_o输出STD_LOGIC第五路CameraLink PowerDownCpsl_CamClkE_o输出STD_LOGIC第五路CameraLink时钟app_af_wren输出STD_LOGICMIG缓存地址和命令的fifo写使能信号高电平有效DDR2控制器app_af_addr输出STD_LOGIC_VECTOR(30 DOWNTO 0)MIG地址总线app_af_cmd输出STD_LOGIC_
16、VECTOR(2 DOWNTO 0)MIG读写命令控制信号clk0_tb输入STD_LOGICMIG用户界面同步时钟app_af_afull输入STD_LOGIC缓存地址和命令的fifo快满信号rd_data_valid输入STD_LOGIC读出数据有效信号,与有效数据同步rd_data_fifo_out输入STD_LOGIC_VECTOR(63 DOWNTO 0)MIG用户界面读数据总线CameraLink接口信号时序如图所示:图 CameraLink图像采集电路的时序图2.3 功能实现Cameralink图像采集接口电路主要包含两个子模块,如图所示,数据读取分发模块负责从DDR2中读取处理
17、好的CMOS图像,并按指定的数据编排要求分发给5路CAMERALINK数据缓冲输出模块,数据缓冲输出模块完成5路CAMERALINK数据的缓冲,并按指定时序要求发送给DS90CR287。图 CameraLink图像采集软件流程框图2.3.1 数据读取分发模块数据读取分发模块负责在帧行同步信号的控制下,按照地址使能和地址信号从DDR2中读取处理好的CMOS图像数据,并按指定的数据编排要求发送给cameralink数据缓冲输出模块。 该模块也分为两个子模块:地址映射模块和读取DDR模块。地址映射模块的主要功能是根据被测FPGA给的行地址转化成对应DDR的行起始地址,转化完成后把DDR地址发给DDR
18、读取模块,DDR读取模块负责把该行的10240个像素(12bit)全部读取到五路缓冲模块中。2.3.2 数据缓冲输出模块缓冲模块总共有五路,把一行图像数据平均分到五路缓冲后输出。每路CameraLink缓冲模块包括2个双口RAM,采用乒乓读写的工作模式,一个双口RAM读DDR数据的同时另一个双口RAM发送数据。双口RAM配置为两端口独立时钟模式,以隔离DDR时钟和CamerLink数据域的时钟。另外,两端口可以配置为不同的数据位宽,以方便实现DDR2数据位宽64位到16位数据位宽的变换。由于CamerLink输出时12位的,因此在款冲模块处还要有一个16位位宽转换位12位位宽的子模块来完成位宽的转换。2.4 modelsim仿真结果图 modelsim仿真结果如图,被测FPGA每来一个行同步,CameraLink模块获取行地址后读取DDR2中的数据写入缓存模块,等到下一个行同步来的时候把所读的数据从缓存模块中输出。实际要求的是每个行同步来后要读取一行数据,大小为2048x12bit,为了缩小仿真时间,仿真时没一行的数据长度为:80x12bit。图 五路CameraLink仿真输出如图,当下个行同步来的时候缓存数据输出,输出的数据时连续的。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1