在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA的DVP協議實現標準圖像數據流轉換

FPGA設計論壇 ? 來源:FPGA設計論壇 ? 2025-02-11 14:22 ? 次閱讀

一、什么是DVP?

DVP(Digital Video Port) 是傳統的sensor輸出接口,采用并行輸出方式,d數據位寬有8bit、10bit、12bit、16bit,是CMOS電平信號(重點是非差分信號),PCLK最大速率為96MHz,接口如下圖:

4b2e1e96-e82f-11ef-9310-92fbcf53809c.png

PCLK:pixel clock ,像素時鐘,每個時鐘對應一個像素數據;

HSYNC:horizonal synchronization,行同步信號

VSYNC:vertical synchronization,幀同步信號;

DATA:像素數據,視頻數據,具體位寬要看ISP是否支持;

XCLK:或者MCLK,ISP芯片輸出給驅動sensor的時鐘;

SCL,SDA:IIC用來讀寫sensor的寄存器,配置sensor。

DVP協議是攝像頭中常用的協議,除了DVP協議攝像頭中還有其他常用的協議如:MIPI、LVDS等協議。其整體協議時序圖如圖:

4b47263e-e82f-11ef-9310-92fbcf53809c.png

4b5a6d20-e82f-11ef-9310-92fbcf53809c.png

圖中PIXCLK信號即是PCLk信號,FV是幀同步信號,LV是行同步信號,輸出的P0~Pn就是像素數據。

二、OV7670攝像頭的DVP協議時序

(1)水平時序

4b6ec54a-e82f-11ef-9310-92fbcf53809c.png

(2)和VGA對應的幀時序

DVP協議和VGA接口協議基本一樣,只是VSYNC信號高低電平相反了。還有DVP協議的HREF信號是在HERF為高電平是直接輸出像素數據,而VGA接口的HSYNC信號在HSYNC為高時先后輸出顯示后沿、有效圖像數據、顯示前沿。

4b75fbd0-e82f-11ef-9310-92fbcf53809c.png

(3)這里對OV7670攝像頭配置輸出的是RGB565圖像數據,其時序為:

4b7fa19e-e82f-11ef-9310-92fbcf53809c.png

(4)配置成RGB555和RGB444輸出時序如圖:

4b8cf236-e82f-11ef-9310-92fbcf53809c.png

RGB555

4b96f862-e82f-11ef-9310-92fbcf53809c.png

RGB444

三、RTL設計

從上邊所看的時序圖可以將DVP協議轉換成標準的圖像的數據流,代碼如下:

// Company :

// Engineer :

// -----------------------------------------------------------------------------

// https://blog.csdn.net/qq_33231534 PHF's CSDN blog

// -----------------------------------------------------------------------------

// Create Date : 2020-09-24 2257

// Revise Data : 2020-09-24 2257

// File Name : ov7670_data_16rgb565.v

// Target Devices : XC7Z015-CLG485-2

// Tool Versions : Vivado 2019.2

// Revision : V1.1

// Editor : sublime text3, tab size (4)

// Description : DVP協議(digital video port)獲取ov7670數據并轉換成16位RGB565圖像數據

module ov7670_data_16rgb565(

inputclk,//輸入為攝像頭輸入時鐘pclk 25MHz

inputrst_n,//系統復位

inputvsync,//場同步信號

inputhref,//行同步信號

input[7:0]din,//ov7670攝像頭數據輸入

inputinit_done,//ov7670攝像頭初始化結束標志

outputreg[15:0]data_rgb565,//轉換成16位RGB565圖像數據

outputregdata_rgb565_vld //16位RGB565圖像數據有效標志

);

regvsync_r;

reghref_r;

reg[7:0]din_r;

regvsync_r_ff0;

regvsync_r_ff1;

regdata_start;

reg[3:0]frame_cnt;

regframe_vaild;

wirevsync_r_pos;

regdata_en;

//外部信號打一拍

always @(posedge clk or negedge rst_n) begin

if (!rst_n) begin

vsync_r <= 0;

href_r <= 0;

din_r <= 8'd0;

end

else begin

vsync_r <= vsync;

href_r <= href;

din_r <= din;

end

end

//場同步信號上升沿檢測

always @(posedge clk or negedge rst_n) begin

if (!rst_n) begin

vsync_r_ff0 <= 0;

vsync_r_ff1 <= 0;

end

else begin

vsync_r_ff0 <= vsync_r;

vsync_r_ff1 <= vsync_r_ff0;

end

end

assign vsync_r_pos = (vsync_r_ff0 && ~vsync_r_ff1);

always @(posedge clk or negedge rst_n) begin

if (!rst_n) begin

data_start <= 0;

end

else if (init_done) begin

data_start <= 1;

end

else begin

data_start <= data_start;

end

end

always @(posedge clk or negedge rst_n) begin

if (!rst_n) begin

frame_cnt <= 0;

end

else if (data_start && frame_vaild==0 && vsync_r_pos) begin

