SED1335“雪花”现象的消除

     0 引 言
       液晶显示控制SED1335是EPSON公司为中分辨率点阵液晶显示器设计的字符和图形显示控制器,是一种专用集成电路芯片,可以和微处理器直接相连,在其内部时钟周期内,以全速接应微处理器的访问。所谓“雪花”现象是指在显示器屏刷新的过程中,屏幕上出现的闪烁不定的小亮点的过程,就好像屏幕上面下着许多雪花一样。“雪花”现象的产生是由于当SED1335完成了初始化之后便根据显示命令字不停地刷新显示器,如果在显示刷新的过程中CPU对SED1335进行读、写操作,这时SED1335便会及时响应CPU的操作,从而影响了显示刷新,导致了“雪花”现象的产生。这种现象直接影响到显示的效果。当传送大量数据时,“雪花”现象会导致整个显示画面不稳定。
       作者分析了“雪花”现象产生的原因,提出几种解决方法,并取得了良好的效果。
    
     1 液晶显示控制器SED1335的电路特性  
       液晶显示控制器SED1335由控制部、驱动部和接口部等电路组成。
       (1)SED1335控制部。SED1335的控制部由振荡电路、控制寄存器组、控制逻辑电路以及显示存储器和字符发生器的管理电路等组成。其主要作用是产生SED1335的工作时钟,实现各种显示特性及同 时管理多个显示区。
       (2)SED1335驱动部。SED1335的驱动部由若干个功能输出端组成,具有显示区合成显示能力、传输数据的组织能力及产生液晶显示驱动系统所需的控制时序脉冲信号。其主要的功能输出端有:
     ·XD3~XD0:4位显示数据并行输出端。
       ·YD:帧扫描起始脉冲信号。它在每帧的最后一行有效,输出高电平。
       ·LP:显示数据锁存信号。在完成每显示行的数据传输后输出正脉冲,将该行数据从列驱动器的移位寄存器锁入输出数据锁存器。
       ·XSCL:显示数据位移时钟信号。该信号的下降沿将XD3~XD0上的数据锁入列驱动器的移位寄存器。
       (3)SED1335接口部。SED1335的接口部由接口控制电路、数据输入缓冲器、数据输出锁存器、指令寄存器及译译码器、忙状态触发器以及时序控制电路等组成。微处理器和SED1335直接相连,可以随时访问它;SED1335即时地把微处理器送来的指令、参数、显示数据就位,或把显示数据即时地送上总线供微处理器读取。
       在微处理器对显示存储器进行大量的数据传输时与控制部向驱动部传送显示数据相冲突,就会在显示屏上出现“雪花”现象,影响显示效果。部分信号的时序图如图1所示。在每行结束处的周期tm内(tm=tTC/R-tC/R),SED1335不从显示存储器内读取数据。微处理器可以利用这段时间来更新显示存储器的数据,而不影响画面。如果在tm以外的时间里对SED1335的控制寄存器或显示存储器进行读写操作,则产生“雪花”现象。
    
    
    
     2 “雪花”现象的2种解决方案
     2.1 利用SED1335的状态标志位
       SED1335有一个状态标志位,其定义为
    
    
    
     D6:SED1335的忙状态BF值,反映显示数据传输的工作状态。
       BF=1:表示显示存储器正在进行内部操作,此时控制部连续地从显示存储器内读取一行显示数据传送给驱动部,由驱动部传输给液晶显示驱动系统。  BF=0:表示显示显示存储器处于间歇状态,此时一行显示数据传输完毕,在下一行显示数据传输开始之前,驱动部要产生一些其他的脉冲控制信号,控制部暂停为显示驱动对显示存储器的读取操作。
       因此,就需要使用判忙状态利用控制部的间歇时间来传输显示数据以减少“雪花”。但是由于这个间歇时间很短,有时判别到BF=0,再进行显示数据传送时状态已经变为BF=1,这样仍不能完全避免“雪花”的产生。在对时间要求不是很高的系统中,可采用软件判别状态标志位的方案解决“雪花”现象。在判别到BF=0时,先不对SED1335的控制寄存器或显示存储器进行读、写操作,而是软件延时到下一个BF=0时,再开始操作,即判别到BF从1变为0时,开始对SED1335的控制寄存器进行读、写操作。每次判别后可进行一次读、写操作;也可根据程序的读、写操作所占用的时间,计算出在tm时间内可进行读、写操作的次数,从而确定每次判别后所进行的读、写操作的最大次数,其软件流程图如图2所示。
     2.2 利用SED1335的输出信号
     LP,产生状态判别信号方案  
       前面提到了利用忙状态标志位BF来作为写SED1335显示控制器判别依据。虽然此方法简单而且还不用增加外围的硬件电路,但是在使用上却存在着局限性。主要体现在当软件判别到BF标志位为低时需等到下一个周期BF变化,也就是LP下降沿到来时才能对SED1335进行读写操作,而且每次读写操作的次数也固定为一个周期一次,或者通过软件记数来控制读写操作都落在tm时间。这样做的后果显然是系统的实时性会降低,而且显示速度也会很慢。
    
    
    
    
    
       从上面的图1可以看到,在每一个行显示数据锁存信号LP的下降沿到来后
     tm时间内CPU可以对SED1335进行读、写操作。针对这一现象,采用可编程逻辑器件Xilinx的CPLD(XC95144)对LP信号进行判别处理,并产生一个新的输出信号BUSY,如图3所示。当CPU判别到BUSY信号为低(即tidle)时间内,CPU可对SED1335进行读、写操作。用VHDL语言很容易实现该逻辑。程序如下:
     输入信号量:clk为CPLD时钟信号11.0592 MHz;
       lp为显示数据锁存信号。
     输出信号量:free作为CPU读、写操作的判别依据,低有效。
    
    
    
    
       另外值得注意的是tm的值会因为外围电路及SED1335初始化的不同而不同,外围电路主要是指提供给SED1335的时钟频率,该系统中提供给SED1335的工作频率为5.5292MHz,而从在CPLD程序中也可以算出tidle的值为:
    
       因此,在不同的系统中,可以通过改变CPLD程序中count的值来调整tudle的时间,使得“雪花”现象得以完全消除。
     3 应用实例
       在笔者所在公司生产的通信设备中,采取了上述第二种方案,解决了EL显示器显示的“雪花”现象。系统采用160×120点阵的EL显示器,该显示器可以在-40℃~+85℃的环境中工作,满屏可以显示70个16×16点阵汉字,也可以显示任何西文字母、图形,其接 口特性和液晶显示器相同;单片机采用PHILIPS的P89C51RD+,系统时钟为11.0592MHz;显示控制器为SED1335,工作时钟为5.5292MHz,显示存储器为CY62256;可编程控制器件为XC95144,实现分频、译码、逻辑控制等功能。
       总之,“雪花”现象的解决方案在多个系统中都得到了充分的验证,只要对CPLD软件稍加改动该方案可以方便地移植到以X86或者是DSP为控制平台的系统中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值