发送零和1到USB数据引脚?

时间:2012-01-17 12:38:59

标签: c++ usb

我试图弄清楚如何制作一些软件和USB硬件。

让我们把硬件放在一边。对于软件,如何将数据发送到USB端口?

C ++ / Java或任何其他语言(更喜欢在Linux上工作)。

5 个答案:

答案 0 :(得分:3)

USB端口不像“哑”RS-232串口。它是一种总线,需要非常复杂的处理,全部由主机(通常是计算机)驱动。诸如“向数据引脚发送1和0”之类的极低级操作或多或少是不可能的。

在Linux中从用户空间编程USB的最简单方法可能是使用libusb

在客户端(您的自定义USB硬件)端,查找具有内置USB控制器或软件堆栈的系统。我不认为编写自己的软件堆栈是可行的,因为你(没有冒犯)似乎没有达到你对USB知识的那个级别。

例如,

V-USB是Atmel AVR微控制器的软件USB堆栈。

答案 1 :(得分:1)

正如其他人指出的那样,你必须为USB设备编写一个驱动程序。

另一种选择是使用USB串行协议与设备通信,然后您的硬件需要USB转串口芯片。关于USB over serial的最佳答案是Mike DeSimone提出的问题How to get C++ to perform I/O from a USB Port like a Serial Port

答案 2 :(得分:1)

如果您想使用USB对I / O进行bitbang I / O,则可以将FT232(用于许多USB转串行电缆)等FTDI芯片连接到USB端口。 在PC上,您可以使用libFTDI来阻止FTDI芯片的I / O引脚。

我认为这是使用USB控制I / O引脚的最简单方法。

答案 3 :(得分:1)

串行端口仿真的替代方案是USB HID(人工输入设备),它在Linux上开箱即用。您可以使用“HIDAPI”与您的设备进行通信。

答案 4 :(得分:-1)

usb端口只是一个串口。因此,您首先想要的是编写一个软件来处理串口通信。

请注意,只要设备连接,操作系统就可以为设备分配不同的端口号。