当前位置:首页 > EDA > 电子设计自动化
[导读]系统总体设计方案Nios II处理器在SDRAM中开辟帧缓冲(Frame buffer),可以是单缓冲也可以是双缓冲。以单缓冲为例。处理器将一帧图像数据(640×480×2Bytes,RGB565,16bit)存入帧缓冲,然后将帧缓冲的首地址

系统总体设计方案

Nios II处理器在SDRAM中开辟帧缓冲(Frame buffer),可以是单缓冲也可以是双缓冲。以单缓冲为例。处理器将一帧图像数据(640×480×2Bytes,RGB565,16bit)存入帧缓冲,然后将帧缓冲的首地址写入到LCD控制器,并启动LCD控制器。该控制器自动从传来的首地址处开始读取数据,并按照TFT的格式输出。图中各模块由AvalON Bus连接在一起。Avalon Bus是一种简单的总线结构,Nios II处理器和各种外设都是通过Avalon Bus连接在一起。由图1可以看出,作为Slaver的SDRAM Controller分别要受到Processor 和LCD Controller的控制,为了解决总线冲突,Avalon Bus自动在有冲突的接口上加入了Arbitrator这样一个仲裁模块,用于合理分配总线时间,用户通过改变每个模块的权值来改变对其分配总线时间的多少。在这个系统中,SDRAM Controller是影响整个系统性能的关键。以SDRAM时钟频率为100MHz计算,16bit的SDRAM其数据总带宽为200MByte/s,640×480×2Bytes×60Hz的TFT LCD要占用36MByte/s左右的带宽,这对于还要处理其他任务的处理器来说是很大的影响。

本系统的总体设计框图如图1所示。


          图1 系统框图

LCD控制器的FPGA实现

Avalon Bus Slaver从总线接口模块实现

Avalon从总线接口负责处理器与LCD控制器的接口控制,LCD控制器在整个系统中作为从设备,NIOS II通过该接口对控制寄存器进行设置,控制LCD。

LCD从模块有四个32bit的可读写寄存器,用于控制LCD控制器的工作和指示其工作状态。

Avalon Bus DMA Master主设备接口模块实现

Avalon Bus DMA MaSTer负责按照控制模块的指令,读取SDRAM中的数据,并写入到FIFO中,其核心部分是DMA地址累加器。当条件满足时,地址累加器开始在100MHz的时钟下以4为单位开始累加用于生成读取SDRAM的地址。读完一帧的数据后,自动复位到首地址,继续累加。

主设备接口采用带延迟的主设备读传输模式,在这种传输模式下,即使没有接收到上一次的有效数据,主设备也可以发起下一次读命令。当waitrequest信号无效(低电平)时,主设备可以连续的发起读命令,当waitrequest信号有效(高电平)时,主设备开始等待,直到其变为低电平。当readdatavalid信号有效(高电平)时,表示读数据有效,此时主设备可以锁存数据口上的有效数据。这里没有使用flush信号,flush信号会清除前面一切未完成的读命令。Avalon总线保证数据的输出顺序与主设备要求的顺序一致(即与主设备地址输出顺序一致)。

readdatavalid信号可以作为FIFO的wrreq信号,这样可以直接将读出来的数据写入到FIFO中。当前地址等于尾地址时,则复位累加器,使之重新开始从首地址累加。地址累加器代码模块如图3。

 

FIFO模块实现

FIFO的作用是对DMA输出的图像数据进行缓存,以匹配时序控制模块的输出速度。FIFO大小暂定为4096×16bit,在实际设计时,再根据系统需要以及资源状况做出适当调整。原则是,在系统资源允许的情况下,将FIFO大小尽量设置大点。

FIFO由DMA控制器写入数据,写入时钟为100MHz;由LCD控制器的时序发生模块读出数据,读出时钟为PCLK,即LCD的像素点扫描频率,通常取25MHz。在独立的写时钟和读时钟作用下,FIFO可以提供rdusedw[11:0]信号,用于指示FIFO中已经使用掉的容量。系统可以设置一个上限和一个下限,当FIFO中的数据量高于上限或低于下限时,控制器暂停DMA传输或启动DMA传输,用以保证系统性能。

在本例应用中,将wrclk接系统时钟(100MHz),wrreq接master_readdatavalid,data接writedata,即可完成DMA的数据写入操作;将rdclk接12.5MHz(因为TFT的时钟为25MHz,数据宽度为16bit,而FIFO的宽度为32bit,所以用一半的时钟12.5MHz去读取FIFO,然后依次输出32bit的高16bit和低16bit),rdreq由时序发生模块控制,即可在每个rdclk的上升沿读出一个数据到q。aclr接~reset_n,可以完成复位操作。当然,所有信号都受controller_GoBit的控制。

FIFO设计采用了Quartus II自带的fifo宏模块,自动生成所需要的模块,供调用。

LCD 时序发生器设计模块实现

时序发生器用于产生TFT所需的时序,将图像数据按特定的时序输出。每种控制器的设计关键就是时序设计,本文专门针对三菱公司的AA084VC05液晶屏,图4,图5是其时序图。

 

