PS/2标准键盘与单片机的连接

2012-07-19 01:52邬法磊李晓阳
绿色科技 2012年3期
关键词:数据线通信协议中断

邬法磊,李晓阳,尘 源

(青岛理工大学,山东 青岛266033)

1 引言

专用键盘常用作单片机系统中的输入设备,因为要单独设计,不免存在设计制作成本高,通用性差,可靠性不高等诸多不足。在一些按键要求较多的应用系统中使用专用键盘显得更不合时宜。由于PS/2键盘应用较为广泛,且满足多系统要求,所以本文考虑将PS/2标准键盘应用到单片机系统中,既节约了制造成本,又可以满足按键要求多的诸多场合,具有一定的实际意义。

2 PS/2键盘的接口和通信协议

2.1 接口的物理特性

与单片机相连的是CLOCK和DATA引脚,单片机通过这两个引脚实现了与PS/2键盘的通信,接口物理特性见图1。

图1 接口物理特性

2.2 PS/2的通信协议

ps/2通讯协议是一种双向同步串行通讯协议。通讯的两端通过CLOCK同步,时钟信号总是由键盘发出,并通过DATA交换数据。键盘向主机发送数据时,首先检查CLOCK是否为高电平。如果不是,那么主机抑制了通讯。具体时序如图2所示,其中主机一直为高电平。

每一帧数据中开始位总是为0,数据校验采用奇校验方式,停止位始终为1。从设备到主设备通信时,从设备总是在时钟线为高时改变数据线状态,主设备在时钟下降沿读入数据线状态。

图2 单片机接收时序

2.3 扫描码

目前,PC机使用的PS/2键盘都默认采用第二套扫描码。扫描码有两种不同的类型:“通码(make code)”和“断码(break code)”。当一个键被按下或持续按住时,键盘会将该键的通码发送给主机。而当一个键被释放时,键盘会将该键的断码发送给主机。例如,按下A键,通码为0x1c,松开按键时,断码为0xF0 0x1c.

根据键盘按键扫描码的不同,可将按键分为3类:

第1类按键通码为一个字节,断码为0xF0+通码形式。如A键,其通码为0x1C;断码为0xF0 0x1C。

第2类按键通码为两字节0xE0+0xXX形式,断码为0xE0+0xF0+0xXX形式。如Right Ctrl键,其通码为0xE0 0x14;断码为0xE0 0xF0 0x14。

第3类特殊按键有两个,Print Screen键,其通码为0xE0 0x12 0xE0 0x7C;断码为0xE0 0xF0 0x7C0xE0 0xF0 0x12.Pause键,其通码为0xE1 0x14 0x77 0xE1 0xF0 0xl4 0xF0 0x77;断码为空。

组合按键扫描码的发送是按照按键发生的次序,如按下面顺序按左Shift+A键:按下左Shift键;按下A键;释放A键;释放左Shift键,那么计算机上接收到的一串数据为0×12 0×1C0×F0 0×1C0×F0 0×12.在文中的驱动程序设计中,就是根据按键的分类对其分别进行处理。

3 软硬件设计

3.1 硬件设计

PS/2键盘与单片机的连接方式如图3所示。P3.0接 PS/2数据线;P3.2(INT0)接 PS/2时钟线。因为单片机的P3口内部是带上拉电阻的,所以PS/2的时钟线和数据线可以直接与单片机的P3相连接。单片机接收键盘数据时,数据线上的信号在时钟为低时已经稳定,所以可以采用中断方式实现接收数据(图3)。

图3 硬件设计

3.2 软件设计

软件流程如图4。

本文程序通过中断的方式接收按键值,转换代码后送给LCD1602显示,中断程序如下:

void Keyboard_out(void)interrupt 0

if((IntNum >0)&&(IntNum <9))

KeyV=KeyV>>1;//因键盘数据是低>>高,结合上一句所以右移一位

图4 软件流程

if(Key_Data)

KeyV= KeyV|0x80;//当键盘数据线为1时到最高位

IntNum++;

while(!Key_CLK);//等待PS/2CLK拉高

if(IntNum >10)

IntNum=0;//当中断11次后表示一帧数据收完,清变量准备下一次接收

BF=1;//标识有字符输入完了

EA=0;//关中断等显示完后再开中断

4 结语

本文着重介绍了PS/2通信协议,并将其应用到单片机系统中,可以应用到按键要求多的一些场合,而且对于设计专用键盘也有一定的指导意义。

[1]胡汗才.单片机原理及系统设计[M].北京:清华大学出版社,2002.

[2]孙德文.微型计算机技术[M].北京:高等教育出版社,2002.

[3]宁 飞,王维华,孔 宇.微型计算机原理与接口实践[M].北京:清华大学出版社,2006.

猜你喜欢
数据线通信协议中断
“单片机中断概述”微课教学设计
一种考虑GPS信号中断的导航滤波算法
Linux中断线程化分析及中断延时测试
第三方编织数据线材质更抗拉、更耐用
官方数据线未必靠谱:小米抗拉强度落后其他品牌近5倍!
车载网络通信协议标准化问题研究
跟踪导练(二)(5)
电动汽车充电接口及通信协议新国标发布
会叫唤的数据线
基于R8C的汽车OBD通用故障诊断仪设计