很难模拟USB批量数据传输

很难模拟USB批量数据传输,usb,libusb,teensy,Usb,Libusb,Teensy,我买了一个teensy 3.0,希望能用它来模拟另一个硬件的USB批量传输 我正在开发一些软件来读取和处理通过USB传输的数据 但我正在尝试在实际使用USB设备进行测试之前完成这项工作 因此,我认为我可以通过让一个小小的用户通过USB发送几个具有代表性的数据包来模拟实际的设备 我知道USB数据包的格式,所以可以用预期的二进制格式创建一些字符数组。然后我要编写一个程序(我知道最好是C语言),封装这些字符缓冲区,然后尝试通过USB发送它们,我想可能是使用libusb。我必须使用正确的构建工具(avr

我买了一个teensy 3.0,希望能用它来模拟另一个硬件的USB批量传输

我正在开发一些软件来读取和处理通过USB传输的数据

但我正在尝试在实际使用USB设备进行测试之前完成这项工作

因此,我认为我可以通过让一个小小的用户通过USB发送几个具有代表性的数据包来模拟实际的设备

我知道USB数据包的格式,所以可以用预期的二进制格式创建一些字符数组。然后我要编写一个程序(我知道最好是C语言),封装这些字符缓冲区,然后尝试通过USB发送它们,我想可能是使用libusb。我必须使用正确的构建工具(avr gcc和halfkay?)构建并加载到teensy,然后插入teensy,希望它的行为与我尝试模拟的设备一样

这听起来可行/可能吗

有人能建议代码是什么样的或者有什么好的教程吗?我是个新手,我甚至不知道该找什么


可能是因为我必须学习“arduino”而不能用C语言编写程序吗?

首先让我澄清一下我对你的问题的理解

您正在创建一个软件,可以分析任何可以通过USB传输的数据。 您正在尝试使用Teensy将数据发送到USB,然后对其进行处理

现在,可行性的答案在于软件的兼容性。如果您的软件能够从初始化为COM端口的USB读取数据,则只有在该USB初始化为COM端口时,您的软件才能读取该数据

这是因为Teensy和Arduino都使用带有FTDI芯片的USB端口,该芯片作为串行通信器与所有其他设备进行通信。这是一个靠近USB端口的小芯片

现在,如果您的软件能够从COM端口读取数据,那么在对Teensy进行编程时,您只需使用带循环的usb\u serial\u write()函数即可。你可以得到更多的帮助


但是,如果您的软件无法从串行COM端口读取数据,则还有许多其他应用程序,例如将接收到的数据存储到文件中。然后,您可以使用此文件提取数据并对其进行处理。

我对usb的输入和输出的知识有点缺乏,但我有机会反复吐出一个64字节的数据包(不得不写一点arduino),我已经成功地在我开发的安卓应用程序上接收到了这个数据包,因此概念证明很好。接下来,我需要使用libusb创建一个桌面控制台版本。感谢您提供的额外信息-非常有用的PS所有这些都是linux,而不是windows,因为linux的健康除了应用程序之外不会改变任何东西。我相信你可以得到一个应用程序或代码(嵌入到你的软件中),你可以使用linux从com端口读取。