基于SOPC技术的内存映射型LCD控制器设计研究

发布者:bluepion最新更新时间:2010-03-10 来源: 国外电子测量技术关键字:SOPC  LCD控制器  Avalon总线  DMA 手机看文章 扫描二维码
随时随地手机看文章

  0 引 言

  LCD以其低工作电压、低功耗、显示效果好、易集成和轻巧便携等特点率先进入平板显示市场并不断拓宽其应用领域。随着数字化作战模式的发展,LCD必将越来越多地被应用于各种机载、舰载、装甲车辆等军用装备。而常用的双口RAM、乒乓操作等类型显示控制器在成本、速度或灵活性方面存在一些不足。本文提出并没计了一种基于SOPC技术的内存映射型LCD控制器,设计了系统实验平台,最后对该控制器的稳定性、实用性进行了验证。实验结果表明,该控制器具有成本低、实用性强、灵活性强等优点,并可推广到LED、CRT等类型屏幕的驱动控制。

  1 内存映射型LCD控制器的结构及优点

  传统的LCD控制器可分为双口RAM型、“乒乓”切换控制型、消隐写操作型等类型,这些控制器虽思路、设计简单,能较好地解决读写冲突,但都只能应用于某些特定环境下的设计开发,系统的可扩展性、灵活性较差。而内存映射型控制器系统性能稳定、扩展性强、成本低、读写速度快,是目前控制器设计的较好解决方案。

  1.1 内存映射型LCD控制器的结构

  内存映射型控制器不用独立的存储器做显存,而是在内存中动态地开辟一块空间作为显存,故称之为内存映射型控制器,其结构如图1所示。

  内存映射型控制器工作时,显存里的数据不是通过简单接口,而是通过总线传到时序发生器。由于对显存的读写通过总线进行自动协调,从而有效地避免了读写冲突的发生。通常,总线通过一个数据缓存区与时序发生器连接。

  1.2 内存映射型LCD控制器的优点

  内存映射型控制器用一小块双口存储器做缓存,保证了显示数据传输的流畅性;显存定义在SDRAM/SRAM内存中,取代了独立显存从而降低了系统成本;使用中只需修改时序发生器,就可以驱动各种参数的显示器;同时,通过总线协调显存的读写操作,有效的避免了显存读写冲突问题。表1从4个方面对内存映射型控制器与其他3种常见控制器类型进行了比较。

  2 基于SOPC技术的内存映射型LCD控制器设计

  2.1 内存映射型LCD控制器的总体结构

  该控制器由寄存器模块、DMA模块、数据缓存模块、时序发生器4部分组成,采用VHDL语言编写。如图2所示。控制器内部定义了2个总线外设,其中,寄存器模块为总线从端口设备,DMA模块为总线主端口设备。

  2.2 寄存器模块(register_bank)

  该模块为Avalon总线从端口设备,可以通过NiosⅡ Processor设置和读取显存起始地址、显示大小、显示颜色位数及相关控制参数。

  寄存器模块中共定义了4个寄存器;显存起始地址寄存器、显示参数寄存器、控制寄存器和状态寄存器。各寄存器的读写控制、定义及功能描述如表2所示。

  其中,显示参数寄存器(size)中“色数”标志位,值为1表示8位颜色显示,值为0表示16位颜色显示。状态寄存器(status)大小为两位,可与控制寄存器中的中断位(Interrupt)配合使用,为保留位。控制器寄存器的定义如表3所示。

  2.3 数据缓存模块(line_buffer)

  该模块设计采用了双口RAM,由MegaWizard Plug-In Manager生成,其存储空间约为一行数据所占的空间,用于暂存显示数据。由于DMA不是直接将显存中的数据传给时序发生器,而在中间使用了双口RAM做数据缓存,这样DMA和时序发生器的读、写时序不必严格对应,简化了结构设计。同时,用于16位彩色显示时,可通过数据缓存模块将总线32位的数据输入变为16位的数据输出给时序发生器;而在8位彩色显示时,可通过数据缓存模块将32位输入变为8位输出,实现了数据位数的转化,方便的时序发生器内部的数据操作。

  2.4 DMA模块(image_dma)

  该模块为Avalon总线主端口设备,它负责向Avalon总线提供有效的地址、数据和写请求信号,并在时钟上升沿发起总线传输,读取显存中的数据;同时,DMA模块产生写数据缓存的地址和数据,将显示数据正确地从显存传送到数据缓存。DMA模块为三状态的状态机,包括空闲状态、传输状态、等待状态,各状态机逻辑关系如图3所示。

  2.5 时序发生器(LCD_driver)

  时序发生器模块主要有4个主要功能:

  (1)产生驱动LCD的行扫描信号(hsync)、列扫描信号(vsync)、数据使能信号(blank_n);

  (2)产生读双口R_AM缓存的地址信号;

  (3)产生行、场消隐信号,控制DMA模块启动、停止数据传输;

  (4)将显示数据RGB按正确的时序、指定模式输出。

  常用的16位彩色显示可分为555、565(即RGB信号分量所占位数)两种显示模式,控制器通过判断控制寄存器中的模式设置位将RGB信号以不同的格式输出。

  2.6 实验平台的设计及内存映射型LCD控制器的验证

  为验证该控制器,本文设计了以CycloneⅡ系列EP2C8Q208C8为主芯片的SOPC评估电路板。实验平台的TFT-LCD选用SAMSUNG公司的LTA104S1-L01,该LCD大小为10.4英寸、分辨率为800×600,可实现16位真彩色显示。由于LTA104S1-L01接口为LVDS,本文设计了以DS90CF363为主芯片外接的接口板,以实现RGB到LVDS信号的转换实验结果说明,本控制器能有效地解决显存读写问题,设计完全符合预期要求。实验平台及显示效果如图4所示。

  3 结束语

  本文设计的内存映射型LCD控制器,能有效地解决显存读写冲突。同时与文献[8]中的控制器相比,由于使用自定义的DMA代替了原有的DMA IP Core,数据的传输不必由CPU产生中断发起,而完全由控制器发起,从而减轻CPU的运行负担。同时,该设计还具有占用逻辑单元少、适用范围广、灵活性强、实用性强、扩展性强等特点,可用于多种分辨率LCD的显示控制,具有一定的实用价值。

