人机接口是嵌入式控制系统的重要组成部分,用于人机之间实时交换控制系统并返回系统状态。嵌入式系统大都采用液晶屏和键盘作为人机接口的输入、输出设备。这里设计的人机接口作为数据采集系统的组成部分,为系统控制和运行监测提供方便,而其本身在各种嵌入式控制系统中又具有广泛的实用性。
2 液晶屏显示功能的实现
这里采用的液晶显示器为RT320240B。该显示器的控制器使用SEIKOEPSON公司生产的SED1335型控制器。DSP访问SED1335时,无需判断其是否空闲,SED1335能够随时准备接受DSP的访问并按照内部时序及时正确传输DSP发送的指令、数据。考虑到RT320240B是大屏幕液晶显示器,显示数据采集波形需较快的屏幕刷新速度,这里采用并行数据发送方式,从而在硬件设计上提高液晶屏幕的刷新速度。
2.1 SED1335控制器
SED1335型液晶显示控制器由振荡器、功能逻辑电路、显示RAM、管理电路字符库及其管理电路,以及产生驱动时序的时序发生器组成。振荡器工作频率在1~10 MHz范围内可选。SED1335的显示RAM具有以下特性:
(1)文本显示特性 显示RAM区专用于文本方式显示,该显示RAM区每个字节的数据都认为是字符代码,SED1335将使用该字符代码确定字符库中字符首地址,再将相应字模数据传送到液晶显示模块。在液晶屏上出现该字符的8×8点阵块即文本显示RAM的一个字节对应显示屏上的8×8点阵。
(2)图形显示特性显示RAM区专用于图形方式显示,该显示RAM区每个字节的数据直接被送到液晶显示模块上,每个位的电平状态决定显示屏上一个点的显示状态,1为显示,0为不显示。所以图形显示RAM的一个字节对应显示屏上的8×1点阵。
(3)字符发生器SED1335管理内存字符发生器CGROM,该字符发生器固化160种5×7点阵字符的字模SED1335,由于SED1335仅能处理8位字符代码,所以一次最多只能显示及建立256种字符并在SED1335的字符表中给出内部字符发生器的全部内容,同时给出外扩字符发生器的字符代码范围80H~9FH和E0H~FFH,共64种。
2.2 液晶屏显示硬件电路设计
考虑到SED1335控制器的特点以及显示波形对速度的要求,应用并行数据总线的方法。而DSP2812的外扩数据总线刚好符合并行传输数据需要。I/O数据缓冲接口A0选用外扩地址总线的最低位地址总线A0,通过XINTF,将指令码写入“*******1”的外扩地址中,并将数据写入“*******1”的外扩地址中,因此巧妙方便地解决了A0端口的设定,同时为编程带来方便。基于上述考虑进行设计,液晶屏的硬件连接电路如图1所示。
2.3 液晶屏显示软件设计
液晶屏显示功能是通过向指定的内存区域进行写操作来实现的。通过读指令读取显示缓存区中的内容,并与写入数据相比较,就可有效地检测显示器缓存区RAM功能,结合各种SED1335控制器所提供的指令,全面检测液晶显示器。
结合DSP自身特点所设计的系统硬件电路,在编写软件程序时首先要定义数据段LCDCMD、LCDDATA,并在主程序中进行说明:
#pragma DATA_SECTION(LCDCMD,“LCD_CMDFile”)
#pragma DATA_SECTION(LCDDATA,“LCD_DATAFile”)
然后在CMD中为这两个数据段分配地址:
LCD DATA:origin=0x0080000,length=0x00001
LCD CMD:origin=0x0080001,length=0x00001
图2为液晶屏显示软件设计流程。
尺寸相同的普通串口液晶刷屏速度一般为2~3 s,利用并口外扩数据总线设计方法可将刷屏速度提高到0.5 s,符合设计要求,若采用汇编语言开发该设计,刷屏速度将更快。
3 PS/2键盘功能的实现
3.1 PS/2接口简介
本设计采用带有PS/2接口的扫描式键盘。PS/2接口键盘遵循双向同步串行协议,但主机在总线上总是具有优先权,只需将时钟拉低就可在任何时候抑制来自键盘的通讯。物理PS/2接口是两类连接器中的一种,5引脚的DIN或6引脚的mini-DIN,目前常用的连接器为mini-DIN6引脚插头,17键小键盘也是该连接器。
3.2 PS/2接口硬件电路设计
PS/2接口只需2根数据线,连接简单,图3为PS/2接口硬件连接电路。
3.3 PS/2接口键盘软件设计
DSP处理器监控按键矩阵,若发现有按键被按下释放或按住,将发送扫描码信息包到计算机。其中,扫描码有通码和断码两种类型。当按下或按住按键时,发送通码;当释放按键时,则发送断码。每个按键分配有唯一的通码和断码,则主机可通过查找唯一的扫描码测定具体的按键。键盘上的每个按键的通断码组成扫描码集,PS/2接口键盘默认使用第二套扫描码。
键盘遵循一种每帧包含11位的串行协议,这些位分别为:1个起始位,总为0;8个数据位,低位在前;1个校验位,奇校验;1个停止位,总为1.为了减小系统开销,该设计采用中断方式,在中断程序中检测扫描码,其部分程序代码如下:
为减小误码率,在判断通码后再检测断码,使得DSP处理器获得更准确的判断。
4 结论
本文介绍一种以DSP为核心的嵌入式人机接口设计,经实践证明,该设计方案简沽实用,用途广泛。基于该系统设计思路,根据实际需要和处理器特点会有多种设计方案,并结合BIOS系统的开发将使多任务间的调度更方便。