近年来,随着低价格、高性能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 SCICTL2?BIT7 ;判发送器是否空?
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根线。通过对上述两种方案的比较,最终设计项目采用了串行通讯方案,并在实际应用中取得了很好的效果。
|