关键字:SOPC  LCD控制器  Avalon总线  DMA 引用地址:基于SOPC技术的内存映射型LCD控制器设计研究

上一篇:基于Nios II的AT24C02接口电路设计
下一篇:嵌入式系统智能键盘的软件设计

推荐阅读最新更新时间:2024-05-02 21:01

STM32F4 ADC采集数据的DMA数据传输
书接上文,开始折腾ADC的DMA传输。因为大家都在说DMA,就连ST的例子里边也是使用DMA的。 ADC采集到的数据都存储在一个固定的寄存器中。当常规采样方式采样多个通道时候,使用DMA可以较好地避免将采集到的数据丢失。当ADC的DMA功能被使能的时候,每个通道转换完毕时都会发出一个DMA请求。DMA方式也不能完全避免数据丢失问题,要实现数据不丢失需要在DMA的同时开启OVERRUN模式,当数据丢失时就停止数据转换。我们只需要检测是否有OVR时间发生,就能解决采样数据丢失造成的问题。比如,通道错位什么的。 在STM32F4的Reference manual中可以查到ADC1 的DMA映射在DMA1、CH0、Strea
[单片机]
STM32中DMA实现方式
  STM32系列微控制器均含有DMA和通用时钟TIMx模块。其低端型号中仅包含DMA1,支持7个通道;高端型号还包括DMA2,支持5个通道。它的每个通道可任意指定工作模式,如内存到内存、内存到外设或外设到内存等。当涉及到外设时,一般是由外设来触发DMA的一次传输,如串口收到数据的标志位可触发DMA。   DMA的每次传输都分为4个阶段:申请仲裁、地址计算、总线存取和应答。除总线存取阶段,其他3个阶段都只需要一个系统周期,并且不占用总线,可在DMA控制器内部并发地执行。总线存取阶段,每个字(4字节)的传输需要3个系统周期。DMA和CPU工作在交替方式下,不会相互阻塞。DMA各个通道可独立设置优先级,当访问同一资源时高优先级通道先获得
