欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

基于FPGA的DVP協(xié)議實現(xiàn)標準圖像數(shù)據(jù)流轉(zhuǎn)換

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

一、什么是DVP?

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

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

PCLK:pixel clock ,像素時鐘,每個時鐘對應(yīng)一個像素數(shù)據(jù);

HSYNC:horizonal synchronization,行同步信號

VSYNC:vertical synchronization,幀同步信號;

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

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

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

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

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

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

圖中PIXCLK信號即是PCLk信號,F(xiàn)V是幀同步信號,LV是行同步信號,輸出的P0~Pn就是像素數(shù)據(jù)。

二、OV7670攝像頭的DVP協(xié)議時序

(1)水平時序

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

(2)和VGA對應(yīng)的幀時序

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

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

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

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

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

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

RGB555

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

RGB444

三、RTL設(shè)計

從上邊所看的時序圖可以將DVP協(xié)議轉(zhuǎn)換成標準的圖像的數(shù)據(jù)流,代碼如下:

// 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協(xié)議(digital video port)獲取ov7670數(shù)據(jù)并轉(zhuǎn)換成16位RGB565圖像數(shù)據(jù)

module ov7670_data_16rgb565(

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

inputrst_n,//系統(tǒng)復(fù)位

inputvsync,//場同步信號

inputhref,//行同步信號

input[7:0]din,//ov7670攝像頭數(shù)據(jù)輸入

inputinit_done,//ov7670攝像頭初始化結(jié)束標志

outputreg[15:0]data_rgb565,//轉(zhuǎn)換成16位RGB565圖像數(shù)據(jù)

outputregdata_rgb565_vld //16位RGB565圖像數(shù)據(jù)有效標志

);

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幀圖像數(shù)據(jù)

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

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

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

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

(3)傳輸數(shù)據(jù)部分細節(jié)

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

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

    關(guān)注

    1630

    文章

    21802

    瀏覽量

    606384
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5372

    瀏覽量

    121288
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8718

    瀏覽量

    152022
  • 圖像數(shù)據(jù)
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    11320
  • dvp
    dvp
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    9116

原文標題:基于FPGA的DVP協(xié)議實現(xiàn)標準圖像數(shù)據(jù)流轉(zhuǎn)換

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    FPGA配置TVP5150,把PAL制標準視頻轉(zhuǎn)換成BT656數(shù)據(jù)格式,能否把數(shù)據(jù)流直接給SAA7121?

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

    基于FPGA的數(shù)字視頻轉(zhuǎn)換接口的設(shè)計與實現(xiàn)

    數(shù)據(jù)流發(fā)送,通過DVI-I端口發(fā)送給顯示終端顯示。本設(shè)計方案中,MT9M111輸出圖像的分辨率為1280×960。 圖1 系統(tǒng)采集與顯示過程 在現(xiàn)實景物的采集與顯示過程中,視頻轉(zhuǎn)換接口功能的
    發(fā)表于 12-11 10:59

    采用FPGA的數(shù)字視頻接口轉(zhuǎn)換設(shè)備設(shè)計

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

    采用FPGA作為主控芯片的數(shù)字視頻接口轉(zhuǎn)換設(shè)備

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

    采用FPGA的數(shù)字視頻接口轉(zhuǎn)換設(shè)備

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

    采用FPGA實現(xiàn)數(shù)字視頻轉(zhuǎn)換接口設(shè)計

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

    采用FPGA的數(shù)字視頻接口轉(zhuǎn)換設(shè)備設(shè)計

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

    【工程源碼】基于FPGA的OV5640數(shù)據(jù)流接收和應(yīng)用基本邏輯設(shè)計

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

    基于FPGA和EPP的圖像傳感器高速數(shù)據(jù)采集

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

    yuv422p格式數(shù)據(jù)流轉(zhuǎn)換成RGB888格式數(shù)據(jù)流

    yuv422p格式數(shù)據(jù)流轉(zhuǎn)換成RGB888格式數(shù)據(jù)流,親測可用
    發(fā)表于 02-25 18:12 ?14次下載

    基于FPGA芯片的數(shù)據(jù)流結(jié)構(gòu)分析

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

    FPGA與ADC數(shù)字數(shù)據(jù)輸出接口的協(xié)議標準

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

    如何使用FPGA實現(xiàn)Bayer到RGB圖像格式轉(zhuǎn)換的設(shè)計

    利用FPGA處理數(shù)據(jù)量大、處理速度快,結(jié)合CMOS圖像傳感器MT9M001和BayerCFA格式圖像的特點,設(shè)計一種基于FPGA
    發(fā)表于 01-25 16:04 ?6次下載
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b>Bayer到RGB<b class='flag-5'>圖像</b>格式<b class='flag-5'>轉(zhuǎn)換</b>的設(shè)計