USB Host、USB Device和USB otg的理论简析

最近在弄USB Host、USB Device和USB otg的电路。先理论上分析一下这三者之间的区别与联系。

一、先说USB的引脚定义:

    我们PC上目前常用的USB接口为USB3.0和USB2.0,但是以个人短浅的经验,在ARM上基本还都是以USB2.0和USB1.1为主。接口定义以这个为准。
    一般的USB接口为四根线:红绿白黑-->从左至右!
    ![USB接口定义](https://img-blog.csdn.net/20151117222824739)
    红色-USB电源 标有-VCC、Power、5V、5VSB字样
    绿色-USB数据线(正)-DATA+、USBD+、DP+、、USBDT+
    白色-USB数据线(负)-DATA-、USBD-、DM-、USBDT+
    黑色-地线 -GND、Ground
    USB接口的输出电压和电流是:+5V/500mA  实际上有误差,最大不能超过+/-0.2V 也就是4.8-5.2V 。USB2.0规范是由USB1.1规范演变而来的。它的传输速率达到了480Mbps,折算为MB为60MB/s。因此,USB2.0可以驱动程序上可以兼容USB1.1。
    各种USB接口的定义如下图所示:
    ![常用USB接口类型](https://img-blog.csdn.net/20151117223636432)
    从左往右依次为:miniUSB公口(A型插头)、miniUSB公口(B型插头)、USB公口(B型)、USB母口(A型插座)、USB公口(A型插头)
    ![A/B型USB接口](https://img-blog.csdn.net/20151117223426600)
    ![Mini-USB接口](https://img-blog.csdn.net/20151117223457869)
    Micro-USB接口跟Mini-USB接口的定义是一样的,在我们的手机中普遍应用,这里就不再附图说明。

二、三种方式的理论简析

    USB,英文全称:Universal Serial Bus,即通用串行总线。  
    Host就是主,可以起到控制作用;device(slave)就是从,是被控制的。例如主机的USB口,可以识别U盘或者是其它USB设备,所以主机的USB就是Host接口,而U盘的就是device。OTG就是指既可以做Host口亦可以做device口。
    Mini-USB和Micro-USB的ID脚在OTG功能中才使用。在OTG中,初始主机设备称为A设备,外设称为B设备。Mini-A插头(即A外设)中的ID引脚接地,Mini-B插头(即B外设)中的ID引脚浮空,默认上拉为高电平。当OTG设备检测到ID引脚接地时,表示默认的是A设备(主机),而检测到ID引脚浮空则认为是B设备(外设)。
    如果你的系统仅仅是用做Slave,那么就使用B接口。系统控制器会判断ID脚的电平判断是什么样的设备插入,如果是高电平,则是B接头插入,此时系统就做主模式(master mode)。如果ID为低,则是A接口插入,然后系统就会使用HNP对话协议来决定哪个做Master,哪个做Slave。也就是说,手机既可以做外设,又可以做主机来传送数据,可用电缆的连接方式来决定初始角色(由ID线的状态来决定)。
    简单说就是:
        USB Host是指驱动过后,板子就可以连接USB接口连接的器件,读取和装载数据了,类似PC。
        USB Device是指驱动过后,板子可以当做一个USB移动设备,通过USB连接到电脑上,类似U盘。
        实际的USB连接线中,是没有USB_ID这根线的。 都是在接口部分直接拉死的的。
        对于Host端,只需将连接线的USB_ID pin和地短接即可,
        对于Slave端,USB连接线的USB_ID pin是悬空的。(设备内部上拉)。

你可能感兴趣的:(电子基础)