引 言
随着嵌入式系统的飞速发展,在嵌入式手持设备中,人机交互设备是与用户接触最多的部分,最能够直接快速地体现出该设备的性能。所以,是否有一个友好的、快速的、可靠的人机交互设备已经成为衡量一款手持设备的重要指标。在嵌入式人机交互设备中,键盘由于其具有很高的准确性和可靠性,能够适应各种恶劣的工作环境,并且具有很长的使用寿命,而得到广泛应用。
本文根据手持终端的特点,设计出一款矩阵键盘,并在Linux平台下开发出键盘的驱动程序。采用Qt/Embedded构建图形界面,通过对 Qt/Embedded自带输入法的分析,结合Murphpinyin中文输入法软件包,构建了一款可输入数字、中/英文的嵌入式键盘。
1 硬件设计
本系统的硬件部分主要是一个4列5行的矩阵键盘,如图1所示。其中列线COL0~COL3使用了S3C2440的4个中断引脚——EINT10、ENIT13、EINT15、EINT20,并且每根列线都有一个4.7 kΩ的上拉电路,把中断引脚电平拉高,确保按键空闲时不会触发中断;行线ROW0~ROW4使用的是S3C2440的5个普通I/O口——GPE11、GPE13、GPG3、GPG6、GPG11。这里需要注意的问题是,一定要确保列线所用的中断在Linux的各个设备中尚未使用到,否则在后面的驱动程序中将会造成驱动程序初始化失败。
考虑到手持终端操作的方便性,将所有的按键进行重新布局,如图2所示。为了延长手持设备的使用寿命、提高可靠性,增加了电源按键Power。另外,考虑到手持设备的低功耗要求,增加了背光控制按钮Back-Light,通过控制LCD_PWREN引脚的高低电平,控制LCD背光的开关。其中电源按键Power、背光控制按键BackLight为单独按键,直接与S3C2440的中断引脚相连。本文重点对矩阵键盘做详细介绍,电源按键和背光控制按键的处理机制与矩阵键盘类似,这里不再做介绍。