基于 FPGA 的 VGA 图像显示系统的
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
与实现
周卓然,徐道连,吕凤飞,付少华
( 重庆大学光电技术及系统教育部重点实验室,重庆市 400030)
摘要: 文中依据 VGA 接口的设计原理,提出一种基于 DE2 - 70 的 VGA 图像显示控制系统,与传统的 VGA 控制系统 相比,由于 FPGA 体积小,可重构,因此很适合小型便携式系统设备的设计,给出了 QuartusⅡ9.1 的仿真结果。在硬件平 台上实现了 VGA 的汉字显示和彩条信号的显示。实验结果表明: 由 FPGA 作为处理器来控制 VGA 图像的和汉字的显示,能够达到预期的效果,克服传统 VGA 控制系统的弊端。
关键词: VGA; 汉字; FPGA; QuartusⅡ9. 1
0. 引言
VGA 汉字显示系统的应用范围越来越广泛,但传统的VGA 字符显示方案主要是通过 VGA 专用芯片来控制 VGA 接口来显示字符信息的,但 FPGA 在大规模嵌入式系统设计中优势明显,如管脚资源丰富,运行速度快,可以实现大规模的系统设计,并且使用芯片更少,可以降低成本,有利于小型化。同时由于现代 EDA 软件的大量应用,能够方便设计人员缩短设计周期,更方便地实现仿真。文中研制了一种基于 FPGA 的 VGA 图像显示控制系统,在 VGA 显示器上可以显示多种图像,可以代替传统的 VGA 专用芯片的功能,具有很好的应用前景。
1. VGA 显示原理
1.1 VGA 显示接口
计算机显示器有许多的接口
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
,VGA 是一种计算机视频传输标准,目前绝大部分的计算机与外设之间都带有 VGA 显示接口。VGA 显示接口结构简单,性能较稳定,兼容性很强,时序易于实现在图像处理领域具有广泛的应用前景。
1.2 VGA 接口定义和时序控制
VGA 接口上面共有 15 条线,分为 3 组,分别用来处理输入模拟信号和行同步线( HS)和场同步线( VS),其中行同步线和场同步线联合起来控制VGA的显示时序。
如图 1 所示,该 VGA 接口当频率为 100 MHz 时,可以支持的分辨率最高可达1 600 × 1 200像素。其中,VGA 显示及时序信号的控制需要遵循 VGA 的工业标准( 对显示器,分辨率需要为 640 × 480,扫描频率为 60 Hz) ,需要注意的是,在调试过程中,如果显示器不满足此标准,则显示效果会与仿真波形出现偏差。通过 VGA_R,VGA_G,VGA_B输出相应的控制信号到前端显示处理设备中,在 LPM_ROM 中存储的每一位数据对应相应的显示屏上的像素点的亮和灭。 在显示器上显示汉字或者图像也就是按照汉字或图像的点阵图向显示器上输出 1 或 0 的高低电平,从而显示出所需要的汉字或图像。
图1 VGA 与 FPGA 接口图 图 2 VGA 行扫描、列扫描时序图
图2为 VGA 行扫描、列扫描的时序图,其中,最终输出的行、场同步信号必须遵循 VGA 时序标准从而产生相应的脉冲信号驱动 VGA 接口。图中,HSYNC 为行同步信号; VSYNC 为场同步信号; Pixel Freq 为时钟信号; DATA 为数据信号; DATA 只在图中的 Visible area 区域中才有效。
2. FPGA 控制 VGA 显示控制器设计
2.1 系统硬件框图
系统的硬件实现框图如图 3 所示。所设计的系统主要有时序信号模块、图像存储模块、用户选择模块等构成。FPGA 作为主控制器控制整个系统的运行,根据自顶向下的设计原则, 可以将该系统划分为以下模块: 顶层模块、VGA 控制模块、存储 功能模块、分频模块以及 RAM 读取控制模块。
图 3 系统硬件框图
系统的工作原理: 首先系统加电后,FPGA 上读出配置信息,配置结束后,FPGA 所要显示的汉字的字模信息初始化,存入系统的 ROM 中,时序由系统时钟产生,之后程序根据系统的时序信息来控制 VGA 接口,输出相应的行同步、场同步、以及RGB 颜色信息到显示器上。
2.2 顶层模块
顶层模块主要是负责各个模块之间数据信号和控制信号之间的连接关系,并且能接收 RAM 读取模块传来的汉字字模的信息数据流,根据 RGB 的定义,规定 VGA 色彩信号中: 000( 黑色) ,001( 蓝色) ,010 ( 绿色) ,011 ( 青色) 、100 ( 红色) 、101( 红色) 、101( 紫色) 、110 ( 黄色) 、111 ( 白色) ,需要注意的是该项目中采用的 VGA 芯片的控制 RGB 三基色每个像素信息的位 数是十位。
2.3 时钟及 VGA 同步信号模块
该子模块主要作用是分配系统时钟到各个模块,同时能够产生需要的 VGA 同步信号,设计的
要求
对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗
是使 VGA 能够产生行同步信号和场同步信号驱动 VGA 接口。
2.4 LPM_ROM 存储模块
将需要显示的汉字信号发送到 VGA 接口,有 2 种方法: 一是对像素进行计数后,将计数数值( 像素信息) 直接赋值给 RGB( 颜色信号) ; 二是使用 FPGA 内部的存储资源来存储显示
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
的像素信息,之后,经过程序将显示信号发送到 VGA 接口,实现汉字、图形、图像的显示。文中采用第二种方法,这样可以消除第一种方法不便于控制,且一旦出错,不易修改的缺陷。
2.5 汉字显示模式及 MATLAB 处理像素信息
系统所使用的开发工具是 QuartusⅡ9. 1,其内部集成了 IP core 的生成软件。使用 IP 核设计能够避免重复设计,又可以提高工作效率。这些 IP 核是根据 Altera 的 FPGA 器件的特点和结构设计的,直接运用 Altera FPGA 底层硬件语言来描述。
根据项目的要求,选择了单端口的 ROM 来存储汉字的图像信息,项目大概需要显示 50 ~ 80 个汉字,文中以显示 4 个汉字为例,将所用的 4 个汉字定制成 1 个 LPM - ROM,且 4 个汉字位于一行,根据 DE2—70 开发板内部 VGA 的控制芯片ADV7123 的特性,所以 RGB 颜色信号的分量每位需要 10 位数据,所以每个 LPM—ROM 的数据宽度是 64 位。显示的汉字是16 × 16 点阵,所以 LPM—ROM 的数据深度是 16 位。
在定制 LPM—ROM 时,要显示汉字,必须首先载入用字模生成软件生成的像素信息,系统中,应用了 Matlab 将 16 × 16 点阵汉字的字模像素信息生成初始化文件 MIF。也就是首先由字模软件生成相应汉字的字模,再将字模信息导入 MIF 文件。
MATLAB 程序主要是利用
fid = fopen( 'D: \hanzi. mif','wt') ;
fprintf( fid,’% d: % s; % s’,a( : ,ii) ,char( 13,10) ’) 语句来将字模像素信息存储到到 MIF 文件中。其中 hanzi. mif 文件就是需要导入的初始化文件,下面给出实现的几个汉字的 MIF 文件信息:
WIDTH = 64; 数据宽度
DEPTH = 16; 数据深度
ADDRESS_RADIX = HEX;
DATA_RADIX = HEX;
CONTENT BEGIN
0: 8 ;
1: 00F8008001001108 ;
2: 3F003FFE01001110 ;
3: 0 ;
4: FFFE208001007FFE ;
5: 01002080FFFE4002;
6: 1FF0208001008004;
7: 11102FFC01001FE0;
8: 1FF0208002800040;
9: 0;
a: 1FF021400440FFFE;
b: 0 ;
c: 3FF8422008200100;
d: 0;
e: FFFE880820080500;
f: 00001006C0060200;
END;
经过试验验证,汉字显示的效果很好。
3. 实验结果
3.1 实验开发工具
( 1) 仿真软件: QuartusⅡ9. 1;
( 2) 开发语言: 硬件描述语言 Verilog;
( 3) 实验开发板: Altera DE2 - 70。
3.2 VGA 同步信号的仿真
FPGA 提供的外部时钟是 50 MHz,而 VGA 显示需要的时钟 25. 175 MHz,所以在设计上首先对外部时钟进行二分频,得到 25 MHz 的时钟频率,这个频率与 25. 175 MHz 很接近,以该时钟为标准,每行为 800 个时钟周期,每场为 525 行( 即是 800 × 525 个时钟周期),行同步、场同步信号得到的仿真结果如图 4 所示。其中 HS 为行同步信号,R、G、B 为三基色信号,VS为场同步信号。
图 4 时序仿真图
利用 QuartusⅡ9. 1 内部的仿真软件对系统进行仿真,得到的仿真结果如图 4 所示。
通过仿真图可以观察出 blank、vga _ clk、vga _ sync 是控制VGA 芯片 ADV7123 的控制信号,行同步信号( hsync) 、场同步信号( vsync) 有效值都为‘1’,并且行与场都处于有效区域 valid
内( 由水平有效区域的宽度和垂直有效区域的宽度逻辑与得到) 时,输出的有效区域 valid 的有效值为‘1’,此时可以把汉字的信息输出,从仿真时序图可以观察出,当满足输出的条件时,可以从定制的 ROM 中调用存储的汉字信息在时序图中用 rom-data 表示存储的汉字信息。该项目采用的是蓝底白字的显示, 蓝底 RGB = 001,白字 RGB = 111 表示,由仿真图 vga_b 可知其值全部为 1023,表示的十位为‘1111111111’。而 vga_r 和 vga_g只有在汉字信息输出时,输出才是十位的‘1’,十进制表示就是1023,否则输出的是十位的‘0’,从而实现蓝底白字的显示。
3.3 汉字和彩条显示效果
利用 FPGA 内部的 LPM - ROM 来存储汉字的字模像素信息,通过程序读取信息后,将其传送至 VGA 接口,项目定制LPM - ROM 来存储汉字点阵信息,可以显示多个汉字。项目显示了“重”、“庆”、“大”,“学”4 个字,得到的效果如图 5、图 6、图7 所示,实验结果达到了预想的要求。如果想显示更多的汉字,可以定制更多的 LPM - ROM,该项目中的汉字更改方便,同时也可以调整汉字显示的位置。
图5 汉字显示效果 图6 竖彩条显示效果 图7 横彩条显示效果
4. 结束语
用FPGA 来控制 VGA 接口,改变传统的 VGA 图像显示方法的缺点,如需要控制器不断的对所传输的数据信号进行控制,造成了资源浪费。而采用 FPGA 设计的 VGA 显示控制器, 不但可以使汉字的显示可以脱离微机的控制,同时减小了系统的体积,可移植型好,系统升级也非常方便,对于各种便携式的设备、小型嵌入式系统的设计和实现具有重要的工程意义。
引用:
[1] 李国刚,余俊,凌朝懂. 基于 FPGA 和 VGA 的图形控制器的实现方法[J]. 信息技术,2006-07.
[2] 谢磊. VGA 图像控制器的设计与实现[J]. 新乡学院学报,自然科学版,2009-06.
[3] 袁堂青,张玉璘. 基于 FPGA 的 VGA 汉字显示系统设计与实现[J]. 济南大学学报,自然科学版,2011-01.
[4] 王亮,李正,宁婷婷,等. VGA 汉字显示的 FPGA 设计与实现[J]. 计算机工程与设计, 2009-02.
[5] 陈继焱,何东升. 基于 FPGA 的高分辨率雷达图像采集系统[J]. 仪表技术与传感器,2007-09.
参考文献:
[1] 蔡方凯, 陈永彬. 高速面阵CCD图像采集系统的设计[J]. 电信工程. 2009-08.
[2] 蔡肯, 梁晓莹. VGA控制器IP核的FPGA实现[J]. 电脑知识与技术(学术交流).2007-12.
[3] 李同宇, 任文平, 贾赞. 基于FPGA的图像裁剪电路的设计与实现[J]. 电子技术. 2010-01.
[4] 张旭, 王彬. 一种基于FPGA的实时图像转换控制器设计[J]. 电子技术应用. 2007-10.
[5] 王永, 何庆华, 田逢春, 徐江, 冯正权. 基于FPGA的脑机接口实时系统[J]. 电子技术应用. 2009-04.
[6] 任文平, 贾赞, 申东娅, 李同宇. 基于FPGA的图像处理电路的设计与实现[J]. 电子技术应用. 2010-02.
[7] 方鹏, 张红雨, 赵明辉. 基于ARM处理器S3C2440的VGA显示技术[J]. 电子设计工程. 2011-11.
[8] 朱颖达, 杨鸣. 实现高分辨力图像传感器高帧率输出的方法[J]. 光学仪器. 2010-06.
[9] 吴康东, 刘桂华, 程海狮. 一种改进型surendra背景更新算法的FPGA实现[J]. 电子技术应用. 2011-03.
[10] 朱丽婷, 赵哲. S3C2440的嵌入式VGA接口设计[J]. 杭州电子科技大学学报. 2010-05.
二次引用:
[1] 谭会生, 桂卫华, 刘展良. 基于EDA技术的图像边缘检测协处理器的设计[J]. 包装工程. 2004-06.
[2] 吴蓬勃, 张启民, 王朝阳, 牛斗. 基于FPGA的VGA图像控制器设计[J]. 东北电力大学学报. 2006-04.
[3] 曹允. 基于FPGA的VGA时序彩条信号实现方法及其应用[J]. 电子工程师. 2002-07.
[4] 邢炬慧. 液晶汉字显示的原理与设计[J]. 电子工程师. 2007-11.
[5] 邓春健, 王琦, 徐秀知, 冯永茂, 郑喜凤. 基于FPGA和ADV7123的VGA显示接口的设计和应用[J]. 中国稀土学报. 2006-04.
[6] 朱文伟, 许忠仁. 基于FPGA的VGA图像控制器的设计与实现[J]. 贵州大学学报(自然科学版). 2009-02.
[7] 李国刚, 余俊, 凌朝东. 基于FPGA的VGA图形控制器的实现方法[J]. 信息技术. 2006-07.
[8] 杨杰, 穆伟斌, 沈焕泉. 基于FPGA的VGA控制器设计与实现[J]. 齐齐哈尔大学学报(自然科学版). 2008-06.
[9] 王亮, 李正, 宁婷婷, 刘瑾, 陈金强, 关永. VGA汉字显示的FPGA设计与实现[J].计算机工程与设计. 2009-02.
[10] 张伟, 包乌日吐, 闫玉娥. FPGA内部块RAM的应用技巧[J]. 微处理器. 2006-06.