当前位置:首页 > 单片机 > 单片机
[导读]介绍PC键盘和键盘接口的PS/2通信协议,以及用89C51实现可锁定键盘的软件和硬件设计方法。

    摘要:介绍PC键盘和键盘接口的PS/2通信协议,以及用89C51实现可锁定键盘的软件和硬件设计方法。具有安全可靠、容错能力强、可以直接采用标准键盘进行改装、便于实现等优点,并保留标准键盘的全部功能。

    关键词:PS/2 89C51 C51 键盘

引 言

  在智能仪器、自动控制等领域,已大量使用嵌入式PC,如Advantech公司的PC/104、AMD公司的DIMM-PC等。为适应开放式、模块化的要求,嵌入式PC具有标准的PC接口,如VGA显示器控制接口、以太网接口、RS232接口、PC/AT键盘接口等。所以,可以用标准的PC键盘对嵌入式PC进行操作与控制。键盘在输入指令之后,可能很长一段时间不用。为计算机安全和防止误触发,需要将键盘锁定,还要对某些键采取屏蔽措施,但是PC标准键盘不能满足这些要求。本文介绍一种用89C51设计实现的可锁定加密PC/AT键盘。

1 键盘功能及工作原理

  PC键盘功能主要有按键识别、去抖、重键处理、发送扫描码、自动重发、接收键盘命令、处理命令等。键盘有编码键盘和非编码键盘。编码键盘程序设计简单,但硬件电路复杂,价格较高;非编码键盘用软件来实现识别键、编码转换、去抖等功能,硬件电路简单,价格便宜。现代微机系统中广泛采用非编码键盘。PC键盘多采用18行×8列的二维矩阵行列结构。采用行扫描法识别按下的按键。

2 PS/2协议

  PS/2协议是外设与主机之间通信的一种同步双向串行协议。在该协议中主机拥有较高的优先级,在一定条件下可以终止外设正在进行的发送过程。PS/2协议采用的传送数据帧的格式为:1位起始位(0)、8位数据位、1位奇偶校验位、1位停止位(1)。数据发送时低位在前,高位在后。外设每收到主机发来的1帧数据,都要紧随该帧的停止位发送一个握手位ACK(0)应答主机。然后,外设还要发1帧应答数据(0xF0),表示外设已经完整地接收到了主机的命令;而主机则不需发送握手位,也不需要发送应答帧。

    2.1 键盘到PC键盘接口的通信

   当时钟线和数据线均为高电平时,允许键盘发送数据,系统将接收数据;当时钟线被拉为低电平时,表明系统禁止数据传输。图1给出了发送时序,包含1个低电平触发的起始位、8位数据位、1个奇校验位和1个高电平的结束位。

    2.2 PC系统到键盘的通信协议

   若时钟线出现高电平,数据线出现低电平,表明系统请求发送,键盘准备产生同步时钟脉冲串,并接收数据。包含了1个低电平触发的起始位、8位数据位、1个奇校验位、1个应答位、1个高电平的结束位。图2为时序图。

(1)键盘命令及执行过程

① FFH:复位键盘。系统通过此软件复位命令使键盘进入程序复位和内部自测试,称为基本保证测试(BAT)。复位键盘的过程如下:

a. 键盘收到FFH后立即回送ACK(FAH)作答;

b. 键盘接口收到ACK后,将键盘时钟和数据线置为高电平;

c. 键盘检测到此状态后开始BAT操作;

d. 如果BAT正确完成,键盘发送AAH以表示结束,

    否则以FDH(或其它任何值)表示诊断有误。

② FEH:重新发送。当系统检测到从键盘送来的任何传输错误时,它便向键盘发送FEH命令。键盘接收到此命令后,将重新送出原来的内容。

③ FDH~F7H:空操作(保留未用)。

④ F6H:设置缺省值。此命令使键盘所有条件复位到电源接通时的缺省状态,键盘继续扫描。

⑤ F5H:设置缺省值和停止键盘。此命令使键盘所有条件复位到电源接通时的缺省状态,并停止键盘扫描,等待下一个键盘命令。

