基于Zedboard FPGA的VGA图像信号采集系统的设计

FPGA/ASIC技术

190人已加入

描述

摘要:根据VGA(Video Graphic Array)的原理[1],采用VHDL硬件描述语言,设计了一种基于Zedboard FPGA板卡的图像显示方案。实验结果表明,在FPGA实现图片显示,达到了预期的效果,依据该原理,可以实现图像的采集及在VGA显示屏上显示的实现。

引言
利用FPGA产生VGA时序信号和发送图像信息,并将其作为图像信号采集系统,将大大减小图像开发的难度和投入[2]。显示器的显示有许多标准,常见的有VGA、 SVGA等。在本设计中,设计了一种基于Xilinx公司7系列FPGA的VGA图像显示控制器,并在Zedboard板卡上进行了测试,并成功地在显示器上显示了企鹅的头像。利用该原理,可以脱离PC机实现图像显示的功能,减少成本投入。

VGA的原理
VGA作为一种标准的显示接口得到了广泛的应用。常见的彩色显示器一般由CRT(阴极射线管)构成,彩色是由R、G、B (红: Red、绿: Green、蓝:B1ue)三色组成。显示是采用逐行扫描的方式,阴极射线枪发出的电子束打在涂有荧光粉的荧光屏上,产生RGB三基色,最后合成一个彩色图像[3]。在VGA接口协议中,不同的显示模式因为有不同的分辨率或不同的刷新频率,所以其时序也不相同[4]。对于每种显示模式的时序,VGA都有严格的工业标准。图1、图2为VGA行扫描、场扫描的时序图。

VGA

VGA

图片显示原理
首先利用Image2lcd软件,将我们所需要的图片转换为二进制的文件,需要注意的是对于不同的VGA接口设计方式,需要转换的文件格式也是不一样的,在这里,设置生成256色的图片文件。

图片显示需要将图片的信息发送到VGA接口,该设计采用的方案是在对像素进行计数、场计数的时候,就把图片信息直接赋值给颜色信号R、G、B,需要对图片的显示像素一一判断对应的位置。

FPGA系统的实现
在这里我们采用Zedboard板卡作为控制核心,其板卡的VGA接口原理图如图3所示。

VGA

时序信号
Zedboard提供了50MHz的时钟信号,VGA 显示需要的是 25.175 MHz的时钟, 所以在设计时首先要对时钟信号进行二分频,得到 25 MHz 的时钟频率。我们采用分频后的信号作为HS和VS的时序信号。其VHDL程序设计如下:
process(clk_25M) --此处实现的在分频信号下,产生场扫描和行扫描的信号
begin
if clk_25M'event and clk_25M='1'
then
if(hclk=800) then hclk<=0;
else hclk<=hclk+1;
end if;
if hclk>=656 and hclk<752 then
hs1<='0';
else hs1<='1';
end if;
end if;
end process;
process(hs1)
variable cnt :integer range 0 to 1000
:=0;
begin
if hs1'event and hs1='0' then
if vclk=524 then vclk<=0;
else vclk<=vclk+1;
end if;
if vclk >= 491 and vclk<492 then
vs1<='0';
else vs1<='1';
end if;
end if;
end process;

图像显示
首先需要定义一个寄存器数组来存储图像。

type data_buffer is array(0to 22499) of std_logic_vector(7downto 0);
constant buf:data_buer:=(⋯⋯--在此定义一个150×150的图片信息);

在产生的场、行扫描信号的基础上进行图像的输出控制,显示位置在矩形(100,100, 250,250)的矩形内。其控制程序如下所示。
process(clk,vclk,hclk)
begin
if clk'event and clk='1' then—控制信号在矩形内输出
if( vclk>=100 and vclk<250 and
hclk>=100 and hclk<250 ) then
d a t 1 < = b u f ( ( v c l k -
100)*150+(hclk-100));
else dat1<="00000000";
end if;
end if;

图像输出
利用Zedboard的VGA接口进行数据和时序信号的输出。
hs<=hs1;
vs<=vs1;--行、场信号输出
dat<=data1;--数据输出

VGA

结束语
利用FPGA控制VGA进行图像的输出,克服了以往必须使用PC机作为控制的弊端,减少了成本的投入。依据本设计的原理,可以采用FPGA的FIFO的IP核作为数据的存储单元,实现动态图像的显示,对于实现小型控制系统具有重要的意义。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分