FPGA至简设计实例
前言
一、项目背景
1. VGA介绍
Video Graphics Array(VGA)视频图形阵列是IBM公司在1987年随着PS/2一起推出的使用 模拟信号的一种视频传输标准。其在当时具有分辨率高、显示速率快、颜色丰富等优点,因而在彩色 显示器领域得到了广泛的应用。虽然对于现今的个人电脑市场来说该标准已经十分过时,但VGA仍 然是众多制造商所共同支持的一个标准。在加载自己的独特驱动程序之前,个人电脑都必须支持VG A的标准。例如,微软Windows系列产品的开机画面仍然使用VGA显示模式,这也说明该标准在显 示标准中的重要性和兼容性。
目前,VGA技术主要应用于基于VGA显示卡的计算机、笔记本电脑等设备,而少用于要求显示 彩色高分辨率图像又没有必要使用计算机的设备中。部分嵌入式的VGA显示系统可以在不使用VGA 显示卡和计算机的情况下实现VGA图像的显示和控制,该系统具有成本低、结构简单、应用灵活的 优点,可广泛应用于超市、车站、飞机场等公共场所的广告宣传和提示信息显示,也可应用于工厂车 间生产过程中的操作信息显示,还能以多媒体形式应用于日常的生活中。
2. VGA管脚
VGA接口是一种D型接口,采用非对称分布的15pin 连接方式,如下图所示,共有15针,分 成3排,每排5个孔。这是显卡中应用最为广泛的接口类型,绝大多数显卡都带有此种接口,可以传 输红、绿、蓝模拟信号以及同步信号(水平和垂直信号)。
在VGA 接头上一般会1,5,6,10,11,15 等标明每个接口的编号。如果没有这一编号则按 照下图所示进行编号。VGA接口共有15根针,其对应接口定义如下:
1、红基色 red
2、绿基色 green
3、蓝基色 blue
4、地址码 ID Bit(也有部分是RES,或者为ID2显示器标示位2)
5、自测试 ( 各家定义不同 )(一般为GND)
6、红地
7、绿地
8、蓝地
9、保留 ( 各家定义不同 )
10、数字地
11、地址码(ID0显示器标示位0)
12、地址码(ID1显示器标示位1)
13、行同步
14、场同步
15、地址码 ( ID3或显示器标示位3 )
在进行FPGA 逻辑设计时主要关注的信号是红基色、绿基色、蓝基色、行同步和场同步信号, 其他信号在进行原理图和PCB设计时才需要关注。FPGA通过控制红基色、绿基色、蓝基色、行同 步和场同步信号这5个接口,就能让显示器显示丰富的色彩和各种视频图像。
3. VGA色彩原理
在中学的物理课中同学们可能做过棱镜的试验,通过棱镜后白光被分解成多种颜色逐渐过渡的色 谱,依次为红、橙、黄、绿、青、蓝、紫,这就是可见光谱。而人的眼睛就像一个三色接收器的体系, 在可见光谱中人眼对红、绿、蓝最为敏感,在视觉接收时大多数的颜色可以通过红、绿、蓝三色按照 不同的比例合成产生。同样地,绝大多数的单色光也可以分解成红绿蓝三种色光,这就是色度学最基 本的原理,即三基色原理。三种基色相互独立,任何一种基色都不能由其它两种基色合成。红绿蓝就 是三基色,这三种颜色合成的颜色范围最为广泛,而按照不同的比例的红绿蓝三基色相加合成的混色 被称为相加混色。
三基色的颜色编码如下所示:
从上表可以看出RBG一共有8组合,即可以产生8种颜色。然而显示器显示的色彩非常丰富, 要远远多于8种颜色,这又是如何做到的呢?
对于显示器来说,RGB三个信号其实是模拟信号,其电压的高低可以表示出颜色的深浅。利用 这一原理,就可以产生丰富的色彩。例如,如果R=3.3V,G=0V,B=0V,则显示器会显示非常鲜艳 的红色。如果G和B仍然是0V,而R改为1.8V,则显示器会显示比较浅的红色。R、G、B的电压 范围从0~3.3V,将其任意组合就可以表示出丰富的颜色了。
4. 显示器扫描方式
通过控制红绿蓝三基色可以确定一个像素的颜色,但众所周知一幅图像是由非常多的像素组成的。 例如640*480分辨率的图像则是由480行、每行640个像素组合起来显示的图像。如果显示器想要 显示这样一幅图像,就需要控制显示器的扫描枪将每一个像素对应的颜色显示出来,且需要控制像素 快速变化,使人眼认为所有像素同时显示,从而达到显示器显示图像的效果。
CRT 显示器的控制框图如下图所示:
显示器采用光栅扫描方式,即轰击荧光屏的电子束在CRT屏幕上从左到右(受水平同步信号H SYNC控制)、从上到下(受垂直同步信号VSYNC控制)做有规律的移动。电子束采用光栅扫描方 式,从屏幕左上角一点开始,向右逐点进行扫描,形成一条水平线;在到达最右端后,回到下一条水 平线的最左端重复上面的过程;当电子束完成右下角一点的扫描后,完成一帧图像扫描。随后,电子 束再次回到左上方起点开始下一帧的扫描。这种方法即为常说的逐行扫描显示,通俗来讲就是显示器 是从左上角的第一个像素模块开始,从左到右,从上到下,一块一块的快速显示,从而实现了一幅静 止画面,这幅静止画面在视频中称之为一帧,连续的帧就会产成动画的效果。
5. VGA时序
行同步信号的时序如下图所示。可以看出行同步信号周期性地产生高低电平,可将其分为 4 个 阶段:同步脉冲a、显示后沿b、显示区域c和显示前沿d。同步脉冲a代表新一行的扫描开始,同 时也是上一行扫描的结束。显示时序c是真正图像的显示区域,在此阶段,像素逐个显示出来,即在 这一阶段控制红、绿、蓝三基色信号输出对应像素的RGB值。显示后沿b和显示前沿d这两个阶段 是消隐时刻,此时要求红、绿、蓝三基色信号都为0。
通俗来讲即行同步信号先产生一段低电平的同步脉冲表示“这一行要开始了”。此处可能存在疑 虑:为什么要有这一段同步脉冲呢?从图 3.8- 4 的显示器扫描原理图中可以看出,电子束的行进路 径是从左上角开始,由左到右一个点一个点的移动。当一行扫描完毕后,电子束则需要从最右边回到 最左边开始下一行的扫描,这一移动的时间即为同步脉冲a。
在同步脉冲a结束后,信号由0变1迎来一个上升沿,进入显示信号。这段显示信号包含显示 后沿b、显示时序c和显示前沿d三部分,其中只有显示时序c是真正可以显示像素的,即在这一段 需要输出有效的RGB的值,从而保证显示效果。场同步信号的时序与行同步信号相似,如下图所示。