中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

FPGA設計——CMOS圖像采集與以太網傳輸顯示(OV7670)

發布時間:2020-07-07 09:02:12 來源:網絡 閱讀:10108 作者:shugenyin 欄目:開發技術

1. 概述

本設計采用FPGA技術,將CMOS攝像頭(DVP接口)的視頻數據采集,并通過以太網傳輸(UDP方式)給PC機,上位機DEMO通過套接字編程,將視頻實時顯示在屏幕上。


2. 硬件系統框圖

CMOS采用OV7670(30萬像素),FPGA采用ALTERA公司的CYCLONE IV,以太網卡采用IC plus公司的100M網卡芯片。

FPGA設計——CMOS圖像采集與以太網傳輸顯示(OV7670)

硬件平臺采用ETree的FPGA開發板(某寶提供),如下圖所示:

FPGA設計——CMOS圖像采集與以太網傳輸顯示(OV7670)

3. UDP/IP協議

UDP(User Datagram Protocol)是OSI參考模型中一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。每一個數據包的前8個字節用來包含報頭信息,剩余字節則用來包含具體的傳輸數據。UDP協議經常用于圖像傳輸、網絡監控數據交換等數據傳輸速度要求比較高的場合。

UDP報文格式

0???????????????????? 15

16 ? ? ? ? ? ? 31

源端口號

目的端口號

報文長度

校驗和

數據

IP(Internet Protoco)包位于網絡層,功能是把分組發往目標網絡或主機。所有的TCP,UDP,IMCP,IGCP的數據都以IP數據格式傳輸。

FPGA設計——CMOS圖像采集與以太網傳輸顯示(OV7670)

以太網的數據幀的傳輸過程中,包長一般在46~1500字節,這里將UDP包長設計為:(8+20+640*2)=1308字節,以提高傳輸效率。


4. FPGA邏輯設計

FPGA各部分邏輯模塊如下圖所示:

FPGA設計——CMOS圖像采集與以太網傳輸顯示(OV7670)

  • CMOS Capture,采集CMOS的DVP視頻流;

  • I2C Config,配置CMOS芯片;

  • FIFO,實現CMOS時鐘域到以太網時鐘域之間的轉換;

  • UDP Pack,實現UDP/IP協議的實現。

下面為OV7670的初始化配置代碼:

//file?name:			i2c_cfg_par.v
//creator:			shugen.yin
//date:				2017-4-21
//function:			i2c?registers
//log:				VGA?RAW/25FPS,?XCLK=24M

module?i2c_cfg_par(
	input??[07:0]?lut_index,
	output?reg?[15:0]?lut_data
);