⑥ F4H:启动键盘。键盘接收到此命令后,用ACK(FAH)作答,清除输出缓冲器,并启动键盘开始扫描。

⑦ F3H:设置拍发速率和延时参数。每当按下任一键时,键盘以拍发速率连续送出键的接通码,直到键被释放为止。延时参数是指按下一键后,键盘输出的响应时间。

  系统缺省设置:拍发速率=10个/s±20%,延时=500ms±20%。

   当要改变设置时可以使用F3H命令,并后跟一个字节的参数。参数定义如表1所列。

表1 

D7 D6  D5 D4  D3 D2  D1  D0
0 C B A

  计算拍发速率和响应延时的公式如下:

   拍发速率=1/[(8+A)×2B×0.00417] (1/s)

   响应延时=(1+C)×250 (ms)

注:缺省的延时参数值为2CH。

此命令的执行过程如下:

a. 键盘收到F3H命令后,用FAH予以响应,并停止

扫描和等待随后的参数;

b. 键盘若收到随后的设置参数,用另一个ACK响

应,并按其参数设置新的拍发速率和响应延时,

之后重新开始扫描(若键盘原来是开放的);

c. 键盘若收到FAH命令,但无随后的设置参数,则

键盘结束命令设置,并保持原来的拍发速率和响

应延时,停止扫描。

⑧F2H,F1,EFH:保留未用。

⑨F0H:设置键盘扫描码命令。此命令用于设置键盘的扫描码,后跟参数指定三种扫描码的哪一种。键盘复位时,默认扫描码是第二种。

⑩EEH:回送命令。此命令用于辅助诊断,要求键盘接收到EEH时也要回送EEH予以响应。若键盘原来是开放的,则继续扫描。

EDH:置位/复位LED指示器。键盘右上角有三个LED指示器,分别反映Caps、Num和Scroll三个键的锁定情况。参数字节如表2所列。

表2

D7D3 D2 D1 D0
保  留 1=激励Caps LED 1=激励Num LED 1=激励Scroll LED

  此命令执行过程与F3H相似。若命令后跟参数,则按参数设定LED状态并继续扫描。若仅有命令无参数,则不改变LED原状态,并停止扫描。

(2)键盘响应

键盘在下列四种情况下都会向键盘接口发送数据。

① 按下任一键,键盘以拍发速率向接口发送键盘接通扫描码。

② 释放所按下的键,键盘发送断开扫描码。

③ 系统向键盘发送键盘命令后,键盘回送应答。

④ 当用户按键速度超出键盘所能容纳的最大键个数时,键盘做出响应。

后三种情况称为键盘响应。响应字节有7个,定义如下。

    ① FEH:重新发送响应。当键盘收到一个无效的键盘命令,或者检测到奇偶错的键盘命令时,键盘回送响应字节为FEH,要求系统重发键盘命令。

② FAH:正常应答。对任何一个有效的键盘命令,键盘回送FAH予以响应。

③ 00H:超限应答。当用户按键速度超出键盘所能容纳的最大键符个数时(16个字节的缓冲器),键盘发送00H。

④ FDH:诊断故障应答。键盘接受软件复位命令,执行自测试过程中。若检测到故障,则以FDH应答。此时,键盘停止扫描并等待下一个键盘命令。

⑤ AAH:诊断正常应答。键盘在软件复位过程中,正常完成BAT测试,以AAH应答。

⑥ FEH:回响命令的应答,对键盘FEH命令的应答。

⑦ F0H:断开扫描码前缀,键盘对键符按下后释放的应答,第一个字节为F0H,第二个字节为接通扫描码(有几个键例外)。

3 硬件设计

   PC系列键盘采用18行×8列的矩阵行列结构。89C51单片机有4个8位I/O端口,因此可以采用P0、P2口再加上P3口的2个(P3.6和P3.7)作为行扫描线。P1口作为列输入线(如果用P0口作列输入线,必须加上拉电阻)。采用P3.0、P3.1作为数据线和时钟线与PC系统进行通信,用P3.2、P3.4、P3.5控制键盘上的3个指示灯。硬件原理如图3所示。

  键盘与计算机通过一个五芯(PS/2接口为六芯)插座相接,4个有效引脚的定义分别是电源(VCC)、地(GND)、串行时钟线(SCK)、串行数据线(SIO)。

