本文共 4118 字,大约阅读时间需要 13 分钟。
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帧的输出,参考寄存器配置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | 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 <= ' h3105_02; 'd1 : lut_data <= ' h0103_01; 'd2 : lut_data <= ' h3105_02; 'd3 : lut_data <= ' h0100_00; 'd4 : lut_data <= ' h301e_b0; 'd5 : lut_data <= ' h320c_03; 'd6 : lut_data <= ' h320d_e8; 'd7 : lut_data <= ' h3231_24; 'd8 : lut_data <= ' h320E_04; 'd9 : lut_data <= ' h320F_65; 'd10 : lut_data <= ' h3211_08; //x start 'd11 : lut_data <= ' h3213_10; //y start 'd12 : lut_data <= ' h3e03_01; 'd13 : lut_data <= ' h3e01_46; 'd14 : lut_data <= ' h3e08_00; 'd15 : lut_data <= ' h3e09_10; 'd16 : lut_data <= ' h3518_03; 'd17 : lut_data <= ' h3518_03; 'd18 : lut_data <= ' h5025_09; 'd19 : lut_data <= ' h3908_c0; 'd20 : lut_data <= ' h3416_10; 'd21 : lut_data <= ' h3e0f_90; 'd22 : lut_data <= ' h3638_85; 'd23 : lut_data <= ' h3637_bf; 'd24 : lut_data <= ' h3639_98; 'd25 : lut_data <= ' h3035_01; 'd26 : lut_data <= ' h3034_ba; 'd27 : lut_data <= ' h3300_10; 'd28 : lut_data <= ' h3301_18; 'd29 : lut_data <= ' h3308_38; 'd30 : lut_data <= ' h3306_34; 'd31 : lut_data <= ' h330a_00; 'd32 : lut_data <= ' h330b_90; 'd33 : lut_data <= ' h3303_18; 'd34 : lut_data <= ' h3309_18; 'd35 : lut_data <= ' h331e_0e; 'd36 : lut_data <= ' h331f_0e; 'd37 : lut_data <= ' h3320_14; 'd38 : lut_data <= ' h3321_14; 'd39 : lut_data <= ' h3322_14; 'd40 : lut_data <= ' h3323_14; 'd41 : lut_data <= ' h3626_03; 'd42 : lut_data <= ' h3621_28; 'd43 : lut_data <= ' h3f08_04; 'd44 : lut_data <= ' h3f09_44; 'd45 : lut_data <= ' h4500_25; 'd46 : lut_data <= ' h3c09_08; 'd47 : lut_data <= ' h335d_20; 'd48 : lut_data <= ' h3368_02; 'd49 : lut_data <= ' h3369_00; 'd50 : lut_data <= ' h336a_04; 'd51 : lut_data <= ' h336b_65; 'd52 : lut_data <= ' h330e_50; 'd53 : lut_data <= ' h3367_08; 'd54 : lut_data <= ' h3f00_06; 'd55 : lut_data <= ' h3f04_01; 'd56 : lut_data <= ' h3f05_c8; 'd57 : lut_data <= ' h3905_1c; 'd58 : lut_data <= ' h5780_7f; 'd59 : lut_data <= ' h5782_0a; 'd60 : lut_data <= ' h5783_08; 'd61 : lut_data <= ' h5786_20; 'd62 : lut_data <= ' h5787_0c; 'd63 : lut_data <= ' h5789_01; 'd64 : lut_data <= ' h578a_0f; 'd65 : lut_data <= ' h5000_06; 'd66 : lut_data <= ' h3632_48; 'd67 : lut_data <= ' h3622_0e; 'd68 : lut_data <= ' h3627_02; 'd69 : lut_data <= ' h3630_b4; 'd70 : lut_data <= ' h3633_94; 'd71 : lut_data <= ' h3620_42; 'd72 : lut_data <= ' h363a_0c; 'd73 : lut_data <= ' h3334_60; 'd74 : lut_data <= ' h303f_81; 'd75 : lut_data <= ' h501f_00; 'd76 : lut_data <= ' h3b00_f8; 'd77 : lut_data <= ' h3b01_40; 'd78 : lut_data <= ' h3c01_14; 'd79 : lut_data <= ' h4000_00; 'd80 : lut_data <= ' h3d08_00; //'h3d08_01; 'd81 : lut_data <= ' h3640_00; 'd82 : lut_data <= ' h0100_01; 'd83 : lut_data <= ' h303a_09; 'd84 : lut_data <= ' h3039_66; 'd85 : lut_data <= ' h303f_82; 'd86 : lut_data <= ' h3636_88; 'd87 : lut_data <= ' h3631_90; 'd88 : lut_data <= ' h3635_08; 'd89 : lut_data <= ' h3105_04; 'd90 : lut_data <= ' h3105_04; `endif default : lut_data <= 'h0000; endcase end endmodule |
5. 显示结果
电视显示1080p30的视频信号,图像中的色卡表明颜色显示正常。
本文转自 shugenyin 51CTO博客,原文链接:http://blog.51cto.com/shugenyin/1857492
转载地址:http://tpgum.baihongyu.com/