【ZedBoard】在ZYNQ上利用FPGA PL部分 完成VGA驱动及图像显示(一)基础知识

【ZedBoard】在ZYNQ上PL部分 完成VGA图像显示(一)基础知识

前言:最近在学习fpga开发,基于的是ZYNQ的板子Zedboard。在学习过程中发现关于zedboard的pl部分做vga方向资料不是很多,因此在此不算做教程吧,水平有限。算是一些经验分享,希望前辈指教。

软件开发环境:Vivado2019.2
硬件开发环境:Zedboard——PL部分 也就是纯FPGA部分
编程语言:Verilog

(一)有关VGA的知识:

VGA(Video Graphics Array) 是视频图像阵列,通常指代VGA接口。就是常见的老式电脑中,主机和显示器相连的带有左右两个螺丝的连接线。
如下:
在这里插入图片描述
但是现在大部分电脑,很多笔记本都用了HDMI接口,VGA在慢慢过渡到HDMI中,但是VGA仍然在许多工业、实验室等硬件环境中有着大量的存在。

现在,我们来细说一下VGA的内部信号。

在这里插入图片描述
最最最重要的就是 5 个信号,分别是R 、G、 B 红绿蓝三色的模拟信号,以及行同步信号和场同步信号。 其他信号一般来说板子自己已经帮我们在内部接好了,我们不用去给它信号。在Zedboard上的话,之后在分析datasheet的时候再细说吧。

行和场 就可以类比于 显示屏的 宽和高

如上图所示的这样的VGA接口其实是通过模拟VGA接口连接,计算机内部以数字方式生成图像信息。这里最主要的就是要实现R、G、B 三原色信号的数模转换。
有学过模电和数电的同学应该清楚,数电只有高电平和低电平,0和1 。 所以就要通过权电阻网络来实现数字信号到模拟信号的。

(二) 有关RBG的知识

RGB是一种颜色标准,红®、绿(G)、蓝(B)。
其他各种各样的颜色都是用这三个颜色来互相叠加产生的。显示器大都是采用了RGB颜色标准,在显示器上,是通过电子枪打在屏幕的红、绿、蓝三色发光极上来产生色彩的。一般显示器可以显示2^(32)种颜色(理论上)。

电脑屏幕上的所有颜色,都由这红色绿色蓝色三种色光按照不同的比例混合而成的。一组红色绿色蓝色就是一个最小的显示单位。屏幕上的任何一个像素点颜色都可以由一组RGB值来记录和表达。

在电脑中,RGB的所谓“多少”就是指亮度,并使用整数来表示。通常情况下,RGB各有256级亮度,用数字表示为从0、1、2…直到255。

RGB的格式

对一种颜色进行编码的方法统称为 色彩空间

RGB555:RGB555是一种16位的RGB格式,但是只有用到了5+5+5,剩下的一位其实是没有用到的。R、G、B 每个分量都用5位表示。

RGB565:RGB565使用16位表示一个像素,这16位中的5位用于R,6位用于G,5位用于B。这个比555好在 更加充分利用16位的资源
在这里插入图片描述
RGB888(也叫RGB24):RGB分量都用8位表示,取值范围为0-255。

RGB444:每个颜色通道用4位来表示,
在这里插入图片描述

注意:在Zedboard上是用的RGB444格式来做VGA的,这个是个坑,踩过记一下。

(三) VGA和RBG的联系——权电阻网络

我以RBG565为例,说明RGB和VGA的联系。
如下图所示,在VGA模块中,主要的信号是RED,GREEN,BLUE,行同步和场同步。现在主要说RGB,同步信号之后写到时序的时候说。
对于VGA上的这三个信号,有效电压是0~0.714v,通过每个权电阻网络,将会产生不同幅值的电压,而此电压将以模拟信号的形式经过一系列工作激发电子枪在显示屏上显示出像素点。

在这里插入图片描述
更为详细的说明:
我们以实例来说明其是如何工作的:
在这里插入图片描述

下一篇会说明分辨率 和VGA时序的原理。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值