4 软件设计

① 消抖及重键处理:通过软件上延时程序来消除抖动;采用后按键优先处理,即多键同时按下时,只重复发送最后按下键的扫描码。

② 程序包括键盘扫描子程序、发送键码子程序、发送数据子程序、接收命令子程序、定时器1中断服务程序、主程序等。键盘扫描子程序用于扫描键状态,将被按键的位置号存入缓冲器中;发送键码子程序用于将缓冲区键的接通码或断开码发送给计算机键盘接口或者存在键盘密码缓冲区中;发送数据子程序用于将数据发给计算机键盘接口;接收命令子程序用于接收计算机键盘接口发来的键盘命令;定时器1中断服务子程序用于给程序中的延时提供标准时钟,并具有软件看门狗功能,防止软件出现死机现象;主程序用于系统初始化,子程序调度,锁定状态的显示等。

图6 发送缓冲区键码子程序流程图

    图4~6是主要软件模块的流程图。单片机源程序见本刊网络补充版(http://www.dpj.com.cn)。

5 结 论

  本文介绍的PC/AT键盘具有结构简单、设计灵活、安全可靠的特点,可用于标准PC和嵌入式PC。本键盘可以在标准的键盘基础上进行改造,只需换掉原来的控制芯片即可,可节省设计成本。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

中国 北京,2025 年 8 月 28 日 —— 全球领先的数学计算软件开发商 MathWorks 今日宣布,香港中文大学(下文简称:港中大)一支研究团队采用 MATLAB®、Medical Imaging Toolbo...

关键字: 生物医学 计算机

加利福尼亚州圣克拉拉 — 2025 年 8 月 25 日 — NVIDIA 今日宣布 NVIDIA Jetson AGX Thor™ 开发者套件和量产级模组现已发售。这是一款功能强大的新一代机器人计算机,旨在为制造、物流...

关键字: 机器人 计算机 AI

北京2025年8月18日 /美通社/ -- 2025年8月,软通动力集团一项关键决策引发行业瞩目——以自有资金8亿元向全资子公司软通计算机有限公司完成实缴增资,使其注册资本增加至23亿元。这笔战略注资不仅彰显集团对信创核...

关键字: AI 硬件 计算机 智能化

济南2025年8月12日 /美通社/ -- 近年来,国家大力推进信创产业发展,明确要求关键行业信息系统实现 "自主可控、安全可靠",老年教育领域作为民生服务的重要阵地,其信息化建设的国产化适配已成为行...

关键字: 全栈 BSP 数据库 加密

北京2025年7月31日 /美通社/ -- 近日,权威咨询机构德本咨询重磅发布"2025中国信创PC市场影响力品牌TOP 10"榜单。软通计算机凭借其迅猛的发展势头、领先的技术整合能力及显著的市场表现...

关键字: 计算机 TOP PC PC市场

我想把整个红外数据库,数千个远程文件分布在数百个文件夹中,打包到一个手持设备中。

关键字: 红外通信 M5Stack 计算机

工控机,全称为工业控制计算机,是一种专为工业环境设计并制造的计算机设备。为增进大家对工控机的认识,本文将对工控机的选择方法予以介绍,以便大家在选择工控机时有所依据。如果你对工控机具有兴趣,不妨继续往下阅读哦。

关键字: 工控机 指数 计算机

为增进大家对工控机的认识,本文将对工控机的变成方法以及工控机对设备的控制予以介绍。

关键字: 工控机 指数 计算机

6月12日消息,据媒体报道,美国宾夕法尼亚州立大学领导的研究团队首次利用二维材料成功制造出一台可执行简单操作的计算机。这一突破为开发更薄、更快、更节能的电子产品奠定了重要基础。

关键字: 非硅二维材料 计算机

上海 2025年6月4日 /美通社/ -- 环旭电子作为全球电子设计与制造服务领导厂商,近年来透过联合设计制造服务模式(Joint Design Manufacturing,JDM),协助知名品牌客户开发出兼具强固性与...

关键字: 电子 计算机 BSP DESIGN
关闭