位置:51电子网 » 技术资料 » 传感与控制

微机键盘接口的研究及其在仪器仪表中的应用

发布时间:2008/5/27 0:00:00 访问次数:672

        作者:大连理工大学电子与信息工程学院(116023)仲崇权

     徐世昌 杨素英

     来源:《电子技术应用》

     摘要:介绍了标准微机键盘与计算机接口的规范,分析了键盘的串行通信协议和接口工作时序,并给出了键盘与单片机接口硬件电路和应用程序实例。

    

    

     关键词:键盘

     接口 时序 串行通信 扫描码

     微机键盘以其稳定性好、使用方便、价格便宜等优点,可有效地应用在输入量大、要求复杂的仪器仪表中。现存的计算机键盘种类很多,但基本原理和接口规范是一样的。ibm-pc键盘的核心器件是intel公司的单片机8049。单片机采用行列扫描方法来监测是否有键按下。若有键按下,则转换为相应的扫描码,通过串行通讯线将其传给计算机,由主机接收并处理成扩展键盘码。

     1 标准键盘工作原理

     1.1 通信接口

     键盘与计算机通过一个五芯接口插座座(pc/2接口为六芯)相接,各引脚定义分别是电源(vcc)、地(gnd)、串行时钟线sck和串行数据线sio,还有一根线未用。两种键盘接口的插座外形图及各线定义如图1所示。

     1.2 通信协议

     标准键盘与计算机采用双向通信方式,键盘可以发送数据给计算机,计算机也可以发送命令给键盘。计算机有最高优先权,可以在任何时候发命令给键盘。通信协议是标准的串行异步通信格式,1位起始位,8位数据位(lsb在先),1位奇校验位p,最后是1位停止位。数据格式如图2所示。

     当sio和sck同时为高电平时,键盘可以发数据给计算机。sck可以用作清除发送线。如果计算机将sck拉为低电平,键盘将不发送数据,而是将要发送的数据放到发送缓冲区中,直到sck变为高电平才开始发送数据。如果计算机将sio拉低,则键盘在检测到这一变化时,将接收来自计算机的命令。

     图3(a)给出了键盘发送一个字节的时序。键盘先将sio拉低,通知计算机准备接收数据。键盘在sck的上升沿后改变数据,在下降沿时数据有效,可以被计算机读取。发送数据的时钟信号由键盘产生。有的文献介绍键盘时钟频率的典型值为20~30khz,但实际上键盘的传送速原则不全在这个范围内。笔者曾做过测试,其中一只键盘的野外频率是12.4khz。

     图3(b)给出了键盘接收一个字节的时序。为了避免在同一时刻发送数据,建议计算机先将sck拉低大约60μs

     以上,以此通知键盘不要发数据。然后计算机将sio拉低,表明发送数据开始,并释放sck,由键盘接管sck并产生时钟信号。计算机在此时钟信号的同步下发送数据。键盘接收数据是从检测到sio变低开始的,然后在sck下降沿读起始位,并在sck的每个下降沿读取后缓数据。键盘在接收完校验位后,如果在下一个时钟周期检测到sio处于空闲态(高电平),便会接受新数据并进行处理。在此期间,键盘将把sio置成低电平,直到接受数据完成。如果收到校验位后,键盘检测到sio没有处于空闲态,它将继续发送时钟信号直到sio空闲。

     1.3 键盘扫描码

     一个基本按键的扫描码由3个字节组成,1个字节的接通扫描码和2个字节的断开扫描码。其中第一与第三个字节相同,中间字节是断开标志f0h。例如b键的接通扫描码是32h,断开扫描码是f0h32h。b键被按下时,32h被发送出去,如果一直按住不放,则键盘将以按键重复率不停地发送32h,直到该释放放,才发出断开扫描码f0h

     32h.扫描码与按键折位置有关,与该键的ascii码并无对应关系。键盘上还有部分扩展键(功能键和控制键等),这些键的扫描码由5个字节组成。与基本键的扫描码相比,接通扫描码与断开扫描码前各多了一个固定值字节e0h。例如home键的接通扫描码是e0h

     70h,熠工扫描码是e0h f0h 70h。还有两个特殊键,printscreen键的接通扫描码是e0h

     12h e0h 7ch;断开扫描码是e0h f0h 7ch e0h f0h12h,pausebreak键的接通扫描码是e1h

    

        作者:大连理工大学电子与信息工程学院(116023)仲崇权

     徐世昌 杨素英

     来源:《电子技术应用》

     摘要:介绍了标准微机键盘与计算机接口的规范,分析了键盘的串行通信协议和接口工作时序,并给出了键盘与单片机接口硬件电路和应用程序实例。

    

    

     关键词:键盘

     接口 时序 串行通信 扫描码

     微机键盘以其稳定性好、使用方便、价格便宜等优点,可有效地应用在输入量大、要求复杂的仪器仪表中。现存的计算机键盘种类很多,但基本原理和接口规范是一样的。ibm-pc键盘的核心器件是intel公司的单片机8049。单片机采用行列扫描方法来监测是否有键按下。若有键按下,则转换为相应的扫描码,通过串行通讯线将其传给计算机,由主机接收并处理成扩展键盘码。

     1 标准键盘工作原理

     1.1 通信接口

     键盘与计算机通过一个五芯接口插座座(pc/2接口为六芯)相接,各引脚定义分别是电源(vcc)、地(gnd)、串行时钟线sck和串行数据线sio,还有一根线未用。两种键盘接口的插座外形图及各线定义如图1所示。

     1.2 通信协议

     标准键盘与计算机采用双向通信方式,键盘可以发送数据给计算机,计算机也可以发送命令给键盘。计算机有最高优先权,可以在任何时候发命令给键盘。通信协议是标准的串行异步通信格式,1位起始位,8位数据位(lsb在先),1位奇校验位p,最后是1位停止位。数据格式如图2所示。

     当sio和sck同时为高电平时,键盘可以发数据给计算机。sck可以用作清除发送线。如果计算机将sck拉为低电平,键盘将不发送数据,而是将要发送的数据放到发送缓冲区中,直到sck变为高电平才开始发送数据。如果计算机将sio拉低,则键盘在检测到这一变化时,将接收来自计算机的命令。

     图3(a)给出了键盘发送一个字节的时序。键盘先将sio拉低,通知计算机准备接收数据。键盘在sck的上升沿后改变数据,在下降沿时数据有效,可以被计算机读取。发送数据的时钟信号由键盘产生。有的文献介绍键盘时钟频率的典型值为20~30khz,但实际上键盘的传送速原则不全在这个范围内。笔者曾做过测试,其中一只键盘的野外频率是12.4khz。

     图3(b)给出了键盘接收一个字节的时序。为了避免在同一时刻发送数据,建议计算机先将sck拉低大约60μs

     以上,以此通知键盘不要发数据。然后计算机将sio拉低,表明发送数据开始,并释放sck,由键盘接管sck并产生时钟信号。计算机在此时钟信号的同步下发送数据。键盘接收数据是从检测到sio变低开始的,然后在sck下降沿读起始位,并在sck的每个下降沿读取后缓数据。键盘在接收完校验位后,如果在下一个时钟周期检测到sio处于空闲态(高电平),便会接受新数据并进行处理。在此期间,键盘将把sio置成低电平,直到接受数据完成。如果收到校验位后,键盘检测到sio没有处于空闲态,它将继续发送时钟信号直到sio空闲。

     1.3 键盘扫描码

     一个基本按键的扫描码由3个字节组成,1个字节的接通扫描码和2个字节的断开扫描码。其中第一与第三个字节相同,中间字节是断开标志f0h。例如b键的接通扫描码是32h,断开扫描码是f0h32h。b键被按下时,32h被发送出去,如果一直按住不放,则键盘将以按键重复率不停地发送32h,直到该释放放,才发出断开扫描码f0h

     32h.扫描码与按键折位置有关,与该键的ascii码并无对应关系。键盘上还有部分扩展键(功能键和控制键等),这些键的扫描码由5个字节组成。与基本键的扫描码相比,接通扫描码与断开扫描码前各多了一个固定值字节e0h。例如home键的接通扫描码是e0h

     70h,熠工扫描码是e0h f0h 70h。还有两个特殊键,printscreen键的接通扫描码是e0h

     12h e0h 7ch;断开扫描码是e0h f0h 7ch e0h f0h12h,pausebreak键的接通扫描码是e1h

    

相关IC型号

热门点击

 

推荐技术资料

滑雪绕桩机器人
   本例是一款非常有趣,同时又有一定调试难度的玩法。EDE2116AB... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!