stm32USB知识分析(一)
stm32USB知识分析(⼀)
stm32 USB知识和代码分析(⼀)
如果知乎和CSDN⽆法查看图⽚,欢迎来到
本系列是查看⼤佬帖⼦,再结合⾃⾝理解所写
⼤佬帖⼦(blog.csdn/qq_40088639/article/details/109462408)
1.USB基础知识
USB:Universal Serial Bus,中⽂译为“通⽤串⾏总线”,USB设备最显著的优点是具有热插拔功能、传输速率快。USB是主从结构的系统,具有主机和设备这两个⾓⾊,即Host和Device。此外,还有两类特殊的USB设备,分别是USB集线器设备(USB Hub)和USB OTG设备。
USB⽬前的协议版本有:USB1.0、USB1.1、USB2.0、USB3.0。USB1.0和USB1.1只有低速模式(Low-Speed Mode)和全速模式(Full-Speed Mode),理论上最⼤传输速率分别为1.5Mbps和12Mbps。USB2.0引⼊了传输速度更快的⾼速模式(High-Speed Mode),理论上最⼤传输速率为480Mbps。⽽USB3.0在速度的提升上,实现了重⼤飞跃,最⼤传输速率理论值⾼达5Gbps。需要注意的是,这些都是理论值,实际开发过程中,很难达到这些理论值(需要⾃⼰去做性能上的优化)。
在实际开发过程中,不同的传输类型有不同的传输速率,每⼀次的数据交互,都是⼀个相当复杂的过程,有令牌包的解析、数据包的传输、握⼿包的回应等等,这些都是额外的消耗,因此,传输速度是不可能达到理论值。USB有四种传输类型,分别是控制传输、中断传输、块传输、等时传输。
2. USB电⽓特性
2.1 USB信号线
USB使⽤差分传输模式,有两条数据线,分别是:
USB数据正信号线,USB Data Positive,即USB-DP线,简写为D+
USB数据负信号线,USB Data Minus,即USB-DM线,简写为D-
剩下的就是电源线(5V-Vbus)和地线(GND)。
2.2 USB主机如何识别设备是⾼速设备/全速设备/低速设备?
主机的D+和D-都接有15K下拉电阻;全速USB设备的数据线D+接有1.5K的上拉电阻,⼀旦接⼊主机,主机的D+被拉⾼;低速USB设备的数据线D-接有1.5K的上拉电阻,⼀旦接⼊主机,主机的D-会被拉⾼。
因此,主机就可以根据检测到⾃⼰的D+为⾼还是D-为⾼,从⽽判断接⼊的设备是⼀个全速还是低速设备。硬件结构图如下:
全速设备/⾼速设备:硬件部分能区分低速和全速,软件协议上区分⾼和全速设备,刚开始设备接⼊后,识别为全速模式,但是设备⽀持⾼速,此时会通过某个协议向主机通告,如果主机也⽀持⾼速,那么两者就会⼯作在⾼速模式下,反之全速
3.USB设备分类
不同的类有不同的⽤途,不同的应⽤场合,对应不同的产品形态。有⾃⼰特殊的描述符,⽐如对于HI
D类,有报告描述符。有⾃⼰特殊的类请求,⽐如UAC的设置⾳量请求。
4.USB数据传输⽅式
USB总线是串⾏总线(跟串⼝⼀样),数据是⼀位⼀位地在数据线上进⾏传输的。LSB在前,最低位先发出,接下来是次低位,最后才是最⾼位(MSB),差分信号抗⼲扰。
无法识别usb设备5.总结以上⽂字
USB历史理论知识
USB版本:1.1,1.2 (低速:1.5Mbps),2.0(全速:12Mbps,⾼速:480Mps)和3.0(5Gbps)
USB传输类型:控制传输、中断传输、块传输、等时传输。传输的类型不⼀致,速度和延迟也都不太相同,后⾯会说
USB设备全速和低速靠硬件,软件上识别全速和⾼速

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。