1. 概述
本设计采用FPGA技术,将CMOS摄像头(DVP接口)的视频数据经过采集、存储、处理、帧率转换,最终通过HDMI接口显示在电视屏幕上。
2. 硬件系统框图
CMOS采用分辨率为1080p的摄像头芯片,FPGA采用ALTERA公司的CYCLONE IV,FLASH采用EPCS64,DDR2采用Hynix公司的1Gb内存条,HDMI采用Silicon Image公司的SiI9134。
3. FPGA逻辑框图
FPGA各部分逻辑模块如下图所示:
CMOS Capture,采集CMOS摄像头视频数据;
I2C Master,配置CMOS芯片;
DDR2 Control,配置与控制DDR2芯片组,实现读写仲裁;
FIFO Write,将采集到的视频数据跨时钟域地写进DDR2中;
FIFO Read,将DDR2中的数据跨时钟域地读出给后续图像处理模块;
Frame Buffer,负责FIFO Write和FIFO Read的调度,实现帧率转换;
RAW to RGB,将原始RAW8数据转换成RGB888数据;
RGB to YCbCr,将RGB888数据转换成YCbCr444数据;
YC444 to YC422,将YC444的数据转换成YC422的数据给HDMI TX模块;
HDMI TX,将处理好的视频数据发送给HDMI PHY芯片,同时通过I2C接口配置HDMI PHY芯片。
4. CMOS配置
摄像头芯片支持最高1080p30帧的输出,参考寄存器配置如下:
module i2c_cfg_par( input clk, input [07:0] lut_index, output reg [23:0] lut_data ); always @(*) begin case(lut_index) //27M input 67.5M output 'd0 : lut_data <= 'h4105_02; 'd1 : lut_data <= 'h0103_01; 'd2 : lut_data <= 'h4105_02; 'd3 : lut_data <= 'h0100_00; 'd4 : lut_data <= 'h401e_b0; 'd5 : lut_data <= 'h420c_03; 'd6 : lut_data <= 'h420d_e8; 'd7 : lut_data <= 'h4231_24; 'd8 : lut_data <= 'h420E_04; 'd9 : lut_data <= 'h420F_65; 'd10 : lut_data <= 'h4211_08; //x start 'd11 : lut_data <= 'h4213_10; //y start 'd12 : lut_data <= 'h4e03_01; 'd13 : lut_data <= 'h4e01_46; 'd14 : lut_data <= 'h4e08_00; 'd15 : lut_data <= 'h4e09_10; 'd16 : lut_data <= 'h4518_03; 'd17 : lut_data <= 'h4518_03; 'd18 : lut_data <= 'h6025_09; 'd19 : lut_data <= 'h4908_c0; 'd20 : lut_data <= 'h4416_10; 'd21 : lut_data <= 'h4e0f_90; 'd22 : lut_data <= 'h4638_85; 'd23 : lut_data <= 'h4637_bf; 'd24 : lut_data <= 'h4639_98; 'd25 : lut_data <= 'h4035_01; 'd26 : lut_data <= 'h4034_ba; 'd27 : lut_data <= 'h4300_10; 'd28 : lut_data <= 'h4301_18; 'd29 : lut_data <= 'h4308_38; 'd30 : lut_data <= 'h4306_34; 'd31 : lut_data <= 'h430a_00; 'd32 : lut_data <= 'h430b_90; 'd33 : lut_data <= 'h4303_18; 'd34 : lut_data <= 'h4309_18; 'd35 : lut_data <= 'h431e_0e; 'd36 : lut_data <= 'h431f_0e; 'd37 : lut_data <= 'h4320_14; 'd38 : lut_data <= 'h4321_14; 'd39 : lut_data <= 'h4322_14; 'd40 : lut_data <= 'h4323_14; 'd41 : lut_data <= 'h4626_03; 'd42 : lut_data <= 'h4621_28; 'd43 : lut_data <= 'h4f08_04; 'd44 : lut_data <= 'h4f09_44; 'd45 : lut_data <= 'h5500_25; 'd46 : lut_data <= 'h4c09_08; 'd47 : lut_data <= 'h435d_20; 'd48 : lut_data <= 'h4368_02; 'd49 : lut_data <= 'h4369_00; 'd50 : lut_data <= 'h436a_04; 'd51 : lut_data <= 'h436b_65; 'd52 : lut_data <= 'h430e_50; 'd53 : lut_data <= 'h4367_08; 'd54 : lut_data <= 'h4f00_06; 'd55 : lut_data <= 'h4f04_01; 'd56 : lut_data <= 'h4f05_c8; 'd57 : lut_data <= 'h4905_1c; 'd58 : lut_data <= 'h6780_7f; 'd59 : lut_data <= 'h6782_0a; 'd60 : lut_data <= 'h6783_08; 'd61 : lut_data <= 'h6786_20; 'd62 : lut_data <= 'h6787_0c; 'd63 : lut_data <= 'h6789_01; 'd64 : lut_data <= 'h678a_0f; 'd65 : lut_data <= 'h6000_06; 'd66 : lut_data <= 'h4632_48; 'd67 : lut_data <= 'h4622_0e; 'd68 : lut_data <= 'h4627_02; 'd69 : lut_data <= 'h4630_b4; 'd70 : lut_data <= 'h4633_94; 'd71 : lut_data <= 'h4620_42; 'd72 : lut_data <= 'h463a_0c; 'd73 : lut_data <= 'h4334_60; 'd74 : lut_data <= 'h403f_81; 'd75 : lut_data <= 'h601f_00; 'd76 : lut_data <= 'h4b00_f8; 'd77 : lut_data <= 'h4b01_40; 'd78 : lut_data <= 'h4c01_14; 'd79 : lut_data <= 'h5000_00; 'd80 : lut_data <= 'h4d08_00;//'h4d08_01; 'd81 : lut_data <= 'h4640_00; 'd82 : lut_data <= 'h0100_01; 'd83 : lut_data <= 'h403a_09; 'd84 : lut_data <= 'h4039_66; 'd85 : lut_data <= 'h403f_82; 'd86 : lut_data <= 'h4636_88; 'd87 : lut_data <= 'h4631_90; 'd88 : lut_data <= 'h4635_08; 'd89 : lut_data <= 'h4105_04; 'd90 : lut_data <= 'h4105_04; `endif default : lut_data <= 'h0000; endcase end endmodule
5. 显示结果
电视显示1080p30的视频信号,图像中的色卡表明颜色显示正常。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。