USB上下拉电阻及OTG

OTG检测的原理是:
USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG)。USB OTG技术可实现没有主机时设备与设备之间的数据传输。例如:数码相机可以直接与打印机连接并打印照片,手机与手机之间可以直接传送数据等,从而拓展了USB技术的应用范围。在OTG中,初始主机设备称为A设备,外设称为B设备。也就是说,手机既可以做外设,又可以做主机来传送数据,可用电缆的连接方式来决定初始角色(由ID线的状态来决定)。

USB协议要求的,1.5K上拉在D+时表示是全速设备,在D-表示不是全速设备
有些方案里面(比如PNX5230)推荐D+/D-接下拉1M的电阻是为了提高数据传输稳定性的 

① usb有主从设备之分,主设备有:pc, 现在市面上的那些插u-disk即可播放mp3的“mp3”之类的,
usb 信号是差分信号,信号线为D+, D-。 在usb host 端, D+,D- 各接一个15K的下拉电阻, 而在usb device端,这时就有高速低速设备的区别了。usb1.0, 1.1,2.0协议中都有定义高低速设备以满足不同情况的需求,这些在硬件上的区别就是: 高速设备:d+ 接一个1.5K的上拉电阻,d-不接;低速设备则相反。
      这样当usb device 插入到host中时,如果是高速设备, 则d+被拉高,d-不变;低速设备则与之相反。 这个上拉过程需要大概2.5us的时间,host这这个时间内便检测到了该信号,即可判断有device plug in,和该device的类型,然后开始通讯等。

二、 USB OTG(on the go) 就是既可以做host又可以做client
我们一般是作为client接受PC传输数据,作为host时可以接打印机直接把手机中的照片打印出来
判别是host还是client是靠USB_ID这根pin

当作为client时,USB_ID基本是悬空的(内部有上拉)

如果侦测到USB_ID被拉低,就被认为是作为host,向外输出
所以需要外部client设备把USB_ID拉低

三、关于USB的上下拉电阻,不是随便接个任意阻值的电阻就ok了。

当你的USB为主设备的时候,D+、D-上分别接一个1.5K的下拉电阻,这样可以使得在没有设备插入的时候,D+、D-上始终保持低电平;

当你的USB为从设备接口时,可以通过在上拉电阻来设置不同的传输速率,当D+接一个1.5K上拉电阻,可以工作在高速率模式如12MBPs,当D-接1.5K上拉电阻,工作在低速率模式,如1.5MPBs。

主USB自动识别从设备为高速还是低速就靠上拉电阻在D+还是D-上区别,电阻阻值的不规范会影响usb自动识别分配资源,出现不能发现硬件或使用到一般硬件发现失败等现象,所以不要随便上下拉电阻,先规范USB的硬件接口电路。

实际的USB连接线中,是没有USB_ID这根线的。 都是在接口部分直接拉死的。
对于Host端,只需将连接线的USB_ID pin和地短接即可,
对于Slave端,USB连接线的USB_ID pin是悬空的。(设备内部上拉)。(跟普通Micro USB一样)

猜你喜欢

转载自blog.csdn.net/xjw1874/article/details/81670556