再上一篇:5.6.2 LCD 控制器操作
上一篇:5.6.3 LCD 模块
主页
下一篇:5.6.5 寄存器
再下一篇:5.7 串行口
文章列表

5.6.4 LCD 外部调色板和帧缓冲器

嵌入式系统(修订本)——Intel XScale 结构与开发 陈章龙 著

LCD 控制器支持各种用户选项,,包括显示类型和大小、帧缓冲器位置、编码像点大小 和输出数据宽度。应用处理机的外部存储器限制了LCD 控制器DMAC 的速率,从而限制了 可以控制的显示大小和类型。用户必须决定允许 LCD 控制器占据的最大应用处理机外部总 线的宽度,以不显著影响应用处理机需执行的其他功能。

一、外部调色板缓冲器
外部调色板缓冲器是可装入内部调色板RAM 的包含多至256×16 的外部存储器区 域。调色板缓冲器不必要一定在外部帧缓冲器的开头,它可位于分开的存储器区域。对

1 或2 位像点调色板数据为 8 字节(4 单元)(对1 位像点值后 2 单元读入值不使用); 对4 位像点,为32 字节(16 单元);对8 位像点为512 字节(256 单元)。在每像点16 位时,不使用调色板RAM,不能装入它。

在复位LCD 控制器后,在处理任何像点数据前,用户应先装入调色板RAM。在初 始装入后,可以在每一帧前重新装入调色板。这用于在各帧之间需改变颜色选择的情况。 调色板RAM 总是用DMA 通道0 来装入。

图 5-13 给出了低端在后的调色板格式。对低端在后方式,16 位单元中的 RGB 值 的顺序是固定的。图5-13 中,Base 指编程入寄存器FSADR 的调色板缓冲器基地址。
图 5-13 调色板缓冲器格式
二、外部帧缓冲器

外部帧缓冲器是用于存放整个显示的编码和像点值的外部存储器区域。像点数据的 大小取决于显示屏的大小()。图 5-14~5-19 给出了各种大小像点编码的帧缓冲器的存 储器组织。



图 5-14 像点 1 位数据存储器组织 图 5-15 像点 2 位数据存储器组织 图 5-16 像点 4 位数据存储器组织
图 5-17 像点 8 位数据存储器组织

图 5-18 像点 16 位数据存储器组织(被动彩色)

图 5-19 像点 16 位数据存储器组织(主动彩色) 对双屏方式,同时输出两个半屏的像点(高半部和低半部)。有第二个DMA 通道、
输入 FIFO 和输出 FIFO 支持双屏操作,低半部的帧源地址指向通道 1 的编码像点值的 顶部。两个DMA 通道的帧源地址的低3 位地址必须为0。这要求帧缓冲器的源地址从

8 字节边界开始。 帧缓冲器的每行必须从字地址边界开始。对各种像点大小,这要求显示的每行的像

点数必须为以下值的倍数:1 位像点为32;2 位像点为16;4 位像点为8;8 位像点为4;

16 为像点为 2。如 LCD 显示屏的每行不为以上值的倍数,用户必须调整每行的起始地 址,在前一行的结束加入一些空像点。

注:有两个特殊情况:倍像点数据方式的每像点 8 位单色显示和 8 或 16 位像点被 动彩色每行像点数应为8 的倍数。
例:如屏幕每行为107 像点,使用4 位/像点方式,每行为53.5 字节,下一个最近 的8 像点边界为112 个像点或56 字节。帧缓冲器的每一个新行必须开始于56 字节的倍 数,即每行应加入5 个空像点(2.5 字节)至LCCR1 的PP。
如需插入空像点,显示屏必须忽略每行结束的与空像点对应的多余像点时钟。 可使用下面公式来计算帧缓冲器的全部大小(Frame Buffer Size)。这用于编码DMA
描述器的帧缓冲器长度。第一项为需要的编码值大小,Lines 为显示的行数,Pixels 为 每行的像点数,n 为每行需插入的空像点数。对双屏方式,帧缓冲器平均分布于两个 DMA 通道,因而Lines 应除以2。

FrameBufferSize=BitsPerPixel*Lines*(Pixels+n)/8

需要的 LCD 控制器的带宽(BusBandWidth)可如下计算,式中 RefreshRate 为显 示屏的刷新率,PaletteSign 为调色板大小。注意系统的总线带宽应大于BusBandWidth。

BusBandWidth=(FrameBufferSize+PaletteSize)*RefreshRate 对于800×600 显示器,每像点16 位,60Hz 的刷新率: FrameBufferSize=16*800*600/8=960,000 字节 BusBandWidth=960000*60=57.6MB/Sec