你要真能用单片机做出来的话,你可以拿着这个东西去找嵌入式的工作了,8-10K左右的工资,好好谈谈都没问题。
回到你的问题,你这个东西淘宝上有,随手搜搜能找到很多,价格也不贵,十块钱以内,只不过兼容性可能有问题,需要一个一个试。
还有,PS/2键盘其实比USB键盘好用吧?好的机械键盘都带PS/2接口,USB键盘还不能做到完全无冲。
USB协议和PS/2是完全不同的两种东西,虽然都是键盘鼠标,但差异太大了,就像同样都是交通工具,汽车和飞机的差异有多大,这两种协议就有多大。
USB协议是一个多层次的协议,键盘鼠标只是其中的一个Class,中间封装了好几层;PS/2则完全是裸信号,没什么封装。
USB以轮询的方式发送当前键盘被按下的键的键码,没有键盘按下或者弹起的事件;PS/2工作起来更像是以事件的方式通知主机哪个键被按下了或者哪个键被弹起了(电信号也是轮询的);二者工作频率完全不同,速度差异很大;USB用的扫描码和一般PS/2键盘用的扫描码也不是一套编码,具体的你可以看一下Linux的源码里有,反正完全是两套不同的东西。
基本上没有什么东西是相同的。
如果你要用单片机去实现,你需要:
1. 编程的基本技能(C语言)
2. 嵌入式开发的基本技能(熟悉嵌入式系统的开发环境和系统需求)
3. 了解USB控制器,UHCI/OHCI的驱动,并且可能需要开发对应的驱动(难度相当大,国内能独立写出完整的控制器驱动的人,应该不多,主要是这东西有点偏门不说,应用的也少,而且开发也都是一个团队干的)
4. 掌握HID协议
5. 掌握PS/2协议的具体内容
6. 在单片机上实现扫描码的映射,以及HID报文对应的串行输入、输出的实现(要在单片机上实现一个缓存)。
7. 了解PS/2的电气性能,并接线
说实话,你要真把这些都搞懂了,嵌入式开发水平应该算是很高的,靠这个技能吃饭都没问题,依靠这个技能找个8-10K工资的开发岗位问题都不大,甚至去小公司做CTO也都是有可能的。
-----------------------
评论里有人说我我人子弟,我最前面就说了,现成的东西淘宝上就卖几块钱,题主原来问题的意思就是想自己用单片机实现,不是我非要搞的这么复杂。