基于DSP为核心的人机接口设计

人机接口是嵌入式控制系统的重要组成部分,用于人机之间实时交换控制系统并返回系统状态。嵌入式系统大都采用液晶屏和键盘作为人机接口的输入、输出设备。这里设计的人机接口作为数据采集系统的组成部分,为系统控制和运行监测提供方便,而其本身在各种嵌入式控制系统中又具有广泛的实用性。
2 液晶屏显示功能的实现
这里采用的液晶显示器为rt320240b。该显示器的控制器使用seiko epson公司生产的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系统的开发将使多任务间的调度更方便。

国产粒度仪迎来历史发展机遇期
沁恒股份USB PD等多协议快充方案介绍
家居照明系统智能化缘何始终叫好不叫座?
先进仿真器具备什么功能?
通过互联网来加强家庭安全
基于DSP为核心的人机接口设计
Bourns宣布扩展最轻小、省空间FLAT® 气体放电管(简称GDT)产品
中文对话式大语言模型Firefly-2b6开源,使用210万训练数据
什么是温度传感器?温度传感器原理是什么?一文带你全部搞懂
以下这些因素对连接器效能的影响浅析
AMD EPYC处理器推动空气动力学测试发展
探讨机器学习与深度学习基本概念与运算过程
小米MIX3 5G版瑞士发售!率先为欧洲的用户提供5G手机体验
台积电和三星3nm制程遭遇挑战,研发进度推迟
高精度HUD平视显示系统YXC3225无源晶振YSX321SL
中国建立不可靠实体清单制度 美国股市大跌
微软、亚马逊、英特尔均投资了Syntiant,专注于语音识别AI芯片的开发
安防行业产业结构分三大类别,众多核心零部件公司表现不俗
AI全栈全场景开发具备哪一些可能
C51编译器的数据存储格式及编程技巧分享