APP下载

基于FPGA的VGA波形显示系统设计与实现

2014-03-21郑争兵

液晶与显示 2014年1期
关键词:计数器时序波形

郑争兵

(陕西理工学院 物理与电信工程学院,陕西 汉中723000)

1 引 言

视频图形阵列(Video Graphic Array,VGA)是一种视频显示标准,具有分辨率高,反应速度快,显示彩色颜色等优点,被广泛应用于各类显示终端。为了较好地实现终端的图形显示,通常采用专门的显卡完成视频信号的采集、缓存和显示。这种系统的硬件较为复杂,集成度低,而且成本较高,很难满足嵌入式、便携式智能仪表的应用要求。随着高性能的现场可编程门阵列(Field Programmable Gate Array,FPGA)的广泛应用,FPGA 拥有丰富的硬件资源,较强的可重配置能力,可以实现自主知识产权核,减小系统硬件规模,已经成为嵌入式系统设计的主流硬件平台之一[1-3]。因此,提出一种基于FPGA 的VGA 波形显示系统,能够充分利用FPGA 构建的VGA 显示控制电路,实现标准时序下的液晶显示控制和驱动功能,完成信号波形的快速显示。该系统设计的VGA 显 示 控 制 电 路IP 核[4-5],具 有 较 好 的重构性,在适当修改代码的情况下,可移植到其他FPGA 嵌入式系统作为显示控制器模块调用,实现高速存储设备后续显示终端高分辨率显示。

2 系统设计

2.1 总体方案设计

基于FPGA 的波形显示系统整体结构框图如图1 所示。系统主要由信号采集A/D 芯片TLC5540、FPGA 模块和VGA 显示器组成。FPGA 模块作为系统核心部分,主要完成数据读取、处理及逻辑控制,数据传输和数据的显示控制功能,该模块包含PLL 模块、A/D 控制模块、双口RAM 和VGA 显示控制模块。A/D 控制模块为A/D 芯片提供时钟信号ad_clk、使能信号ad_noe并为A/D 转换后的数据ad_da提供缓存。双口RAM 实现采样高速数据的缓存[6]。VGA 显示控制模块负责缓存数据的读取,数据的转换并产生适合VGA 颜色显示的红、绿、蓝三基色信号RGB_da、行同步信号hsync 和场同步信号vsync,使VGA 显示器在VGA 工业标准时序驱动下正确显示波形。

2.2 VGA 硬件接口电路设计

标准的VGA 接口由R、G、B 三色模拟信号线和行、场同步数字信号线构成15 针D 型接口[6],为了实现FPGA 与VGA 接口的正确连接和256种颜色的显示,具体的硬件电路如图2所示。由FPGA 芯片所产生的8位颜色信号由D1至D8端口送入SN74HC573AN 锁存器后,经锁存后由Q1 至Q8 端输出。Q1 至Q3 路数据经512Ω、1kΩ、2kΩ 电阻网络合成VGA_RED 信号,Q4至Q6路数据经512Ω、1kΩ、2kΩ 电阻网络合成VGA_GREEN 信号,Q7至Q8路数据经512Ω、1kΩ 电阻网络合成VGA_BLUE 信号。FPGA 芯片所产生的行同步HSYNC、场同步VSYNC时序驱动信号经过限流电阻连接到VGA 接口的行、场同步引脚。

图1 系统硬件结构框图Fig.1 Hardware block diagram of the system

图2 FPGA 与VGA 接口连接电路Fig.2 Connection circuit between FPGA and VGA interface

3 波形显示控制器设计

3.1 VGA时序关系分析

VGA 显示器主要是通过逐行扫描方式实现图形信号的显示[7-8]。为了便于实现,FPGA 内部主时钟为50 MHz,通过锁相环PLL 得到25 MHz VGA 接口时钟信号。利用行计数器和场计数器实现行、场时序驱动。具体的行扫描信号和场扫描信号的时序关系如图3所示。

图3 行信号与场信号时序关系图Fig.3 Sequence diagram of level signal and vertical signal

本设计中的显示模式为640×480×60 Hz,每个像素点的输出频率为25.175 MHz,行频率为31 469 Hz,场频率为59.94 Hz[9-10]。一个周期行扫描信号由96个pix时间同步头、48个pix行消隐前肩、640 个有效数据显示区域和16 个pix行消隐后肩组成。场信号计数器驱动时钟是行计数器的溢出信号,即当行计数器为800 个pix时,场计数器加1。因此场计数器一个周期是525行,在行计数器和场计数同时计数到有效显示区域时,图形数据才能正确。

