近年来,随着低价格、高性能DSP芯片的出现,DSP已越来越多地被应用于高速信号采集、语音处理、图像分析处理等领域中,并显示出巨大的优越性。智能彩色液晶显示器具有显示直接美观、便于操作的特点,被用作各种便携式系统的显示前端。它一般采用工业级的高频CPU可以自行对接收的命令和数据进行处理因而能够提高用户端接口的软件开发效率。
一般的液晶显示往往采用单片机控制但在系统需要大量高速实时数据的情况下,单片机由于受处理速度的限制就显得力不从心而且一般的液晶显示仍采用烦琐的点阵操作来显示汉字和图形,而这又增加了软件开发的难度。为了解决这些问题,本文将提出一种基于DSP控制的智能彩色液晶显示器的接口设计方法,从而有效地解决了上述问题。
1智能彩色液晶显示器VK63简介
智能彩色液晶显示器(以下简称LCD)VK63是上海广电集团北京分公司的产品,它具有体积小、功耗低、无辅射、寿命长、超薄、防振及防爆等特点。该显示器的显示颜色为256色,可显示字符为ASC11的二级字库,中文显示为15行×20列,图形点阵320×RGB×240。
该LCD采用大规模门阵列集成电路,从而避免了用烦琐的点阵操作来显示汉字和图形,减轻了软件开发人员的负担,提高开发效率;由于采用全数字化设计,因而显示稳定可靠,抗强电磁干扰;该LCD采用工业级的 CPU(89C51),机内配置有二级字库,可通过串口或三态数据总线并口接收控制命令数据,并自行对接收的命令和数据进行处理,以实时显示用户所要显示的各种曲线、图形和中西文字体。其原理框图如图1所示。
LCD的命令码为十六进制码格式,每个命令均以十六进制码的“1B”开头,后面为命令代码和所需要的参数。其中XH表示X坐标的高8位,XL表示X坐标的低8位,YH表示Y坐标的高8位,YL表示Y坐标的低8位。
LCD的图形方式以光点为最小点阵显示单位,每个光点包含RGB三个色点。字符方式以8×16点阵为最小显示块单位。西文字符占一个显示块,16×16点阵的汉字占两个显示块。本机每显示一个字符或汉字后光标自动右移一个字符或汉字位,所以在同一行里顺序写入汉字或字符时不用再加光标定位命令,即可连续送入内码。
如图形操作为画一实心矩形,那么,其命令代码为:1B 41 color XH1 XL1 YH1 YL1 XH2 XL2 YH2 YL2,其中,color为颜色代码,X1 Y1为左上角坐标,X2 Y2为右下角坐标。其具体操作是以点(X1,Y1)为左上角坐标,以点(X2,Y2)为右下角坐标,使用指定的颜色画实心矩形。
2 DSP与LCD的串行通讯设计
2.1 串行通讯的硬件设计
LCD选用标准RS-232通讯接口,按串口方式工作。一帧信息为10位,内含1位起始位(0),8位数据位(先低位后高位),1位停止位(1)。
为了提高通讯速度,显示器内设置了一个128字节的输入缓冲区。发送数据前应先检查DTR信号(RS232电平),若DTR为负电平(对应COMS高电平),则表示缓冲区满,要等到DTR信号变为正电平(对应COMS低电平)后再发送数据。如果每组的数据量少于128字节,同时每组之间又有足够的间隔,则不用判断DTR信号就可连续发送数据。图2所示是其硬件接口原理框图。
2.2 串行通讯软件设计
此设计是一个具体工程项目(无功与谐波补偿装置)的液晶显示部分程序,主要完成显示“系统是否投入工作以及工作是否正常”的各种彩色图形曲线和文字,其中显示标志寄存器和COUNT数据寄存器的值都由相关应用程序给定。通过设置等待寄存器WSGR(赋值为0)和检测I/O的DTR信号可以防止数据发送丢失,从而实现高速DSP与外部低速LCD的通信。由于篇幅有限,这里只给出了串行初始化和数据发送部分的程序。其程序流程框图如图3所示。
1)串行通讯初始化程序
LDP # 0E0H ;设置串行通讯口各寄存器
SPLK # 0017H,SCICCR ;SCI使能,空闲线唤醒模式,8位数据,无奇偶校验位
SPLK # 0013H,SCICTL1 ;接收、发送、内部时钟使能,SLEEP=0
SPLK # 0000H,SCICTL2 ;接收和发送中断禁止
SPLK # 0000H,SCIHBAUD
SPLK # 0082H,SCILBAUD ;波特率为9600
SPLK # 0020H,SCIPC2 ;设置SCITXD为串行发送功能,SCIRXD为I/O口功能
SPLK #0033H,SCICTL1 ;串口初始化完成
LAR AR0,#SCITXBUF ;发送缓冲寄存器地址
2)数据串行发送程序
SCISS:
LDP #0E0H
BIT SCIPC2,BIT3 ;检测DTR信号,判断输入缓冲区是否满
BCND SCISS,TC ;若缓冲区满,继续查询等待
LDP #4H ;DP指向用户定义数据页4(0200H-0280H)
LACL SCITEMP
MAR *,AR0 ;数据送SCITXBUF发送缓冲区
SACL *
XMIT_RDY:
LDP # 0E0H
BIT SCICTL2BIT7 ;判发送器是否空
BCND XMIT_RDY,NTC
RET
3 DSP与LCD的并行通讯设计
3.1 并行通讯硬件设计
LCD自身具有一个三态数据总线并口(并口为COMS电平),可以同主机进行通讯。它的外部有12条线同DSP相连,即D0~D7、WRCS、BUSY、INT和GND。其中WRCS为片选信号和写信号的逻辑或非,上升沿有效。BUSY信号为高(COMS电平)表示忙。INT为中断申请信号,低电平有效。图4所示是其并行接口的硬件原理图。图5所示是LCD的时序图。其中TW为WRCS信号的脉冲宽度,TSU为数据建立时间,TH为数据保持时间。这些参数的具体要求为:
TW不小于16ns;TSU不小于12ns;T大于0ns ;TH不小于5ns;TI不小于2μs。
3.2 并行通讯软件设计
并行通讯的编程思想与串行通讯软件的设计基本相同。但并行通讯是通过设置等待寄存器WSGR赋值为0和检测IOPC5的BUSY忙信号来防止发送数据丢失,以实现高速DSP与外部低速LCD的通信。图3所示的流程图也适用于并行通讯。
1)并行通讯初始化程序
LDP # 0E1H
LACL OCRB
AND # 00CFH ;IOPC(4-5)配置为一般I/O功能
SACL OCRB
LACL PCDATDIR
OR # 1000H ;IOPC4口为输出方式
SACL PCDATDIR
LACL PCDATDIR
AND # 0DFFFH ;IOPC5口为输入方式
SACL PCDATDIR
2)数据并行发送程序
SCISS:;判断IOPC5口的BUSY信号是否忙
LDP # 0E1H
LACL PCDATDIR
LDP # 4H
SACL BUSYDATA
BIT BUSYDATA,BIT5
BCND SCISS, TC ;若BUSY为高,继续查询等待
LDP # 4H ;若BUSY为低, 把数据送到端口8000H.
OUT PARALTEMP,8000H
LDP # 0E1H
LACL PCDATDIR
AND # 0FFEFH ;将IOPC4口的INT信号置低
SACL PCDATDIR
RPT # 50 ;延时2.5μs
NOP
LDP # 0E1H
LACL PCDATDIR
OR #0010H ;将IOPC4口的INT信号置高
SACL PCDATDIR
RET
4 结束语
本文提出的基于DSP控制的智能彩色液晶显示器接口设计能够很好地解决高速DSP与外部低速设备的通信问题,本设计尝试采用了串行和并行两种通讯方案,其中前者DSP只需用3根线即可实现数据串行通信,因而节约了DSP的外部资源,虽然传输速度稍低,但能满足大多数实际工程的需要而后者采用并行通讯虽然数据传输速度较快,但会受到LCD所带CPU(89C51)解释命令速度的限制,虽然液晶显示速度比前者稍快20%左右,但要占用DSP外部资源的12根线。通过对上述两种方案的比较,最终设计项目采用了串行通讯方案,并在实际应用中取得了很好的效果。