[单片机]
单片DSP处理器功能系统的SOPC技术设计
结合Altera公司推出的Nios II嵌入式软核处理器,提出一种具有常规DSP处理器功能的NiosII系统SOPC解决方案;利用NiosII可自定叉指令的特点。 通过Matlab和DSP Builder或直接用VHDL设计并生成复数乘法器、整数乘法器和浮点乘法器等硬件模块,将它们定制为相应的指令,从而将软件的灵活性和硬件的高速性结合起来,较好地解决了传统DSP处理器所面临的速度问题、硬件结构不可重构性问题、开发升级周期长和不可移植性等问题。 随着微电子技术和计算机工具软件的发展,可编程片上系统SOPC的设计理念和设计方法成为了一种趋势。为了解决传统DSP处理器所面临的速度问题、硬件结构不可重构性问题、开发升级周期长和不可移植性
[应用]
STM32中DMA模块的使用
DMA(Direct Memory Access)常译为“存储器直接存取”。早在Intel的8086平台上就有了DMA应用了。 一个完整的微控制器通常由CPU、存储器和外设等组件构成。这些组件一般在结构和功能上都是独立的,而各个组件的协调和交互就由CPU完成。如此一来,CPU作为整个芯片的核心,其处理的工作量是很大的。如果CPU先从A外设拿到一个数据送给B外设使用,同时C外设又需要D外设提供一个数据。。。这样的数据搬运工作将使CPU的负荷显得相当繁重。 严格的说,搬运数据只是CPU的比较不重要的一种工作。CPU最重要的工作室进行数据运算,从加减乘除到一些高级的运算,包括浮点、积分、微分、FFT等。CPU还需要负责复杂的中断
[单片机]
STM32中<font color='red'>DMA</font>模块的使用
STM32:DMA实例之串口(USART)通信
硬件平台:stm32f10xZET6 开发环境:keil MDK uVision v4.10 开发语言:C、ST_lib_3.5固件库 /* 代码演示 main.c */ #include stm32f10x.h #include bsp_usart1.h #include bsp_led.h extern uint8_t SendBuff ; static void Delay(__IO u32 nCount); /** * @brief 主函数 */ int main(void) { /* USART1 config 115200 8-N-1 */ USART1_Config(); USART1_
[单片机]
STM32中DMA编程分析
在上篇博客简单介绍DMA后,我将在这里详细介绍下一个简单的DMA传输例子,即将FLASH中的数据传输到SRAM中,是一种MtoM(存储器传输到存储器)的方式。 首先按老步骤DMA的点C和点H文件,然后在点C种定义一个32位常量数组SRC自动cu存放在FLASH中,然后定义一个对应的DST数组在SRAM中(一般变量都在SRAM中)。然后是初始化步骤,详细代码如下: 具体实现功能就是设置为32位传输8个字节,用MtoM的模式并且是DMA1通道6,注意不要将L6看成16。然后我们需要去判断是否传输成功,我们再写一个比较函数并且把结果用LED去显示出来。具体图如下: 详细结果我们可以看到最终STM32开发板上的绿灯点亮了
[单片机]
STM32中<font color='red'>DMA</font>编程分析
stm32f407之DMA(操作寄存器)
八、DMA 直接内存访问(DMA)是用来以提供外设和内存、内存和内存之间的高速数据传输的。数据可以在没有任何CPU干预下通过的DMA进行传输。这使得CPU资源更倾重与其他操作。 DMA控制器基于一个复杂的总线矩阵架构,结合了功能强大的双AHB主总线架构与独立的FIFO,以优化系统带宽。 两个DMA控制器共有16个数据流(stream),每个数据流可以编程与规定的通道中的一个搭配。 DMA的工作模式 1. 单次传输 2. 多次传输(burst):把数据分成多次传输 DMA的工作模式 1. 循环模式:循环模式是可用来处理循环缓冲区和连续的数据流(如ADC扫描模式)。启此功能可以设置DMA_SxC
[单片机]
stm32f407之<font color='red'>DMA</font>(操作寄存器)
基于SoPC的实时视频处理与显示设计
当前基于软核处理器的图像系统已成为研究的热点,使用FPGA来构建基于片上可编程系统(SoPC)的图像处理系统,已成为一种趋势 。因此,本文采用SoPC技术,在Altera公司单片Cyclone系列FPGA上使用IP资源复用技术集成了NiosII软核处理器及各种输入输出接口,完成了对视频图像的采集、预处理、存储和显示几大功能。本系统对图像进行了灰度均衡化处理,使系统应用更广。由于直方图均衡能直接从已知的图像中提取信息,不需要额外的参数说明,所以在军用、航空、商业等领域,特别是红外图像增强领域 有实际的意义。SoPC是Altera公司提出来的一种灵活、高效的柔性设计,不需要修改硬件 ,就可方便地扩展和修改嵌入式视频采集功能。同时,由于
[模拟电子]
基于<font color='red'>SoPC</font>的实时视频处理与显示设计
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved