【问题标题】:Teensy to imitate a USB bulk data transferTeensy 模仿 USB 批量数据传输
【发布时间】:2014-12-02 14:25:35
【问题描述】:

我购买了一个 teensy 3.0,希望可以用它来模仿另一块硬件的 USB 批量传输。

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

但我正在尝试在实际使用 USB 设备进行测试之前执行此操作

因此,我认为我可以通过让一个青少年通过 USB 发送一些具有代表性的数据包来模仿实际设备。

我知道 USB 数据包格式,因此可以使用预期的二进制格式敲出一些字符数组。然后我会编写一个程序(希望在 C 中,因为这就是我所知道的),它封装了这些字符缓冲区,然后尝试通过 USB 将它们作为批量传输发送,我认为可能使用 libusb。我必须使用正确的构建工具(avr-gcc 和 halfkay?)构建并将其加载到 teensy,然后插入 teensy 并希望它的行为就像我试图模拟的设备

这听起来可行吗?

任何人都可以建议代码的外观或任何好的教程吗?我对此很陌生,我什至不知道要搜索什么。

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

【问题讨论】:

    标签: usb libusb teensy


    【解决方案1】:

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

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

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

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

    现在,如果您的软件能够从 COM 端口读取数据,那么在对 Teensy 进行编程时,您只需使用带有循环的 usb_serial_write() 函数。您可以通过here获得更多帮助。

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

    【讨论】:

    • 我对usb的来龙去脉的了解有点少,但我已经成功地反复吐出一个64字节的数据包(不得不写一点arduino)在我开发的安卓应用程序上接收,所以概念证明很好。接下来我需要使用 libusb 创建一个桌面控制台版本。感谢您提供更多信息 - 非常有用
    • PS 所有这些都是基于 linux 的,而不是基于 windows 的
    • 在 linux 中不会改变任何东西,除了应用程序 teraterm。我相信你可以得到一个应用程序或代码(嵌入到你的软件中),你可以用它来让 linux 从 com 端口读取。
    猜你喜欢
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 2014-10-17
    相关资源
    最近更新 更多