新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种嵌入式PC非标准键盘的设计

一种嵌入式PC非标准键盘的设计

作者:时间:2007-05-28来源:网络收藏

摘要:随着系统的飞速发展,得到了广泛应用。由于体积大,按键多等原因在多数情况下不能满足要求。本文在介绍PS/2通信协议的基础上,利用AT89C52实现了一种。给出了其完整的硬件实现电路图和主要的软件开发方法。该具有结构简单、工作稳定、便于扩展等特点,并已在某型航空图像回传系统中得到具体应用。
关键词
:键盘,PS/2协议,单片机,系统

随着嵌入式系统的飞速发展,嵌入式PC在工业控制、测量仪器等领域得到了广泛应用,如ADVANTECH公司的PC/104、 AMD公司的E86等。它们除了具有PC的功能外,还提供了功能强大的各种接口,如:平板/VGA显示器控制接口、光驱接口、以太网接口、RS-232/422/485接口、PC/AT键盘接口等。这就为新产品开发的标准化、模块化提供了方便,可大大缩小研发周期,降低研制成本。由于嵌入式PC具有标准PC键盘接口,也就是说,可以用标准的PC/AT键盘来对嵌入式PC进行操作与控制。然而,在很多实际应用中,需要用到键的数量和类型有很大的差异,并希望键盘具有体积小巧、便于布放等特点。因此,希望能够一种小巧、灵活的PC非标准键盘,来满足用户需求。

本文根据课题要求,了一种由AT89C52实现的PC非标准键盘。下面对其硬件设计、软件实现及PS/2键盘通信协议分别进行介绍。

1硬件设计

图1为该键盘电路原理图,由ATMEL公司的微控制器AT89C52、逻辑系统(包括看门狗复位电路X25045和晶体振荡电路)、矩阵键盘三部分组成。AT89C52单片机主要完成键盘扫描,确定键盘闭合断开的信息,并发送键码和同步时钟到工控机;逻辑系统提供起振信号及看门狗定时复位功能,防止出现死机;矩阵键盘为44的行列式键盘,当有键按下时产生低电平触发信号,便于单片机检测有效的按键操作。该键盘由44=16个按键组成,其中行线为P0.4~P0.7,列线为P0.3~P0.0。P3.0为键码数据输出,P3.1为同步时钟,分别输出到嵌入式PC的PS/2端口;+5V电源由主机提供。

由于AT89C52的IO端口为32个,除看门狗电路的输入输出端CS、SI、SO、SCK、以及键码数据输出端Data和时钟输出端Clock外,还剩26个可用端口,这样,其最大可独立响应13 13=169个键的输入,不仅可满足标准键盘的多键需求,也可满足工控机常用控制键的要求。X25045为看门狗电路,它实时接收来自AT89C52的CS信号,并自动判断两次信号的间隔时间。当时间间隔到达设定时间时,其RST输出端保持低电平;反之,其RST输出端输出高电平,AT89C52被复位。此外增加了发光二极管LED,用来指示键盘的工作状态。


图1键盘电路原理图


AT89C52微控制器具有如下特点[1]

(1)具有8K字节可编程闪存;

(2)2568字节内部RAM;

(3)32根可编程I/O线;

(4)3个16位定时计数器;

(5)8个中断源;

(6)可编程串行UART通道

2 PS/2协议

标准键盘和工控机或者嵌入式PC之间是按照PS/2协议进行通信的,因此设计的非标准键盘也必须严格按照该协议,这样才能为系统正确识别和作出响应。PS/2键盘接口标准由IBM公司于1987年推出,该标准采用了6脚mini―DIN连接器(见图2)。该连接器在封装上更加小巧,仍然用双向串行通信协议,并且提供有可选择的第三套键盘扫描码集,同时支持l7个主机到键盘的命令。

图2 PS/2端口示意图

PS/2接口的6个引脚只有4个有定义,它们分别是1脚Data(数据脚)、5脚Clock(时钟脚)、3脚Ground(电源地)、4脚Vcc(+5V电源);2脚和6脚为未定义保留端口。PS/2键盘与PC机的物理连接,只要保证这4根线一一对应就可以了。键盘靠PC的PS/2端口提供+5V电源,因此不需要专门电源。另外时钟脚Clock和数据脚Data都是集电极开路的,需外接上拉电阻,上拉电阻的阻值一般可取1K~10K,这和51系列单片机IO口的特性是一致的。

PS/2通信协议是一种双向同步串行通信协议。通信的两端通过Clock(时钟脚)同步,并通过Data(数据脚)交换数据。PS/2的数据是按帧进行传输的,每一数据帧包含l1~12个位,其中键盘发送的数据帧为11位。1个起始位(低电平)、8个数据位(低位在前,高位在后)、1个奇偶校验位(采用奇校验)、1个停止位(高电平)。在键码传送的同时,微控制器还传送1个键码时钟同步信号,用于同步键码数据的接收,键码中每个数据位的传送发生在键盘时钟的下降沿。最大的时钟频率是33kHz 而且大多数设备工作在10~20kHz,推荐频率在15kHz左右[2]

当有键按下时,键盘发送一个接通码给主机,接通码值在00~7F之间。当按键松开后,键盘首先发送断开码标志F0H,然后再发送该键的接通码。如果按键按下0.5秒仍没断开,则以每秒6个键码的速率发送到主机。Clock和Data必须为高电平时,才能传送键码数据。键码的每一位传送发生在时钟的下降沿,在时钟高电平期间发生变化。

图3为接通键码为2C,即按下t键时,键码和时钟的传送时序。

图3 键码2C传输时的通信时序


3软件实现

软件包括定时0中断子程序、定时1中断子程序、主程序等。其中,定时器0中断子程序用于定时(如50ms)检测单片机工作状态,实现看门狗功能,完成单片机的自动复位,防止软件出现死机现象。定时器1中断子程序用于设定时钟高低电平的持续时间,即确定时钟的频率,这里采用的时钟频率为16 kHz。主程序循环检测有无键被按下、判断哪个键被按下并确定对应的键码,然后确定是否输出键码和同步时钟信号。如有键被按下,则输出相应的键码同时并输出同步时钟信号。然后再扫描按键是否断开,若断开则发送断开扫描码和时钟信号。主程序流程如图4所示。


图4 主程序流程图


这里值得注意的是:一是键盘断开标志码0F0H和接通码之间应该有一定的延时(几十毫秒即可);二是键盘数据位应该在时钟下降沿到来之前就应该准备好,即应该有十几微秒的提前量。

4结束语

经过实际测试,该键盘工作稳定,能够对嵌入式PC进行正确的操作和输入控制,并且已在某型航空图像回传系统中得到具体应用。本文设计的非标准键盘具有结构简单、灵活性强、易于编程、体积小、成本低的特点,并可根据用户需要随意设计和布放,对使用工控机的各种测试与控制仪器具有通用性,只要稍加改动就可应用于其它嵌入式应用的场合。

本文作者的创新点:根据课题任务要求,用单片机AT89C52实现了对嵌入式工控PC的非标准键盘输入,进而控制整个系统的运行。该键盘实现简单、工作稳定,较传统的标准键盘具有体积小、灵活性强的特点,同时对于其它嵌入式工控PC应用系统具有通用性。因此,该设计具有良好的市场前景和推广应用价值。

参考文献:
[1] ATMEL公司,AT89C52中文数据手册.
[2]Roy Show.PS/2键盘鼠标协议,2002.
[3] 张开生,李霞,王金广,工业控制计算机红外线遥控键盘的设计,微计算机信息,2005.16:122-124

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