[X]关闭
0

(基础篇)S05-CH09_AXI_VDMA_7725实验

摘要: 本章开始将为大家讲解如何使用VDMA搭建图形化显示系统。 使用AXI IIC为摄像头配置寄存器,摄像头正常工作采集到图像数据后,利用VID_IN把视频流数据转换为AXI数据,之后送入DDR进行缓存,缓存之后,利用VTC ...

软件版本:VIVADO2017.4

操作系统:WIN10

硬件平台: ARTIX-7 系列开发板

米联客(MSXBO)论坛www.osrc.cn答疑解惑专栏开通,欢迎大家给我提供!!!

9.1 概述

      本章开始将为大家讲解如何使用VDMA搭建图形化显示系统。

      使用AXI IIC为摄像头配置寄存器,摄像头正常工作采集到图像数据后,利用VID_IN把视频流数据转换为AXI数据,之后送入DDR进行缓存,缓存之后,利用VTC产生的时序与缓存之后的数据流进行匹配,然后由VID_OUT重新将AXI数据转换为视频流数据,最后通过一个VGA转HDMI协议IP将数据得以在HDMI显示设备上进行显示。

9.2 系统框架

9.2.1 方案框架图

图9-1 摄像头采集框架图

9.2.2框架Block模块化设计方案图

图9-2 摄像头采集方案总体架构图

9.3 自定义摄像头采集IP分析


表9-3-1  OV_Sensor_ML 外部信号接口说明

接口

I/O

说明

CLK_i

I

输入时钟,通常接24MHZ 或者25MHZ

cmos_pclk_i

I

摄像头时钟输入时钟

cmos_vsyns_i

I

摄像头场同步输入,上升沿代表场同步开始

cmos_href_i

I

摄像头行同步输入, 高电平代表行数据有效

cmos_data[7:0]:

I

摄像头数据输入

hs_o

O

输出的行数据有效

vs_o

O

输出的场同步信号

cmos_xclk_o

O

摄像头工作,通常直接把CLK_i连接到cmos_xclk_o

vid_clk_ce

O

此信号用于和vid_in IP 的时钟同步

(由于OV_Sensor_ML IP每两个时钟输出一次rgb[23:0]的图像数据,因此需要通过Vid_clk_ce对时钟频率进行同步,有了这个信号,可以解决输入采集IP和vid_in IP数据接口之间的同步问题)

rgb_o[23:0]

O

RGB565格式输出数据


      OV_Sensor_ML IP 包含3个源程序文件,分别为OV_Sensor_ML.v、cmos_decode_v1.v、count_reset_v1.v文件。

      OV_Sensor_ML.v程序中,对cmos_data_i、cmos_href_i、cmos_vsync_i做了一次寄存器,笔者发现图像效果有所改观。笔者分析,是因为寄存后有利于去除一些毛刺信号,提高了数据的稳定性。

表9-3-2  OV_Sensor_ML 源码OV_Sensor_ML.v

`timescale 1ns / 1ps

//////////////////////////////////////////////////////////////////////////////////

// Company: milinker

// Engineer:tangjinyuan

//

// Create Date:    

// Design Name:

// Module Name: OV7725_IP_ML

// Project Name: OV7725_IP_ML

// Target Devices:

// Tool versions:

// Description:

//

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

//////////////////////////////////////////////////////////////////////////////////

module OV_Sensor_ML(

    input CLK_i,

//---------------------------- CMOS sensor hardware interface --------------------------/

input cmos_vsync_i, //cmos vsync

input cmos_href_i, //cmos hsync refrence

input cmos_pclk_i, //cmos pxiel clock

output cmos_xclk_o, //cmos externl clock

input[7:0] cmos_data_i, //cmos data

output hs_o,//hs signal.

    output vs_o,//vs signal.

   // output de_o,//data enable.

    output [23:0] rgb_o,//data output,

    output vid_clk_ce

);

//----------------------视频输出解码模块---------------------------//

wire  [15:0]rgb_o_r;

assign rgb_o = {rgb_o_r[4:0]   ,3'd0 ,rgb_o_r[10:5]     ,2'd0,rgb_o_r[15:11],3'd0};


reg [7:0]cmos_data_r;

reg cmos_href_r;

reg cmos_vsync_r;


always@(posedge cmos_pclk_i)

begin

   cmos_data_r <= cmos_data_i;

   cmos_href_r <= cmos_href_i;

   cmos_vsync_r<= cmos_vsync_i;

end

//assign rgb_o = 24'b11111111_00000000_11111111;

cmos_decode cmos_decode_u0(

//system signal.

.cmos_clk_i(CLK_i),//cmos senseor clock.

.rst_n_i(RESETn_i2c),//system reset.active low.

//cmos sensor hardware interface.

.cmos_pclk_i(cmos_pclk_i),//(cmos_pclk),//input pixel clock.

.cmos_href_i(cmos_href_r),//(cmos_href),//input pixel hs signal.

.cmos_vsync_i(cmos_vsync_r),//(cmos_vsync),//input pixel vs signal.

.cmos_data_i(cmos_data_r),//(cmos_data),//data.

.cmos_xclk_o(cmos_xclk_o),//(cmos_xclk),//output clock to cmos sensor.

//user interface.

.hs_o(hs_o),//hs signal.

.vs_o(vs_o),//vs signal.

// .de_o(de_o),//data enable.

.rgb565_o(rgb_o_r),//data output

.vid_clk_ce(vid_clk_ce)

    );

    

count_reset_v1#(

        .num(20'hffff0)

    )(

        .clk_i(CLK_i),

        .rst_o(RESETn_i2c)

    );    


endmodule


       cmos_decode_v1.v 是本模块的关键部分,实现了RGB565 的解码输出以及vid_clk_ce实现了此模块和vid_in IP直接时序匹配的关系。

表9-3-3  OV_Sensor_ML 源码cmos_decode_v1.v

`timescale 1ns / 1ps

//////////////////////////////////////////////////////////////////////////////////

// Company: Liyang Milian Electronic Technology Co., Ltd

// WEB:www.milinker.com

// BBS:www.osrc.cn

// Engineer:.

// Create Date:   

// Design Name:  cmos_decode_v1

// Module Name:    cmos_decode_v1

// Project Name:  cmos_decode_v1

// Target Devices:

// Tool versions:  

// Description:  cmos_decode_v1.

// Revision:  V1.0

// Additional Comments:

//1) _i PIN input  

//2) _o PIN output

//3) _n PIN active low

//4) _dg debug signal

//5) _r  reg delay


路过

雷人

握手

鲜花

鸡蛋

最新评论

本文作者
2019-11-7 16:27
  • 1
    粉丝
  • 6498
    阅读
  • 0
    回复

关注uisrc网络

扫描关注,了解最新资讯

电话:0519-80699907
EMAIL:270682667@qq.com
地址:常州溧阳市天目云谷3号楼北楼
热门评论
排行榜