概述
- 最近想基于STM32做个USB设备,但是搜索了下USB相关的技术资料比较少,并且USB相关的书籍也是比较的少,所以打算系统的学习下USB协议相关的技术。
- USB 的官方网站:https://usb.org/
- USB 2.0 手册下载地址https://usb.org/document-library/usb-20-specification
如何学习
- 初步的看了下USB 2.0的规格书,发现内容还是比较的齐全,但是看完后依旧不清楚如何去真正的开发一个USB设备,USB上位机如何设计,STM32 USB固件如何设计,USB主从机如何通信?
- 所以,这里使用带USB功能的STM32的开发板,配合
STM32CubeMX
,生成USB Device的设备,通过实践的方式,不断的探索USB功能实现,PC上位机使用Visual Studio 2019开发,这样先用起来,技术细节,再查看USB的规格书,可能效率更高
USB基础
- USB 为:Universal Serial Bus 的缩写,中文可以称之为:通用串行总线
- USB 主机与设备,USB主机一般为PC,当然一些嵌入式MCU也可以实现USB主机,像STM32,既有USB Host,也有USB Device,还有USB-OTG(主从机可选)
- 为什么使用USB?我的需求是做一个USB设备,用于数据的采集、控制,类似于串口控制,使用USB,速度可能更快,如一个电源分析仪、USB-CAN协议转换,等等。
- USB 分为设备固件,一般使用C语言开发
- USB上位机,可以使用C++、C#等高级语言开发
- 经常看到一个笔记本电脑只有两个USB接口,但是可以通过USB-HUB扩展出多个USB接口,可以为低功耗设备供电,如J-Link,也可以与USB设备进行通信。
USB的速率
- USB 2.0速率现在分三个等级,之前的 USB 1.1也称之为USB 2.0了,只是速率低。
USB线序
- 目前USB 2.0 的线序,依旧是四根线:VBUS:+5V、GND、D+与D-。
USB的通信方式
- 有四种通信方式
- Control Transfers : 控制传输
- Bulk Data Transfers :批量数据传输
- Interrupt Data Transfers :中断传输
- Isochronous Data Transfers:同步数据传输
其他的概念
- endpoint
- pipe
小结
- 通过实践不断扩充USB协议相关的知识储备
- USB是个通用的协议,不断的梳理资料,不断的总结使用经验
版权声明:本文为CSDN博主「张世争」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tcjy1000/article/details/122765449
暂无评论