news 2026/4/20 14:24:13

[以太网/USB/其他总线] 【每周分享】一文带你了解USB的CDC,其实不难理解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[以太网/USB/其他总线] 【每周分享】一文带你了解USB的CDC,其实不难理解


USB(通用串行总线)接口或者USB设备等等是我们日常工作当中会经常使用的技术,通过USB协议即可实现电脑(一般作为主机)和设备(一般作为从机)之间的USB通信,如果你研究过USB协议,会发现USB协议其实还是蛮复杂的,其兼容性和扩展性非常强,而在USB协议中,有一个非常重要的通信协议规范标准,即CDC,今天就带大家一起了解下CDC的一些基本内容。

USB CDC 的全称是 USB Communications Device Class,即USB 通信设备类,是USB-IF(USB标准化组织)制定的标准的、通用的USB协议类别,定义了如何通过USB连接来实现各种通信功能,让设备在连接电脑时能被成功地识别为一个串行通信端口。

或者简单点来说,CDC 的目的其实就是将 USB 设备(比如微控制器、外设等)模拟成一个传统的串口(COM口),然后与电脑进行通信;这样的话,电脑和设备之间就可以像使用传统的 RS-232 串口线一样,进行简单、可靠的数据传输,而不再需要为每个设备开发复杂的专用驱动程序。
像连接到电脑上的各种USB设备,比如我们常用的jlink调试器,如果驱动程序安装成功,就会在设备管理器的“通用串行总线控制器”下正常显示:


其实此时的jlink设备就是一个从设备,在这里就会生成一个COM端口,电脑主机会为其分配一个设备ID号,通过wireshark抓包就可以知道ID号是多少了:


上面的端口名称里面就有“CDC”字符串。
像我们经常会使用一个USB HUB来增加我们的USB接口,这里的HUB其实就是集线器的意思。
因此,CDC的标准化其实就是一大特点和优势,对于设备开发者来说,你无需编写复杂的 USB 驱动,只需要在固件中实现 CDC 协议栈,就可以通过虚拟串口实现与电脑的USB通信;而对于主机端软件开发者来说,你可以使用操作系统提供的标准串口 API(应用程序接口)来读写数据。
但是,与传统UART通信速度相比,USB可以实现高速通信,比如USB2.0的最大传输带宽为480Mbps(即60MB/s),而USB3.0的最大传输带宽高达5.0Gbps(500MB/s),像现在支持USB3.0协议的U盘,你拷贝数据的时候是不是比USB2.0快多了?
我们可以登录USB官网(https://usb.org/)查看USBA协议的相关内容:


点击菜单栏里面的箭头“>”,既可以看到下拉选项内容:


我们可以看下USB CDC通信设备类:


此设备类会在设备描述符和接口描述符中体现。
另外,我们也可以看到之前所说的HUB信息:


实际开发时,我们可以用类似STM32的STM32CubeMX来生成USB CDC的相关demo代码。


---------------------
作者:dffzh
链接:https://bbs.21ic.com/icview-3501349-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

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

AI教材生成工具大揭秘!低查重教材一键快速编写!

教材修改与AI工具的重要性 教材的初稿完成后,进入修改和优化的阶段真的是一场“考验”!通读全文,寻找逻辑上的漏洞和知识点的错误,确实需要耗费许多时间。调整章节结构时,往往会影响到后面的多个部分,导致…

作者头像 李华
网站建设 2026/4/18 21:03:26

专业干货!AI专著写作工具大盘点,助你高效完成学术著作

学术研究者撰写专著的困境与 AI 解决方案 对于很多学术研究者来说,撰写学术专著的最大难题,往往在于“有限的精力”和“无限的需求”之间的矛盾。撰写专著常常需要耗费 3 到 5 年甚至更长的时间,而研究者们在日常工作中还得兼顾教学、科研项…

作者头像 李华
网站建设 2026/4/18 21:04:20

Django基于Python的大学生就业信息管理系统 Vue Falsk

这里写目录标题项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码联系博主/招校园代理/合作伙伴/同行交流收藏关注不迷路!!需要的小伙伴可以发链接或者截图…

作者头像 李华
网站建设 2026/4/18 21:03:29

Django基于Python的宠物寄领养网站的设计与实现 Vue Falsk

这里写目录标题项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码联系博主/招校园代理/合作伙伴/同行交流收藏关注不迷路!!需要的小伙伴可以发链接或者截图…

作者头像 李华
网站建设 2026/4/18 21:03:29

Django基于Python的家用电器在线销售系统的设计与实现 Vue Falsk

这里写目录标题项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码联系博主/招校园代理/合作伙伴/同行交流收藏关注不迷路!!需要的小伙伴可以发链接或者截图…

作者头像 李华
网站建设 2026/4/18 21:03:33

Fluent用户仿真习惯与模块使用分析报告

在流体动力学仿真领域,Fluent 已经成为了许多企业客户在工程设计与优化过程中不可或缺的工具。市场竞争的加剧和产品设计的复杂化,用户在使用 Fluent 进行仿真时,常常面临一个核心问题:如何高效地利用 Fluent 的仿真模块&#xff…

作者头像 李华