新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 基于MAX II系列CPLD 的LCD控制器设计

基于MAX II系列CPLD 的LCD控制器设计

作者:时间:2010-11-14来源:网络收藏

0前言

液晶显示屏()是薄型平面显示设备,由排列在光源或者反射器之前一定数量的彩色或者单色象素构成。这类显示屏已经成为大部分嵌入式系统不可缺少的组成部分。但是在嵌入式系统中八位和十六位微处理器大多没有内置的,又由于屏的分辨率很高,即使有内置的LCD,也较难进行控制;另外内置LCD对内存带宽的占用较高,使控制器所能支配的资源也会变得非常有限。因此在微处理器和LCD屏之间加上一个LCD控制器是非常必要的。常用的LCD控制器主要有两种:专用的控制芯片和基于可编程器件的控制器。本文采用Altera公司的MAX II系列器件来实现LCD控制器。一般使用外加的串行EEPROM来存储非易失信息,而MAX II 是唯一具有(UFM)的CPLD,它支持用户存储高达8Kbits的非易失信息,因此不需要采用外部存储器,并且在实现LCD控制器时还可以利用CPLD的内部UFM振荡器来满足时钟需求,从而避免了采用外部时钟信号。这些独特的功能使MAX II CPLD成为实现LCD控制器最好的目标器件。

1 嵌入式系统的LCD接口电路结构

基于MAX II CPLD的LCD接口电路一般采用图1所示结构。图中LCD接口电路负责接受微处理器的配置,通过总线把DRAM上保存的显示数据读出,然后按照屏类型和显示设置转换为需要的格式,并按照屏时序要求发送出去。在设计显示控制器时,需要注意如下几个方面:支持的屏类型、总线类型的选择、同微处理器之间的交互方式、动态图像显示和中断设计。基于CPLD的LCD控制器可以提供合适的显示单元,它产生需要的时序信号,满足LCD的时序要求,同时卸载了微处理器和控制器繁重的LCD处理任务,从而提高了处理器和控制器执行其他操作的效率。

基于MAX II系列CPLD 的LCD控制器设计

2 LCD 控制器组成与接口信号

2.1 LCD 控制器组成

由图1可知,LCD控制器有三个主要模块:有限状态机(FSM)、时钟分频器和(UFM)模块。

1、初始化LCD和有限状态机模块

FSM模块有8个不同的状态。它用于初始化LCD,初始化完成后显LCD进行读写操作。图2所示为LCD模块的初始化步骤。为简化初始化过程,每次发送一条命令后,延时15ms(而不是检查忙标志的状态)。但是向LCD模块写入数据时,每一数据写操作之后,要检查忙标志的状态。这样就加速了写操作过程。

2、时钟分频器模块

时钟分频器模块主要是降低内部振荡器输出频率,从而满足了LCD模块的时序要求以及控制器的性能要求。该模块把振荡器输出信号osc的频率由.5MHz降低到43kHz左右。降低频率以后的信号(即Clk信号)从时钟分频器模块输出(见图3)。该模块主要代码为:
module divider (osc, clk);
input osc;
output clk;
reg clk;
reg [6:0]count;
initial
begin
count = 7'b0000000;
end
always @ (posedge(osc))
begin
count = count + 7'b0000001;
clk = count[6];
end
endmodule

基于MAX II系列CPLD 的LCD控制器设计

基于MAX II系列CPLD 的LCD控制器设计

3、模块

MAX II CPLD中的用户闪存UFM模块主要用于存储LCD控制器打开之后,需要在LCD屏上显示的信息。采用十六进制(Intel格式)文件(.hex)对UFM进行设置,并利用UFM宏功能进行例化。

UFM模块接口信号主要有addr、nread、do、dv、osc和clk信号:

Addr为9位地址总线,用于选择UFM的某一存储位置。
nread 若该信号设置为0,以读取地址总线所指向存储器的内容。
do 为数据输出信号。8位数据总线,保持地址总线所指向16位存储器的高8位。
dv 为数据有效信号。该信号指示8位数据总线上的数据有效并且可读。
osc 为UFM模块内部振荡器输出。输出信号到时钟分频器,输出频率为5.5MHz。

基于MAX II系列CPLD 的LCD控制器设计

2.2 LCD 控制器接口信号

1、LCD控制器与LCD屏之间的接口信号

LCD控制器与LCD模块之间的接口信号有E、RS、RW 、DB0-DB7:
E为使能选通信号。该信号下降沿将双向总线上的数据锁存到数据或者命令寄存器中,反之亦然。
RS为寄存器选择信号。用于选择LCD模块的数据和命令寄存器。当RS=0时为命令寄存器;
RS=1时为数据寄存器。
RW为区分读写操作的读写信号。RW=0:写操作;RW=1:读操作
DB0-DB7为8位双向总线,承载LCD模块的数据和命令。

2、LCD控制器与微处理器之间的接口信号

LCD控制器与微处理器之间的接口信号有DATA0-DATA7、RST、WE、ACK:
DATA0-DATA7 为处理器和控制器的8位总线,承载LCD模块上显示的ASCII字符值。
RST 为复位信号。该信号用于复位控制器,再次初始化LCD模块。
WE 为写使能信号。该信号指示写周期的开始。应将它设为低电平,使能对LCD模块的写操作。
ACK 为应答信号。该信号指示数据已经成功地发送到LCD模块,准备接收后面的数据。

在此信号变为低电平之前发送的任何数据都被控制器忽略。

3设计与仿真

本设计通过MAX II CPLD EPM240ZM成功地实现了处理器和LCD模块的接口,图5-图7分别给出了LCD控制器的整体模块、综合结果和仿真波形。

基于MAX II系列CPLD 的LCD控制器设计

基于MAX II系列CPLD 的LCD控制器设计

基于MAX II系列CPLD 的LCD控制器设计

4结论

本设计采用MAX II系列CPLD器件EPM240ZM来实现LCD控制器,解决了微处理器与LCD显示模块之间的接口问题,并在OptrexSC1602D 16×2字符LCD模块上实现了嵌入式系统的显示功能。由于是使用一片MAX II CPLD芯片完成LCD全部的时序控制、显示控制等功能,所以是接口电路变得更加简洁、可靠,具有很好的应用价值。

本文作者创新点: 使用唯一具有用户闪存(UFM)的MAX II CPLD,不需要采用外部存储器就实现了LCD 全部的时序控制、显示控制等功能,使LCD 接口电路变得更加简洁、可靠。



评论


相关推荐

技术专区

关闭