用户界面采用全中文的图形化界面,并具备如下特点:1)操作方式简单,一般人员即可操作;2)弹出式的故障提示界面;3)所有提示和状态显示均使用中文。
1 液晶显示模块
由于本设计中LPC2292微处理器的I/O端口要完成键盘输入、LED指示输出、LCD屏幕控制等很多功能,为了节约I/O资源,很多功能都采用了对微处理器I/O端口分时复用的方法,这样在不影响系统整体性能的基础上充分地利用了有限的资源。为了实现LPC2292的D0~D15端口对键盘、LED指示输出、LCD屏幕控制等多种功能的分时输入/输出操作,对于键盘输入的读取,采用了Altera公司的CPLD芯片EPM7128作为以上器件的数据传输控制通道。
由于目前最常用的单色LCD控制器SED1335的数据传输速度相对于LPC2292显得十分缓慢,经过初期的计算和实际测量,刷新一屏320x240点的图片最快需要130ns左右,故EPM7128对LCD模块还起到数据缓冲译码的作用。
对于常用的LCD,由于它的引线较多,如果直接由CPU去控制LCD的显示,会造成CPU负担过重,用户使用起来很不方面。为了解决这种矛盾,本课题运用北京三春晖电子科技发展有限公司出品的液晶显示模块——SG320240FPD" title="SG320240FPD">SG320240FPD。SG320240FPD显示模块将LCD液晶显示驱动电路和分压电路集成在一块板子上,是一种集显示、控制与驱动为一体的显示器件,很好地解决了CPU的负担问题。中文液晶显示模块SG320240FPD可实现汉字、ASCII码、位图形的同屏显示。液晶显示模块方框图如图1所示。
SG320240FPD液晶的核心器件是SED1335控制器芯片。SED1335是SEIKO EPSON公司出品的液晶显示控制器,其具有较强功能的I/O缓冲器,指令功能丰富,4位数据并行发送,最大驱动能力为640x256点阵。
从图1可以看出,DB为数据总线,可以直接连在CPU数据总线上;CS为片选信号,低电平有效;AO为I/O缓冲器数据选择信号,为1时写指令代码或读数据,为0时,写数据或读状态字;RD、WR分别为读操作信号和写操作信号,低电平有效。LPC2292的控制信号通过EPM7128采用I/O设备访问形式控制液晶控制器SED1335。然后,SED1335通过SEG驱动器向液晶显示器提供显示数据,通过COM驱动器向液晶显示器提供行扫描信号。在COM和SEG的配合下,实现RAM矩阵内容的液晶显示。
驱动器模块是专用芯片与液晶显示器的接口,其作用是提高驱动能力、实现偏压极性的转换。它包括COM驱动器、SEG驱动器及COM的移位寄存器。
COM驱动器由控制电路、电压变换电路、电压选择电路、COMS驱动电路等子模块组成。COM移位寄存器与COM驱动器相配合,向液晶显示屏提供行扫描信号。COM移位寄存器实现0行~31行行扫描,电压变换电路和电压选择电路实现行驱动,控制电路实现对COM Driver的控制,CO-MS独立完成第32行扫描。
SEG驱动器闱向液晶显示屏提供显示数据,该模块由控制电路、电压变换电路和电压选择电路实现对显示数据锁存电路输出RAM数据的驱动。
2 LCD7920的硬件驱动
由于LCD7920的控制器SED1335和LPC2292的外部总线连接时没有采用直接连接的方式,而是采用了通过可编程逻辑器件扩展I/O口进行间接连接的方式,SED1335的基本操作需要专门编写相应的操作函数,包括液晶屏复位函数、写指令代码、写数据或参数、读命令地址、读数据或参数和SED1335_write函数(写一条完整的指令)。
从软件角度看,SED1335需要的控制信号包括:复位信号RST、读信号RD、写信号WE、地址信号A0(命令或数据方式控制)、片选信号AEN和数据信号D0~D7。其中,RST、RD、WE、A0和CS信号由CPLD扩展的输出端口LCD_CMD控制,D0~D7由CPLD扩展的双向端口LCD_DATA控制。另外,为了控制数据信号LD0~LD7的方向,还在CPLD内部设置了DataOut信号。当DataOut=0时数据由CPU通过LCD_DATA向SED1335输入;当Data-Out=1时SED1335通过LCD_DATA向CPU输出的数据。下面将具体分析写指令信号的全过程。
首先,要知道在写指令的过程中,复位信号RES置高电平不起作用,读信号RD置高电平也不起作用,写信号WE置为低电平,片选信号AEN置为低电平。由于写指令是要数据由LCD_DATA向SED1335输出,因此DataOut信号为低电平。于是写指令的时序图如图2所示。
根据写指令的时序图,对于液晶模块低层驱动的CPLD数字电路设计如图3所示。
从图3可知,首先在0x83000004地址空间中,A1高电平保持不变,A0、A2、A3、A4、A5、A6和地址使能信号AEN分别经过非门变成高电平。接着,它们在全部经过与非门转变为低电平,设为X。从时序图中,可以看出RD一直保持高电平,它和X相“或”后,输出为高电平CS—LCD2RD。由于CS—LCD2RD低电平有效,所以读指令不起作用。同理,X和WE相“或”后,输出为低电平CS—LCD2WE,然后CS—LCD2WE与74273的CLK位相连,即CLK位为低电平。八重D触发器74273的STR管脚信号是由RTS复位信号决定,为高电平。根据八重D触发器74273的真值表,STR为高电平,CLK为低电平,输出和输入相等。下一步输出信号通过74245总线收发器,74245的OE管脚由Dataout信号决定。由于是写代码指令,Dataout=0,数据由CPU通过LCD_DATA向SED1335输入。由于OE管脚为低电平,根据74245真值表,输入输出保持不变。LD0~LD7就等于输入信号,把它接到SG320240FPD的D0~D7管脚,SED1335读取CPU数据完毕。SED1335其他操作的分析过程与写指令类似,这里不详细作介绍。
3 GUI软件的实现
嵌入式(GUI,Graphic User Interface)系统是在嵌入式系统中为特定的硬件设备或环境而设计的图形用户界面系统。
显示任务与键盘任务的关系最密切,它们组成了最基本的人机接口,每一次键盘操作都伴随着画面的更新。由键盘操作更新的画面内容称为“画面的静态部分”,因为这部分画面内容在没有键盘操作时是固定不变。 作者:王珊珊 宋亮 来源:电子设计工程