LCD时序发生器以DCLK为时钟基准,该DCLK即上面所说的PCLK,也就是像点时钟,每个像素点的数据以该时钟驱动进入LCD。图4为AA084VC05的水平扫描时序,其中,DATA为18位数据信号(本设计中只用其中的16位),DENA为数据有效信号,高电平使能,其有效宽度THA为640个DCLK;HD为水平同步信号,低电平有效,其有效宽度TWHL为96个DCLK。一行640个象素扫描完毕之后,控制器将驱动HD有效,在HD有效之前插入THFP(Horizontal Front Porch)为16个DCLK,有效之后插入THBP(Horizontal Back Porch)为144个DCLK,然后再开始下一行的扫描。如此一来,行扫描信号的频率FH典型值为31.5KHz。而读FIFO信号要提前DENA信号一个时钟节拍到来,提前一个时钟节拍结束,因为该FIFO有一个时钟节拍的延迟。

AA084VC05的垂直扫描时序与水平扫描时序类似,该时序以HD为时钟基准,其中,VD为垂直同步信号(帧同步)。每扫描完一帧(480行),控制器将驱动VD有效(低电平),有效宽度TWVL为2个HD。同样,在VD有效之前插入TVFP(Vertical Front Porch)为10个HD,有效之后插入TVBP(Vertical Back Porch)为35个HD,如此一来,垂直扫描信号频率FV的典型值为60Hz。

时序发生器采用状态机实现。由于该控制器的参数比较大,为了便于观察仿真结果,本文对这些参数做了一些处理(成倍减少)。

结语

本文设计实现了一个简单的基于Avalon总线的TFT LCD控制器,能实现640×480,颜色深度为16bit的彩色图形显示,可应用于各种TFT LCD,亦可改写为VGA控制器,有较大的灵活性。根据设计好的控制器编写了相应的Linux下的FrAME buffer驱动程序。很好的实现了界面环境的开发,可以用于很多手持设备的电子产品。该设计最大的特点是有很强的可移植性,不论是控制器的设计还是Frame buffer驱动程序的设计都很灵活。
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

液晶显示屏是我们最常见的一种东西。但是,随着技术的进步,液晶显示屏也在不断升级,出现了OLED和TFT两种不同的技术。那么,OLED和TFT有什么不一样呢?本文将为大家详细介绍。

关键字: OLED TFT 液晶显示屏

tft其实更多的是属于一种屏幕技术,它是lcd屏幕的一种。属于薄膜晶体管。所以说tft屏幕其实就是说lcd屏幕,这个更准确一些。 tft的lcd是在基板玻璃中间设置液晶体,在下面设置tft,上面设置滤光片,通电后虽然可...

关键字: TFT OLED

高性能有机材料(有机薄膜晶体管(OTFT)、有机光电二极管(OPD)、交联仪等)的广泛专利组合 提供环保型解决方案 - 有机薄膜晶体管制造工艺的低碳排放效应 指...

关键字: 应用技术 薄膜晶体管 CE TFT

针对基于OpticalCore技术的大视场角ARHUD及其应用进行介绍 深圳2022年11月22日 /美通社/ -- 2022年11月16日, 2022(第三届)汽车抬头显示(HUD)前瞻技术展示交流会于苏州正式召开。...

关键字: OPTICAL CORE LBS TFT

SWM32S单片机内部集成了8MB的SDRAM以及LCD控制器,非常适合用于屏幕驱动。其中LCD控制器支持RGB565格式的接口,最大支持1024*768分辨率。今天来介绍一下这两个外设的用法。

关键字: SWM32S单片机 LCD控制器 RGB565

许多有经验的设计人员都知道,通过简单地将补偿引脚连接在一起,使用峰值电流模式控制器通常更容易实现均流。我们可以通过这种方式获得合理的精度,因为电流模式控制器上的补偿电压与峰值电感电流成正比,后者与输出电流有关。将补偿引脚...

关键字: 电压 同步降压稳压器 控制器设计 DC

MicroBlaze是一款基于构造的的嵌入式微处理器,它的显著优势在于能满足复杂应用的需求,在除了运行简单的通用应用以外,还能运行操作系统。 设计人员能够在当前所有的赛灵思架构中实施Mi

关键字: 微控制器 MICROBLAZE 控制器设计 FPGA设计

树莓派4可以不用SD卡启动? 1.说明 2.什么是PXE启动 3.树莓派4设置PXE启动 4.关键配置参数说明 5.配置TFTP服务器 6.网络文件系统 6.1 主机上设置NFS文件系统 6.2 树莓派上设置启动NFS的...

关键字: SD卡 树莓派 TFT EEPROM

(文章来源:显示网) 新型的“纳米芽”(NanoBud)碳材料结合了富勒烯(fullerene)与纳米管(CNT)的最佳特质,形成一种布满芽状键合的1nm直径碳纳米管。这种性能更优越的碳

关键字: 薄膜 感测器 NI 控制器设计

  2019年厂商们的主要成就在于优化了性能,降低成本,以及减小模组厚度。   关键结论   ○ FoD模组价格从2019年第一季度的8美元下降到2019年第三季度的5美元,同时

关键字: 指纹 光学 TFT CIS
关闭
关闭