位置:51电子网 » 技术资料 » EDA/PLD

基可编程逻辑器的VGA显示控制器的设计

发布时间:2009/3/3 0:00:00 访问次数:873

  随着ccd(电荷耦合器件)和cmos(互补金属氧化物半导体)图像传感器制造工艺的发展,图像传感器的分辨率越来越高,如果要实时显示图像传感器采集到的图像,则要求图像处理芯片有较高的运行速度,但由于需要处理的数据量太大,一般的数字信号处理器很难直接输出分辨率为1024×768,帧频为60 hz的标准xga信号。这就需要对dsp输出的图像数据进行处理,使图像能够在vga显示器上实时显示。市场上虽然也有一些专门图像处理芯片,但其价格昂贵,且应用于特殊场合。本文设计的显示控制器可以达到提升帧频的功能,可使输入分辨率为1024×768,帧频为7.5hz的ycbcr(4:2:2)图像信号提升到帧频为60hz,并通过色空间转换,将ycbcr(4:2:2)图像信号转换成rgb格式的标准xga信号,同时产生符合vesa标准的xga格式的行、场同步信号,输出信号经d/a转换后可直接输出到vga接口,从而可使图像传感器采集到的图像数据能够在vga显示器上实时显示。

  随着微电子技术及其制造工艺的发展,可编程逻辑器件的逻辑门密度越来越高,功能也越来越强,由于fpga器件的可并行处理能力及其可重复在系统编程的灵活性,其应用越来越广泛。随着微处理器、专用逻辑器件、以及dsp算法以ip核的形式嵌入到fpga中,fpga可实现的功能越来越强,fpga在现代电子系统设计中正发挥着越来越重要的作用。本文设计的显示控制器就是用vhdl语言描述,基于fpga而实现的。该系统硬件框图如图1所示。

  图1 系统硬件框图

  1 显示控制器的设计

  1.1 工作原理

  图像传感器采集到的原始图像数据,经过a/d转换及dsp处理后,生成每秒7.5帧的图像数据,该数据是分辨率为1024×768的ycbcr(4:2:2)格式的16位图像数据。dsp输出到fpga的信号有象素时钟,行、场参考,图像数据。fpga在输入的行、场参考都有效时,在输入象素时钟的同步下,接收图像数据,并送入到sdram中, 同时从另一个sdram 中读取数据,并通过色空间转换,将ycbcr(4:2:2)信号转换成rgb信号。当sdram 中写满一帧图像数据时,控制器对两个sdram进行读、写切换。由于写数据速率小于读数据速率,所以在往一个sdram写满一帧图像数据的时间内,控制器能够连续多次从另一个sdram中读出另一帧图像数据,从而实现了提高帧频的目的。fpga输出的rgb格式数据经d/a转换后,将数据转换成模拟信号,配合行、场同步信号可使其在vga显示器上显示。外部晶振输入32.5mhz的时钟,该时钟在fpga内经时钟锁相环倍频后产生65mhz的主时钟,用于对两个sdram进行读写和用来产生符合vesa标准的xga格式的行、场同步信号。

  1.2 控制器的内部模块介绍

  本设计采用模块化设计原则,按照现代eda工程常用的“自顶向下“的设计思想,进行功能分离并按层次设计,用vhdl语言实现每个模块的功能。该显示控制器主要由以下七个功能模块组成:

  用于从dsp接收数据的输入缓冲模块

  用于对两个sdram进行读写切换的主控制器模块

  sdram1的控制器模块

  sdram2的控制器模块

  用于产生标准xga格式的时序发生器模块

  用于从sdram中读取数据并配合行、场同步输出数据的输出缓冲模块

  用于将ycbcr(4:2:2)转换成rgb格式的色空间转换模块。

  该显示控制器的内部结构如图2所示。上电后,显示控制器首先对两片sdram进行初始化,初始化结束后,其它模块才开始工作。下面将详细介绍各个模块的功能及设计思想。

  图2 显示控制器的内部结构

  1.2.1 数据输入缓冲模块

  数据输入缓冲模块为深度为1024、宽度为16bit的异步fifo (先进先出),写时钟为dsp输出的12mhz的象素时钟,读时钟为经时钟锁相环倍频后的65mhz的主时钟,通过场下降沿检测,来确保从一帧开始时接收数据。当输入的原始图像数据的行、场参考信号都有效时,该fifo的写使能有效,在输入象素时钟的同步下,开始接收数据,写地址计数器为0到1023的循环计数器,当其计数到511或1023时,给主控制器发读信号,主控制器随后产生fifo的读使能信号,使读使能信号在连续的512个读时钟周期内一直有效,即可连续读出512个数据。由于读时钟频率大于写时钟频率,所以不会产生数据写满溢出的现象。

  1.2.2 主控制器模块

  该模块为显示控制器的主要控制部分,通过对输入缓冲的读请求信号和输出缓冲的写请求信号处理,来实现对两个sdram的读、写切换。上电后,该模块接收从输入缓冲中读出的数据并将其写入到sdram 1中,同时从sdram2中读出数据,送入到输出缓冲中,当然最初读出的数据为无效数据。当sdram1中写满一帧图像数据,即1024×768个有效数据后,该模块对

  随着ccd(电荷耦合器件)和cmos(互补金属氧化物半导体)图像传感器制造工艺的发展,图像传感器的分辨率越来越高,如果要实时显示图像传感器采集到的图像,则要求图像处理芯片有较高的运行速度,但由于需要处理的数据量太大,一般的数字信号处理器很难直接输出分辨率为1024×768,帧频为60 hz的标准xga信号。这就需要对dsp输出的图像数据进行处理,使图像能够在vga显示器上实时显示。市场上虽然也有一些专门图像处理芯片,但其价格昂贵,且应用于特殊场合。本文设计的显示控制器可以达到提升帧频的功能,可使输入分辨率为1024×768,帧频为7.5hz的ycbcr(4:2:2)图像信号提升到帧频为60hz,并通过色空间转换,将ycbcr(4:2:2)图像信号转换成rgb格式的标准xga信号,同时产生符合vesa标准的xga格式的行、场同步信号,输出信号经d/a转换后可直接输出到vga接口,从而可使图像传感器采集到的图像数据能够在vga显示器上实时显示。

  随着微电子技术及其制造工艺的发展,可编程逻辑器件的逻辑门密度越来越高,功能也越来越强,由于fpga器件的可并行处理能力及其可重复在系统编程的灵活性,其应用越来越广泛。随着微处理器、专用逻辑器件、以及dsp算法以ip核的形式嵌入到fpga中,fpga可实现的功能越来越强,fpga在现代电子系统设计中正发挥着越来越重要的作用。本文设计的显示控制器就是用vhdl语言描述,基于fpga而实现的。该系统硬件框图如图1所示。

  图1 系统硬件框图

  1 显示控制器的设计

  1.1 工作原理

  图像传感器采集到的原始图像数据,经过a/d转换及dsp处理后,生成每秒7.5帧的图像数据,该数据是分辨率为1024×768的ycbcr(4:2:2)格式的16位图像数据。dsp输出到fpga的信号有象素时钟,行、场参考,图像数据。fpga在输入的行、场参考都有效时,在输入象素时钟的同步下,接收图像数据,并送入到sdram中, 同时从另一个sdram 中读取数据,并通过色空间转换,将ycbcr(4:2:2)信号转换成rgb信号。当sdram 中写满一帧图像数据时,控制器对两个sdram进行读、写切换。由于写数据速率小于读数据速率,所以在往一个sdram写满一帧图像数据的时间内,控制器能够连续多次从另一个sdram中读出另一帧图像数据,从而实现了提高帧频的目的。fpga输出的rgb格式数据经d/a转换后,将数据转换成模拟信号,配合行、场同步信号可使其在vga显示器上显示。外部晶振输入32.5mhz的时钟,该时钟在fpga内经时钟锁相环倍频后产生65mhz的主时钟,用于对两个sdram进行读写和用来产生符合vesa标准的xga格式的行、场同步信号。

  1.2 控制器的内部模块介绍

  本设计采用模块化设计原则,按照现代eda工程常用的“自顶向下“的设计思想,进行功能分离并按层次设计,用vhdl语言实现每个模块的功能。该显示控制器主要由以下七个功能模块组成:

  用于从dsp接收数据的输入缓冲模块

  用于对两个sdram进行读写切换的主控制器模块

  sdram1的控制器模块

  sdram2的控制器模块

  用于产生标准xga格式的时序发生器模块

  用于从sdram中读取数据并配合行、场同步输出数据的输出缓冲模块

  用于将ycbcr(4:2:2)转换成rgb格式的色空间转换模块。

  该显示控制器的内部结构如图2所示。上电后,显示控制器首先对两片sdram进行初始化,初始化结束后,其它模块才开始工作。下面将详细介绍各个模块的功能及设计思想。

  图2 显示控制器的内部结构

  1.2.1 数据输入缓冲模块

  数据输入缓冲模块为深度为1024、宽度为16bit的异步fifo (先进先出),写时钟为dsp输出的12mhz的象素时钟,读时钟为经时钟锁相环倍频后的65mhz的主时钟,通过场下降沿检测,来确保从一帧开始时接收数据。当输入的原始图像数据的行、场参考信号都有效时,该fifo的写使能有效,在输入象素时钟的同步下,开始接收数据,写地址计数器为0到1023的循环计数器,当其计数到511或1023时,给主控制器发读信号,主控制器随后产生fifo的读使能信号,使读使能信号在连续的512个读时钟周期内一直有效,即可连续读出512个数据。由于读时钟频率大于写时钟频率,所以不会产生数据写满溢出的现象。

  1.2.2 主控制器模块

  该模块为显示控制器的主要控制部分,通过对输入缓冲的读请求信号和输出缓冲的写请求信号处理,来实现对两个sdram的读、写切换。上电后,该模块接收从输入缓冲中读出的数据并将其写入到sdram 1中,同时从sdram2中读出数据,送入到输出缓冲中,当然最初读出的数据为无效数据。当sdram1中写满一帧图像数据,即1024×768个有效数据后,该模块对

相关IC型号

热门点击

 

推荐技术资料

声道前级设计特点
    与通常的Hi-Fi前级不同,EP9307-CRZ这台分... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!