新闻中心

EEPW首页>电源与新能源>设计应用> 基于AHB接口的高性能LCD控制器IP设计

基于AHB接口的高性能LCD控制器IP设计

作者: 时间:2013-06-15 来源:网络 收藏
第一步的缩小操作,系数可选:1/2,1/3,1/4……. ,1/128。

二、 1024x24 行缓冲区

该行缓冲区来存储被滤波器处理过的一行数据。

三、 1024x24 行缓冲区

控制着缓冲区数据的访问。缓冲区中被读出的数据会反馈到输入端口,跟第二行的像素数据进行线性插值,也就是垂直插值的处理。

四、 2048x24 行缓冲区

这个行缓冲区是一个乒乓结构的存储器,它由两个1024x24位的单端口SRAM组成。因为我们放大的处理是基于双线性算法,所以垂直放大系数被限制在2,乒乓结构可以提供同时进行读/写操作的机制,使得我们能够把行缓冲区存储器的大小压缩到仅仅一行像素数据的规模。

五、 2048x24 行缓冲区

该控制器提供必需的地址线和控制信号给乒乓结构的行缓冲区,以确保RGB像素数据能够同时正确的被写入和读出。除了这个基本的控制功能以外,它也提供了一个可靠的外部LCD控制器访问接口。

六、 垂直Scalar滤波器

该垂直Scalar滤波器是2抽头,它执行一个“加-乘”混合计算(y[n] = a * x[n] + (1-a) * x[n-1])。x[n]是当前行的像素数据,x[n-1]是上一行的像素数据,y[n]是滤波器的输出。a和(1-a)都是滤波器因子。由于R/G/B各数据是独立进行处理的,所以每一种色彩像素数据处理需要两个8x9位的乘法器和一个17位的加法器。

基于AHB接口的高性能LCD控制器IP设计


七、 垂直Scalar系数产生器

该发生器分为放大系数产生器和缩小系数产生器。他们都会产生一个9位的系数,MSB代表整数部分,其余的都是小数部分。这个系数为输入图像垂直分辨率和输出图像垂直分辨率的比值。

八、 Scalar数据

该数据的存储深度为8,垂直缩放模块输入数据到,水平缩放模块读出数据用来处理后续的水平像素数据。

九、 水平Scalar滤波器

该滤波器也是2抽头,它执行一个“加-乘”混合计算(y[n] = a * x[n] + (1-a) * x[n-1]),x[n]是当前的像素数据,x[n-1]是上一个的像素数据,y[n]是滤波器的输出。a和(1-a)都是滤波器因子。由于R/G/B各数据是独立进行处理的,所以每一种色彩像素数据处理需要两个8x9位的乘法器和一个17位的加法器。

十、 水平Scalar系数发生器

该发生器分为放大系数产生器和缩小系数产生器。他们都会产生一个9位的系数,MSB代表整数部分,其余的都是小数部分。这个系数为输入图像水平分辨率和输出图像水平分辨率的比值。

Scalar的up scaling阶段能够任意的定量在1x1 和 2x2之间,也就是它scale up功能可以达到如1.5x1.8等。Scaling down分成两级,第一级可以按比例缩减1/2*1/2, 1/4*1/4, 1/8*1/8, 1/16*1/16, 1/32*1/32, 1/64*1/64或1/128*1/128;而第二级可以从1*1~1/2*1/2做任意比例的缩减动作,也就是第二级可以有小数点,不过最低只能到1/2*1/2。因此,可以由第一级+第二级来搭配产生所想要的缩减比例。

例如:1/2.5 * 1/4 => 第一级做1/2*1/2,然后第二级做4/5*1/2 就可以达到你所想要的scaling ratio。有关第二级scale down给个Scal_ver_num /Scal_hor_num的例子, 如果我们想要scale由 100x200 down to 90x160.

Scal_ver_num = [mod((ver_no_in+1)/ver_no_out)]x256/ver_no_out

Scal_hor_num = [mod((hor_no_in+1)/hor_no_out)]x256/hor_no_out

Scal_ver_num = mod[ (100) / 90 ] x 256 / 90 = 28.44 --> 28

Scal_hor_num = mod[ (200) / 160 ] x 256 / 90 = 113.77 --> 114


中断控制器

该控制器有四个内部中断源,AHB Master出错中断、FIFO欠载中断、垂直同步中断和帧基地址改变中断,这几个中断信号经过组合形成一个全局中断信号,只要这四个中断源中的任意一个出现中断,全局中断信号就会出现断言。这四个中断源可以通过寄存器的修改来开启和关闭

STN面板控制信号

以下是LCD控制器和STN面板的接口信号

* LC_DATA[7:0]:LCD数据总线,发送给STN面板上面需要被显示的像素数据。根据STN所选择的模式,数据直接加载到该总线上

