USB有 “主设备” 和 “从设备” 之分。 “主设备” 通常写为 “USB HOST”或“USB OTG” ,而“从设备”一般写为“USB DEVICE” 。STM32F103系列的芯片只能做“USB DEVICE” ,STM32F105和STM32F107系列才可以做“USB OTG” 。
USB信号是差分信号, 信号线为D、 D-。 在USB HOST端, D+、 D-各接一个15kohm的下拉电阻。
而在USB DEVICE端,这时就有高速低速设备的区别了。USB1.0、1.1、2.0协议中
都有定义高低速设备以满足不同情况的需求,这些在硬件上的区别就是:
高速设备:D+ 接一个1.5K的上拉电阻,D-不接;
低速设备则相反:这就是为什么板上的USB接口的D+上接一个1.5K的上拉电阻到3.3V的原因。
这样当USB DEVICE插入到USB HOST中时,如果是高速设备,则D+被拉高,D-不
变;低速设备则与之相反。这个上拉过程需要大概2.5us的时间,USB HOST在这个时间
内便检测到了该信号,即可判断有USB DEVICE plug in,和该device的类型,然后开始通讯、枚举等。 所以,USB协议虽然非常复杂,一般人不太好掌握,但USB硬件却是非常简单的:如果是USB HOST,例如PC机,那么在USB接口的D+、D-差分线上都接一个15K电阻到地就可以了;如果是USB DEVICE,例如我们的STM32开发板,那么在USB接口的D+接一个1.5K的上拉电阻到3.3V就可以。
另外,在高速USB传输时,需要考虑信号的完整性问题,即阻抗匹配。 阻抗匹配是指在能量传输时,要求负载阻抗要和传输线的特征阻抗相等,此时的传输不会产生反射,这表明所有能量都被负载吸收了。反之则在传输中有能量损失。下图中的
R55、R56的22欧姆电阻是阻抗匹配电阻。
Buddy Remark: 了解了以上原理,在编程的时候才知道来弄去脉。
用户1454308 2015-2-13 16:44
用户1454308 2015-2-13 16:01
用户25837 2014-3-26 08:26
谢谢分享!
用户25837 2014-3-26 08:25
ND7 2014-3-25 20:29
用户1277994 2014-3-25 09:51
用户1327305 2014-3-24 15:20
用户1624139 2014-3-24 14:47
用户1043181 2014-3-24 09:11
用户1674662 2014-3-22 09:43