2010-09-13 201 views
21

我希望能够将计算机A的USB端口连接到计算机B的USB端口,以使计算机A充当计算机B的键盘。模拟键盘的输出(使计算机成为另一台计算机的键盘)

任何想法我会怎么做呢?

我不是在寻找一个现成的解决方案(虽然如果一个已经存在并且是开源的我不会反对),但是对于一个起点或一个好的资源。

我想我需要编写一个模拟键盘协议的驱动程序,而且我还需要整理整个USB主/从场景。

无论如何,任何帮助,将不胜感激。

P.S. 我想用鼠标来做,但我想它会是一个非常相似的过程,我认为(但我可能疯狂地误会),从键盘开始会更容易。

+1

你有没有想出任何解决方案呢? – bchurchill 2011-11-16 07:32:49

回答

5

Linux支持USB gadget mode,但我认为你需要特殊的硬件。即正常PC中的USB端口不能做小工具模式。

另一种方法是将LPT端口连接到PS/2键盘输入,这在技术上更简单。

0

如果不是USB,我会通过局域网连接这两个,并有一个模拟键盘/鼠标(例如通过DirectInput)的客户端/服务器C#程序。

对于USB部分,据我可以告诉你需要一些硬件适配器。如果您正在进行硬件开发,或者至少不用担心烙铁和一些μc编程,请参阅http://www.obdev.at/products/vusb/hidkeys.html,其中可以免费获得用于小型atmel芯片的HID堆栈。对于这种解决方案,您需要两个通过I²C或SPI等进行通信的atmega芯片。
我也建议两个电气分离。你永远不知道他们是否共享相同的电气接地。

+0

通过电气分离,你的意思是说,在“从属”一方,我应该断开VCC和GND,并且光耦合D +和D-线? – 2010-09-13 08:36:37

+0

尽管如此,基本的是,由于D +和D-线中不可预知的信号方向,实际上很难将USB连接电分离。但是,很容易做到的是(例如光学)去耦合两个微控制器之间的SPI或类似的连接。然后每个μc将通过它自己的USB连接单独供电。 – 2010-09-13 10:22:51

+0

亲爱的downvoter:什么是-1?请帮助我改进:我的回答是错误的还是偏离主题? – 2013-01-15 13:28:44

6

我很高兴能找到一些能够做到这一点的Hagstrom Electronics。它需要一个串行输入并将USB键盘输出发送到另一台PC。如果你将它与现成的USB转串口适配器相结合,那么你就是金手镯。

http://www.hagstromelectronics.com/products/usbkm232.html

我一直在寻找周找到这一点,所以我决定回去一些论坛和分享发现。

相关问题