关键词:液晶显示驱动;接口;光标电路
1.引言
液晶显示器由于具有体积小、重量轻、低电压、低功耗等特点,具有十分广阔的市场前景,其中STN LCD在中小尺寸LCD领域占很大的市场,有其独特的优势。大屏幕STN LCD可用于笔记本电脑、彩色文字处理机等,中小屏幕STN LCD常用于便携电话、PHS(个人手持系统)、寻呼机等。STN LCD的专用驱动控制芯片要求较多的控制性能,如液晶显示器件的正常显示、光标、闪烁以及移位显示等功能。根据所驱动的LCD的大小及所需功能的多少,其驱动控制芯片的复杂程度不同,主要体现在其内部RAM、ROM的大小、指令译码电路的复杂程度、内部的时序及电源电路等,对外可体现在驱动行和列端口的多少、与MPU的接口功能等。
本文讨论了一种功能较完备较复杂的STN LCD驱动芯片的设计,根据“自顶向下”的设计思想,将芯片进行层次化功能划分。本文研究的重点主要在于点阵LCD控制芯片的总体设计,并就点阵LCD专用控制芯片的关键模块电路:MPU接口电路、命令译码电路、RAM电路、光标控制电路、驱动电路的设计作详细的描述,从而完成芯片的前端设计,并进行芯片整体的功能与功耗仿真。
2.LCD驱动控制芯片总体设计
本文设计的LCD驱动控制芯片是一种常用的字符型点阵LCD控制集成电路。芯片的规模属于LSI,用低功耗CMOS工艺制备。我们所设计的 LCD驱动控制芯片具有以下主要功能: ① 提供总线形式的MPU接口; ② 以完整的逻辑控制电路和时序发生器控制各种显示功能。字符显示格式为5×8点阵(208种)、5×11点阵(32种),有三种显示方式:一行5×8点阵、两行5×8点阵、一行5×11点阵,具备光标显示功能和显示字符以及光标移位功能; ③ 管理和控制RAM和ROM,便于MPU访问,便于存储和提供必要的显示字符; ④ 为液晶显示屏提供扫描时序信号COM和传输显示数据SEG,输出驱动信号16COM×40SEG,可通过附加从片驱动显示80个字符; ⑤ 提供功能齐全的控制指令集,便于MPU编程。
根据以上功能,图1给出了LCD驱动控制芯片的大体结构框图。
图1中,OSC为整个芯片提供时钟信号;MPU I/O用于芯片与MPU的数据和指令传递;Data Reg用于暂存数据;RAM和ROM则用于存储待显示数据;Ins Dec用作指令译码,并通过CTRl LogIC控制整个芯片的工作;COM和SEG端口则用来为液晶显示屏提供扫描时序信号和传输显示数据。
3.LCD驱动控制芯片的模块设计
经过功能细化后,芯片大体结构如图2所示。下面,重点介绍MPU I/O、指令译码、光标电路、显示移位等关键模块和功能的设计情况。
(1)MPU I/O模块设计
MPU与LCD驱动控制芯片的信息交流通过MPU I/O模块来完成。图1中的MPU I/O模块经过图2细化为I/O、IR、INDR和OUTDR四个小模块,而I/O模块中又包含了与MPU的握手信号——BF信号的产生模块。MPU与LCD驱动控制芯片的接口连接如图3所示。
BF是LCD驱动控制芯片与MPU的握手信号。当BF=1时,表示LCD驱动控制芯片内部正在执行操作,系统处于忙状态,不接收MPU送来的指令;当BF=0时,表示内部操作执行完毕,芯片处于空闲状态,此时,MPU送指令的通道打开,MPU可以对芯片进行操作。
MPU通过E端口发送频率远高于LCD驱动控制芯片时钟频率的方波信号来检测LCD驱动控制芯片产生的BF信号。检测时,MPU向LCD驱动芯片发送的信号RS=“0”,R/W=“1”。当LCD驱动控制芯片处理内部操作时,BF信号保持为高电平,E信号的下降沿检测到BF为“1”,则不发送下一条指令,而继续检测。直到LCD驱动控制芯片处理完毕内部操作,信号BFRESET产生一个脉冲宽度为半个芯片时钟周期的高脉冲,使BF复位为“0”。由于内部信号BFRESET需要维持半个芯片时钟周期,因此BF信号在这一段时间内只能保持在“0”。为了避免在这个BF低脉冲时间内,MPU多次检测到BF为0而送入两条或两条以上指令,在MPU第一次检测到BF=“0”后的半个芯片时钟周期内,MPU不再发送检测BF的E信号,直到延迟结束后才重新发送E信号,在E信号的高电平期间进行发送指令操作,并且在E信号的下降沿触发BF,使之重新回到高电平,提示系统开始内部工作。完成一次接口的操作后,MPU继续检测BF。对该模块的Verilog仿真模拟如图4所示。
MPU I/O模块中有数据寄存器DR和指令寄存器IR两类寄存器,均为8位寄存器。DR分为INDR和OUTDR两个寄存器:INDR用于MPU向RAM写入数据的暂存,而OUTDR则用于RAM数据输出至MPU的暂存。IR用于暂存MPU发送进来的指令信息,IR的输出和R/W、RS信号共10位信号送入指令译码器,进行译码。从MPU I/O端口看,IR是单向的,只能写入,不能读出。
MPU通过信号RS与R/W的组合来选中不同的寄存器,如表一所示。
(2)指令译码模块设计
该模块是专用芯片的控制中心,译码器的作用是将从MPU输入的命令字转化为各种具有一定宽度的高电平脉冲信号,从而控制相应的电路,使其状态发生改变,完成控制相对应模块工作的功能。
MPU送来的指令码(含R/W、RS信号)进入指令译码器译码。指令译码器由组合逻辑电路和跟随其后的起稳定信号作用的RS触发器组成,由触发器的输出控制芯片各模块的动作。
MPU对该芯片的操作共有11条指令,可以分为4大类:显示功能设置指令、地址设置指令、数据传输指令和其他类指令(如读BF)。
显示功能设置指令包括 ① 三种显示方式:一行5×8点阵、两行5×8点阵、一行5×11点阵格式; ② 光标显示方式:不显示、闪烁显示、常亮显示; ③ 左移或右移一位显示控制; ④ 移位显示后的回位处理; ⑤ 清屏。通过这些指令的搭配,就可以实现对LCD各种显示方式的控制。
地址设置指令与数据传输指令搭配进行,就可以实现MPU与RAM之间的数据传输。MPU对该芯片进行数据传输操作时,首先发送地址设置指令,确定选择DDRAM或是CGRAM进行数据传输,并且把地址通过置数方式写入计数器AC,由AC进行RAM的寻址操作。通过MPU发送RAM的读写指令,可以控制显示字符。MPU检测BF也是一条指令操作,不过不需要进行指令译码操作,直接在MPU I/O端口操作即可完成,3.1节已经介绍,此处不赘述。当LCD驱动控制芯片完成一次指令操作后,通过内部电路产生BFRESET的高电平信号,提供BF复位,等待下一次指令操作。
(3)计数器模块的设计
整个系统中包括5个计数器AC、COUNTER1、COUNTER2、COUNTER3、COUNTER4,其中,COUNTER2用于确定光标闪烁频率,在下一节介绍。这些计数器组合使用,可以产生两类地址,一类为实现MPU操作用,另一类为显示所用。
主地址计数器AC为7位双向同步计数器,具有增减计数、状态保持、单步计数、复位、预置数、进制控制等功能。用于MPU对DDRAM、CGRAM的读写操作寻址,并指示当前字符的位置,同COUNTER4配合,产生光标数据。在一行显示模式下AC为80进制,计数00H~4FH;两行显示模式下AC计数仍然为80进制,不过分两段计数, 00H~27H、40H~67H提供给两行显示的地址。
计数器COUNTER1为显示控制计数器,通过自动计数产生低电平占空比为1/80(一行显示)或1/49(两行显示)的脉冲信号,并且产生控制从片工作的帧信号M。P40_80是显示控制时序的基本参考时钟,作为COUNTER3和COUNTER4的输入脉冲控制这两个计数器的工作。
计数器COUNTER3是显示行计数器,为4位同步计数器,具有保持、单步计数、复位等功能,每计一个数对应一行显示数据。按照显示方式不同,其进制可变,分别为8进制(一行5×8)、11进制(一行5×11)、16进制(两行5×8)。
计数器COUNTER4是显示字符计数器,每计一个数对应一个字符。COUNTER4为7位同步计数器,具有保持、复位、6位计数(高6位)等功能,其进制可变:80进制(一行显示)、两段40进制(两行显示)。COUNTER4每计数一个进制周期(80或40), COUNTER3计一个数,实现一行的显示。
显示移位功能的实现取决于显示计数器COUNTER4的计数状态。计数器每保持一次计数,对应一次整体右移。计数器每工作在高六位计数器工作状态一次(一个计数脉冲的宽度,由指令所决定),对应一次整体左移。显示计数器COUNTER4的计数状态与显示的关系如图5所示。
图5中,在*处显示计数器COUNTER4处于保持状态,使得第2个字符在第3个位置继续显示,结果就导致整个显示右移一位;而在#处显示计数器COUNTER4 的最末位不变,而倒数第二位作为末位进行计数(即在一个计数脉冲期间,计数器比通常状态多计一个数),这样第3个字符就显示在第2个位置上,结果导致整个显示左移一位。
(4)光标驱动电路设计
LCD驱动控制芯片字符格式为5×8或5×11,其中前7行或10行用于显示字符数据,最后一行用作光标行。光标点亮时,就是在当前字符下的光标行全点亮。光标闪烁时,呈现当前字符正常显示与字符块全点亮(包括光标行在内)两种状态交替出现。
在一行模式下,当显示计数器COUNTER4的现态输出C4Q <6:0>与芯片主计数器AC的输出AC<6:0>相同或两行模式下,当显示计数器COUNTER4的现态输出C4Q<5:0>和行计数器COUNTER3的现态输出C3Q<3>与AC<6:0>相同时,即可产生光标数据。光标的亮与否取决于光标ON/OFF控制线CUR_OFF,CUR_OFF由指令译码控制。当CUR_OFF=0时,光标可以点亮;当CUR_OFF=1时,光标不点亮,光标可以处于闪烁状态,闪烁与否,还要看通过指令译码设置的控制线BLINK。光标的闪烁频率取决于控制线BLINK_FR,它由计数器COUNTER2产生。COUNTER2为6位递减计数器,采用串行级联T触发器工作方式,其输入信号由COUNTER3的四位输出信号提供,输出信号控制光标闪烁频率。计数器AC的值发生变化,可以使光标移位。
4.系统仿真
在上述各模块结构设计的基础上,采用Verilog硬件描述语言,对各子模块直至整个芯片的数字部分进行了电路设计验证。对于模拟电路部分,主要在MPU I/O模块,OSC模块,其功能用Level3模型进行了Spice模拟,能够达到芯片工作的要求。然后,基于整个芯片,利用Powrmill进行系统功能和功耗的仿真。在对整个芯片的模拟中 ,根据对芯片的指标要求从 ① 三种显示模式:一行5×8点阵模式、一行5×11点阵模式和两行5×8点阵模式; ② 系统工作的两种电压范围:2.7V-4.5V,典型值为3V ;4.5V-5.5V,典型值是5V; ③ 工作温度-30℃—+85℃,典型温度为25℃等3个个方面对芯片的功能进行全面测试。在每一种工作模式的测试中 ,测试覆盖芯片的所有11条指令的工作情况,测试了RAM和MPU的读写接口工作情况、RAM中数据经行扫描并在各命令控制下到驱动输出从而实现各种显示功能等。测试结果表明,所有的指令功能正确,字符显示功能正确,大部分模拟情形下得到的功耗电流均小于300μA,满足低功耗要求。表二给出部分模式下采用清华1.2μm的CMOS工艺进行Powrmill测试的系统功耗情形。
5.结论
论述了一种LCD专用控制驱动芯片的设计思想和设计方法。所设计的LCD专用控制驱动芯片,参照了现有产品的特点,并从实用角度出发,设计一些功能,如指令系统、光标电路等,具有一定实用价值。并且设计了对从片的驱动信号,可以扩充显示容量。经过Verilog、Spice和Powrmill仿真设计验证,证明控制芯片设计可靠、设计方案可行,在确定了合理的工艺并完成芯片的后端设计之后有较大的实用价值,同时也可供同行们在设计工作中参考。
参考文献
[1] 杨廉峰,常昌远,应征等,一种STN LCD驱动芯片的设计研究[J].微电子学,2001;31(1);53~57
[2] 李维諟,郭强,《液晶显示应用技术》[M].电子工业出版社,2000年3月
[3] 夏宇闻,《复杂数字电路与系统的Verilog HDL设计技术》[M].北京航空航天大学出版社,1998年9月