2024年2月20日发(作者:中嘉悦)
CameraLink接口
1. CameraLink接口简介
1.1 CameraLink标准概述
Camera Link 技术标准是基于 National Semiconductor 公司的 Channel Link 标准发展而来的,而 Channel Link 标准是一种多路并行 LVDS 传输接口标准。
低压差分信号( LVDS )是一种低摆幅的差分信号技术,电压摆幅在 350mV 左右,具有扰动小,跳变速率快的特点,在无失传输介质里的理论最大传输速率在 1.923Gbps 。 90
年代美国国家半导体公司( National Semiconductor )为了找到平板显示技术的解决方案,开发了基于 LVDS 物理层平台的 Channel Link 技术。此技术一诞生就被进行了扩展,用来作为新的通用视频数据传输技术使用。
如图1.1所示, Channel Link 由一个并转串信号发送驱动器和一个串转并信号接收器组成,其最高数据传输速率可达 2.38G 。数据发送器含有 28 位的单端并行信号和 1 个单端时钟信号,将 28 位 CMOS/TTL 信号串行化处理后分成 4 路 LVDS 数据流,其 4 路串行数据流和 1 路发送 LVDS 时钟流在 5 路 LVDS 差分对中传输。接收器接收从 4 路 LVDS
数据流和 1 路 LVDS 时钟流中把传来的数据和时钟信号恢复成 28 位的 CMOS/TTL 并行数据和与其相对应的同步时钟信号。
图1.1 camera link接口电路
1.2 CameraLink端口和端口分配
1.2.1 端口分配
在基本配置模式中,端口 A 、 B 和 C 被分配到唯一的 Camera Link 驱动器 / 接收器对上;在中级配置模式中,端口 D 、 E 和 F 被分配到第二个驱动器 / 接收器对上;在完整配置模式中,端口 A 、 B 和 C 被分配到第一个驱动器 / 接收器对上,端口 D 、 E 和
F 被分配到第二个驱动器 / 接收器对上,端口 G 和 H 被分配到第三个驱动器 / 接收器对上。表1.1给出了三种配置的端口分配, Camera Link 芯片及连接器的使用数量情况。
表1.1 3种配置模式的端口分配
配置模式
基本
中级
完整
端口
A,B,C
A,B,C,D,E,F
A,B,C,D,E,F,G, H
芯片数量
1
2
3
连接器数量
1
2
2
图1.2 各种配置下的端口连接关系
1.2.2 端口的位分配
从表1.2中我们可以看出在 3 种 Camera Link 配置模式中,图像数据位是怎样分配到端口的。这种位分配方式已经被应用于市场上最流行的相机上了。
表1.2 Camera Link 接口的端口分配
驱动器输入信号
Strobe
LVAL
FVAL
DVAL
Spare
PortA0 , PortD0 , PortG0
PortA1 , PortD1 , PortG1
PortA2 , PortD2 , PortG2
PortA3 , PortD3 , PortG3
PortA4 , PortD4 , PortG4
PortA5 , PortD5 , PortG5
PortA6 , PortD6 , PortG6
PortA7 , PortD7 , PortG7
PortB0 , PortE0 , PortH0
PortB1 , PortE1 , PortH1
PortB2 , PortE2 , PortH2
PortB3 , PortE3 , PortH3
PortB4 , PortE4 , PortH4
PortB5 , PortE5 , PortH5
PortB6 , PortE6 , PortH6
PortB7 , PortE7 , PortH7
PortC0 , PortF0
PortC1 , PortF1
PortC2 , PortF2
PortC3 , PortF3
PortC4 , PortF4
PortC5 , PortF5
PortC6 , PortF6
PortC7 , PortF7
对应芯片引脚
TxCLK Out/TxCLK In
TX/RX24
TX/RX25
TX/RX26
TX/RX23
TX/RX0
TX/RX1
TX/RX32
TX/RX3
TX/RX4
TX/RX6
TX/RX27
TX/RX5
TX/RX7
TX/RX8
TX/RX9
TX/RX12
TX/RX13
TX/RX14
TX/RX10
TX/RX11
TX/RX15
TX/RX18
TX/RX19
TX/RX20
TX/RX21
TX/RX22
TX/RX16
TX/RX17
如果只用端口 D 和 G ,那么它们与器件的连接方法与端口 A 相同。同样,如果使用端口 E 和 H ,它们与器件连接方法同端口 B 的相同,端口 F 的与端口 C 的相同。
如果相机在每个周期内仅输出 1 个像素,那么就使用分配给像素 A 的端口;如果相机在每个周期内输入 2 个像素,那么使用分配像素 A 和像素 B 的端口;如果在每个周期内输出 3 个像素,那么使用分配给像素 A 、 B 和 C 的端口;依次类推至相机每周期输出 8
个像素,那么分配给 A ~ H 的 8 个端口都将被使用。
2. CameraLink接口模块设计
2.1 功能描述
该模块主要根据被测FPGA发来的图像地址信号将DDR2中的指定图像数据读取出来,并且分五路发送给CameraLink接口,由CameraLink图像采集卡接收并传给上位机显示。
2.2 接口描述
CameraLink图像采集端口模块的接口信号如图2.1所示:
图2.1 CameraLink图像采集端口示意图
表2.1各端口的接口定义
端口名
端口类型
信号类型 描述
异步复位时钟,低电平有效
主时钟85MHz
DDR2访问时钟
地址使能信号,选择从A,D1,D2,D3,D4,D5,G中哪一块输出
帧同步信号
行同步信号
A块中的地址选择信号
D1块中的地址选择信号
D2块中的地址选择信号
D3块中的地址选择信号
D4块中的地址选择信号
D5块中的地址选择信号
I块中的地址选择信号
时钟同步模块
来源/去向
Cpsl_Reset_iN
输入
STD_LOGIC
Cpsl_CamLinkClk_i
Cpsl_DdrClk_i
Cpsv_DeBlkEn_i
Cpsl_CMOSFsyn_i
Cpsl_CMOSLsyn_i
Cpsv_AXaddr_i
Cpsv_D1Xaddr_i
Cpsv_D2Xaddr_i
Cpsv_D3Xaddr_i
Cpsv_D4Xaddr_i
Cpsv_D5Xaddr_i
Cpsv_IXaddr_输入
STD_LOGIC
输入
STD_LOGIC
STD_LOGIC_VECTOR输入
(6 DOWNTO 0)
输入
STD_LOGIC
输入
STD_LOGIC
输入
输入
输入
输入
输入
输入
STD_LOGIC_VECTOR(3 DOWNTO 0)
STD_LOGIC_VECTOR(10 DOWNTO 0)
STD_LOGIC_VECTOR(10 DOWNTO 0)
STD_LOGIC_VECTOR(10 DOWNTO 0)
STD_LOGIC_VECTOR(10 DOWNTO 0)
STD_LOGIC_VECTOR(10 DOWNTO 0)
被测FPGA
输入
STD_LOGIC_VECTOR
端口名
i
Cpsv_CamDataA_o
Cpsl_CamFvalA_oP
Cpsl_CamDvalA_oP
Cpsl_CamLvalA_oP
Cpsl_CamPwrDwnA_o
Cpsl_CamClkA_o
Cpsv_CamDataB_o
Cpsl_CamFvalB_oP
Cpsl_CamDvalB_oP
Cpsl_CamLvalB_oP
Cpsl_CamPwrDwnB_o
Cpsl_CamClkB_o
Cpsv_CamDataC_o
Cpsl_CamFvalC_oP
Cpsl_CamDvalC_oP
Cpsl_CamLvalC_oP
Cpsl_CamPwrDwnC_o
Cpsl_CamClkC_o
Cpsv_CamDataD_o
端口类型
信号类型
(3 DOWNTO 0)
描述
来源/去向
输出
STD_LOGIC_VECTOR(11 DOWNTO 0)
第一路Cameralink图像采集输出数据
第一路帧有效信号, 高电平有效
第一路数据有效信号,高电平有效
第一路行有效信号, 高电平有效
第一路CameraLink PowerDown
第一路CameraLink时钟
第二路Cameralink图像采集输出数据
第二路帧有效信号, 高电平有效
输出
STD_LOGIC
输出
STD_LOGIC
输出
STD_LOGIC
输出
STD_LOGIC
输出
STD_LOGIC
输出
STD_LOGIC_VECTOR(11 DOWNTO 0)
输出
STD_LOGIC
输出
STD_LOGIC
输出
STD_LOGIC
输出
STD_LOGIC
输出
STD_LOGIC
输出
输出
输出
输出
输出
输出
输出
STD_LOGIC_VECTOR(11 DOWNTO 0)
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC_VECTOR(11 DOWNTO 0)
DS9第二路数据有效信号,高电平0CR有效
287
第二路行有效信号, 高电平DS9有效
0CR第二路CameraLink PowerDown
287
第二路CameraLink时钟
第三路Cameralink图像采集输出数据
第三路帧有效信号, 高电平有效
第三路数据有效信号,高电平有效
第三路行有效信号, 高电平有效
第三路CameraLink PowerDown
第三路CameraLink时钟
第四路Cameralink图像采集输出数据
端口名
Cpsl_CamFvalD_oP
Cpsl_CamDvalD_oP
Cpsl_CamLvalD_oP
Cpsl_CamPwrDwnD_o
Cpsl_CamClkD_o
Cpsv_CamDataE_o
Cpsl_CamFvalE_oP
Cpsl_CamDvalE_oP
Cpsl_CamLvalE_oP
Cpsl_CamPwrDwnE_o
Cpsl_CamClkE_o
app_af_wren
app_af_addr
app_af_cmd
clk0_tb
app_af_afull
rd_data_valid
rd_data_fifo_out
端口类型
输出
输出
输出
输出
输出
输出
输出
输出
输出
输出
输出
信号类型
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC_VECTOR(11
DOWNTO 0)
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC_VECTOR(30 DOWNTO 0)
STD_LOGIC_VECTOR(2 DOWNTO 0)
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC_VECTOR(63 DOWNTO 0)
描述
第四路帧有效信号, 高电平有效
第四路数据有效信号,高电平有效
第四路行有效信号, 高电平有效
第四路CameraLink PowerDown
第四路CameraLink时钟
第五路Cameralink图像采集输出数据
第五路帧有效信号, 高电平有效
第五路数据有效信号,高电平有效
第五路行有效信号, 高电平有效
第五路CameraLink PowerDown
第五路CameraLink时钟
MIG缓存地址和命令的fifo写使能信号高电平有效
MIG地址总线
MIG读写命令控制信号
MIG用户界面同步时钟
缓存地址和命令的fifo快满信号
读出数据有效信号,与有效数据同步
MIG用户界面读数据总线
来源/去向
输出
输出
输出
输入
输入
输入
输入
DDR2控制器
CameraLink接口信号时序如图2.2所示:
图2.2 CameraLink图像采集电路的时序图
2.3 功能实现
Cameralink图像采集接口电路主要包含两个子模块,如图4.59所示,数据读取分发模块负责从DDR2中读取处理好的CMOS图像,并按指定的数据编排要求分发给5路CAMERALINK数据缓冲输出模块,数据缓冲输出模块完成5路CAMERALINK数据的缓冲,并按指定时序要求发送给DS90CR287。
图2.3 CameraLink图像采集软件流程框图
2.3.1 数据读取分发模块
数据读取分发模块负责在帧行同步信号的控制下,按照地址使能和地址信号从DDR2中读取处理好的CMOS图像数据,并按指定的数据编排要求发送给cameralink数据缓冲输出模块。
该模块也分为两个子模块:地址映射模块和读取DDR模块。地址映射模块的主要功能是根据被测FPGA给的行地址转化成对应DDR的行起始地址,转化完成后把DDR地址发给DDR读取模块,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仿真结果
图2.4 modelsim仿真结果
如图2.4,被测FPGA每来一个行同步,CameraLink模块获取行地址后读取DDR2中的数据写入缓存模块,等到下一个行同步来的时候把所读的数据从缓存模块中输出。实际要求的是每个行同步来后要读取一行数据,大小为2048x12bit,为了缩小仿真时间,仿真时没一行的数据长度为:80x12bit。
图2.5 五路CameraLink仿真输出
如图2.5,当下个行同步来的时候缓存数据输出,输出的数据时连续的。
2024年2月20日发(作者:中嘉悦)
CameraLink接口
1. CameraLink接口简介
1.1 CameraLink标准概述
Camera Link 技术标准是基于 National Semiconductor 公司的 Channel Link 标准发展而来的,而 Channel Link 标准是一种多路并行 LVDS 传输接口标准。
低压差分信号( LVDS )是一种低摆幅的差分信号技术,电压摆幅在 350mV 左右,具有扰动小,跳变速率快的特点,在无失传输介质里的理论最大传输速率在 1.923Gbps 。 90
年代美国国家半导体公司( National Semiconductor )为了找到平板显示技术的解决方案,开发了基于 LVDS 物理层平台的 Channel Link 技术。此技术一诞生就被进行了扩展,用来作为新的通用视频数据传输技术使用。
如图1.1所示, Channel Link 由一个并转串信号发送驱动器和一个串转并信号接收器组成,其最高数据传输速率可达 2.38G 。数据发送器含有 28 位的单端并行信号和 1 个单端时钟信号,将 28 位 CMOS/TTL 信号串行化处理后分成 4 路 LVDS 数据流,其 4 路串行数据流和 1 路发送 LVDS 时钟流在 5 路 LVDS 差分对中传输。接收器接收从 4 路 LVDS
数据流和 1 路 LVDS 时钟流中把传来的数据和时钟信号恢复成 28 位的 CMOS/TTL 并行数据和与其相对应的同步时钟信号。
图1.1 camera link接口电路
1.2 CameraLink端口和端口分配
1.2.1 端口分配
在基本配置模式中,端口 A 、 B 和 C 被分配到唯一的 Camera Link 驱动器 / 接收器对上;在中级配置模式中,端口 D 、 E 和 F 被分配到第二个驱动器 / 接收器对上;在完整配置模式中,端口 A 、 B 和 C 被分配到第一个驱动器 / 接收器对上,端口 D 、 E 和
F 被分配到第二个驱动器 / 接收器对上,端口 G 和 H 被分配到第三个驱动器 / 接收器对上。表1.1给出了三种配置的端口分配, Camera Link 芯片及连接器的使用数量情况。
表1.1 3种配置模式的端口分配
配置模式
基本
中级
完整
端口
A,B,C
A,B,C,D,E,F
A,B,C,D,E,F,G, H
芯片数量
1
2
3
连接器数量
1
2
2
图1.2 各种配置下的端口连接关系
1.2.2 端口的位分配
从表1.2中我们可以看出在 3 种 Camera Link 配置模式中,图像数据位是怎样分配到端口的。这种位分配方式已经被应用于市场上最流行的相机上了。
表1.2 Camera Link 接口的端口分配
驱动器输入信号
Strobe
LVAL
FVAL
DVAL
Spare
PortA0 , PortD0 , PortG0
PortA1 , PortD1 , PortG1
PortA2 , PortD2 , PortG2
PortA3 , PortD3 , PortG3
PortA4 , PortD4 , PortG4
PortA5 , PortD5 , PortG5
PortA6 , PortD6 , PortG6
PortA7 , PortD7 , PortG7
PortB0 , PortE0 , PortH0
PortB1 , PortE1 , PortH1
PortB2 , PortE2 , PortH2
PortB3 , PortE3 , PortH3
PortB4 , PortE4 , PortH4
PortB5 , PortE5 , PortH5
PortB6 , PortE6 , PortH6
PortB7 , PortE7 , PortH7
PortC0 , PortF0
PortC1 , PortF1
PortC2 , PortF2
PortC3 , PortF3
PortC4 , PortF4
PortC5 , PortF5
PortC6 , PortF6
PortC7 , PortF7
对应芯片引脚
TxCLK Out/TxCLK In
TX/RX24
TX/RX25
TX/RX26
TX/RX23
TX/RX0
TX/RX1
TX/RX32
TX/RX3
TX/RX4
TX/RX6
TX/RX27
TX/RX5
TX/RX7
TX/RX8
TX/RX9
TX/RX12
TX/RX13
TX/RX14
TX/RX10
TX/RX11
TX/RX15
TX/RX18
TX/RX19
TX/RX20
TX/RX21
TX/RX22
TX/RX16
TX/RX17
如果只用端口 D 和 G ,那么它们与器件的连接方法与端口 A 相同。同样,如果使用端口 E 和 H ,它们与器件连接方法同端口 B 的相同,端口 F 的与端口 C 的相同。
如果相机在每个周期内仅输出 1 个像素,那么就使用分配给像素 A 的端口;如果相机在每个周期内输入 2 个像素,那么使用分配像素 A 和像素 B 的端口;如果在每个周期内输出 3 个像素,那么使用分配给像素 A 、 B 和 C 的端口;依次类推至相机每周期输出 8
个像素,那么分配给 A ~ H 的 8 个端口都将被使用。
2. CameraLink接口模块设计
2.1 功能描述
该模块主要根据被测FPGA发来的图像地址信号将DDR2中的指定图像数据读取出来,并且分五路发送给CameraLink接口,由CameraLink图像采集卡接收并传给上位机显示。
2.2 接口描述
CameraLink图像采集端口模块的接口信号如图2.1所示:
图2.1 CameraLink图像采集端口示意图
表2.1各端口的接口定义
端口名
端口类型
信号类型 描述
异步复位时钟,低电平有效
主时钟85MHz
DDR2访问时钟
地址使能信号,选择从A,D1,D2,D3,D4,D5,G中哪一块输出
帧同步信号
行同步信号
A块中的地址选择信号
D1块中的地址选择信号
D2块中的地址选择信号
D3块中的地址选择信号
D4块中的地址选择信号
D5块中的地址选择信号
I块中的地址选择信号
时钟同步模块
来源/去向
Cpsl_Reset_iN
输入
STD_LOGIC
Cpsl_CamLinkClk_i
Cpsl_DdrClk_i
Cpsv_DeBlkEn_i
Cpsl_CMOSFsyn_i
Cpsl_CMOSLsyn_i
Cpsv_AXaddr_i
Cpsv_D1Xaddr_i
Cpsv_D2Xaddr_i
Cpsv_D3Xaddr_i
Cpsv_D4Xaddr_i
Cpsv_D5Xaddr_i
Cpsv_IXaddr_输入
STD_LOGIC
输入
STD_LOGIC
STD_LOGIC_VECTOR输入
(6 DOWNTO 0)
输入
STD_LOGIC
输入
STD_LOGIC
输入
输入
输入
输入
输入
输入
STD_LOGIC_VECTOR(3 DOWNTO 0)
STD_LOGIC_VECTOR(10 DOWNTO 0)
STD_LOGIC_VECTOR(10 DOWNTO 0)
STD_LOGIC_VECTOR(10 DOWNTO 0)
STD_LOGIC_VECTOR(10 DOWNTO 0)
STD_LOGIC_VECTOR(10 DOWNTO 0)
被测FPGA
输入
STD_LOGIC_VECTOR
端口名
i
Cpsv_CamDataA_o
Cpsl_CamFvalA_oP
Cpsl_CamDvalA_oP
Cpsl_CamLvalA_oP
Cpsl_CamPwrDwnA_o
Cpsl_CamClkA_o
Cpsv_CamDataB_o
Cpsl_CamFvalB_oP
Cpsl_CamDvalB_oP
Cpsl_CamLvalB_oP
Cpsl_CamPwrDwnB_o
Cpsl_CamClkB_o
Cpsv_CamDataC_o
Cpsl_CamFvalC_oP
Cpsl_CamDvalC_oP
Cpsl_CamLvalC_oP
Cpsl_CamPwrDwnC_o
Cpsl_CamClkC_o
Cpsv_CamDataD_o
端口类型
信号类型
(3 DOWNTO 0)
描述
来源/去向
输出
STD_LOGIC_VECTOR(11 DOWNTO 0)
第一路Cameralink图像采集输出数据
第一路帧有效信号, 高电平有效
第一路数据有效信号,高电平有效
第一路行有效信号, 高电平有效
第一路CameraLink PowerDown
第一路CameraLink时钟
第二路Cameralink图像采集输出数据
第二路帧有效信号, 高电平有效
输出
STD_LOGIC
输出
STD_LOGIC
输出
STD_LOGIC
输出
STD_LOGIC
输出
STD_LOGIC
输出
STD_LOGIC_VECTOR(11 DOWNTO 0)
输出
STD_LOGIC
输出
STD_LOGIC
输出
STD_LOGIC
输出
STD_LOGIC
输出
STD_LOGIC
输出
输出
输出
输出
输出
输出
输出
STD_LOGIC_VECTOR(11 DOWNTO 0)
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC_VECTOR(11 DOWNTO 0)
DS9第二路数据有效信号,高电平0CR有效
287
第二路行有效信号, 高电平DS9有效
0CR第二路CameraLink PowerDown
287
第二路CameraLink时钟
第三路Cameralink图像采集输出数据
第三路帧有效信号, 高电平有效
第三路数据有效信号,高电平有效
第三路行有效信号, 高电平有效
第三路CameraLink PowerDown
第三路CameraLink时钟
第四路Cameralink图像采集输出数据
端口名
Cpsl_CamFvalD_oP
Cpsl_CamDvalD_oP
Cpsl_CamLvalD_oP
Cpsl_CamPwrDwnD_o
Cpsl_CamClkD_o
Cpsv_CamDataE_o
Cpsl_CamFvalE_oP
Cpsl_CamDvalE_oP
Cpsl_CamLvalE_oP
Cpsl_CamPwrDwnE_o
Cpsl_CamClkE_o
app_af_wren
app_af_addr
app_af_cmd
clk0_tb
app_af_afull
rd_data_valid
rd_data_fifo_out
端口类型
输出
输出
输出
输出
输出
输出
输出
输出
输出
输出
输出
信号类型
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC_VECTOR(11
DOWNTO 0)
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC_VECTOR(30 DOWNTO 0)
STD_LOGIC_VECTOR(2 DOWNTO 0)
STD_LOGIC
STD_LOGIC
STD_LOGIC
STD_LOGIC_VECTOR(63 DOWNTO 0)
描述
第四路帧有效信号, 高电平有效
第四路数据有效信号,高电平有效
第四路行有效信号, 高电平有效
第四路CameraLink PowerDown
第四路CameraLink时钟
第五路Cameralink图像采集输出数据
第五路帧有效信号, 高电平有效
第五路数据有效信号,高电平有效
第五路行有效信号, 高电平有效
第五路CameraLink PowerDown
第五路CameraLink时钟
MIG缓存地址和命令的fifo写使能信号高电平有效
MIG地址总线
MIG读写命令控制信号
MIG用户界面同步时钟
缓存地址和命令的fifo快满信号
读出数据有效信号,与有效数据同步
MIG用户界面读数据总线
来源/去向
输出
输出
输出
输入
输入
输入
输入
DDR2控制器
CameraLink接口信号时序如图2.2所示:
图2.2 CameraLink图像采集电路的时序图
2.3 功能实现
Cameralink图像采集接口电路主要包含两个子模块,如图4.59所示,数据读取分发模块负责从DDR2中读取处理好的CMOS图像,并按指定的数据编排要求分发给5路CAMERALINK数据缓冲输出模块,数据缓冲输出模块完成5路CAMERALINK数据的缓冲,并按指定时序要求发送给DS90CR287。
图2.3 CameraLink图像采集软件流程框图
2.3.1 数据读取分发模块
数据读取分发模块负责在帧行同步信号的控制下,按照地址使能和地址信号从DDR2中读取处理好的CMOS图像数据,并按指定的数据编排要求发送给cameralink数据缓冲输出模块。
该模块也分为两个子模块:地址映射模块和读取DDR模块。地址映射模块的主要功能是根据被测FPGA给的行地址转化成对应DDR的行起始地址,转化完成后把DDR地址发给DDR读取模块,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仿真结果
图2.4 modelsim仿真结果
如图2.4,被测FPGA每来一个行同步,CameraLink模块获取行地址后读取DDR2中的数据写入缓存模块,等到下一个行同步来的时候把所读的数据从缓存模块中输出。实际要求的是每个行同步来后要读取一行数据,大小为2048x12bit,为了缩小仿真时间,仿真时没一行的数据长度为:80x12bit。
图2.5 五路CameraLink仿真输出
如图2.5,当下个行同步来的时候缓存数据输出,输出的数据时连续的。