* LC_VS(FLM):LCD的帧同步信号,表明了一个新的帧的开始。在一帧的最后一个行脉冲结束后,FLM 变为有效并一直保持到下一行脉冲,FLM才撤销断言,并保持无效直到下一帧。FLM是高电平有效还是低电平有效是可以通过软件配置的。

* LC_HS(LP):LCD的行同步信号,被用来锁存STN面板上的行数据。LP是高电平有效还是低电平有效是可以通过软件配置的。


* LC_DE(ACD):LCD数据使能信号。该信号可以配置成每一帧切换或者每隔N行切换。


* LC_PCLK:LCD输出的移位时钟,是让STN面板用来同步LCD输出的数据。LC_PCLK是高电平有效还是低电平有效是可以通过软件配置的。


STN面板的接口时序

LCD控制器通过LCD的数据总线持续的传送像素数据到LCD面板。总线的时序由LC_PCLK、LC_HS、LC_VS组成。LC_PCLK信号把像素数据打入到LCD面板内部的移位寄存器。LC_HS指示每一行的开始,LC_VS则指示帧的第一行的开始。本LCD控制器可以支持绝大部分的单色LCD屏。图3解释了1位、2位、4位、8位LCD数据总线的接口时序。LC_HS信号再加上LC_VS信号表明了当前帧第一行的结束。在真实显示行中插入哑元行可以调节帧率。用户可以自己配置哑元行的数量。

基于AHB接口的高性能LCD控制器IP设计

图3 STN在8位, 4位, 2位以及1位数据宽度的接口时序


LCD屏的宽度(PL)和高度(LF)寄存器里面定义了LCD面板的尺寸。LCD控制器将会以“LCD屏开始地址寄存器”(LCDImage0FrameBase)中的值为首地址来扫描显存,因此,被打上影音的区域将会最终显示在LCD面板上。

LCD虚拟页面宽度参数指定了最大显示页面宽度。通过修改LCDImage0FrameBase,可以使得真实显示的窗口大小和位置在虚拟页面边界的范围内变化。然后,对于编程人员来说,在软件设置定义显存扫描起地址的时候,是不能超多虚拟页面的高度和宽度,否则,屏幕上可能会有一些意想不到的景象。

这个IP在LCD屏的接口上还比一般的LCD控制器多了对串口RGB屏的支持,我们在FPGA开发板上就是使用AUO A036QN01串口RGB屏来验证。A036QN01的规格书上没有Dummy data(LCD Serial panel pixel Parameters: offset=0200H),但我们的design是有dummy data跟没有dummy data的可以支持的。

IP内部的接口时钟关系

以上就这个IP的原理与子模块作了充分的说明, 再接着介绍IP内部的接口时钟关系。

FTLCDC200包含了三个时钟域分别为HCLK, LC_SCALER_CLK以及LC_CLK。HCLK时钟使用于AHB接口而且这个时钟与AHB接口是一致的。AHB必须为SoC上的LCD控制器提供足够的带宽用以由帧缓存区捕获足够的数据。

LC_SCALER_CLK提供时钟给scaler模块同时对scaler模块也要足够快来处理数据。LC_CLK用于产生像素时钟。像素时钟(LC_PCLK是由LC_CLK产生并且除以1, 2, 3等等。

此外, 这三个时钟域必须按照下面的两个原则才能运行顺畅:

? 1. HCLK ≥ LC_SCALER_CLK ≥ LC_CLK (频率)

? 2. LC_SCALER ≥ HCLK/16 (频率)


LC_CLK的频率变化依靠LCD屏的选择与使用。使用这个IP在频率上必须根据所选用的LCD屏的规格,下面两个例子介绍选择时钟频率的方法

范例1.

假设输入的分辨率是640x480, 每个在帧缓存区内的像素是16-bpp, AHB总线的带宽是32 bits, LCD屏的分辨率是320x240而显示的帧刷新率是30帧每秒。

在这个范例, scaling-down功能必须打开并且操作在1/2x1/2的步骤。

HCLK必须大于640x480 (输入的分辨率) x 16 (bpp) x 30 (帧刷新率)/32 (总线带宽) = 4.6 MHz

LC_SCALER_CLK必须大于640x480 (最大的 {输入的分辨率, 输出的分辨率}) x 30 (帧刷新率) = 9.2 MHz

LC_CLK必须大于320x240 (输出的分辨率) x 30 (帧刷新率) x 1.2 (门廊的空白) = 2.8MHz

因此, 针对这个范例, 使用者能选择以下的两个条件

HCLK ≥ LC_SCALER_CLK ≥ 9.2 MHz

LC_CLK ≥ 2.8 MHz


范例2.

假设输入的分辨率是640x480, 每个在帧缓存区内的像素是16-bpp, AHB总线的带宽是32 bits, LCD屏的分辨率是1280x960而显示

p2p机相关文章:p2p原理




关键词:控制器FIFOSDRAM

评论


相关推荐

技术专区

关闭