首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于嵌入式的故障诊断专家系统驱动程序设计(2)

基于嵌入式的故障诊断专家系统驱动程序设计(2)


在本设计中主要完成A/D的转换、触摸屏上触摸点坐标的显示、XY轴方向的确定以及有效坐标范围的确定。整个程序设计包括环境变量初始化、对 LCD控制器和串行口的初始化以及触摸屏控制与显示程序。触摸屏的控制与显示程序包括串口数据传送、液晶显示控制、触摸屏定位、中断处理程序等。中断处理程序中又包括A/D转换、坐标计算、坐标检测、坐标存储与显示。
3.2 键盘驱动
3.2.1 功能要求
考虑到设备提供的面积有限,设计5x5矩阵键盘满足实际需求。
1)实现矩阵键盘上所定义的各个按键功能。①方向键:上、下、左、右;②功能键:确定、取消、菜单,通信、导航;③数字键:0~9;④扩展功能键:星号键,井号键;
2)给应用程序提供接口。其中包括:
①按键消息包括WM_KEYD0WN消息,WM_KEYUP消息,WM_CHAR消息。②按键延时要求当用户按下某个按键(电源除外),发送第 1条WM_KEYDO-WN消息。对于上、下、左、右键,按键被按下累计400 ms后,发送第2条WM_KEY_DOWN消息,此后每隔100 ms发送l条WM_KEYDOWN消息,直至按键被放开。
3.2.2 设计步骤
设计步骤如下:
1)初始化:初始化主要是进行中断设置,对键盘中断、GPIO端口中断屏蔽位和挂起位进行设置。
2)获得扫描码GetScanCode()函数。
3)获取虚拟键值:通过修改一个影射表,影射表的内容主要是扫描码与虚拟键之间的对应关系。
4)布设管理。
3.3 LCD驱动
LCD主要用于显示文本和图形信息。液晶显示屏具有轻薄、体积小、低功耗、无辐射、平面直角显示等特点。液晶显示屏按原理分为STN(超扭曲向列)和TFT(薄膜晶体管)2种。
GDI(图形设备显示接口)是一个系统组件,它用来加载和调用设备驱动。在Windows CE中,GDI包含在图形事件用户界面中。在Windows CE中,显示驱动是一个本机驱动,那就意味着有常用的接口,这种接口会给显示接口提供一组函数集。所以将不会有比较复杂的操作。Win-dows CE显示驱动只有唯一的一个函数DrvEnableDriver()需要导出,这个函数将会在驱动加载的时候被GDI所调用,同时把函数指针返回给其它的 DDI函数。开发的过程中需要注意显示设备使用的是线性的帧缓冲,这样由CPU直接控制的显示内存就需要是连续的。微软提供了一组C++类叫GPE(图形原始引擎)。对于图形的操作都是建立在这个类上。
IntNumModes():返回显示驱动所支持的显示模式数量。
SCODE GetModeInfo(GPEMode*pMode,int modeNo):返回具体显示模式的信息,如显示宽度和高度,一个像素用几位来表示。
SCODE SetMode(int modeId,HPALETTE*pPalettetHandle):设置显示模式。对于不同的显示设备,我们都需要用这个函数来设置显示设备的显示模式。
SetPointerShape():设置光标位图。
MovePointer():移动光标。
其他的函数接口就不一一介绍,可以参考源代码。
4 结束语
本文以Windows CE作为目标平台,实现了在WindowsCE驱动程序设计时,按照先确定要设计的驱动程序类型是本地驱动程序还是流接口驱动程序,再选择驱动程序开发方法使用分层驱动程序设计。实际运行表明,设计的操作系统的键盘驱动程序、触摸屏、LCD驱动、电源管理的驱动程序开发为界面程序的开发提供了一个稳定良好的环境,大大提高了开发的速度。
返回列表