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

1、目的

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

发送机实现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个端口

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个端口代表一个像素

weixin:  tecliu_23 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值