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