news 2026/4/16 14:32:51

Linux USB HOST EXTERNAL VIRTUAL COM PORT

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux USB HOST EXTERNAL VIRTUAL COM PORT

目录

目录

前言

DTS配置的参考

内核配置的参考

USB Subsystem内核配置

USB Phy内核配置

USB Host Core驱动内核配置

USB EHCI驱动内核配置

芯片平台USB Host Controller驱动内核配置

USB HOST CDC ACM内核配置

验证测试的参考

总结


前言

USB虚拟串口(简称VCP,Virtual COM Port的缩写),它是利用USB的CDC(Communication Device Class)类来实现的一种通信接口,在物理层通过USB总线,采用虚拟串口的方式为主机提供一个物理串口。

在系统内部,USB控制器提供了一个批量传输IN端口和一个批量传输的OUT端点,用于数据的接收和发送,模拟串口的RX和TX线。另外USB控制器还提供中断IN端点,发送当前串口的状态,实现对串口传输的控制。

串口设备的数据,由系统的串口采集,在芯片内完成USB包的封装,通过USB总线上传到主机,再由相应的串口应用程序进行处理。对于用户来说,看到的是基于串口的数据采集和传输,而实际上实现的是基于USB协议包的数据传输。

在这里主要实现的是串口通信主机的功能,使用的是USB HOST CDC ACM(Abstract Control Model)驱动来实现。


DTS配置的参考

/* usb20 host controller */ usb_1: usb1@YYYYYYYY { compatible = "xxx,xxx-usb"; reg = <0xYYYYYYYY 0xYYY>; interrupts = <GIC_SPI INT_USB20_HOST IRQ_TYPE_LEVEL_HIGH>; clocks = <&ahbX_gate 9>, <&ahbX_reset 9>; clock-names = "usb_gate", "usb_reset"; xxx,usbphy = <&usbphy_1>; dr_mode = "host"; /* 配置成了USB host模式 */ ...

内核配置的参考

USB Subsystem内核配置

CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y

USB Phy内核配置

CONFIG_USB_PHY=y CONFIG_USB_NX_PHY=y

USB Host Core驱动内核配置

CONFIG_USB_COMMON=y CONFIG_USB=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y CONFIG_USB_DEFAULT_PERSIST=y

USB EHCI驱动内核配置

CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_HCD_PLATFORM=y

芯片平台USB Host Controller驱动内核配置

CONFIG_USB_XXX=y CONFIG_USB_XXX_HOST=y CONFIG_USB_XXX_DEBUG=y

USB HOST CDC ACM内核配置

CONFIG_USB_ACM=y

验证测试的参考

1. 使用两个主控设备,例如使用两个开发板,其中一个配置成USB HOST CDC ACM,另外一个配置成USB Gadget CDC ACM(配置成工厂测试模式)。

2. 把USB Gadget CDC ACM的主控设备通过USB线接到USB HOST CDC ACM的主控设备上,此时查看USB HOST CDC ACM的主控设备是否产生`/dev/ttyACM*`的设备节点,例如:

# find / -name "*ACM*" /dev/ttyACM0 /sys/devices/platform/xxxxxxxx.usb1/xxx_hdc.1/usb2/2-1/2-1.2/2-1.2:1.0/tty/ttyACM0 /sys/class/tty/ttyACM0

3. USB HOST CDC ACM的主控设备向USB Gadget CDC ACM的主控设备发起请求,例如:

# echo "date set 2024-11-22 15:10:50" > /dev/ttyACM0 # date set ok

4. 观察USB Gadget CDC ACM的主控设备的日期时间是否被修改。


总结

USB虚拟串口HOST CDC ACM的作用,简单来说,就是‌让USB设备在主机上模拟出传统串口,实现高速、即插即用的串行通信‌。它属于USB通信设备类(CDC)的一个子类,通过抽象控制模型(ACM)在操作系统中创建虚拟串口,支持跨平台数据传输。

  • 核心作用
  1. 虚拟串口模拟‌:将USB设备映射为系统识别的串行端口(如/dev/ttyACM*),兼容传统串口应用。
  2. 高速数据传输‌:理论速率可达12Mbps,远超传统串口(如RS-232的115.2Kbps)。
  3. 即插即用‌:主流操作系统(Windows 7+、Linux和macOS)原生支持,无需额外驱动。
  4. 控制信号支持‌:管理RTS/CTS、DTR/DSR等硬件流控信号。
  • 技术实现
  1. 接口分离‌:通过控制接口(端点0)管理设备状态,数据接口(端点1/2)传输数据,支持双向通信。
  2. 跨平台兼容‌:遵循USB-IF标准,可在嵌入式系统、物联网设备等场景灵活应用。
  • 典型应用
  1. 嵌入式开发‌:如ARM板卡通过USB Gadget框架实现CDC ACM。
  2. 工业通信‌:替代传统串口,提升设备间通信效率。

总之,CDC ACM通过标准化和高效性,可成为现代串行通信的重要解决方案之一。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 11:11:23

微服务编排终极实战:Netflix Conductor完整解决方案深度解析

微服务编排终极实战&#xff1a;Netflix Conductor完整解决方案深度解析 【免费下载链接】conductor Conductor is a microservices orchestration engine. 项目地址: https://gitcode.com/gh_mirrors/condu/conductor 在当今数字化时代&#xff0c;企业面临着微服务架构…

作者头像 李华
网站建设 2026/4/16 12:58:19

实战指南:如何用WeChatBot_WXAUTO_SE打造你的专属AI聊天助手

实战指南&#xff1a;如何用WeChatBot_WXAUTO_SE打造你的专属AI聊天助手 【免费下载链接】WeChatBot_WXAUTO_SE 将deepseek接入微信实现自动聊天的聊天机器人。本项目通过wxauto实现收发微信消息。原项目仓库&#xff1a;https://github.com/umaru-233/My-Dream-Moments 本项目…

作者头像 李华
网站建设 2026/4/16 16:24:01

RS485和RS232在STM32系统中的使用场景完整指南

RS485与RS232在STM32系统中的实战应用全解析&#xff1a;从选型到代码落地当你的STM32项目需要通信&#xff0c;到底该用RS232还是RS485&#xff1f;你有没有遇到过这样的场景&#xff1a;调试板子时串口打印乱码&#xff0c;换了根线就好了&#xff1b;多个传感器挂上总线后通…

作者头像 李华
网站建设 2026/4/16 12:59:52

Keil5汉化项目应用:提升团队开发效率实测

Keil5汉化实战&#xff1a;如何让团队开发效率“肉眼可见”地提升&#xff1f;最近在带一个嵌入式新项目&#xff0c;团队里来了几位刚毕业的工程师。本以为有了标准开发流程和文档&#xff0c;上手应该很快&#xff0c;结果第一天就“翻车”了——有人把芯片刷成了砖&#xff…

作者头像 李华
网站建设 2026/4/16 13:05:54

Widevine L3 解密工具技术解析与使用指南

项目概述 【免费下载链接】widevine-l3-decryptor A Chrome extension that demonstrates bypassing Widevine L3 DRM 项目地址: https://gitcode.com/gh_mirrors/wi/widevine-l3-decryptor Widevine L3 解密工具是一款基于 Chrome 扩展的开源项目&#xff0c;专门用于研…

作者头像 李华
网站建设 2026/4/16 13:05:47

高效音频提取工具:3大技巧轻松分离B站音乐

高效音频提取工具&#xff1a;3大技巧轻松分离B站音乐 【免费下载链接】downkyicore 哔哩下载姬(跨平台版)downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&am…

作者头像 李华