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

摘要:随着嵌入式系统的飞速发展,嵌入式PC得到了广泛应用。标准的PC键盘由于体积大,按键多等原因在多数情 况下不能满足要求。本文在介绍PS/2通信协议的基础上,利用AT89C52实现了一种PC非标准键盘的设计。给出了其完整的硬件实现电路图和主要的软件 开发方法。该键盘具有结构简单、工作稳定、便于扩展等特点,并已在某型航空图像回传系统中得到具体应用。
关键词
:键盘,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单片机主要完成键盘扫描,确定键盘闭合断开的信息,并发送键码和同步时钟到工控机;逻辑系统提供起振信号及看门狗定时复位功能,防止出现死 机;矩阵键盘为4×4的行列式键盘,当有键按下时产生低电平触发信号,便于单片机检测有效的按键操作。该键盘由4×4=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)256×8字节内部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

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值