USB协议-检测设备连接与速度

在USB设备连接时,USB系统能自动检测到这个连接,并识别出其采用的数据传输速率。USB采用在D+或D-线上增加上拉电阻的方法来识别低速和全速设备。

USB支持3种类型的传输速率:1.5Mb/s的低速传输、12Mb/s的全速传输和480Mb/s的高速传输。

当主控制器或集线器的下行端口上没有USB设备连接时,其D+和D-线上的下拉电阻使得这两条数据线的电压都接近低电平(0V);当低速/全速设备连接以后,电流流过由集线器的下拉电阻和设备在D+/D-的上拉电阻构成分压器。由于下拉电阻的阻值是15kΩ,上拉电阻的阻值是1.5kΩ,所以在D+/D-线上会出现大小为(Vcc*15/(15+1.5))的直流高电平电压。如图所示,用实线所画电阻连接为低速设备连接,而虚线所画电阻为全速设备连接。当USB主机探测到D+/D-线的电压已经接近高电平,而其他的线保持接地时,它就知道全速/低速设备已经连接了。

高速设备在连接起始时,需要以全速速率与主机进行通信,以完成其配置操作。这时需要在D+线上连接1.5kΩ的上拉电阻。当高速设备正常工作时,如果采用高速传输,则D+线不可上拉;但如果仍采用全速传输,则在D+线上必须使用上拉电阻。因此,为识别出高速设备,需要在上拉电阻与D+线之间连接一个由软件控制的开关,它通常被集成在USB设备接口芯片的内部。

(全速上拉接D+,低速上拉接D-,高速上拉需控制)

时间: 2024-10-10 02:32:33

USB协议-检测设备连接与速度的相关文章

USB协议-USB设备的枚举过程

USB主机在检测到USB设备插入后,就要对设备进行枚举了.为什么要枚举?枚举就是从设备读取各种描述符信息,这样主机就可以根据这些信息来加载合适的驱动程序,从而知道设备是什么样的设备,如何进行通信等. 枚举的过程: 1.  USB主机检测到USB设备插入之后,就会先对设备复位.USB设备在总线复位后其地址为0,这样主机就可以通过地址0和那些刚刚插入的设备通信.USB主机往地址为0的设备的端点0发送获取设备描述符的标准请求(这是一个控制传输的建立过程).设备收到该请求后,会按照主机请求的参数,在数据

(转)USB协议简介

USB协议简介     USB是一种协议总线,即主机与设备之间的通信需要遵循一系列约定.协议内容较多,这里仅作一些简单介绍,深入学习,可参看USB规范(WWW.usb.org).     为了理解协议中的名称,先看图10.32.该图突出了主机上的客户软件和USB逻辑设备(编程涉及的设备)之间的通信流(Communication Flow),该通信流跨越了USB驱动程序USBD.主控制器驱动程序UHCD.主控制器等硬件接口及其连接.端点(Endpoints)是USB设备的 惟一可识别的部分,是主机

图解USB协议之一 枚举过程【转】

转自:http://blog.csdn.net/myarrow/article/details/8270060 0. 枚举流程 • 连接了设备的 HUB 在 HOST 查询其状态改变端点 时返回对应的 bitmap,告知HOST 某个PORT状态发生了改变.    • 主机向 HUB 查询该PORT的状态,得知有设备连接,并知道了该设备的基本特性.     • 主机等待(至少 100mS)设备上电稳定,然后向 HUB 发送请求,复位并使能该PORT.    • HUB执行PORT复位操作,复位完

Niagara解决设备连接应用的软件框架平台技术。

Niagara 是Tridium公司所研发的设计用于解决设备连接应用的软件框架平台技术. Niagara是一种应用框架,或者说是软件框架,特别设计用于应对智能设备所带来的各种挑战,包括设备连接到企业级的应用,支持互联网的产品和基于互联网自动化系统的开发. 应用框架是一个软件工程中的概念,不同于普通的软件,它是用于实现某应用领域通用完备功能的底层服务,使用这种框架的编程人员可以在一个通用功能已经实现的基础上开始具体的产品和系统开发.应用框架强调的是软件的设计重用性和系统的可扩展性,以缩短各种应用软

基于Linux的USB子系统学习 --- <基础知识与USB协议概述> ing

一.参考资料 1.<USB基础知识概论>  http://www.crifan.com/files/doc/docbook/usb_basic/release/html/usb_basic.html 2.<USB in a NutShell> http://www.beyondlogic.org/usbnutshell/usb1.shtml 3.<USB开发大全(第四版)> http://download.csdn.net/download/qqqq419276485/

龙芯软件开发(32)-- USB协议深入分析

现在非常流行USB设备,时时刻刻都在我们身边,比如使用U盘,使用MP3,使用手机,都需要与PC的USB通讯.通过USB的接口,使用我们的生活非常方便了,想什么时候听歌,就可以插入MP3到PC机那里,然后再从PC上下载MP3.这个过程在用户看来是非常的简单,不需要安装驱动程序,不需要断掉PC机的电源.真正体现"科技以人为本"的思想.使用这么方便的U盘或者MP3,那么我们又需要去问个为什么了,为什么会这么方便呢?往往方便的背后,就意味着需要工程师做大量的工作,才会让大家使用USB这么方便.

Android设备连接Unity Profiler性能分析器

Unity提供两种方式让Developer的Android设备连接Profiler进行性能分析: 1.通过wifi,Android设备和计算机处于同一个Wlan中. 2.通过USB ADB 一般情况我们的计算机都是网线,所以我们采用ADB的方式.相比与wifi,ADB也更及时的反应设备性能. 官方的英文文档如下: http://docs.unity3d.com/Manual/Profiler.html For ADB profiling, follow these steps: Attach y

usb协议分析-设备描述符配置包-描述符

/* usb协议分析仅供大家参考---设备描述符配置包,设备描述符, 地址设置, 配置描述符, 字符串描述符 */ /* -1- usb设备描述符配置包 */ typedef struct _USB_SETUP_PACKET { REQUEST_TYPE bmRequestType; BYTE bRequest; WORD_BYTE wValue; WORD_BYTE wIndex; WORD wLength; } USB_SETUP_PACKET; 1.bmRequestType 是包含有下面

C++服务器设计(六):设备连接的生命周期管理

生命周期介绍 每一个服务器系统的新连接从建立开始时,均会经历多个阶段.比如连接的建立,登录的验证,退出前的资源释放等.同时在具体的消息处理中,还会遇到不可识别的消息事件,或者消息处理时出现数据错误等.这些场景在每个连接的整个生命过程都可能会经历,而系统用户也会期望在某些场景中完成特定的操作.比如统计每一个新建连接的信息,对不同类型的客户进行验证过程等. 在一般的服务器系统中,用户需要主动为每个连接对象维护当前状态,然后在具体业务场景中加入对当前连接状态的判断,并在每一个改变连接状态的场景中执行相