3.2 波形显示方法

VGA 显示器采取从左到右,从上而下的方式扫描,利用行、场同步计数器可以确定图形像素扫描点在显示区域中的相对坐标位置与在双口RAM 中的地址数量关系,由此完成图形数据在显示区域的显示。

假设x 表示行计数器值,y 表示场计数器值,(x,y)表示为扫描点在显示区域的任何一像素点。波形显示区域大小为M×N(位于640×480区域内),起始点位置为(x0,y0),则扫描点坐标(x,y)在波形显示区域满足如下关系:

其中:M 表示显示区域长度,N 表示显示区域宽度。

确定x1=x-x0作为双口RAM 存储器的读地址,利用x1值作为波形数据在双口RAM 中的地址读取数据da(x1),通过比较da(x1)和y1=y-y0的值确定是否显示数据。比较简单的显示方法是:如果da(x1)和y1相等则指定颜色显示数据,否则显示背景色。该方法不能连续显示频率较高的波形,容易丢失波形陡峭位置的信息,视觉效果不好。为此对该方法进行改进,可以实现任意频率波形的显示,具体的波形数据显示方法流程如图4所示。扫描点(x,y)随着x,y 的改变移动显示位置,在扫描点到达波形显示区域(x,y)时,利用x1作为波形数据在双口RAM 中的地址读取。数据da(x1-1),da(x1),将y1值与当前波形数据da(x1)和前一时刻波形数据da(x1-1)进行比较,如果y1值介于二者之间,则在扫描点(x,y)处按照指定的颜色显示波形像素点,否则显示背景色。

图4 波形数据显示流程图Fig.4 Flow chart of waves data display

3.3 VGA显示控制模块设计

FPGA 芯片主要完成外部波形数据的采集和控制图形数据的VGA 显示。由于采集图形数据量较大,利用FPGA 自带的可配置的双口RAM 模块作为缓冲区。根据显示波形区域大小和640×480×60 Hz显示模式,RAM 存储的数据大小为512,数据地址位宽9 位。FPGA 只需要通过显示控制模块对RAM 进行读取操作,然后按照波形显示方法完成波形像素位置与颜色显示的转化,最后产生标准的VGA 接口时序实现像素点的显示。因此,显示控制模块的设计是实现VGA 显示的关键。该模块中产生标准的VGA 接口行、场信号时序即可驱动显示器,利用双口RAM 的“满”标志信号读取数据,对读取的数据进行转换处理,完成数据的显示。其关键Verilog HDL代码如下:

4 时序仿真与验证

本文采用的FPGA 芯片选择Altera公司的Cyclone系列EP3C55F484C8器件,使用Verilog HDL 硬件描述语言,在Quartus II 9.0环境下完成了显示控制模块的设计并进行了相应的时序仿真,VGA 接口时序仿真如图5、图6、图7所示。

图5 VGA 接口时序仿真图(a)Fig.5 Timing simulation charts of VGA interface(a)

图6 VGA 接口时序仿真图(b)Fig.6 Timing simulation charts of VGA interface(b)

图7 VGA 接口时序仿真图(c)Fig.7 Timing simulation charts of VGA interface(c)

图8 显示器波形显示结果Fig.8 Waveform display results of the monitor

vga_clk是25MHz行计数器时钟信号;data_in是读取双口RAM 的波形数据;disp_data 是VGA 显示颜色数据;vsync是场同步信号,hsync为场计数器。由图可知:行计数器hcount_r计数到799,行计数器清零,开始重新计数,此时行同步信号hsync由高电平变为低电平,进入下一行的行消隐期,场计数器vcount_r加1,当行计数器hcount_r计数到143,场计数器vcount_r计数到34,且行同步信号hsync为高电平,场同步信号vsync 为高电平,此时VGA 接口数据信号disp_data输出颜色数据FF,VGA 接口信号严格满足接口时序要求。

为验证系统在640×480×60 Hz显示模式下的显示效果,系统上电后通过VGA 接口在显示器上显示采集的波形信号图,显示区域大小为512×128位于显示屏中央,其实物效果图如图8所示。显示效果良好,显示位置可以任意调整。

5 结 论

