基于DSP Builder的VGA接口设计

网友投稿 320 2022-10-28

基于DSP Builder的VGA接口设计

VGA接口标准

VGA显像原理

显示器通过光栅扫描的方式,电子束在显示屏幕上有规律地从左到右、从上到下扫描。在扫描过程中,受行同步信号控制,逐点往右扫,完成一行扫描的时间倒数为行频;同时又在行同步脉冲期内回到屏幕的左端,从上往下形成一帧,在垂直方向上受场同步信号控制,完成一帧的时间倒数为场频。图像的显示过程即为在电子束扫描过程中,将地址与图像的像素依次对应,每一个被寻址的像素只获得其自身的控制信息,而与周围的像素不发生干扰,从而可以显示稳定的图像。

VGA时序

VGA的时序包括水平时序和垂直时序,且两者都包含的时序参数有:水平(垂直)同步脉冲、水平(垂直)同步脉冲结束到有效显示数据区开始之间的宽度(后沿)、有效显示区宽度、有效数据显示区结束到水平(垂直)同步脉冲宽度开始之间的宽度(前沿)。水平有效显示区宽度与垂直有效显示区宽度逻辑与的区域为可视区域,其他区域为消隐区。

一行或一场的时序信息如图1所示。

图1 行/场时序图

根据目前的显示器性能参数,以LG 505E为例,其最大分辨率已可达到1024×768@60Hz,水平扫描频率30kHz~54kHz ,垂直扫描频率50Hz~120Hz,带宽75MHz。

基于DSP Builder的VGA接口设计方法

本设计需要完成的功能包括产生VGA时序以及基于VGA接口的信号显示。设计符合VGA接口标准的接口系统,在该系统下可显示一维矢量信号与二维图像信号,并体现系统的可集成性,将该接口集成到SOPC系统中。

根据系统时钟计算公式:

时钟频率=(行像素数+行消隐点数)×(一场行数+消隐行数)×刷新率。

对于标准的VGA接口时序640×480@60Hz而言,时钟频率为800×525×60=25.175MHz。

状态机设计

一般的VGA DAC芯片需要输入相应的驱动信号才能工作,包括时钟信号、同步信号、有效显示区信号等。系统所用DAC芯片为FMS3818,其信号包括时钟与数据信号(RGB)输入、控制信号输入(sync与blankn)以及RGB信号DA输出。行同步与场同步信号与经VGA DAC产生的RGB数据信号一并输出到VGA接口,驱动CRT显示。在本设计中时钟信号65MHz、同步信号为horsync与versync相与产生,有效显示区信号为行与场的有效数据区信号相与产生。

一维矢量信号显示方式

在二维的空间中显示一维矢量信号,常规显示方法可以是将一维信号从左至右显示,如图2(a)所示,就如在普通的示波器上观察到的一样。这样,在VGA显示时,一行扫过多个采样点,需把要显示的采样点位置计算出来,当行信号扫过时,把采样点的值赋给像素点,就完成了信号的显示。而对于连续的一维信号,因为行频比场频高,图2(b)的显示方法更加合理。为此,将一维信号的时间轴映射到垂直方向上,幅值映射到水平方向上,当行扫描信号扫过一行时,映射一维信号的一个采样点,即一行信号对应一个像素,当完成一行信号后接着回扫,开始扫下一行。一般情况下,场频确定后,就可以根据一维信号的频率确定出一场可以显示的周期数,当完成一场信号后,在屏幕上就显示一帧图像。

在具体实现时,需要对一维正弦波信号的参数作两点控制:控制正弦波的频率,保证一行扫描对应一个采样点;控制正弦波的幅度,将其控制在1024×768的有效显示区域中。

对正弦波频率来说,如果频率太高,一行会扫到多个采样点;如果频率太低,一整屏无法显示一个完整周期的信号。在本设计中,用一个较低的采样时钟控制正弦波的采样,正弦波存放在一个查找表中。如果要在一屏中显示n个周期的正弦信号,那么需要的采样频率fs=刷新率×n×查找表中一个周期的点数。

控制正弦波幅度即让正弦波的最大值不能超出屏幕的显示区。VGA有效显示宽度为1024,则屏幕两端的空闲部分宽度(图2(a)和(c))都为100。

(a)                                               (b)

图2 一维正弦波VGA显示示意图

二维图像信号的显示方式

Avalon MM接口控制

图3 系统结构图

仿真与硬件验证

本设计在2C70 DSP硬件开发平台下验证。

从显示器上硬件仿真结果来看,正弦波的幅度在有效的显示区域内呈周期性变化,因此当显示器与VGA口的J21相连时,屏幕上正弦波幅度在设计的范围内显示,一幅屏幕所显示的周期数和DSP Builder中所设定的一致。在此基础上还可以调整正弦波的采样频率,控制正弦波的显示频率与幅度大小,实现示波器的功能,观察FPGA内部的信号。

结语

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:kubernetes入门到实战(十)守护和任务型控制器—(02)
下一篇:kubernetes入门到实战(十)守护和任务型控制器—(01)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~