接口原理图
2.3 PS/2设备和PC机的通讯
PS/2设备的Clock(时钟脚)和Data 数据脚都是集电极开路的,平时都是高电平.当PS /2设备等待发送数据时,它首先检查Clock(时钟脚)以确认其是否为高电平.如果是低电平,则认为是PC机抑制了通讯,此时它必须缓冲需要发送的数据直到重新获得总线的控制权(一般PS/2键盘有16个字节的缓冲区,而PS/2鼠标只有一个缓冲区仅存储最后一个要发送的数据).如果Clock(时钟脚)为高电平,PS/2设备便开始将数据发送到PC机.一般都是由PS/2设备产生时钟信号.发送时一般都是按照数据帧格式顺序发送.其中数据位在Clock(时钟脚)为高电平时准备好,在Clock(时钟脚)的下降沿被PC机读入.PS/2设备到PC机的通讯时序如图2所示.
当时钟频率为15kHz时,从Clock(时钟脚)的上升沿到数据位转变时间至少要5μs.数据变化到Clock(时钟脚)下降沿的时间至少也有5 μs,但不能大于25 μs,这是由PS/2通讯协议的时序规定的.如果时钟频率是其它值,参数的内容应稍作调整.
上述讨论中传输的数据是指对特定键盘的编码或者对特定命令的编码.一般采用第二套扫描码集所规定的码值来编码.其中键盘码分为通码(Make)和断码(Break).通码是按键接通时所发送的编码,用两位十六进制数来表示,断码通常是按键断开时所发送的编码,用四位十六进制数来表示.
3 PS/2接口的嵌入式软件编程方法
PS/2设备主要用于产生同步时钟信号和读写数据.