USB学习系列之二——USB设备的插入检测机制

发布者:chi32最新更新时间:2015-10-30 来源: eefocus关键字:USB学习  USB设备  插入检测机制 手机看文章 扫描二维码
随时随地手机看文章
1.USB的插入检测机制:USB端口的D+和D-均用一个15k的电阻接地,当无设备接入时,均处于低电平;在设备端在D+(表示高速设备或者全速设备)或者D-(表示低速设备)接了一个1.5k的上拉电阻到+3.3v,一旦将设备接入,USB端口的D+或者D-其中一个被拉高为3v,系统识别到外部设备接入。

注意:高速设备首先会被识别为全速设备,然后再通过集线器和设备二者的确认最后切换到高速模式下。

在高速模式下,采用的是电流传输模式,这个时候上拉电阻需要从D+上断开。

2.当设备没有枚举成功时(可以通过一个10K的电阻将USB的电源端和D+或者D-连接起来,电脑会发现一个无法识别的设备,这个设备的PID和VID都是0,根据每个特性可以简单的判定设备的枚举是否成功。

3.一个具体的USB实现什么功能,USB主机并不知道。USB主机通过读取USB的设备描述符来获取设备的类型、厂商的ID和产品的ID(通常依靠它们来加载对应的驱动程序)、端点情况、版本号等众多信息。

4.USB1.1协议定义的标准描述符有设备描述符(Device Descriptor)、配置描述符(Configuration Descriptor)、接口描述符(Interface Descriptor)、端点描述符(Endpoint Descriptor)和字符串描述符(String Descriptor)。

USB2.0相比于USB1.1新增加的两个描述符:限定符描述符(Qualifier Descriptor)和其他速度配置描述符(Other Speed Configuration Descriptor)。

5.一个USB设备只有一个设备描述符。

设备描述符里面决定了该设备有多少种配置,每种配置都有一个配置描述符;

而在每个配置描述符中又定义了该配置有多少个接口,每个接口都有一个接口描述符;

在接口描述符里面又定义了该接口有多少个端点,每个端点都有一个端点描述符,端点描述符定了端点的大小、类型等。

如果有类特殊描述符,它跟在相应的接口描述符之后。

注意:USB主机获取描述符时,从上到下逐层获取。对于字符串描述符,USB主机是单独获取的,主机通过发送获取字符串中描述符的请求以及描述符的索引号、语言ID来获取对应的字符串描述符。

6.设备描述符:设备所使用的USB协议版本号、设备类型、端点0的最大包大小、厂商ID(VID)和产品ID(PID)、设备版本号、厂商字符串索引、产品字符串索引、设备序列号索引、可能的配置数等。

配置描述符:记录配置所包含的接口数、配置的编号、供电方式、是否支持远程唤醒、电流需求量等。

接口描述符:记录接口的编号、接口的端点数、接口所使用的类、子类、协议等。

端点描述符:端点号及方向、端点的传输类型、最大包长度、查询时间间隔等。

字符串描述符:提供一些方便人们阅读的信息,它不是必需的。

7.与USB设备进行通信时需要的地址:设备的地址和端点的地址。配置和接口是为了更加方便的管理端点抽象出来的概念。一个设备可以有多个配置,但是一个时刻只能有一个配置有效;每个配置下又可以有多个接口,一个接口下面可以有多个端点。

8.具有多个接口,并由接口来实现功能的设备叫做USB复合设备。例如一个USB音频设备,它具有一个音频控制接口,另外还有一个到多个音频流或者MIDI流接口。在主机端会把USB复合设备的每个接口当做一个功能设备来看待,常见的USB鼠标,U盘等通常是单一的设备,即一个设备下只有一个配置描述符、一个接口描述符。

关键字:USB学习  USB设备  插入检测机制 引用地址:USB学习系列之二——USB设备的插入检测机制

上一篇:USB学习系列之一——USB简介
下一篇:USB学习系列之三——USB设备的枚举

推荐阅读最新更新时间:2024-05-03 00:04

USB学习系列之一——USB简介
1.USB:Universal Serial  Bus(通用串行总线)。 2.即插即用PnP:Plug  and  Play。 3.USB是主从模式结构,USB通信中分为USB主设备和USB从设备,主设备和主设备,从设备和从设备之间不能互连。 4.USB  OTG(On The Go:正在运行中):同一个设备,在不同的场合下可以在主设备和从设备之间切换,这扩大了USB设备的适用范围。 5.支持USB2.0的设备不一定支持USB2.0的高速模式,可能只支持低速模式或者全速模式中的一种或两种,所以在设计USB设备时一定要查看芯片支持的速度模式。 6.所有的数据传送都是主机发起的,从设备只能被动的配合数据传输。 7.理
[嵌入式]
USB学习系列之三——USB设备的枚举
1.枚举就是从设备读取各种描述符信息,主机根据读取的描述符信息来决定加载什么驱动,确定是什么样的设备以及如何通信等。 2.在USB设备的枚举过程中使用了控制传输,这种传输保证数据传输的正确性。控制传输分为:建立过程(主机发起)、可选的数据过程和状态过程。 3.控制传输解析: (1)主机发起建立过程,建立过程开始于一个SETUP令牌包,后面紧跟一个DATA0数据包,接着就是数据过程。 (2)如果是控制读传输,那么数据过程就是输入数据(相对于USB主机来说的);如果是控制写传输,那么数据过程就是输出数据。如果在建立过程中指定了数据长度为0,那么就没有数据过程。数据过程之后是状态过程。 (3)状态过程刚好与数据过程的数据传
[嵌入式]
基于Linux的USB主/从设备之间的三种通信方式
  随着简单易用的USB接口日益流行,在嵌入式系统中添加对USB接口的支持已成为大势所趋。本文通过介绍Linux中支持USB的各种模块和库,分析了在Linux上利用USB实现高速串口和以太网连接等通信方式的具体方法。   通用串行总线(USB,Universal Serial Bus)是一种非常实用的通信接口,其应用日益广泛。有三种方法可以使运行Linux操作系统的嵌入式系统支持USB接口,本文将对这三种方法逐一进行介绍。   基于Linux的USB设备与USB主机一般有以下三种通信方式:1.一些功能最完备结构也最复杂的设备采用用户定制内核模块来实现在标准USB总线上运行复杂的高级协议,而由USB主机上相应的用户驱动程序和应用
[嵌入式]
USB设备驱动程序开发
引言   USB总线是1995年微软、IBM等公司推出的一种新型通信标准总线,特点是速度快、价格低、独立供电、支持热插拔等,其版本从早期的1.0、1.1已经发展到目前的2.0版本,2.0版本的最高数据传输速度达到480Mbit/s,能满足包括视频在内的多种高速外部设备的数据传输要求,由于其众多的优点,USB总线越来越多的被应用到计算机与外设的接口中,芯片厂家也提供了多种USB接口芯片供设计者使用,为了开发出功能强大的USB设备,设计者往往需要自己开发USB设备驱动程序,驱动程序开发一直是Windows开发中较难的一个方面,但是通过使用专门的驱动程序开发包能减小开发的难度,提高工作效率,本文使用Compuware Numeg
[电源管理]
STM32 USB学习笔记7
主机环境:Windows 7 SP1 开发环境:MDK5.14 目标板:STM32F103C8T6 开发库:STM32F1Cube库和STM32_USB_Device_Library 现在来分析一下USB器件库中核心文件usbd_ioreq,相对于usbd_ctlreq来说usbd_ioreq文件的代码量要小一些。该文件的主要作用是为控制端点提供IO请求API,更准确来说是为默认的控制端点0提供的API,该文件只有7个函数体,首先看第一个函数发送数据函数 /** * @brief USBD_CtlSendData * send data on the ctl pipe * @param pdev: d
[单片机]
USB端口被占用了,怎样将其他USB设备添加到我的计
现在生产的所有外围设备几乎都配有USB端口。下面是目前可以购买的部分USB设备列表: 打印机 扫描仪 鼠标 操纵杆 模拟飞行操纵杆 数码相机 网络摄像机 科学数据采集设备 调制解调器 扬声器 电话 视频电话 存储设备,如Zip驱动器 网络连接 如今出售的大部分计算机都会提供一到两个USB插孔。目前市场上提供的USB设备很多,计算机上的插孔很快就会被用光了。例如,在我现在正在打字的计算机上,有一台USB打印机、一台USB扫描仪、一个USB网络摄像机和一个USB网络连接。但我的计算机上只有一个USB接口。很明显,现在的问题是“我该如何将这些设备都连接到计算机上?” 解决问题的简单办法就
[模拟电子]
不看不知道 USB口原来如此不简单
  你是否想过为什么电脑上的USB 口可以接键盘、鼠标等等,而你的手机上面的USB 却不可以?   你是否想过电脑上的USB口可以接多少USB设备?   你是否想过为啥主板上面的USB口比起前面板的USB口要好用且稳定?   你是否想过为啥同样PCIE转USB的板卡,为啥有的很贵,有的很便宜。   如果都知道,你是否解释下一下,下面这张图是啥意思?      首先说 USB口除去物理尺寸,形状 ,颜色 ,款式的区别, 在他的内在也是有极大区别的。   一个USB口 可以是以下三种规格中的一种:   1)USB主控制器 又叫USB HOST。 可以有控制作用。   2)USB device(slave) , 就是被控制的   3)U
[嵌入式]
嵌入式系统应用中的USB设备功能分析
  USB已经成为设备和PC之间通信的标准方式,从通用设备(如闪存设备和鼠标)到专用设备,该标准几乎完全替代了其他的串行通信协议。   USB外围设备彼此之间不能相互通信,它们只能与具有控制总线能力的USB主设备通信。直到最近,也只有PC具有主设备能力。但目前,许多微控制器也具有了嵌入式USB主设备的功能,这使得嵌入式应用可以连接更加广泛的USB外围设备。   USB闪存驱动器是一种使用非常广泛的USB外围设备,它已经成为传递或存储大量数据的廉价介质,许多数据记录设备正是得益于它才得以发展。对于远程的长期数据记录,可以先采集,并存储在闪存驱动器中,然后带回到方便分析处理的地方。 图1 具有嵌入式USB主设备功能的微
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved