关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于USB的家电自动化设计

基于USB的家电自动化设计

作者: 时间:2010-10-28 来源:网络 收藏

  B型连接器专用于数据上行传输,即数据从主机传输到设备或从集线器传输到设备,B型连接器位于主机和集线器上,如图2所示。有时为了使占用空间更小,可以使用微型连接器。
USB设备通过拉高D+或D-端线电平来指示其速度,最高为3.3伏。全速设备在D+端接一个上拉电阻表明它是全速设备,如图3所示。

本文引用地址://m.amcfsurvey.com/article/202508.htm


  如果没有上拉电阻,USB就假定总线上没有连接任何东西。有些设备中,上拉电阻是内置的,能通过固件开启和关闭。另一些设备则需要外部上拉电阻。在这种情况下,通过固件进行速度控制会受到限制,并且要求另外对外部中继服务进行实现与编码。
低速设备在D-端连接上拉电阻,表明其为低速设备,如图4所示。最开始,高速设备被当作全速设备进行连接(D+→1.5k至3.3V)。初始连接之后,设备在复位时将发出高速的啁啾声,然后与主机建立高速连接。一旦设备经初始化进入高速模式,上拉电阻就被禁用。


USB数据流模式

  在设备可以与应用进行通信前,USB主机需要了解设备状态并给它分配设备驱动程序,实现这一初始信息交换的过程就叫作枚举。在枚举过程中,根据USB V2.0规范的定义,设备将经历以下设备状态:
◆ 上电状态(Powered)
◆ 缺省状态(Default)
◆ 地址状态(Address)
◆ 配置状态(Configured)


  另外还有两个USB设备状态,“连接状态”(Attached)和“挂起状态”(Suspended)。枚举过程的具体细节超出了本文的范围;不过,在设备配置中使用的命令与结构是相关的。描述符是让USB主机能获取设备信息的数据结构。在枚举过程中,主机请求描述符,从最上层设备描述符开始,一直到最低层端点描述符,顺序如图5所示。


枚举过程

  下面概述一下USB设备的枚举过程所包含的步骤,并讲解设备在枚举过程如何经历从上电到缺省、地址以及配置这几个状态。
◆ 用户将一个USB设备插入USB端口,主机为端口供电,设备此时处于上电状态。
◆ 主机检测设备。
◆ 集线器使用中断通道将事件报告给主机。
◆ 主机发送Get_Port_Status(读端口状态)请求,以获取更多的设备信息。
◆ 集线器检测设备是低速运行还是高速运行,并将此信息送给主机,这是对Get_Port_Status请求的响应。
◆ 主机发送Set_Port_Feature(写端口状态)请求给集线器,要求它复位端口。
◆ 集线器对设备复位。
◆ 主机使用Chirp K信号来了解全速设备是否支持高速运行。
◆ 主机发送另一个Get_Port_Status请求,确定设备是否已经从复位状态退出。
◆ 设备此时处于缺省状态,且已准备好在零端点通过缺省通道响应主机控制传输。缺省地址为00h,设备能从总线获取高达100mA的电流。
◆ 主机发送Get_Descriptor(读设备描述符)报文,以便确定最大数据包大小。设备描述符的八个字节是bMaxPacketSize。
◆ 通过发送Set_Address(写地址)请求,主机分配地址,设备此时处于地址状态。
◆ 主机发送Get_Descriptor报文,以获取更多的设备信息。主机通过发送描述符响应设备请求,随后发送全部的次级描述符。
◆ 主机分配并加载设备驱动程序。
◆ 通过发送Set_Configuration(写配置)请求,主机的设备驱动程序选择一个有效配置,设备此时处于配置状态。



评论


相关推荐

技术专区

关闭