关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于FPGA 的VGA 图形控制器的实现方法

基于FPGA 的VGA 图形控制器的实现方法

作者: 时间:2011-06-07 来源:网络 收藏

2. 2 汉字显示模块

  汉字生成模块可在显示器上显示汉字、字符等。字模信息可以利用字模提取软件来获得,得到了汉字的字模信息后,可以通过屏幕上的横坐标和纵坐标按照字模信息定义像素的颜色,这样就可以显示任何字体、任何点阵的汉字,并根据需要决定汉字在屏幕上的位置。至于英文以及其他任何符号的显示原理与汉字显示的原理一样。

  显示器上显示的汉字精细度取决于显示屏所分网格的数目多少。设计者可以根据不同要求设定不同的网格数目。Altera 公司的器件内均内置— 26 —了嵌入式阵列块EAB ,通过调用其中的LPM ROM模块,可任意设置参数,构成内置的ROM存储器,存放所必要的字模信息,能与汉字显示模块配合,显示出任意汉字。

2. 3显示模块

2. 3. 1 ROM读取控制模块

  当显示器要显示一帧图像,需要比较大的数据量,芯片内置的ROM 存储器难以满足这么大的数据存储要求,必须把图像数据存入外部的存储器中。

  外部存储器可以有多种选择, 如ROM,、双口RAM、甚至SDRAM 等,采用何种存储器将最终决定读取控制模块的数据读取方式。如ROM 可用直接产生地址信号的方式对芯片进行访问,而SDRAM常常利用DMA 控制方式配合CPU 进行读写操作。

  这里采用型号为28C040 的4M EEPROM 外部存储器,可以在单片内存储整屏图像,同时考虑到存储空间的大小,本设计采用每个像素的颜色位深为3 位,共可显示8 种颜色。此模块最终仿真结果如图4所示。

地址信号仿真图

图4 地址信号仿真图

  由图中的仿真结果可以看到,地址信号每两个时钟脉冲加1 ,而每两个时钟脉冲代表扫描过一个像素点,由此可验证以上设计的正确性。

2. 3. 2 BMP 图像数据存入ROM

  要把一幅图像的数据写入ROM,首先必须解决的就是写入文件的格式问题。一般的是通过编程器把Intel Hex ,或者二进制文件。 bin 逐字节写入ROM。而图像都具有固定的格式,如BMP , JPEG,GIF 等,其中的BMP 格式图像是一种很常见的图像格式,没有经过压缩处理,且文件结构相对简单,易于处理,在本设计中采用了BMP 图像作为研究对象。将BMP 文件直接转化为Intel Hex 文件比较困难,因此可先将BMP 格式文件转化为mif 格式文件,再由Quartus II 直接将mif 文件转化为Intel Hex 文件,最后再将图像数据烧写入ROM中。由于没有现成的转换程序,选择Visual C ++ 自行编写转换程序。

  Memory Initialization File ( . mif) 格式是Quartus II中ROM的初始化数据文件格式,它记录方式比较简单,其中地址和数据都可为十进制或十六进制,冒号左边是地址值,右边是对应的数据,并以分号结尾。

  相对mif 文件,BMP 格式的位图文件稍显复杂,它包括位图文件头结构、位图信息头结构、位图颜色表和位图像素数据四部分。位图文件的保存顺序如下:位图文件头→位图信息头→位图颜色表→位图像素数据。处理位图时要根据文件的这些结构得到位图文件大小、位图的宽、高、调色板、得到位图像素值等等。以目前应用较为广泛的24 位真彩色图像为例,其特点是:24 位真彩色图像存储文件中不带有图像颜色表;图像中每一像素由RGB 三个分量组成,每个分量各8 位,每个像素需24 位;颜色分量值f red , f green , f blue 的取值范围都为0 ~ 255。

  对于用到颜色表的位图,图像数据就是该像素颜色在调色板中的索引值。对于真彩色图像,图像数据就是实际的R , G ,B 值,一个像素是由3 个字节24位组成, 前8 位表示B , 中间8 位表示G , 后8 位表示R 。

  由于硬件存储资源的限制,取图像像素的位深为3 ,总共可显示8 种颜色。首先把BMP 图像数据的RGB 分量分别读出,并且各取1 位,即颜色分量值只能取值‘0’或‘1’。针对24 位真彩色图像的特点,可对颜色分量值进行粗略取样,当颜色分量值f red >127 ,取f red = 1 ;反之取f red = 0。同理,颜色分量值f green , f blue 可取得相应的0 ,1二值。

  最后在利用Visual C ++ 编写转换程序时应注意,BMP 文件是从左至右,从下至上排列的,即读文件时,最先读到的是图像最下面一行的左边第一个像素,最后读到的是最上面一行的最右边一个像素,这与显示器的扫描顺序恰好相反。

3 结论

  经过硬件平台的验证,显示器已达到设计要求,可彩条、汉字、小图像和大图像的显示,并可实现FPGA 器件对显示器的单片控制。

  由于受到存储器件容量的限制,本设计中存储的图像数据所采用的像素位深为3 位,共可显示8种颜色。在实际应用中,可以使用更大的存储器,最终实现256 色图像,乃至真彩色图像的显示。在此设计基础上,通过使用SDRAM 等外部存储器,利用DMA 控制方式,并且配合Altera 的nios 嵌入式软核CPU ,可以在SOPC 开发平台上最终实现兼容SVGA ,TVGA 标准等的更复杂显示


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