基于FPGA的VGA/LCD显示控制器系统设计(上)
今天给大侠带来基于FPGA的VGA/LCD显示控制器设计,由于篇幅较长,分三篇。今天带来第一篇,上篇,VGA 显示原理以及VGA/LCD 显示控制器的基本框架,话不多说,上货。
之前也有图像处理以及VGA显示相关的文章,各位大侠可以自行搜索。
源码系列:基于FPGA的VGA驱动设计(附源工程)
基于FPGA的实时图像边缘检测系统设计(上)
基于FPGA的实时图像边缘检测系统设计(中)
基于FPGA的实时图像边缘检测系统设计(下)
导读
VGA (Video Graphics Array) 即视频图形阵列,是IBM于1987年随PS/2机(PersonalSystem 2)一起推出的使用模拟信号的一种视频传输标准。这个标准对于现今的个人电脑市场已经十分过时。但在当时具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域取得了广泛的应用,是众多制造商所共同支持的一个低标准。
LCD ( Liquid Crystal Display 的简称)液晶显示器。LCD 的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。按照背光源的不同,LCD可以分为CCFL显示器和LED显示器两种。LCD已经替代CRT成为主流,价格也已经下降了很多,并已充分普及。
在之前的文章中介绍了如何获取、处理摄像头提供的视频信号,在实际应用中还需要将经过处理的信号显示在显示器上。这个过程与信号处理中的过程上是相反的,将数字信号按照电视信号的制式组成合乎时序、格式要求的信号,并加入用于控制的各种同步信号。本篇将通过 FPGA实现一个 VGA/LCD 显示控制器的实例,并详细介绍实现过程。
第一篇内容摘要:本篇会介绍VGA 显示原理,包括图像显示原理、常用视频显示标准;还会介绍VGA/LCD 显示控制器的基本框架等相关内容。
一、VGA 显示原理
在设计 VGA 显示控制器的实现过程以前,首先需要了解 VGA 的显示原理。
1.1 图像显示原理
VGA 显示控制器控制图像信号通过电缆传输到显示器上并显示出来。目前的显示器技术主要包括两种:CRT(Cathode Ray Tube,阴极射线管)和 LCD(Liquid Crystal Display,液晶显示屏)。CRT 通过帧同步信号和行同步信号控制电子枪的电子束逐行逐点地扫描,将电子打在荧光点上,使之发光。
通过视觉暂留的作用,看到的就是一副完整的画面。LCD 与 CRT 类似,也是动态的扫描。但 CRT 是模拟方式的,通过电路控制,电子束可以任意移动;而 LCD是数字方式的,只有位置固定的电流通路,所以只能通过电路矩阵逐行扫描,而不能逐点,即一行上所有的点同时工作。CRT 显示器连接示意图如图 1 所示。
图 1 CRT 显示器连接示意图
VGA 显示控制器控制 CRT 显示图像的过程如图 2 所示。
图 2 VGA 显示控制器控制 CRT 显示器的框图
电子枪的扫描过程在行同步、场同步等控制信号的控制下进行,包括水平扫描、水平回扫、垂直扫描、垂直回扫等过程,如图 3 所示。
图 3 扫描过程
1.2 常用视频显示标准
视频显示标准随着显示技术和工艺的不断进步而逐步提高:
- 最早用来显示字符的是 MDA 标准(Monochrome Display Adapter,单色显示适配器接口),只支持字符显示方式,只有黑白方式,显示规格 80 列×25 行,分辨率为 720×350。
- CGA 标准(Color Graphic Adapter,彩色图形适配器接口),支持彩色图像方式,显示规格从 40 列×25 行到 80 列×25 行,颜色从黑白到 16 色。
- EGA 标准(Enhanced Graphics Adapter,增强型图形适配器接口),除了兼容 MDA、CGA标准外,还支持增强模式,图形显示规格从 320×200 到 640×350,颜色从黑白到 16 色。
- VGA 标准(Video Graphies Array,视频图形阵列),除了兼容上面各种标准外,还包括 QVGA、VGA、SVGA 等多个子标准,支持从 640×480 到 800×600 等更高的显示规格。目前常用的是 VGA 标准,后面的实例将详细介绍 VGA 标准的显示控制器。
二、VGA/LCD 显示控制器的基本框架
VGA 显示控制器的程序框架如图 4 所示。这个 VGA/LCD 显示控制器提供对 CRT、LCD 的支持,适用于嵌入式系统的开发。
图 8-4 VGA 显示控制器程序框架
VGA 显示控制器的程序框架包括如下几个主要部分:
- 颜色查找表 颜色查找表保存了 256 色分辨率 R、G、B 所有可能颜色,因此它是一块256×24 位的静态 RAM 区,每个像素由 R、G、B 每种颜色 8 位数据组成,程序包括两块这样的颜色查找表,一共 512×24 位。
- 寄存器 包括整个程序需要的各种控制、状态寄存器。
- 颜色处理器 用于将接收到的像素数据转换成 RGB 颜色信息。
- 光标处理器 用于将保存的光标信息转换成可见的光标。
- 输出 FIFO 用于保证连续的数据流输出到 VGA 或者 LCD 显示器上。
- 视频定时产生器 用于产生显示需要的各种同步信号,如场同步、行同步、复合同步信号等。
本篇到此结束,下一篇带来基于FPGA的VGA/LCD显示控制器设计(中),VGA/LCD 显示控制器程序的实现,包括顶层程序、颜色查找表、颜色处理器、光标处理器、视频定时产生器以及输出 FIFO等相关内容。