精华内容
下载资源
问答
  • The ULPI interface allows the USB3300 PHY to operate as a device, host, or an On-The-Go (OTG) device. Designs using the USB3300 PHY as a device, can add host and OTG capability at a later date with no...
  • USB hostusb deviceUSB OTG的判断

    万次阅读 2019-06-28 16:59:21
    USB hostusb deviceUSB OTG的判断经典博客 经典博客 OTG数据线与普通USB数据线有什么区别? https://www.jb51.net/shouji/332556.html USB OTG简介、与普通USB线的区别 ...

    经典博客

    文章链接
    OTG数据线与普通USB数据线有什么区别?https://www.jb51.net/shouji/332556.html
    USB OTG简介、与普通USB线的区别https://blog.csdn.net/mao0514/article/details/46345861
    linux usb驱动——host与device电路https://www.cnblogs.com/mahj/p/8480085.html
    开机自动打开USB调试模式和配置android为USB OTA模式https://blog.csdn.net/longkg/article/details/8626271
    USB HOST与 USB OTG的区别及工作原理https://blog.csdn.net/rainbowbirds_aes/article/details/86557077
    RK平台下USB_OTG提供的接口和返回的状态https://blog.csdn.net/wangubuntu/article/details/17723793
    USB Host、USB Device和USB otg的理论简析https://blog.csdn.net/DIYfashaoyou/article/details/49895111

    概念

    host、device

    usb协议中,设备连接是主从模式,具体定义自行了解usb协议,比较直观的认识,如下:

    USB Host是指驱动过后,板子就可以连接USB接口连接的器件,读取和装载数据了。
    USB Device是指驱动过后,板子可以当做一个USB移动设备,通过USB连接到电脑上,类似U盘
    
    OTG

    手机只有一个外接usb口,为了方便用户使用,如otg上插上一条可以支持U盘插入的线,手机就可以直接访问U盘的内容,不需要经过PC,手机给外设供电。若手机连上PC,PC上的usb口基本为host端,为方便使用,手机端作为device端比较方便合理。因此手机端的usb支持host、device模式的自动切换。OTG即是增加了host、device协商机制的usb口。

    识别

    host、device

    host、device的电路设计不同,定义好角色后不可以转变。如果需要转变,就是下面介绍的OTG。
    分别的电路图见上面博客介绍。在实际使用中,若无客制化需求,在linux开发中,驱动都是已经有的。

    各自的角色在设备上电后,根据电路自行执行确定的角色驱动。

    OTG

    otg数据线设计比普通的usb数据线多了一条ID线。OTG连接如下:
    在这里插入图片描述
    OTG口就是手机端的充电口,usb口接入PC后连接U盘。

    usb口接上设备后,在otg口端检测ID脚的电平高低,OTG决定作为host或device端。若id脚为低电平作为host端,对外供电;若id脚悬空,则作为device端。详见博文《https://blog.csdn.net/mao0514/article/details/46345861》。

    实际开发中遇到的问题

    rk3288平台与linux设备,两个设备连接,android端打开rndis。换了一个设备后,一样的连接,发现rndis开关为灰色,也即没有rndis设备被识别到。为什么?
    硬件把另外一端的usb连接线的DET脚电平拉高供电,就能正常使用。
    在这里插入图片描述
    分析OTG的定义,此处otg端作为了device端。从android设备命令查看:

    cat /sys/bus/platform/drivers/usb20_otg/force_usb_mode
    

    值为2,确实被作为device端了。这时通过命令

    echo 1 > /sys/bus/platform/drivers/usb20_otg/force_usb_mode
    

    把otg口设置为host端,rndis也无法识别,说明对端就是host端,host与host端是不能通信的。

    总结

    usb协议只能是host与device间通信。若不能通信,两端都是device或都是host。非OTG口是不能动态设置usb口为host端或者device端,一个确定的开发板,usb的角色由设计电路决定。按照usb协议定义的电气标准,通用usb驱动会自动适配usb驱动。

    展开全文
  • USB HostUSB Device和USB otg的理论简析

    千次阅读 2020-06-20 10:27:32
    我们PC上目前常用的USB接口为USB3.0和USB2.0,但是以个人短浅的经验,在ARM上基本还都是以USB2.0和USB1.1为主。接口定义以这个为准。 一般的USB接口为四根线:红绿白黑-->从左至右! ![USB接口定义]...

    先理论上分析一下这三者之间的区别与联系。

    一、先说USB的引脚定义:

    我们PC上目前常用的USB接口为USB3.0和USB2.0,但是以个人短浅的经验,在ARM上基本还都是以USB2.0和USB1.1为主。接口定义以这个为准。

    一般的USB接口为四根线:红绿白黑–>从左至右!
    USB接口定义
    红色-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接口类型

    从左往右依次为:miniUSB公口(A型插头)、miniUSB公口(B型插头)、USB公口(B型)、USB母口(A型插座)、USB公口(A型插头)
    A/B型USB接口
    Mini-USB接口

    Micro-USB接口跟Mini-USB接口的定义是一样的,在我们的手机中普遍应用,这里就不再附图说明。

    二、三种方式的理论简析

    USB,英文全称:Universal Serial Bus,即通用串行总线。

    Host就是主,可以起到控制作用;device(slave)就是从,是被控制的。例如主机的USB口,可以识别U盘或者是其它USB设备,所以主机的USB就是Host接口,而U盘的就是device。OTG就是指既可以做Host口亦可以做device口。

    Mini-USBMicro-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是悬空的。(设备内部上拉)。

    展开全文
  • USB Host和USB Device的区别

    千次阅读 2015-07-28 13:54:38
    USB Host是指驱动过后,板子就可以连接USB接口连接的器件,读取装载数据了。 USB Device是指驱动过后,板子可以当做一个USB移动设备,通过USB连接到电脑上,类似U盘
    USB Host是指驱动过后,板子就可以连接USB接口连接的器件,读取和装载数据了。
    


    USB Device是指驱动过后,板子可以当做一个USB移动设备,通过USB连接到电脑上,类似U盘
    展开全文
  • drivers/usb目录下面,host目录包括了host驱动代码,core目录包含了主要的api接口代码,而其他目录则主要是device驱动代码。 2、device驱动怎么看 device驱动大多数上层协议有关,不涉及到具体的寄存器读写。示例...
  • stm32_f105-07_f2_f4_usb-host-device_lib STM32_USB-Host-Device_Lib_V2.2.0 内含自定义HID,复合设备例程
  • USB device和USB host

    千次阅读 2016-04-25 11:14:47
    常常各种USB芯片同时具有host和device两种接口。host就是主的,可以起控制作用;device(slave)就是从,是被控制的。比如PC机的USB口,可以识别U盘或者其他USB设备,起到控制的作用,就是host;而U盘是被控制的,是...

    USB,英文全称:Universal Serial Bus,即通用串行总线。

    常常各种USB芯片同时具有host和device两种接口。host就是主的,可以起控制作用;device(slave)就是从,是被控制的。比如PC机的USB口,可以识别U盘或者其他USB设备,起到控制的作用,就是host;而U盘是被控制的,是device(slave)。

    只有一个host和一个device(slave)才能起到数据传输或者控制的作用。

    而还有一种称为OTG,例如芯片ISP1761就有OTG的口,它是指它既可以做host口也可以做device(slave)口。




    HOST端要做的事情:
    硬件和软件
    host端需要的硬件是:USB host controller and a root hub with one or more USB ports.
               软件是: an operating system that enables device drivers to communicate with lower-level drivers that access the USB hardware.
    一个host controller总是和一个root hub结合在一起的,(但是还是不能把两者结合成一个设备,因为他们还是有具体的不同作用的)从linux的host controller driver就可以看出,struct hc_driver中即包含了对host controller的操作,也包含了对root hub的操作。上面所说的软件也就是这个host controller driver。

    1. 探测设备(detect device)
    On power-up, hubs make the host aware of all attached USB devices. In a process 
    called enumeration, the host determines what bus speed to use, assigns an
    address, and requests additional information. After power-up, whenever a
    device is removed or attached, a hub informs the host of the event, and the host
    enumerates any newly attached device and removes any detached device from
    its list of devices available to applications.
    从这里可以知道,host controller和root hub的具体分工。root hub只是通知host controller有设备插入或断开,host controller接到通知后开始一个
    叫做enumeration的过程(枚举),确定通信速率,分配地址等。建立真正的通信通道。

    2. 控制数据流(manage data flow)
    The host manages traffic on the bus. Multiple devices may want to transfer data
    at the same time. The host controller divides the available time into intervals
    and gives each transmission a portion of the available time.
    During enumeration, a device’s driver requests bandwidth for transfers that
    must have guaranteed timing. If the bandwidth isn’t available, the driver can
    request a smaller portion of the bandwidth or wait until the requested band-
    width is available. Transfers that have no guaranteed timing use the remaining
    bandwidth and must wait if the bus is busy.
    在数据传输方面,usb采用了分时的策略。传输带宽是在枚举的时候就已经确定好了的并且得以保证。

    3. 错误检查(error checking)
    When transferring data, the host adds error-checking bits. On receiving data,
    the device performs calculations on the data and compares the result with
    received error-checking bits. If the results don’t match, the device doesn’t
    acknowledge receiving the data and the host knows it should retransmit. 
     In a similar way, the host error-checks data received from devices. 
    USB also supportsa transfer type without acknowledgments for use with data such as real-time audio that tolerates errors to enable a constant transfer rate.
    错误检查很容易理解,在传输数据的时候,发送方在数据中加入error-checking bits,接受方收到数据后用收到的数据计算出来的校验码和
    发送方发出的校验码是否一致,不一致就不回应发送方,发送方没有接到回应就重新发送数据。usb也支持没有错误校验的传输。

    4. 供电和电源管理
    In addition to data wires, a USB cable has wires for a +5V supply and ground.
    Some devices draw all of their power from the bus. The host provides power to
    all devices on power up or attachment and works with the devices to conserve
    power when possible. A high-power USB 2.0 device can draw up to 500 mA
    from the bus. A high-power SuperSpeed device can draw up to 900 mA from a
    USB 3.0 bus. Ports on some battery-powered hosts and hubs support only
    low-power devices, which are limited to 100 mA (USB 2.0) or 150 mA (Super-
    Speed). To conserve power when the bus is idle, a host can require devices to
    enter a low-power state and reduce their use of bus current.

    5. 交换数据
    All of the above tasks support the host’s main job, which is to exchange data
    with devices. In some cases, a device driver requests the host to attempt to send
    or receive data at defined intervals, while in others the host communicates only
    when an application or other software component requests a transfer.



    DEVICE端要做的事情:
    device端要做的事情分两类,一类是和HOST对应的事情,host请求,device必须给予回应。令一类就是device端自己的事情。

    1.响应HOST
    On power up or when a device attaches to a powered system, a device must
    respond to standard requests sent by the host computer during enumeration.
    The host may also send requests any time after enumeration completes.
    All devices must respond to these requests, which query the capabilities and sta-
    tus of the device or request the device to take other action. On receiving a
    request, the device places data or status information in a buffer to send to the
    host. For some requests, such as selecting a configuration, the device takes other
    action in addition to responding to the host computer.
    The USB specification defines requests, and a class or vendor may define addi-
    tional requests. On receiving a request the device doesn’t support, the device
    responds with a status code.

    2. 错误检查
    同HOST端类似

    3. 数据传输
    For most transfers where the host sends data to the
    device, the device responds to each transfer attempt by sending a code that indicates whether the device accepted the data or was too busy to accept it. 
    For most transfers where the device sends data to the host, the device must respond
    to each attempt by returning data or a code indicating the device has no data to
    send. 
    数据传输分两种,HOST给DEVICE传输数据和HOST请求DEVICE发送数据。两者都有响应的应答机制(a code).
    DEVICE不可以主动给HOST发送数据,只有当HOST请求其发送数据的时候才可以发送。(USB3.0中device可以发送code让host请求)

    展开全文
  • USB device USB host区别

    万次阅读 2014-05-07 14:21:22
    那就是把它们倒过来念:device USB和host USB。devicehost作为形容词。 device usb就说明这个USB接口是作为device,把该设备当U盘来用(注意,该口不能识别U盘,但能把该机器当作U盘来用)。 host usb...
  • USB硬件建立连接一般usb有4根线(Vbus 、D+、D-...usb host端:在集线器的端口悬空时,就被这两个下拉电阻拉到了低电平。usb device端:在D+或者D-上接了1.5K欧姆上拉电阻。(对于全速高速设备, 上拉电阻是接在D...
  • USB HOST和device切换原理--基于imx8qm

    千次阅读 2020-03-27 10:37:21
    USB_HOST_GADGET_SWITCH 相关文件 kernel_imx\arch\arm64\boot\dts\freescale\fsl-imx8qm-mek-domu.dts: 如果开机固定为host模式,只需修改dr_mode = “host”;如果需要OTG功能切换,底层是根据ID PIN引脚的高低...
  • ST官网库en.stm32_f105-07_f2_f4_usb-host-device_lib V2.2.1 STM32F1057, STM32F2 and STM32F4 USB on-the-go Host and device library (UM1021) STM32F407+USB33300+USB2.0 HS
  • 本书从一个 U SB 接口应用开发者的角 度 , 阐述 对 USB 协议 的理 解 , 描述 U SB 开 发过 程 中的要点体会 , 给出 USB 设备与 USB 主机开发应用的实例 , 所附程序都是在应用中验证 过 的 , 可直接拿来使用。
  • usb通信时HOST和DEVICE要做的事情

    千次阅读 2018-07-09 11:02:59
    转自:http://blog.chinaunix.net/uid-23795818-id-2385141.htmlHOST端要做的事情:硬件软件host端需要的硬件是:USB host controller and a root hub with one or more USB ports. 软件是: an operating system...
  • USB HOSTUSB DEVICE枚举后通讯,端点需要一一对应吗?
  • usb host和device的关系 疑问1:我们通常所用的u盘应该是usbdevice吧?我想这个不用多说,呵呵。 ===============恩.============== 疑问2:我们通常看到的u盘里面的构造是否也是总线结构的,比如有一个usb总线...
  • ST官网上的usb host 和device的例程,仅供参考
  • USB HOSTUSB OTG的区别及工作原理

    万次阅读 多人点赞 2018-08-01 14:06:06
    在SmartQ 7上面,同时存在USB HOSTUSB OTG两个接口,我想问一下,这两个接口有什么区别么?我怎么认为HOST属于是多余呢? 麻烦高手解答,感激不尽!!!   零 USB背景知识 USB是一种数据通信方式,也是一种数据总线,...
  • 这个内容是公开的,不是什么保密资源,也不需要什么积分,哪里都可以下载得到,共享出来,方便查找使用
  • 官方的usb驱动库,各位朋友也可以上ST官网去下载,这个库都是用官方的开发板实现的,要放到我们的开发板上去实现要修改一些文件
  • 关闭Host Device自切换需要在menuconfig菜单时,选择以下选项: Device Drivers---> [*] USB support---> <*>USB Gadget Support---> USB Peripheral Controller---> ...
  • 前面分析了usb hub generic driver,顺便将枚举的前一部分看完了。本来我们应该继续分析class driver的最上层,即利用usb通信实现具体功能的驱动。我们将以usb-skeleton.c为例。但在分析usb-skeleton之前,我们...
  • USB-HOSTUSB-DEVICEUSB-OTG

    千次阅读 2019-07-07 13:22:48
    USB,英文全称:Universal Serial Bus,即通用串行总线。 Host就是主,可以起到控制作用;device(slave)就是从,是被控制的。例如主机的USB口,可以识别U盘或者是... Mini-USB和Micro-USB的ID脚在OTG功能中才使用。...
  • 此demo主要是介绍UsbHost的通信,可直接替换vendorIdproductId使用
  • usb host 和device的例程,仅供参考
  • STM32_USB-Host-Device_Lib_V2.1.0 (WINUSB HID)
  • 摘 要:本文简要介绍由三星ARM7内核的S3C44B0X为嵌入式处理器, mClinux为嵌入式操作系统平台的专用PDA设备的USB控制Host/Slave模式的应用。 关键词:嵌入式系统;mClinux;USB控制; Host/Slave模式    引言 ...
  • 文件名 : stm32_f105-07_f2_f4_usb-host-device_lib.zip 下载地址 : http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257901# USB库: 资源编号 : STSW-STM32046 资源名称 : STM32F105/7, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,264
精华内容 11,305
关键字:

devicehost和usbusb