介绍了一种彩色液晶智能控制系统的实现方案该系统封装了彩色液晶的所有外围电路增加了智能控制功能
它通过通信端口和外设相连使对液晶的各种繁琐控制过程简化为接收外设指令的过程;还可通过配套软件和微机通信实现汉字库更新和预置画面等功能
彩色液晶显示器是现代高新技术产品它具有体积小、功耗低、无辐射、寿命长、超薄、防震防爆等特点彩色液晶显示器的出现有力地推动了工控仪表、系统设备的微型化、节能化进程为单片机等微处理器系统提供了完善的人机对话界面具有LED和CRT显示器所无法比拟的优点但在开发带有液晶显示设备的系统的过程中用点阵操作显示汉字和图形图像是非常繁琐的工作工作量很大、周期较长为了减轻开发人员的负担提高开发效率设计了彩色液晶智能控制系统把繁琐的显示操作封装起来简化为一套简单易用的指令系统只需通过接口向本系统发送简单的指令就可控制液晶显示器的显示如画曲线、显示汉字和图形图像等本系统为全数字化设计显示稳定可靠抗强电磁干扰可用于机电、冶金、船舶、航空、铁路、电力、通讯导航等领域的系统设备和智能仪表中
1 系统硬件组成及工作原理
系统采用工业级AVR高速微处理器内置二级字库通过串口或三态数据总线口接收控制命令数据 自行对接收的命令和数据进行处理实时显示所需的各种曲线、中西文和图形图像硬件原理框图如图1所示
1.1 微处理器系统
微处理器是实现智能控制功能的核心部分为了有效控制液晶显示图像的失真度微处理器采用高速单片机AT90S8515(如果对显示速度要求很高例如显示动画等可采用DSP芯片)单片机系统上电后便处于实时接收命令状态可完成和外设通信、对外设发送的命令进行解释并执行命令(如从汉字库中取字模并在相应的位置显示出来)、在适当位置画线、显示预置图形和画面等
1.2 电源部分
外部+12V电源由电源接口引入分为两路一路经过DC/DC变换后产生直流偏置电源为彩色液晶模块提供所需电源;另一路经DC/AC变换后产生高压交流电为液晶屏背光灯CCFL供电
1.3 通信端口
通信端口包括总线口和串行口外部设备通过通信端口和本控制系统进行电气沟通并发送相关指令从而达到对液晶显示的各种控制总线口是一个并行口;串行口采用RS232电平标准单片机的串行TTL电平经过SIO转换后变为RS232标准电平(负逻辑)这里高电平变为-8V低电平变为8V它可以和微机等标准串口直接相连进行串行通信如果其它控制系统通过串行口和本系统相连只需三条线就可控制液晶的显示
1.4 FLASH闪存
闪存由4片Am29F040B组成每片Am29F040B包括512K字节共2M字节第一片Am29F040B用来存储汉字点阵和图形数据后三片共1.5M字节用来存储图像数据液晶采用320×240分辨率的16位数字彩色液晶RGB分量各包含5位每点占用两个字节1.5M可以存储的满屏图像约10幅由于Am29F040B的地址线多于微处理器的地址线因此采用分页技术进行处理即把多出的地址线通过锁存器与数据线相连读取数据前先向锁存器写入页面地址数据即选中该地址对应的页然后读取该页用同样的方法可以读取其它页不同片子之间可以利用微处理器的空闲端口通过控制Am29F040B的片选信号加以区分应用这种方法可以扩充FLASH闪存达数G之多
1.5 液晶驱动电路及显存
液晶驱动电路主要对液晶点阵完成读写操作并产生液晶接口所需要的行场扫描信号、时钟信号及其它控制信号由于时序逻辑关系相当复杂这里采用了复杂可编程逻辑芯片CPLD进行编程控制外部总线对显存进行读写操作就可以对屏幕相应象素的颜色与亮度进行控制
2 系统软件
软件实质上是一个通信程序实时接收和执行串口和总线口发来的命令接收程序用汇编语言编写串口通信采用一位起始位、一位停止位、8位数据位、无较验位的异步串行通信方式;总线口为并行口数据发来时引起中断在中断子程序中读取总线口数据主程序和中断程序流程图如图2所示
系统上电后首先进行初始化接着循环读取缓冲区指针若有数据则读取缓冲区数据并对数据进行分析;若为命令就读取完整的命令信息并执行命令否则就将读取内容作为中西文字符显示命令主要有:画线、画矩形、画椭圆、画曲线、画填充区域、中西文切换、光标跳转、字库更新及图形图像下载及显示等若有中断发生就进行中断处理外设引起的中断共有两个:串行中断和总线口中断当有一个串行数据或总线口数据到达时就会引发相应的中断这两种中断虽然入口地址不同但它们实现的功能是完全一样的都是读取外设传来的数据并将其放入缓冲区中
从微机下载字库或图像文件时数据量较大在对板载接收程序编程时应注意对128字节缓冲区的操作要合适否则会导致软件系统的崩溃缓冲区是作为环形队列来使用的主要应注意两点:一是不要等缓冲区满时才置DTR(见图3)为“忙”状态因为这样正在传输的字节会丢失;二是当DTR出现一次“忙”后缓冲区有较多空闲时应使DTR信号变为“闲”否则会因DTR信号变化太频繁而使程序失控这里的算法是当缓冲区还有6个字节空闲时置DTR有效(CPU“忙”)暂停通信;之后当缓冲区降到64字节的闲余时置DTR为“闲”恢复通信这样虽然下载速度稍微受点影响但通信的可靠性大大增强了;另一方面下载完数据后本系统要脱机和其它微处理器连接使用下载速度对本系统的使用无任何影响
3 预置功能的实现
预置功能主要是通过微机的通讯程序为液晶显示器预先储存汉字字库、图形或图像并可随时更新汉字字库、图形或图像以便系统脱机和其它微处理器连用时可以利用这些资源当其它微处理器系统发送显示预置资源命令时本系统就会控制液晶显示器来显示相应的汉字点阵、图形或图像存储器采用非易失FLASH闪存分为字库、图形和图像三个区域字库存储的是汉字字模的点阵图形存储的是液晶图形方式下的一些命令图像存储的是BMP位图点阵数据
预置软件是智能控制系统的配套软件用来下载PC机的图形图像到智能控制系统中实现预置功能它基于MSComm通信控件采用VC++的MFC类库编程控件工作方式为查询方式可运行于Windows的所有操作系统中通过微机串行口和本系统通信连接关系如图3所示
由于通信距离较近采用串行口直接相连方式微机通信端口选择COM1或COM2它们是标准的RS232异步通讯接口微机向智能控制系统发送数据进行单工串行通信在智能界面板载128字节的缓冲区采用了DSR硬件握手程序在通讯过程中如果智能控制系统的微处理器忙它就会置DTR(微机的DSR)为RS232标准的低电平微机暂停发送;等智能控制系统的微处理器闲时它又置DSR为高微机继续发送数据
字库预置是把汉字字库点阵下载到FLSH的字库区;图形预置时软件会根据选择的液晶屏型号使预置视区和液晶屏分辨率相同此时菜单项包括画线、画矩形、画椭圆、画曲线、画填充区域及写汉字等用户可选择在视区绘制图形或写汉字的命令然后按下发送命令程序会在后台把用户绘制的图形转换为相应的智能控制系统能识别的命令传送出去之后智能控制系统的接收程序会把这些命令存储到FLASH的图形区内;图像预置时程序可以打开一副BMP无压缩图像在图像上有一个大小和位置可改变的矩形框用来选定传送图像的区域按下发送命令后程序提取矩形框内图像的宽高和点阵数据传送出去
在对BMP图像数据进行提取时应注意以下几点:第一大多数BMP图像点阵都是倒置的起始点在左下角第二现在Windows操作系统下的位图多为与设备无关的位图256色及以下位图都带有调色板调色板每个颜色表示的三字节RGB分量按相反的顺序排列要注意调色板与位图数据的正确对应关系第三要把颜色信息转化为本系统能识别的信息系统采用的液晶屏为16位色(用两字节表示)对于24位真彩色要把RGB分量由256个等级转化为32个等级即把每点的RGB分量分别除以8再合为两个字节;对于256色及以下位图要先找到每点对应的调色板颜色表示的信息然后按上面介绍的方法处理即可这种方法虽然引入一些失真但失真不大完全满足应用要求
参考文献
1 宋万杰.CPLD技术及其应用.西安:西安电子科技大学出版社1999.9
2 北京理工大学ASIC研究所.VHDL语言100例祥解.北京:清华大学大学出版社2001.3
3 李现勇.Visual C++串口通信与工程实践.VHDL语言100例祥解.北京:人民邮电出版社2002.5