PS2非标准PC键盘调试心得

调试PS2的内容主要分为两个部分:1.设备(如键盘)发送数据给计算机。2.计算机在开机时设别设备。

 

调试的第一步,应先将设备(以下用键盘来代表设备)发送数据给计算机的通信协议调通,

这一步骤相对来说比较简单,调通后可以确保发送时序没有问题,因为在开机识别键盘时,需要应答计算机的命令。先用其他的好的键盘将你自己用单片机模拟的PS2键盘带入计算机中,然后调试程序,最终使你的PS2键盘能和计算机准确的通信。

 

调试完第一步,就可以接着调是PS2键盘的开机识别了。

在我们调试时先抓了一帧标准键盘的通信时序:

在上电的开始:

《图片无法上传》

在调试的最开始,我们一直不清楚A段时序是如何产生的,有什么作用,键盘是在什么时候开始发送自检通过命令0xAA(现在也不知道呵呵)。于是尝试着用CLKDATA的与或运算,来找到发送自检通过的命令,但以失败告终。然后我们在单片机上电加了一段延时,通过调节延时的长短来避开A段,发送0xAA。没想到竟然通过了BIOS的检测,但当将硬盘接上的后,又不能通过检测。分析应该是由于加上硬盘后使A段的时间发生了变化故不能用延时做。

 

于是将延时去掉,初始化完后直接发送0xAA,(期间调了一段时间的PS2接收函数),竟然收到计算机的命令0x45(协议上每找到该命令),在回了0xFA后竟然通过了BIOSWindos的检测。

 

接收函数最后ACK的输出与协议上的有点不同:

读完STOP为后,clk为高,延时,键盘将DATA拉低,在把CLK拉低,clk释放,data释放,键盘把CLK拉低,在拉高(协议上没有这两步)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值