为了满足矿用通讯控制系统操作的易用性,主控制器的人机界面设计是本次设计的一个重点。人机界面设计包括控制器面板的设计及各个接口布局的设计,设计不但要保证电气性能,还要考虑整体美观性、现场操作和安装的方便性,最终确保系统整体的功能性和美观性的完美统一。由于大屏幕的彩色液晶显示器都需要高压背光电路,不能满足本质安全的要求。因此本系统的控制器采用320x240点阵的液晶显示器,其背光电路采用高亮LED,驱动电压低,满足本质安全要求。
用户界面采用全中文的图形化界面,并具备如下特点:1)操作方式简单,一般人员即可操作;2)弹出式的故障提示界面;3)所有提示和状态显示均使用中文。
1 液晶显示模块
由于本设计中LPC2292微处理器的I/O端口要完成键盘输入、LED指示输出、LCD屏幕控制等很多功能,为了节约I/O资源,很多功能都采用了对微处理器I/O端口分时复用的方法,这样在不影响系统整体性能的基础上充分地利用了有限的资源。为了实现LPC2292的D0~D15端口对键盘、LED指示输出、LCD屏幕控制等多种功能的分时输入/输出操作,对于键盘输入的读取,采用了Altera公司的CPLD芯片EPM7128作为以上器件的数据传输控制通道。
由于目前最常用的单色LCD控制器SED1335的数据传输速度相对于LPC2292显得十分缓慢,经过初期的计算和实际测量,刷新一屏320x240点的图片最快需要130ns左右,故EPM7128对LCD模块还起到数据缓冲译码的作用。
对于常用的LCD,由于它的引线较多,如果直接由CPU去控制LCD的显示,会造成CPU负担过重,用户使用起来很不方面。为了解决这种矛盾,本课题运用北京三春晖电子科技发展有限公司出品的液晶显示模块——SG320240FPD。SG320240FPD显示模块将LCD液晶显示驱动电路和分压电路集成在一块板子上,是一种集显示、控制与驱动为一体的显示器件,很好地解决了CPU的负担问题。中文液晶显示模块SG320240FPD可实现汉字、ASCII码、位图形的同屏显示。液晶显示模块方框图如图1所示。
SG320240FPD液晶的核心器件是SED1335控制器芯片。SED1335是SEIKO EPSON公司出品的液晶显示控制器,其具有较强功能的I/O缓冲器,指令功能丰富,4位数据并行发送,最大驱动能力为640x256点阵。
从图1可以看出,DB为数据总线,可以直接连在CPU数据总线上;CS为片选信号,低电平有效;AO为I/O缓冲器数据选择信号,为1时写指令代码或读数据,为0时,写数据或读状态字;RD、WR分别为读操作信号和写操作信号,低电平有效。LPC2292的控制信号通过EPM7128采用I/O设备访问形式控制液晶控制器SED1335。然后,SED1335通过SEG驱动器向液晶显示器提供显示数据,通过COM驱动器向液晶显示器提供行扫描信号。在COM和SEG的配合下,实现RAM矩阵内容的液晶显示。
驱动器模块是专用芯片与液晶显示器的接口,其作用是提高驱动能力、实现偏压极性的转换。它包括COM驱动器、SEG驱动器及COM的移位寄存器。
COM驱动器由控制电路、电压变换电路、电压选择电路、COMS驱动电路等子模块组成。COM移位寄存器与COM驱动器相配合,向液晶显示屏提供行扫描信号。COM移位寄存器实现0行~31行行扫描,电压变换电路和电压选择电路实现行驱动,控制电路实现对COM Driver的控制,CO-MS独立完成第32行扫描。
SEG驱动器闱向液晶显示屏提供显示数据,该模块由控制电路、电压变换电路和电压选择电路实现对显示数据锁存电路输出RAM数据的驱动。2 LCD7920的硬件驱动
由于LCD7920的控制器SED1335和LPC2292的外部总线连接时没有采用直接连接的方式,而是采用了通过可编程逻辑器件扩展I/O口进行间接连接的方式,SED1335的基本操作需要专门编写相应的操作函数,包括液晶屏复位函数、写指令代码、写数据或参数、读命令地址、读数据或参数和SED1335_write函数(写一条完整的指令)。
从软件角度看,SED1335需要的控制信号包括:复位信号RST、读信号RD、写信号WE、地址信号A0(命令或数据方式控制)、片选信号AEN和数据信号D0~D7。其中,RST、RD、WE、A0和CS信号由CPLD扩展的输出端口LCD_CMD控制,D0~D7由CPLD扩展的双向端口LCD_DATA控制。另外,为了控制数据信号LD0~LD7的方向,还在CPLD内部设置了DataOut信号。当DataOut=0时数据由CPU通过LCD_DATA向SED1335输入;当Data-Out=1时SED1335通过LCD_DATA向CPU输出的数据。下面将具体分析写指令信号的全过程。
首先,要知道在写指令的过程中,复位信号RES置高电平不起作用,读信号RD置高电平也不起作用,写信号WE置为低电平,片选信号AEN置为低电平。由于写指令是要数据由LCD_DATA向SED1335输出,因此DataOut信号为低电平。于是写指令的时序图如图2所示。
根据写指令的时序图,对于液晶模块低层驱动的CPLD数字电路设计如图3所示。
从图3可知,首先在0x83000004地址空间中,A1高电平保持不变,A0、A2、A3、A4、A5、A6和地址使能信号AEN分别经过非门变成高电平。接着,它们在全部经过与非门转变为低电平,设为X。从时序图中,可以看出RD一直保持高电平,它和X相“或”后,输出为高电平CS—LCD2RD。由于CS—LCD2RD低电平有效,所以读指令不起作用。同理,X和WE相“或”后,输出为低电平CS—LCD2WE,然后CS—LCD2WE与74273的CLK位相连,即CLK位为低电平。八重D触发器74273的STR管脚信号是由RTS复位信号决定,为高电平。根据八重D触发器74273的真值表,STR为高电平,CLK为低电平,输出和输入相等。下一步输出信号通过74245总线收发器,74245的OE管脚由Dataout信号决定。由于是写代码指令,Dataout=0,数据由CPU通过LCD_DATA向SED1335输入。由于OE管脚为低电平,根据74245真值表,输入输出保持不变。LD0~LD7就等于输入信号,把它接到SG320240FPD的D0~D7管脚,SED1335读取CPU数据完毕。SED1335其他操作的分析过程与写指令类似,这里不详细作介绍。
3 GUI软件的实现
嵌入式(GUI,Graphic User Interface)系统是在嵌入式系统中为特定的硬件设备或环境而设计的图形用户界面系统。
显示任务与键盘任务的关系最密切,它们组成了最基本的人机接口,每一次键盘操作都伴随着画面的更新。由键盘操作更新的画面内容称为“画面的静态部分”,因为这部分画面内容在没有键盘操作时是固定不变。
还有某些任务也需要显示任务提供服务,更新画面的指定部分的内容,如实时时钟显示、皮带工作状态和各种现场物理参数的动态显示等。这部分西面内容的数据由不同的任务提供,与键盘操作无关,把各种不是键盘操作更新的画面内容称为“画面的动态部分”。不管是“画面的静态部分”,还是“画面的动态部分”,都是调用GUI接口函数来实现的。显示任务的优先级设定较低,其主要作用是初始化系统画面,显示按键操作的效果和采样波形。
在液晶显示屏上的画面主要是:主信息窗口,当前皮带运行状态显示,坐标方格线和命令按健。因此,这里需要的画图功能分别是画点函数、画线函数和字符显示函数。在画面显示前,要初始化液晶显示屏(包括设置显示方式和清屏),这个功能由函数GUI_Init()来实现。该函数可以强制刷新主界面,并且清屏。画线功能由函数LCD_Line()来实现,其函数原型为“void LCD_Line(uint16 StartX,uint16StartY,uint16 EndX,uint16 EndY,uint8 Color,uint8 Layer)”。其各参数的定义为:StartX为线起点所在的行位置;StartY为线起点所在的列位置;EndX为线终点所在的行位置;EndY为线终点所在的列位置;color为显示颜色(对于黑白色LCD,为0时,灭;为1时,显示);Layer为当前画的线所在图层,其部分代码如下所示。
菜单的反色显示处理由函数LCD_Fill()来实现,这里的反色处理是指当操作者选择主信息窗口的设置、状态、纪录或操作等任意菜单时,选定菜单会呈现与周围环境有差异的颜色。
字符显示功能由函数LCD_DispCh()来实现。其函数原型为 “void LCD_DispCh(uint16 X,uint16 Y,uint8 Chineselndex)”。其中X为指定显示位置的X坐标;Y为指定显示位置的Y坐标;ChineseIndex为定义的汉字索引变量。由于本设计的液晶显示基本上采甩汉字,为了显示汉字,必须有汉字的点阵码。本系统通过提取汉字的点阵数据。及运行造字程序编制特殊字符的点阵数据,创建了显示字库。用点阵数据生成显示字库时,依次对每个字符用一个字节进行编码,汉字/字符提取程序可根据需显示的字符的编码,得到相应的点阵数据在字库中的偏移地址,计算出存放首地址后,取出点阵数据填充到外部的RAM中的相应位置。每屏要显示的菜单制成表,根据表号,就可以提取出所要显示的字符编号。
4 人机接口界面的调试
为了进一步测试系统性能,在实验室环境使用了标准的超5类网线(非屏蔽的双绞线,线路电阻约为9.8Ω/100 m)串联起来进行了完整的500 m距离测试,发现人机接口模块可以正常地显示出矿井下智能设备的工作状态,它接收其他任务的操作指令,完成显示画面内容的动态更新。显示界面如图4所示。
从图4中可以看到,最上面一行为主信息窗口,包括应用菜单和实时时钟。中间一行为当前皮带运行状态,第一个是MCCS的主控制器,通过7芯通信线缆(包括+12 V电源,GND,CANH,CANL,NF+,NF-和SKR 7路信号)与智能设备相连,被监视设备运行异常,系统按事先编制的逻辑进行控制输出。系统能在线自检,通过图形界面显示故障设备的位置和故障情况。
5 结束语
人机接口采用图形化方式实现,全中文界面,专用操作按钮和键盘,简洁方便、通俗易懂。液晶屏在将来可以改进成TFT液晶(薄膜场效应晶体管),不但可以提高显示屏的反应速度,同时可以做到高分辨率的显示屏幕信息。并且人机接口界面可以扩展为智能化的设计,有自己独立的CPU,属于单独的模块,会大大提高了主控制器CPU的利用率。