USB协议学习笔记

概述

如何学习

  • 初步的看了下USB 2.0的规格书,发现内容还是比较的齐全,但是看完后,依旧不清楚如何去真正的开发一个USB设备,USB上位机如何设计,STM32 USB固件如何设计,USB主从机如何通信
  • 所以,这里使用带USB功能的STM32的开发板,配合STM32CubeMX,生成USB Device的设备,通过实践的方式,不断的探索USB功能实现,PC上位机使用Visual Studio 2019开发,这样先用起来,技术细节,再查看USB的规格书,可能效率更高

USB基础

  • USB 主机与设备,一般为PC,当然一些嵌入式设备,可以作为USB主机,像STM32,既有USB Host,也有USB Device,还要USB-OTG(主从可选)
  • 为什么使用USB?我的需求是做一个USB设备,用于数据的采集、控制,类似于串口控制,使用USB,速度可能更快,如一个电源分析仪、USB-CAN协议转换,等等。
  • USB 分为设备固件,使用C语言开发
  • USB上位机,使用C++、C#开发
  • USB 为:Universal Serial Bus 的缩写,中文可以称之为:通用串行总线
  • 经常看到一个笔记本电脑只有两个USB接口,但是可以通过USB-HUB,扩展USB接口,也就是USB接口可以扩展很多个,可以为低功耗设备供电,如J-Link,也可以与USB设备进行通信

USB的速率

  • USB 2.0现在分三个等级,也就是之前的 USB 1.1,也称之为USB 2.0了,只是速率低。

USB协议学习笔记

USB线序

  • 目前USB 2.0 的线序,依旧是四根线:VBUS:5V、GND、D+与D-。

USB协议学习笔记

USB的通信方式

  • 有四种通信方式
    • Control Transfers : 控制传输
    • Bulk Data Transfers :批量数据传输
    • Interrupt Data Transfers :中断传输
    • Isochronous Data Transfers:同步数据传输
      USB协议学习笔记

其他的概念

  • endpoint
  • pipe

小结

  • 通过实践不断扩充USB协议相关的知识储备
  • USB是个通用的协议,不断的梳理资料,不断的总结使用经验
上一篇:STM32CbueMX基于HAL库的基本定时器TIM6的实验演示


下一篇:STM32实现SPI通信