创作时间:2021-04-12
1.回顾
之前写过一篇长文博客,深受各位读者关注。
【相机标准】我的cameralink协议学习笔记(个人中文翻译,以及理解
内容包括:
1.第一章 简介
2.第二章 信号需求
3.第三章 端口分配
4.第四章 bit分配
5.第五章 连接器
附录A 芯片组标准
附录B API 功能
附录C 不同配置(base medium full)下的bit 分配
附录D cameralink电缆信息
2.添新
今天,我打算再添加一些内容。
主要把第四章 bit分配这里详述,
并举例说明:
FPGA+DS90CR287芯片,实现cameralink的输出,以及verilog 代码。
2.1 DS90CR287是并转串的cameralink芯片
2.2 管脚分配
我以输出16bit 的灰度图像数据,base模式,为例。
参照《cameralink学习笔记》中管脚分配,如下:
2.3 verilog代码如下:
(输出16bit 的灰度图像数据,base模式)
//ds90cr287 cameralink 输出
//输出16bit 的灰度图像数据,base模式
//
module cl287_base_16bit_Output(
//for camera input
input clk,
input rst,
input cl_fval,
input cl_lval,
input [15:0] cl_data,
//for ds90cr287
output wire CR287_TxClk,
output reg[27:0] CR287_TxIn,
output reg CR287_PD=1'b0
);
assign CR287_TxClk=clk;
//delay ds90cr287 power up
reg[7:0]cnt_delay=1'b0;
always@(posedege clk)begin
if(cnt_delay=8'hFF)begin
cnt_delay<=cnt_delay;
CR287_PD<=1'b1;
end
else begin
CR287_PD<=1'b01;
cnt_delay<=cnt_delay+1'b1;
end
end
//base mode,16x1,ds90cr287_output
//按照《cameralink协议-第四章 bit分配》,
//一定注意管脚序号
always@(posedege clk)begin
//Port A
CR287_TxIn[00]<=cl_data[00];//CR287_TX00--Port_A0--16bitx1_A0
CR287_TxIn[01]<=cl_data[01];//CR287_TX01--Port_A1--16bitx1_A1
CR287_TxIn[02]<=cl_data[02];//CR287_TX02--Port_A2--16bitx1_A2
CR287_TxIn[03]<=cl_data[03];//CR287_TX03--Port_A3--16bitx1_A3
CR287_TxIn[04]<=cl_data[04];//CR287_TX04--Port_A4--16bitx1_A4
CR287_TxIn[06]<=cl_data[05];//CR287_TX06--Port_A5--16bitx1_A5
CR287_TxIn[27]<=cl_data[06];//CR287_TX27--Port_A6--16bitx1_A6
CR287_TxIn[05]<=cl_data[07];//CR287_TX05--Port_A7--16bitx1_A7
//Port B
CR287_TxIn[07]<=cl_data[08];//CR287_TX07--Port_B0--16bitx1_A8
CR287_TxIn[08]<=cl_data[09];//CR287_TX08--Port_B1--16bitx1_A9
CR287_TxIn[09]<=cl_data[10];//CR287_TX09--Port_B2--16bitx1_A10
CR287_TxIn[12]<=cl_data[11];//CR287_TX12--Port_B3--16bitx1_A11
CR287_TxIn[13]<=cl_data[12];//CR287_TX13--Port_B4--16bitx1_A12
CR287_TxIn[14]<=cl_data[13];//CR287_TX14--Port_B5--16bitx1_A13
CR287_TxIn[10]<=cl_data[14];//CR287_TX10--Port_B6--16bitx1_A14
CR287_TxIn[11]<=cl_data[15];//CR287_TX11--Port_B7--16bitx1_A15
//Port C
CR287_TxIn[15]<=1'b0;//CR287_TX15--Port C0--16bitx1_nc//实际中,不用的给0就行
CR287_TxIn[18]<=1'b0;//CR287_TX18--Port C1--16bitx1_nc//实际中,不用的给0就行
CR287_TxIn[19]<=1'b0;//CR287_TX19--Port C2--16bitx1_nc//实际中,不用的给0就行
CR287_TxIn[20]<=1'b0;//CR287_TX20--Port C3--16bitx1_nc//实际中,不用的给0就行
CR287_TxIn[22]<=1'b0;//CR287_TX22--Port C5--16bitx1_nc//实际中,不用的给0就行
CR287_TxIn[16]<=1'b0;//CR287_TX16--Port C6--16bitx1_nc//实际中,不用的给0就行
CR287_TxIn[17]<=1'b0;//CR287_TX17--Port C7--16bitx1_nc//实际中,不用的给0就行
//VAL
CR287_TxIn[23]<=1'b0; //TX23--SPARE--16bitx1_nc//实际中给0就行
CR287_TxIn[24]<=cl_lval;//TX24--LVAL
CR287_TxIn[25]<=cl_fval;//TX25--FVAL
CR287_TxIn[26]<=cl_lval;//TX26--DVAL//实际中给lval就行
end
endmodule
3.问题
如何根据视频的分辨率、帧频等,来确定CLK。
一般就是和实际的像素时钟一致,如果像素时钟超过CL287最大时钟85Mhz,就得考虑使用DDR缓存进行降时钟。
关于sensor display geometry settings(比如:一次出几个像素,AB,A,ABCD等),这个“相机和采集卡设置”约定好就行,和CL287没有关系。
THE END~
【MATLAB-app】系列教程(含视频)00_csdn上第一套关于matlab appdesigner系列“视频课”来啦~~
本文含有隐藏内容,请 开通VIP 后查看