frame_cnt <= frame_cnt + 1'b1;

end

else begin

frame_cnt <= frame_cnt;

end

end

always @(posedge clk or negedge rst_n) begin

if (!rst_n) begin

frame_vaild <= 0;

end

else if (frame_cnt >= 10) begin

frame_vaild <= 1;

end

else begin

frame_vaild <= frame_vaild;

end

end

always @(posedge clk or negedge rst_n) begin

if (!rst_n) begin

data_en <= 0;

end

else if (href_r && frame_vaild) begin

data_en <= ~data_en;

end

else begin

data_en <= 0;

end

end

always @(posedge clk or negedge rst_n) begin

if (!rst_n) begin

data_rgb565_vld <= 0;

end

else if (data_en) begin

data_rgb565_vld <= 1;

end

else begin

data_rgb565_vld <= 0;

end

end

always @(posedge clk or negedge rst_n) begin

if (!rst_n) begin

data_rgb565 <= 16'd0;

end

else if (data_en) begin

data_rgb565 <= {data_rgb565[15:8],din_r};

end

else begin

data_rgb565 <= {din_r,data_rgb565[7:0]};

end

end

endmodule

測試代碼:

`timescale 1ns/1ns

module ov7670_data_16rgb565_tb (); /* this is automatically generated */

reg rst_n;

reg clk;

localparam clk_period = 20;

reg vsync;

reg href;

reg [7:0] din;

reg init_done;

wire [15:0] data_rgb565;

wire data_rgb565_vld;

ov7670_data_16rgb565 inst_ov7670_data_16rgb565

(

.clk (clk),

.rst_n (rst_n),

.vsync (vsync),

.href (href),

.din (din),

.init_done (init_done),

.data_rgb565 (data_rgb565),

.data_rgb565_vld (data_rgb565_vld)

);

initial clk = 1;

always #(clk_period/2) clk = ~clk;

initial begin

#2;

rst_n = 0;

vsync = 0;

href = 0;

din = 0;

init_done = 0;

#(clk_period*20);

rst_n = 1;

#(clk_period*20);

init_done = 1;

#clk_period;

init_done = 0;

#(clk_period*20);

repeat(12)begin

#(clk_period*500);

dvp_data();

end

#(clk_period*20);

$stop;

end

task dvp_data;

integer i,j;

begin

vsync = 0;

#(clk_period*10);

vsync = 1;

#(clk_period*10);

vsync = 0;

#(clk_period*100);

for(i=0;i<480;i=i+1)begin

for(j=0;j<640*2;j=j+1)begin

href = 1;

#(clk_period);

din = din + 1'b1;

end

href = 0;

#(clk_period*100);

end

din = 0;

end

endtask

endmodule

仿真圖如圖所示:

(1)傳輸12幀圖像數據

4ba8ea9a-e82f-11ef-9310-92fbcf53809c.png

可以看到,data_rgb565_vld數據有效信號在10幀圖像數據后才有輸出,這是為了在初始化后圖像數據可能會有不穩定情況,因此將前十幀圖像丟棄。

(2)1幀圖像數據(注意看幀同步信號)

4bbda520-e82f-11ef-9310-92fbcf53809c.png

(3)傳輸數據部分細節

4bd0612e-e82f-11ef-9310-92fbcf53809c.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1637

    文章

    21850

    瀏覽量

    608902
  • 寄存器
    +關注

    關注

    31

    文章

    5394

    瀏覽量

    122010
  • 接口
    +關注

    關注

    33

    文章

    8788

    瀏覽量

    152490
  • 圖像數據
    +關注

    關注

    0

    文章

    54

    瀏覽量

    11367
  • dvp
    dvp
    +關注

    關注

    0

    文章

    14

    瀏覽量

    9158

原文標題:基于FPGA的DVP協議實現標準圖像數據流轉換

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    FPGA配置TVP5150,把PAL制標準視頻轉換成BT656數據格式,能否把數據流直接給SAA7121?

    FPGA配置TVP5150,把PAL制標準視頻轉換成BT656數據格式,請問能否把數據流直接給SAA7121這樣的編碼芯片,我這么做的,
    發表于 02-11 07:14

    #硬聲創作季 #FPGA FPGA-54-01 RAW數據流轉換到RGB888圖像數據原理分析-2

    fpga圖像
    水管工
    發布于 :2022年10月29日 03:01:07

    #硬聲創作季 #FPGA FPGA-54-01 RAW數據流轉換到RGB888圖像數據原理分析-3

    fpga圖像
    水管工
    發布于 :2022年10月29日 03:01:26

    基于FPGA的數字視頻轉換接口的設計與實現

    數據流發送,通過DVI-I端口發送給顯示終端顯示。本設計方案中,MT9M111輸出圖像的分辨率為1280×960。 圖1 系統采集與顯示過程 在現實景物的采集與顯示過程中,視頻轉換接口功能的
    發表于 12-11 10:59

    采用FPGA的數字視頻接口轉換設備設計

    圖像傳感器MT9M111采集到現實景物后,將生成的ITU-R BT.656數據流由ITU數據輸出端口發送給視頻轉換接口。視頻轉換接口將IT
    發表于 04-17 07:00

    采用FPGA作為主控芯片的數字視頻接口轉換設備

    的ITU-R BT.656數據流轉換成TMDS數據流發送,通過DVI-I端口發送給顯示終端顯示。本設計方案中,MT9M111輸出圖像的分辨率為1280×960。 圖1 系統采集與顯示過程在現實景物的采集與顯示
    發表于 04-22 07:00

    采用FPGA的數字視頻接口轉換設備

    端口送來的ITU-R BT.656數據流轉換成TMDS數據流發送,通過DVI-I端口發送給顯示終端顯示。本設計方案中,MT9M111輸出圖像的分辨率為1280×960。圖1 系統采集與顯示過程在現實
    發表于 04-23 07:00

    采用FPGA實現數字視頻轉換接口設計

    1所示。圖像傳感器MT9M111采集到現實景物后,將生成的ITU-R BT.656數據流由ITU數據輸出端口發送給視頻轉換接口。視頻轉換接口
    發表于 05-05 09:29

    采用FPGA的數字視頻接口轉換設備設計

    引言本文從實際應用的角度出發,采用FPGA作為主控芯片,設計了一款數字視頻接口轉換設備,該設備針對于MT9M111這款數字圖像傳感器產生的ITU-R BT.656格式數據進行采集、色彩
    發表于 05-29 05:00

    【工程源碼】基于FPGA的OV5640數據流接收和應用基本邏輯設計

    本文和設計代碼由FPGA愛好者小梅哥編寫,未經作者許可,本文僅允許網絡論壇復制轉載,且轉載時請標明原作者。OV5640提供了一個DVP接口用來輸出采集到的圖像數據流,本文提供了一個將
    發表于 02-18 19:56

    基于FPGA和EPP的圖像傳感器高速數據采集

    。因此,為了采集數據量大的圖像數據,本文采用了具有較高傳輸速率的增強型并行口協議(EPP)和FPGA
    發表于 04-30 07:47

    yuv422p格式數據流轉換成RGB888格式數據流

    yuv422p格式數據流轉換成RGB888格式數據流,親測可用
    發表于 02-25 18:12 ?14次下載

    基于FPGA芯片的數據流結構分析

    Virtex 型FPGA 芯片是Xilinx 公司芯片系列中的一種,Virtex 系列的數據流及配置邏輯與XC4000 的數據流及配置邏輯有顯著不同,但卻與Xilinx 的FPGA
    發表于 11-18 11:37 ?2495次閱讀

    FPGA與ADC數字數據輸出接口的協議標準

    場可編程門陣列(FPGA)與模數轉換器(ADC)輸出的接口是一項常見的工程設計挑戰。本文簡要介紹各種接口協議標準,并提供有關在高速數據
    的頭像 發表于 09-15 10:29 ?6185次閱讀
    <b class='flag-5'>FPGA</b>與ADC數字<b class='flag-5'>數據</b>輸出接口的<b class='flag-5'>協議</b>及<b class='flag-5'>標準</b>

    如何使用FPGA實現Bayer到RGB圖像格式轉換的設計

    利用FPGA處理數據量大、處理速度快,結合CMOS圖像傳感器MT9M001和BayerCFA格式圖像的特點,設計一種基于FPGA
    發表于 01-25 16:04 ?6次下載
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>實現</b>Bayer到RGB<b class='flag-5'>圖像</b>格式<b class='flag-5'>轉換</b>的設計
    主站蜘蛛池模板: 在线国产三级 | 一区二区三区精品视频 | 国产乱理论片在线观看理论 | 中文字幕第8页 | 在线欧美激情 | 东北老女人啪啪对白 | 狠狠色狠狠色综合日日不卡 | 色停停| 天天操夜夜操免费视频 | 国产又粗又大又爽又免费 | 五月情视频在线观看 | 欧美尺寸又黑又粗又长 | 国产美女亚洲精品久久久久久 | 夜夜se| 看全色黄大色大片免费 | 四虎永久免费地址在线网站 | 日本一区视频 | 国产精品欧美久久久久天天影视 | 久青草国产手机在线观 | 中文字幕日本一区波多野不卡 | 亚洲已满18点击进入在线观看 | 特级全黄一级毛片视频 | 曰本福利写真片视频在线 | 久热99| 国产精品亚洲四区在线观看 | 日操夜操 | 性欧美日韩 | 午夜影院a | 久久99精品久久久久久久野外 | 黄 色 片成 人免费观看 | 精品少妇一区二区三区视频 | 亚洲性色成人 | 一区二区精品 | 手机看片午夜 | 久久e| 欧美另类高清xxxxx | a级黑粗大硬长爽猛视频毛片 | 亚洲一级视频在线观看 | 特级毛片aaaaaa蜜桃 | 色播图片| 女色窝人体色77777 |