首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 基于FPGA的VGA图形控制器设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于FPGA的VGA图形控制器设计
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
1
#
打印
字体大小:
t
T
pengpengpang
发表于 2014-6-29 21:24
|
只看该作者
基于FPGA的VGA图形控制器设计
处理器
,
控制器
,
通用
,
技术
,
接口
随着电子技术的进步和数字图像处理应用领域的不断扩大,FPGA对VGA信号的采集起到了不可忽视的作用[1]。基于FPGA设计的VGA图形控制器有不少便利之处:首先,FPGA以其设计灵活、结构简单、集成度高等优点,近年来被广泛运用到各种功能的电路设计当中。以硬件描述语言(Verilog或VHDL)完成的电路设计可以经过简单的综合与布局快速烧至到FPGA上进行测试,成为现代IC设计验证的主流技术。其次,VGA作为一种通用的显示接口,已经广泛应用于工作和生活当中。传统的VGA显示控制主要以专门的芯片电路和通用处理器来实现,体积大且不灵活,但基于FPGA的VGA显示控制显著提高了产品的灵活性。最后,基于FPGA设计的产品开发过程简单,投资小,系统成本较低,使得本VGA图形控制器在同类商品中将更具有价格上的竞争优势。本文着重介绍一种利用Nexys2 FPGA开发板实现VGA显示控制的方法,能够实现不同图案的显示,该方法也可以方便地应用于各种嵌入式便携系统中。
1 Nexys2概述
现场可编程门阵列FPGA(Field Programmable Gate Array)在嵌入式系统中被广泛运用。其配置和编程是通过软件进行的,通用性和灵活性极强。在产品升级时,不需要额外改变原有的硬件电路,只需修改程序,大大宿短了系统设计周期。Nexys2作为一款比较经典的FPGA开发板,能够完全兼容嵌入式处理器。特别在VGA系统设计中,因其板上集成了16 MB高速SDRAM和16 MB Flash ROM,不需接外部ROM便可存储图像数据或字符数据,使其得到更加广泛的运用。
2 VGA概述及工作原理
2.1 VGA技术
计算机显示器的显示有许多标准,常见的有VGA(视频图形阵列)、SVGA(高级视频图形阵列)等。在图像处理系统中,若是采用传统办法将图像数据传回电脑并通过显示器显示出来,则整个传输过程中都需要嵌入式系统的CPU不断对传输的图像数据信号进行控制,不仅浪费CPU资源并且依赖计算机,显著降低了系统运行的灵活性。但如果基于FPGA对VGA接口进行设计,数据流就只在系统的内部流动而不依赖电脑,实现了系统的最小化,并且增强了系统的可靠性和设计的灵活性[1]。FPGA开发板上集成了很多功能模块,使得基于FPGA的设计还可以根据用户的特定需要设计出针对性强的VGA图形控制器,不仅满足了多样化的用户需要,而且降低了开发成本,使产品的升级换代更加快捷、方便。
2.2 VGA显示原理
VGA显示系统如图1所示,主要由VGA控制器、存储器(若显示更大的图像,可采用外部ROM取代FPGA内部的ROM)和显示器3部分组成。VGA控制器调用存储器里储存的数据并对此数据进行相应的处理,转换成相应的时序信号传送给显示器,显示器按照接收到的信号进行显示[2]。
对应640×480×60 Hz的模式,工业标准所要求的时钟频率为25.175 MHz,行周期Tg为800个时钟,场周期Tg为525个行周期。由于无法得到25.175 MHz的时钟频率,因此在设计中采用将全局时钟50 MHz二分频得到的25 MHz的频率来驱动行计数器。
当VS=0、HS=0时,CRT显示的内容为亮的过程。当一行扫描完毕,行同步HS=1。期间,CRT扫描产生消隐,电子束回到CRT左边下一行的起始位置(X=0,Y=1);当扫描完480行后,CRT的场同步VS=1,产生场同步使扫描线回到CRT的第一行第一列(X=0,Y=0)处(约为两个行周期)。此程也称光栅扫描[3],如图3所示。
3 系统设计方案
整个系统以Nexys2 FPGA开发板为核心,通过对其编程可输出红、绿、蓝三基色信号和HS、VS行、场扫描同步时序信号。当FPGA接收到输出控制信号后,内部的数据选择器模块根据控制信号选择相应的图形生成模块,输出图形信号与行、场扫描时序信号一起通过VGA接口电路传送至显示器,在VGA显示器上便可看到相应的彩色图像[4]。系统采用Nexys2开发板上提供的50 MHz时钟作为全局参考时钟,由一片晶振提供时钟源。通过硬件描述语言VHDL对时钟进行分频,产生各模块所需时钟频率。通过硬件描述语言VHDL对Nexys2开发板上的按键进行规定,使得开发板工作时可以通过按键切换VGA显示的图形。系统模块如图4所示。
4 系统实现
本设计采用了8 bit数字信号线,可产生256种不同的颜色。本彩色条纹模式显示控制器可通过按键实现横彩条、竖彩条、棋盘格等图案的显示。横彩条可根据场计数器产生,在480个有效数据区内,每60个产生一个彩条,即对其进行8等分;竖彩条则根据行计数器产生,在640个有效数据区内,每80个产生一个彩条,也是8等分;棋盘格可由横彩条数据和竖彩条数据“异或”或“同或”而得到。同时,可通过按键来控制VGA不同图案的输出。
4.1 坐标定位
设定要全屏显示图形,如图2所示,行、场时序的Td部分是屏幕所显示部分,即屏幕从坐标第45行、第152个像素(左上角)开始显示。若显示横彩条,则从第45行开始,每过60行给输出rgbout赋一个颜色值,直到第525行;竖彩条即从第152个像素开始,每过80个像素给输出rgbout赋予一个颜色值,直到第792个像素。
4.2 VGA控制程序设计
4.2.1 VGA控制器程序信号定义
entity vga is
Port(clk:in std_logic;//全局时钟
keya:in STD_LOGIC;//控制按键
syncV:inout std_logic;//场同步信号
syncH:inout std_logic;//行同步型号
rgbout:out std_logic_vector(7 downto 0));
//8 bit输出颜色信号
end vga;
4.2.2 产生彩条图形的部分VHDL描述
process(clkdiv)//clkdiv为分频后的时钟信号
begin
if(clkdiv=′1′ and clkdiv′Event)then
if(HS>=152)and(HS<232)and(VS>=45)and(VS<525)then//横彩条
rgbx<="01010101";
elsif(HS>=232)and(HS<312)and(VS>=45)and(VS<525)then
rgbx<="01110101";
……
elsif(HS>=712)and(HS<792)and(VS>=45)and(VS<525)then
rgbx<="00010111";
else
rgbx<="00000000";
end if;
end if;
end process;
4.2.3 控制按键的VHDL描述
process(keya)
begin
if(keya=′1′and keya′Event)then
mmd<=mmd+1;//定义的2位逻辑信号
end if;
end process;
process(mmd)
begin
case mmd is
when"00"=>rgbout<=rgbx;
//当无按键操作时,VGA显示屏显示横彩条
when"01"=>rgbout<=rgby;
//第一次按键时,VGA显示屏显示竖彩条
when"10"=>rgbout<=rgbx xor rgby;
//第二次按键时,VGA显示第一种棋盘图形
when"11"=>rgbout<=rgbx xnor rgby;
//第二次按键时,VGA显示第二种棋盘图形
when others=>null;
end case;
end process;
4.3 系统测试结果与结论
在Xilinx ISE 13.3中创建项目后,输入系统的VHDL程序代码进行管脚约束,然后进行逻辑综合、布局布线、时序分析后生成.bit编程文件,再将编程文件下载到Nexys2 FPGA中,并通过VGA接口与显示器相连。系统中的keya可约束为Nexys2开发板中任一按键,作为显示图形的切换按键。通过按keya键,系统的显示效果如图5所示。
本文设计的VGA图形显示控制器是基于FPGA实现的,采用VHDL语言在Xilinx 13.3软件环境下完成软件设计,并对整个系统进行了调试,最终在硬件平台Nexys2上实现了图形的显示。与传统的VGA控制器相比,本设计具有以下有点:(1)采用硬件描述语言VHDL进行开发,软件程序简单且执行效率高,使得系统设计变得更加快捷方便;(2)脱离了PC控制,减少了控制器的体积,从而扩展了其应用范围,对于各种嵌入式便携系统具有更重要的现实意义及工程实用价值。
本设计只做了彩条及棋盘格图形的显示,如果要做字符显示或真彩图像显示,则需将像素点数据保存到FPGA内部的EAB RAM、外部ROM或RAM中。在接下来的设计中,将会在此方向上进行相应的改进和完善。
参考文献
[1] 吕康.基于FPGA的VGA图形控制器设计[J].科技风,2011(14):32.
[2] 朱奕丹,方怡冰.基于FPGA的图像采集与VGA显示系统[J].计算机应用,2011,3(5):1258-1261,1264.
[3] 潘松,黄继业.EDA技术与VHDL[M].北京:清华大学出版社,2009.
[4] 杨杰,穆伟斌.基于FPGA的VGA控制器设计与实现[J].齐齐哈尔大学学报,2008,24(6):50-52.
来源:池清萍 来源:微型机与应用2013年第15期
收藏
分享
评分
记录学习中的点点滴滴,让每一天过的更加有意义!
回复
引用
订阅
TOP
返回列表
MCU 单片机技术
示波器技术
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议