将0和1发送到USB数据引脚

Send zeroes and ones to the USB data pins?

本文关键字:USB 数据 引脚 1发      更新时间:2023-10-16

我想知道如何制作一些软件和USB硬件。

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

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

USB端口不像"哑"RS-232串行端口。这是一条总线,需要相当复杂的处理,全部由主机(通常是计算机)驱动。像"向数据引脚发送1和0"这样的非常低级的操作或多或少是不可能的。

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

在客户端(您的自定义USB硬件),可以寻找具有内置USB控制器或软件堆栈的系统。我认为编写自己的软件堆栈是不可行的,因为你(无意冒犯)似乎还没有达到USB的知识水平。

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

正如其他人所指出的,您必须为USB设备编写驱动程序。

另一种选择是通过USB使用串行协议与设备通信,然后您的硬件需要一个USB到串行芯片。关于USB over serial的最佳答案是Mike DeSimone 的问题"如何让C++从USB端口(如串行端口)执行I/O"

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

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

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

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

请注意,无论何时连接,操作系统都可能为设备分配不同的端口号。