基于FPGA的cameralink编解码测试系统设计

1、目的

项目需要设计一个多功能参数可变的cameralink相机视频接收机,接收到相机传过来的视频数据通过PCIE往上位机发。开始没有可供测试的相机,于是想着用FPGA模拟cameralink协议自行写一个视频发送机,用于对接自己的设计的cameralink视频接收机;采用两块FPGA板对接,用lvds差分信号传输数据;

基于FPGA的cameralink编解码测试系统设计_第1张图片

 

发送机实现FPGA对视频数据的cameralink协议编码;

接收机实现FPGA对视频数据的cameralink协议解码;

接收到的数据是:portA,portB,portC,portD,portE,portF,portG,portH共八个端口的数据;

FPGA将8个端口的数据根据不同的传输模式进行重组,写入内存空间;上位机从内存读到数据以后显示出来。

CPU读取当前模式寄存器,确认当前cameralink工作模式;

CPU根据cameralink工作模式确定图像数据组合的方式;

2、设计架构图

base模式:一次性传3个像素  占用A,B,C共3个端口

midium模式:一次性传6个像素  占用A,B,C,D,E,F共6个端口

full模式:一次性传8个像素  占用A,B,C,D,E,F,G,H共8个端口

基于FPGA的cameralink编解码测试系统设计_第2张图片

 

3、参数计算

//

2021年11月17日

cameralink全参数设计:

wire [31:0]slvReg1;//0008

wire [31:0]slvReg2;//000C

wire [31:0]slvReg3;//0010

wire [31:0]slvReg4;//0014

localparam VERSION1       = 32'h20211117;0018

localparam VERSION2       = 32'h000000A1;001C

wire [31:0]gpio_i1=VERSION1;

wire [31:0]gpio_i2=VERSION2;

//c_mode 

//[7:6]=00    -->BASE   [7:6]=01  -->MEDIUNM   [7:6]=10  -->FULL

//[5:4]=00    -->8BIT   [5:4]=01  -->10BIT     [5:4]=10  -->12BIT  [5:4]=11  -->14BIT

//[3:0]=0000  -->640*512

//[3:0]=0001  -->320*240

//[3:0]=0010  -->1024*1024

//[3:0]=0011  -->1280*1280

//[3:0]=0100  -->1280*720

//[3:0]=0101  -->1902*1080

cameralink像素的排列方式:

在BASE模式下:

1、当像素是14bit的时候,B端口的低6位  +   A端口的8位组成14bit,C端口空置,一个时钟产生1个像素

2、当像素是12bit的时候,B端口的低4位  +   A端口的8位组成12bit 第1个像素,

                                                   C端口的8位  +    B端口的高4位组成12bit 第2个像素,,一个时钟产生2个像素

3、当像素是10bit的时候,B端口的低2位  +   A端口的8位组成10bit 第1个像素,

                                                   C端口的8位  +    B端口的B5,B4组成10bit 第2个像素,,一个时钟产生2个像素

4、当像素是8bit的时候, A端口的8位组成8bit 第1个像素,

                                       A端口的8位组成8bit 第1个像素,

                                       A端口的8位组成8bit 第1个像素,一个时钟产生3个像素

在medium模式下:

1、当像素是14bit的时候,一个时钟产生2个像素   【不考虑这种情况,medium模式不用来传输14bit数据】

2、当像素是12bit的时候,一个时钟产生4个像素

3、当像素是10bit的时候,一个时钟产生4个像素

4、当像素是8bit的时候  ,一个时钟产生6个像素

在full模式下:

1、仅用于8bit传输,一个时钟产生8个像素,1个端口代表一个像素

你可能感兴趣的:(fpga,pci-e,lvds,cameralink)