基于Xilinx artix 7的FPGA高级应用(一):VGA图像显示(原理篇)

许久没有更新文章,最近天气太热了都无心写代码了有些烦。FPGA基础教学过段时间我会继续写,今天另开一坑:FPGA的高级应用,给大家讲讲串口配置、通信协议、CPU设计这方面的FPGA应用场景,代码完全开源且已经上机实验可以使用,请大家放心观看。

FPGA高级应用(一) VGA图像显示
这一节讲原理,下一节分享代码。
在这里插入图片描述
VGA接口是现在流行的显示屏接口之一,懂得驱动VGA接口无疑就掌握了驱动显示的方法之一。它本质上是一个数字转模拟器件,能够把数字信号转化为显示器需要的模拟信号,从而显示图像。

如图所示,VGA接口有着众多的引脚。在一般的产品中,4、9、11、12
15引脚都可以不接。而6、7、8、10都可以接到同一个GND上。我们最关心的是1-3和13、14五个信号。

其中1-3号引脚是红绿蓝基色,它充当着调配颜色的作用,每个引脚通过不同的模拟输入可以获得不同强度的基色,例如1号,通过不同大小的模拟输入,可以获得强度不同的红色。

另外的13、14引脚是非常重要的行、场同步信号,它负责扫描屏幕上的每一个点,将颜色填充进去。

所以接下来我们分为颜色调配屏幕扫描两个部分来介绍VGA的驱动。

一、颜色调配

在VGA技术形成的早期,也对应地出现了配置颜色的芯片,而如今得益于FPGA的强大功能,我们只需给1-3号引脚搭配简单的电阻网络就可以实现数模转换,如图:

在这里插入图片描述
这是我们的FPGA开发板上给1号红基色引脚配置的电阻网络,可以看到,5个输入二进制数将红色强度分为了32种。
我们在调配颜色的时候,只需用一个五位的寄存器变量来控制红基色的强度就可以了,非常方便简单。

二、屏幕扫描
在这里插入图片描述
如图,VGA的扫描方式是水平+垂直配合,遍历屏幕上的每个点,而它的数据时序分为“”和“”。

在这里插入图片描述
总的时序顺序是,场同步信号负责垂直遍历屏幕,在场同步显示时间内,列同步信号负责遍历每一行的像素点。假如设水平为x,垂直为y。那么时序顺序就是从x=1到x=该行最大数据位置然后使得y+1,x此时清零并重新开始计数,直到x,y同时达到最大数据位置。

扫描二维码关注公众号,回复: 11867991 查看本文章

每个数据时序周期由4个部分组成。首先是同步信号VSYNC/HSYNC(分别代表场同步信号和行同步信号);其次是显示时间,也就是屏幕上真正显示图像的时间active video time;最后,在每个active video time的前后分别有一个front porch(前沿)和一个back porch(后沿)。

在通用的VGA标准中我们规定了几种刷新频率和扫描时间,在具体设计的时候同步信号必须按照下表里的来:

在这里插入图片描述
这一节就先到这儿了,下一节会给大家分享代码,谢谢观看!

猜你喜欢

转载自blog.csdn.net/weixin_43824941/article/details/108056670