always?@(*)
begin
	case(lut_index)
	//ov7670?RAW?25Fps?24M?input
	'd0	:	lut_data?<=??'h2280;
	'd1	:	lut_data?<=??'h0000;	
	'd2	:	lut_data?<=??'h0000;		
	'd3	:	lut_data?<=??'h0000;		
	'd4	:	lut_data?<=??'h0000;????????
	'd5	:	lut_data?<=??'h0000;		
	'd6	:	lut_data?<=??'h0000;		
	'd7	:	lut_data?<=??'h0000;		
	'd8	:	lut_data?<=??'h2101;		
	'd9	:	lut_data?<=??'h4a04;	
	'd10	:	lut_data?<=??'h2201;
	//windows?setting
	'd11	:	lut_data?<=??'h2712;	//Hstart?high?8bit
	'd12	:	lut_data?<=??'h2800;	//Hstop?high?8bit	
	'd13	:	lut_data?<=??'h2902;	//Vstart?high?8bit
	'd14	:	lut_data?<=??'h2a7a;	//Vstop?high?8bit
	'd15	:	lut_data?<=??'h42b6;	//HREF
	'd16	:	lut_data?<=??'h0300;	//VREF			
	'd17	:	lut_data?<=??'h0c00;	
	'd18	:	lut_data?<=??'h4e00;	
	'd19	:	lut_data?<=??'h703a;	
	'd20	:	lut_data?<=??'h7135;
	'd21	:	lut_data?<=??'h7211;
	'd22	:	lut_data?<=??'h73f0;
	'd23	:	lut_data?<=??'ha202;	
	'd24	:	lut_data?<=??'h23e0;
	'd25	:	lut_data?<=??'h0000;
	'd26	:	lut_data?<=??'h0d40;
	'd27	:	lut_data?<=??'h2438;	
	'd28	:	lut_data?<=??'ha507;
	'd29	:	lut_data?<=??'hab08;
	'd30	:	lut_data?<=??'h3495;
	'd31	:	lut_data?<=??'h3533;	
	'd32	:	lut_data?<=??'h36e3;
	'd33	:	lut_data?<=??'h9f78;
	'd34	:	lut_data?<=??'ha068;
	'd35	:	lut_data?<=??'ha10b;
	'd36	:	lut_data?<=??'ha6d8;
	'd37	:	lut_data?<=??'ha7d8;
	'd38	:	lut_data?<=??'ha8f0;
	'd39	:	lut_data?<=??'ha990;	
	'd40	:	lut_data?<=??'haa94;
	'd41	:	lut_data?<=??'h23e5;	
	'd42	:	lut_data?<=??'h0e61;
	'd43	:	lut_data?<=??'h0f4b;	
	'd44	:	lut_data?<=??'h2602;
	'd45	:	lut_data?<=??'h3102;
	'd46	:	lut_data?<=??'h3291;
	'd47	:	lut_data?<=??'h3907;
	'd48	:	lut_data?<=??'h4303;
	'd49	:	lut_data?<=??'h450b;
	'd50	:	lut_data?<=??'h471c;
	'd51	:	lut_data?<=??'h4871;	
	'd52	:	lut_data?<=??'h4c78;
	'd53	:	lut_data?<=??'h4d08;
	'd54	:	lut_data?<=??'h513a;
	'd55	:	lut_data?<=??'h5d40;	
	'd56	:	lut_data?<=??'h5e20;
	'd57	:	lut_data?<=??'h7955;
	'd58	:	lut_data?<=??'h7b4a;
	'd59	:	lut_data?<=??'h7419;
	'd60	:	lut_data?<=??'h7661;
	'd61	:	lut_data?<=??'h8d4f;
	'd62	:	lut_data?<=??'h8e00;
	'd63	:	lut_data?<=??'h8f00;	
	'd64	:	lut_data?<=??'h9000;
	'd65	:	lut_data?<=??'h9100;
	'd66	:	lut_data?<=??'h9600;
	'd67	:	lut_data?<=??'h9a80;	
	'd68	:	lut_data?<=??'hb08c;
	'd69	:	lut_data?<=??'hb10c;
	'd70	:	lut_data?<=??'hb20e;
	'd71	:	lut_data?<=??'hb382;
	'd72	:	lut_data?<=??'hb80a;	
	'd73	:	lut_data?<=??'h5314;
	'd74	:	lut_data?<=??'h54f0;
	'd75	:	lut_data?<=??'h5534;	
	'd76	:	lut_data?<=??'h5658;
	'd77	:	lut_data?<=??'h5728;
	'd78	:	lut_data?<=??'h583a;
	'd79	:	lut_data?<=??'h6988;	
	'd80	:	lut_data?<=??'h6a88;
	'd81	:	lut_data?<=??'h6b44;
	'd82	:	lut_data?<=??'h6c67;
	'd83	:	lut_data?<=??'h6d49;
	'd84	:	lut_data?<=??'h6e0e;
	'd85	:	lut_data?<=??'h7c0a;
	'd86	:	lut_data?<=??'h7d55;
	'd87	:	lut_data?<=??'h7e11;	
	'd88	:	lut_data?<=??'h7f9f;
	'd89	:	lut_data?<=??'h7a40;
	'd90	:	lut_data?<=??'h0140;
	'd91	:	lut_data?<=??'h0240;	
	'd92	:	lut_data?<=??'h23e7;
	'd93	:	lut_data?<=??'h4411;
	'd94	:	lut_data?<=??'h9266;
	'd95	:	lut_data?<=??'h4b0a;
	'd96	:	lut_data?<=??'ha488;
	'd97	:	lut_data?<=??'h9600;
	'd98	:	lut_data?<=??'h9730;
	'd99	:	lut_data?<=??'h9820;	
	'd100	:	lut_data?<=??'h9920;
	'd101	:	lut_data?<=??'h9a84;
	'd102	:	lut_data?<=??'h9b29;
	'd103	:	lut_data?<=??'h9c03;	
	'd104	:	lut_data?<=??'h9d4c;
	'd105	:	lut_data?<=??'h9e3f;
	'd106	:	lut_data?<=??'h7804;
	'd107	:	lut_data?<=??'h7901;??
	'd108	:	lut_data?<=??'hc8f0;
	'd109	:	lut_data?<=??'h790f;
	'd110	:	lut_data?<=??'hc820;
	'd111	:	lut_data?<=??'h7910;
	'd112	:	lut_data?<=??'hc87e;
	'd113	:	lut_data?<=??'h790b;
	'd114	:	lut_data?<=??'hc801;	
	'd115	:	lut_data?<=??'h790c;
	'd116	:	lut_data?<=??'hc807;
	'd117	:	lut_data?<=??'h790d;
	'd118	:	lut_data?<=??'hc820;	
	'd119	:	lut_data?<=??'h7902;
	'd120	:	lut_data?<=??'hc8c0;
	'd121	:	lut_data?<=??'h7903;
	'd122???:	lut_data?<=??'hc840;
	'd123	:	lut_data?<=??'h7905;
	'd124	:	lut_data?<=??'hc830;
	'd125???:	lut_data?<=??'h7926;
	default	:	lut_data?<=??'h0000;
	endcase
end	
endmodule


5. 上位機Demo實現

本設計采用VC++ 2010設計了一款簡易的UDP網絡視頻流播放器,視頻源為RAW8格式,分辨率640*480,幀率25Hz。Windows為我們提供了便捷的套接字(socket)編程方式,軟件工程師方便實現網絡編程。

FPGA設計——CMOS圖像采集與以太網傳輸顯示(OV7670)


6. 視頻顯示結果

給FPGA板卡上電,打開UDP demo軟件,視頻正常顯示。

FPGA設計——CMOS圖像采集與以太網傳輸顯示(OV7670)


7. 任務管理器

在任務管理器中,可以查看網卡的狀態,包括使用率和丟包的大概曲線圖。UDP demo軟件運行幾分鐘后,圖像穩定顯示,從任務管理器中可以看到本地網卡2的使用率為65.99%,曲線平整,沒有異常丟包情況。

FPGA設計——CMOS圖像采集與以太網傳輸顯示(OV7670)


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

溆浦县| 浦江县| 得荣县| 盐边县| 罗田县| 马山县| 莱州市| 康定县| 射洪县| 正安县| 铜梁县| 湘潭市| 武鸣县| 光山县| 贵溪市| 赤城县| 福清市| 城市| 南川市| 章丘市| 巴彦淖尔市| 分宜县| 东辽县| 平利县| 大安市| 凤城市| 申扎县| 洪洞县| 永州市| 米易县| 旬阳县| 股票| 呼和浩特市| 广水市| 昭觉县| 罗甸县| 盖州市| 大化| 黄龙县| 西林县| 邹城市|