新闻中心

EEPW首页>EDA/PCB>设计应用> 基于Avalon总线的TFT LCD控制器设计

基于Avalon总线的TFT LCD控制器设计

作者: 时间:2012-04-05 来源:网络 收藏

FIFO模块实现

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

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

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

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

时序发生器设计模块实现

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

47.gif

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。

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

结语

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

LCD显示屏相关文章:lcd显示屏原理


lcd相关文章:lcd原理

上一页 1 2 下一页

关键词:AvalonTFTLCD总线

评论


相关推荐

技术专区

关闭