LCD万用接口电路设计
扫描二维码
随时随地手机看文章
LCD接口都有哪些?
LCD的接口有多种,分类很细。主要看LCD的驱动方式和控制方式,目前手机上的彩色LCD的连接方式一般有这么几种:MCU模式,RGB模式,SPI模式,VSYNC模式,MDDI模式,DSI模式。MCU模式(也写成MPU模式的)。只有TFT模块才有RGB接口。
但应用比较多的就是MUC模式和RGB模式,区别有以下几点:
1.MCU接口:会解码命令,由TIming generator产生时序信号,驱动COM和SEG驱器。
RGB接口:在写LCD register setTIng时,和MCU接口没有区别。区别只在于图像的写入方式。
2.用MCU模式时由于数据可以先存到IC内部GRAM后再往屏上写,所以这种模式LCD可以直接接在MEMORY的总线上。
用RGB模式时就不同了,它没有内部RAM,HSYNC,VSYNC,ENABLE,CS,RESET,RS可以直接接在MEMORY的GPIO口上,用GPIO口来模拟波形。
3.MPU接口方式:显示数据写入DDRAM,常用于静止图片显示。
RGB接口方式:显示数据不写入DDRAM,直接写屏,速度快,常用于显示视频或动画用。
MCU接口和RGB接口主要的区别是:
MCU接口方式:显示数据写入DDRAM,常用于静止图片显示。
MCU模式
因为主要针对单片机的领域在使用,因此得名。后在中低端手机大量使用,其主要特点是价格便宜的。MCU-LCD接口的标准术语是Intel提出的8080总线标准,因此在很多文档中用I80来指MCU-LCD屏。主要又可以分为8080模式和6800模式,这两者之间主要是时序的区别。数据位传输有8位,9位,16位,18位,24位。连线分为:CS/,RS(寄存器选择),RD/,WR/,再就是数据线了。优点是:控制简单方便,无需时钟和同步信号。缺点是:要耗费GRAM,所以难以做到大屏(3.8以上)。对于MCU接口的LCM,其内部的芯片就叫LCD驱动器。主要功能是对主机发过的数据/命令,进行变换,变成每个象素的RGB数据,使之在屏上显示出来。这个过程不需要点、行、帧时钟。
MCU接口的LCD的Driver IC都带GRAM,Driver IC作为MCU的一片协处理器,接受MCU发过来的Command/Data,可以相对独立的工作。对于MCU接口的LCM(LCD Module),其内部的芯片就叫LCD驱动器。主要功能是对主机发过的数据/命令,进行变换,变成每个象素的RGB数据,使之在屏上显示出来。这个过程不需要点、行、帧时钟。
M6800模式
M6800模式支持可选择的总线宽度8/9/16/18-bit(默认为8位),其实际设计思想是与I80的思想是一样的,主要区别就是该模式的总线控制读写信号组合在一个引脚上(/WR),而增加了一个锁存信号(E)数据位传输有8位,9位,16位和18位。
I8080模式
I80模式连线分为:CS/,RS(寄存器选择),RD/,WR/,再就是数据线了。优点是:控制简单方便,无需时钟和同步信号。缺点是:要耗费GRAM,所以难以做到大屏(QVGA以上)。
MCU接口标准名称是I80,管脚的控制脚有5个:
CS片选信号
RS (置1为写数据,置0为写命令)
/WR (为0表示写数据)数据命令区分信号
RESET复位LCD(用固定命令系列 0 1 0来复位)
VSYNC模式
该模式其实就是就是在MCU模式上加了一个VSYNC信号,应用于运动画面更新,这样就与上述两个接口有很大的区别。该模式支持直接进行动画显示的功能,它提供了一个对MCU接口最小的改动,实现动画显示的解决方案。在这种模式下,内部的显示操作与外部VSYNC信号同步。可以实现比内部操作更高的速率的动画显示。但由于其操作方式的不同,该模式对速率有一个限制,那就是对内部SRAM的写速率一定要大于显示读内部SRAM的速率。
RGB模式
大屏采用较多的模式,数据位传输也有6位,16位和18位,24位之分。连线一般有:VSYNC,HSYNC,DOTCLK,CS,RESET,有的也需要RS,剩下就是数据线。它的优缺点正好和MCU模式相反。
MCU-LCD屏它与RGB-LCD屏主要区别在于显存的位置。RGB-LCD的显存是由系统内存充当的,因此其大小只受限于系统内存的大小,这样RGB-LCD可以做出较大尺寸,象现在4.3“只能算入门级,而MID中7”,10“的屏都开始大量使用。而MCU-LCD的设计之初只要考虑单片机的内存较小,因此都是把显存内置在LCD模块内部。然后软件通过专门显示命令来更新显存,因此MCU屏往往不能做得很大。同时显示更新速度也比RGB-LCD慢。显示数据传输模式也有差别。RGB屏只需显存组织好数据。启动显示后,LCD-DMA会自动把显存中的数据通过RGB接口送到LCM。而MCU屏则需要发送画点的命令来修改MCU内部的RAM(即不能直接写MCU屏的RAM)。所以RGB显示速度明显比MCU快,而且播放视频方面,MCU-LCD也比较慢。
对于RGB接口的LCM,主机输出的直接是每个象素的RGB数据,不需要进行变换(GAMMA校正等除外),对于这种接口,需要在主机部分有个LCD控制器,以产生RGB数据和点、行、帧同步信号。
彩色TFT液晶屏主要有2种接口:TTL接口(RGB颜色接口), LVDS接口(将RGB颜色打包成差分信号传输)。TTL接口主要用于12.1寸一下的小尺寸TFT屏,LVDS接口主要用于8寸以上的大尺寸TFT屏。TTL接口线多,传输距离短;LVDS接口传输距离长,线的数量少。大屏采用较多的模式,控制脚是VSYNC,HSYNC,VDEN,VCLK, S3C2440最高支持24个数据脚,数据脚是VD[23-0]。
CPU或显卡发出的图像数据是TTL信号(0-5V、0-3.3V、0-2.5V、或0-1.8V),LCD本身接收的也是TTL信号,由于TTL信号在高速率的长距离传输时性能不佳,抗干扰能力比较差,后来又提出了多种传输模式,比如LVDS、TDMS、GVIF、P&D、DVI和DFP等。他们实际上只是将CPU或显卡发出的TTL信号编码成各种信号以传输,在LCD那边将接收到的信号进行解码得到TTL信号。
但是不管采用何种传输模式,本质的TTL信号是一样的。
注意:TTL/LVDS分别是两种信号的传输模式,TTL是高电平表示1,低电平表示0的模式,LVDS是正负两个对应波形,用两个波形的差值来表示当前是1还是0
SPI模式
采用较少,有3线和4线的,连线为CS/,SLK,SDI,SDO四根线,连线少但是软件控制比较复杂。
MDDI模式(MobileDisplayDigitalInterface)
高通公司于2004年提出的接口MDDI,通过减少连线可提高移动电话的可靠性并降低功耗,这将取代SPI模式而成为移动领域的高速串行接口。连线主要是host_data,host_strobe,client_data,client_strobe,power,GND几根线。
DSI模式
该模式串行的双向高速命令传输模式,连线有D0P,D0N,D1P,D1N,CLKP,CLKN。
怎样从LCD电极看出单片机的种类:
通过测量仪表拾取被测信号是单片机前向通道设计中常用的数据采集方式。通常,接口电路从仪表电路中取得相关的模拟信号,经过A/D转换或V/F转换送入单片机;或者取得一个频率信号,经整形后送入单片机。然而,有些测量仪表电路中可能找不到这样的信号。以电容式压力传感器血压计为例,尽管从其振荡电路中可以取得一个与压强成线性关系的频率信号,送入单片机测得压强,但这个压强并不是所要拾取的收缩压、舒张压和心率;面普通的血压计又没有智能仪表那样的通信接口与单片机通信。显然,要想通过这样的仪表拾取被测信号只有直接读取其显示屏的读数了。
本文以一个全自动血压计为例,介绍将LCD显示器读数读入单片机的接口电路。该血压计显示器为61/2位段式LCD显示器,3位显示收缩压,3位显示舒张压。l/2位在两组数码中间,显示4个指示符号。
1 LCD的电极连接结构和工作波形
1.1 LCD的电极连接结构
图1为血压计LCD的电极连接结构及等效电路。其中,图l(a)为公共电极连接排列,图l(b)为段电极连接排列。它共有4个公共电极COM0~COM3,每位数码各有2个段电极Sx-0、Sx-1,其等效电路为一个4行&TImes;2列的矩阵,如图l(c)所示。
1.2 LCD的工作波形
用双踪示波器观察血压计LCD的工作波形,如图2所示。它采用时分割驱动法驱动,偏比1/3,占空比l/4,B型。公共电极COM0~COM3的信号波形始终保持不变,段电极Sx-0、Sx-1信号波形随显示数字的变化而变化。图2中的Sx-1、Sx-1波形为显示数字“O”时的工作波形。
由图2可知,不考虑信号的直流分量,所有波形的前半周期t1~t4与后半周期t5~t8大小相等,极性相反。COM0~COM3信号电压依次在t1~t4四个时间内达到峰值。时间t1为第1行上f、a两段的扫描时间,公共电极COM0,Sx-0为f段的段电极,Sx-1为a段的段电极。在t1时间内,f段上的电压COM0-Sx-0=V0,a段上的电压COM0-Sx-1=V0,f、a两段均处于选择状态,显示。其余各段在其扫描时间内的电压和显示状态如表1所列。7段中只有g段上的电压为V0/3,处于非选择状态,不显示。其余6段均处于选择状态,显示。因此,显示数字“O”。
由此可见,只要依次检查在t1~t4四个时间内f、a、g、b、e、c、d各段上的电压COMx-Sx-y(x=0,1,…,6;y=O,1)是V0还是V0/3即可获得LCD各位数码的字形码,然后再将字形码转换为测量结果。
2单片机读数接口电路
图3为根据上述工作原理设计的805l单片机读数接口电路,图中,LCD为血压计的液晶显示器,6位数码从右到左依次编号O~5,中间半位的编号为6。它有13个段电极、4个COM电极,GND为血压计的接地端。805l的PC口为805l的扩展并行口。
2.1显示状态读取电路
由CD4067、CD3405l、LM324(UA、UB)组成显示状态读取电路,读取LCD数码各段的显示状态。CD41367多路模拟开关从LCD的13个段电极信号中选择一路Sx-x输出到LM324(UA)的反相输入端2脚。CD405l多路模拟开关从LCD的4个COM信号中选择一路COMx输出到LM321(UA)的同相输入端3脚。LM324(UA)接成模拟减法器,由1脚输出信号COMx-Sx-x。UB作电压比较器,参考电压VR大小由电位器W1调节于V0/3~V0之间,将段电压COMx-Sx-x与VR比较。比较结果为该段的显示状态,高电平说明该段显示,低电平不显示。显示状态送入8051的P1.6脚。R1、C1组成RC滤波器,滤除高频干扰。
比如,要读取0号数码的a段显示状态,由图1知,0号数码a段的段电极是S0-1,公共电极是COM0。由程序控制在t1时间内令PC1PC0=00,使CD405l选择COM0,令PC5~PC2=0001,使CD4067选择S0-1,COM0和S0-1两信号电压经UA减法器相减,然后再经UB电压比较后得到a段的显示状态,8051从P1.6脚读取此最示状态。
2.2 INT0中断信号产生电路
UC和UD组成INT0中断信号产生电路。UC接成电压跟随器,减小电路对COM0信号的影响。R2、C2组成RC滤波器,滤除高频干扰。UD作电压比较器,参考电压VR加在同相输入端,VR大小由电位器W2调节于2V0/3~V0。电压比较器将COM0信号转换为INT0负脉冲信号,工作波形如图4所示。负脉冲的下降沿为LCD驱动信号周期T的起始时刻。此负脉冲接至8051的INT0脚,在负脉冲的下降沿产生外部中断0。
3程序设计
启用外部中断0和定时器T0,以中断方式读取LCD各位数码的字形码。主程序以查询方式读取该字形码,然后经过读数校验、字形码到BCD码的译码、读数识别等,将字形码转换为读数。
3.1读取字形码
通过外部中断O和定时器T0以中断方式读取LCD某一编号数码的字形码。如图5所示,INT0负脉冲在周期T的起始时刻引起外部中断O,由INT0中断服务程序启动T0定时器,依次在t1~t4半个周期内的f、a、g、b、e、c、d各时刻产生T0中断,读取各段的显示状态,获得字形码。T0定时器设为工作方式2,自动再装入定时时间为T/16,初始定时时间为T/32。INT0和T0中断服务程序流程如图6所示。
其中,PC口数据格式:PC5~PC3为要读取的那位LCD数码编号,PC2为段电极编号,PC1PC0为COM电极编号。
3.2字形码转换
主程序以查询方式分别读取由中断服务程序采集的各位数码的字形码,查表将字形码转换为BCD码,再将几位数码的BCD码转变为数值。
3.3读数校验
读取一位数码的字形码需要1个周期T(实际只用前半个周期),经测量,T=16.318ms。读取全部位数码至少需要用7个周期,约114ms。考虑到在单片机读数的过程中,LCD的读数有可能发生变化而导致读数错误,程序中采用连续两次读数的方法来校验读数的正确性。如果连续两次读数相同,则说明读数是正确的;如果连续两次读数不同,则说明读数可能是错误的,应重新读数。
3.4读数识别
血压计显示的内容除了收缩压、舒张压和心率以外还有充气、放气时的瞬时压强以及一些状态信息。LCD中间的半位(6号)用于显示待机(Reay to measure)、充气(CUFF Inf1aTIng)、放气(CUFF Deflating)以及更换电池(Replace Battcries)四个符号。另外,4号数码显示“E”时表示测量出错,显示“P”时,右边3位(0~2号)数码显示的数字为心率。左右两边显示内容均是数字时,左边3位(3~5号)是收缩压,右边3位是舒张压.血压与心率交替显示。主程序通过这些信息来识别LCD所显示的内容。
4结论
使用此接口电路采集数据,不必考虑与拾取信号的测量相关的细节问题和技术规范。这样,当拾取信号的测量比较复杂时,可以有效地缩短开发周期。同时,它也不存在二次A/D转换或V/F转换方法所存在的单片机采集数据与仪表读数不完全一致的问题。
程序设计用1个驱动信号周期读取1位数码,这样的读取速度对于读数变化不是很快的血压计来说已经足够了。如果测量仪表LCD读数变化很快,可以修改编程,在1个周期内同时读取几位数码,甚至修改电路设计,将后半周期也用于进行读数,实现在1个信号周期内读取所有数码。
如何用万用表判定LCD管脚?
打开万用表,接到电阻档,最好有蜂鸣器的那种。一表笔接触机顶盒的天线外壳,一表笔逐步解除每一根针,当滴一声出现,表笔要不离开总是长鸣的说明那个针就是地(GND),继续测量其它针,当表笔触到的针角短暂的嘀一声的就是VCC了。这样就判断出GND和VCC.三针的其余两针就是RX和TX了。同样四针的其余两针也是RX和TX了。五针的判断是把万用表转到20V档,一笔接GND,一笔逐步量电压。这个时候有两种情况,第一种:有可能几乎没电压,这个时候看板,发现针脚座子附近有两个贴片三级管,就考虑用RS232串口的2-3-5来接就可以了。第二种,测量电压五针的就去掉电压最高和最低的两针,其余的就是RX和TX。因为电压最高的是VCC低的是BT
/RD (为0表示读数据)