以640×480×60Hz 显示模式为例,结合FPGA 芯片控制,阐述了一种基于FPGA 的VGA 波形显示方法,并在Altera公司的Cyclone系列EP3C55F484C8器件进行了验证,波形数据能够连续稳定地显示。该显示设计方法能够应用于其他分辨率(1 024×768,1 280×720,1 920×1 080等)的VGA 显示,且FPGA 具有可重配置性和丰富的片内资源,编程大大简化,且基于FPGA 开发的VGA 显示控制模块,具有自主知识产权IP核,方便移植,为基于FPGA 的嵌入式终端显示提供了一个较好的解决方案。

[1] 郑争兵.一种基于FPGA 的UART 电路设计[J].国外电子测量技术,2010,29(7):85-87.Zheng Z B.Design of UART circuit based on FPGA [J].Foreign Electronic Measurement Technology,2010,29(7):85-87.(in Chinese)

[2] 郑争兵.基于FPGA 的FSK 调制解调系统设计[J].陕西理工学院学报:自然科学版,2012,28(5):20-21.Zheng Z B.Design of FSK modulation and demodulation system based on FPGA [J].Journal of Shaanxi University of Technology:Natural Science Edition,2012,28(5):20-21.(in Chinese)

[3] 郑争兵.基于DSP Builder的FIR 数字滤波器设计与验证[J].陕西理工学院学报:自然科学版,2013,29(2):34-38.Zheng Z B.Design and simulation of FIR digital filter based on DSP builder[J].Journal of Shaanxi University of Technology:Natural Science Edition,2013,29(2):34-38.(in Chinese)

[4] 刘敏,戴曙光,穆平安.采用SOPC IP核技术实现液晶屏显示[J].液晶与显示,2011,26(5):665-667.Liu M,Dai S G,Mu P A.Controller for TFT LCD driver based on SOPC[J].Chinese Journal of Liquid Crystals and Displays,2011,26(5):665-667.(in Chinese)

[5] 郑争兵.基于FPGA 的图形点阵液晶显示系统设计与实现[J].液晶与显示,2013,28(3):403-407.Zheng Z B.Design and implementation of graphics dot matrix LCD based on FPGA[J].Chinese Journal of Liquid Crystals and Displays,2013,28(3):403-407.(in Chinese)

[6] 郑争兵.基于FPGA 的高速采样缓存系统的设计与实现[J].计算机应用,2012,32(11):3259-3261.Zheng Z B.Design and implementation of a high-speed sampling buffer system based on FPGA [J].Journal of Computer Applications,2012,32(11):3259-3261.(in Chinese)

[7] 熊文彬,蒋泉,曲建军,等.基于FPGA 实现的视频显示系统[J].液晶与显示,2011,26(1):92-93.Xiong W B,Jiang Q,Qu J J,et al.Video display system based on FGPA[J].Chinese Journal of Liquid Crystals and Displays,2011,26(1):92-93.(in Chinese)

[8] 袁堂青,张玉璘.基于FPGA 的VGA 汉字显示系统设计与实现[J].济南大学学报:自然科学版,2011,25(1):37-38.Yuan S T,Zhang Y L.Design and implementation of VGA chinese character display based on FPGA[J].Journal of University of Jinan:Science and Technology,2011,25(1):37-38.(in Chinese)

[9] 陈彬,伍乾永,刘永春.基于FPGA 的VGA 控制模块设计[J].微电子学,2008,38(2):306-307.Chen B,Wu Q Y,Liu Y Q.Design of VGA control module based on FPGA[J].Microelectronics,2011,26(1):92-93.(in Chinese)

[10] 王鸣浩,吴小霞.基于FPGA 的通用液晶显示控制器的设计和实现[J].液晶与显示,2012,27(1):87-88.Wang M H,Wu X X.Design and realization of general LCD controller based on FGPA[J].Chinese Journal of Liquid Crystals and Displays,2012,27(1):87-88.(in Chinese)

猜你喜欢

计数器时序波形
清明
采用虚拟计数器的电子式膜式燃气表
关于74LS90计数器的Multisim仿真分析
基于不同建设时序的地铁互联互通方案分析
用于SAR与通信一体化系统的滤波器组多载波波形
基于FPGA 的时序信号光纤传输系统
SR620型与53230A型计数器的性能测试
Pareto最优稀疏频率雷达波形设计
算盘是个“小气鬼”
基于模体演化的时序链路预测方法