c - USB 上的 Linux 串行设备服务器?

标签 c linux serial-port usb

我有一个嵌入式 Linux 解决方案,想通过串行 USB 创建一个命令服务。这个想法是,当计算机通过 USB 连接到我的嵌入式设备时,他们会看到一个串行设备并通过该端口向我发送串行命令,然后我发回响应。

我需要一些帮助才能继续进行。我是否需要模拟串行设备以便他们将我视为 COM 端口?是否有内置 Linux 解决方案来将我的详细信息作为串行设备广播?有代码示例吗?我可以看到 block 设备与我的嵌入式解决方案相连,例如 USB 存储设备。当我插入另一台计算机时,我希望它将我视为串行 COM 端口。

我只是需要帮助,知道我应该走哪条路来解决这个问题。

提前致谢。

最佳答案

您正在寻找的是 Linux USB serial gadget . Linux USB 小工具框架允许设备充当各种标准 USB 设备,包括串行设备、以太网适配器和大容量存储设备。

请注意,USB 小工具仅适用于带有 USB Controller 且可设置为作为 USB 设备运行的目标。并非所有 USB Controller 和目标设备都与此配置兼容。例如,大多数 PC 都有一个仅供主机使用的 USB Controller ,而 Raspberry Pi Model B 与小工具兼容,因为它在 USB 端口上游包含一个嵌入式 USB 集线器。 (但是,the Pi Zero is fully compatible with gadgets。)

关于c - USB 上的 Linux 串行设备服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37688676/

相关文章:

c - 大数组声明时出现段错误

c - 使用 GDB 调试器查看隐藏代码

java - JDBC 部署错误 - NoClassDefFounderror

serial-port - 计算 HDLC 帧的 FCS(CRC)

google-chrome - Chrome 扩展 : how to use serial port (now that apps are sunsetting)?

python - 序列号 2.6 : specify end-of-line in readline()

python - 在 Python 中使用 ctypes 访问数组

c - 关于使用指针算术的 toupper()

c - 我需要在 Swift 中 memset 一个 C 结构吗?

c++ - 在使用 gpp 编译器包编译和运行 c++ 文件后,Atom 正在主目录中创建一个 filename.o