基于USB的家电自动化
四种不同类型的数据传输:
1. 控制传输方式。控制传输在设备插入时对其进行配置,并能用于其他的设备特定用途,诸如对设备上的其他通道进行控制等。
2. 批量传输方式。在数据的产生和使用量相对较大时采用批量传输方式。
3. 中断传输方式。中断传输用于及时且可靠的数据传送。例如,具有人类可感知反应或反馈响应特征的字符或坐标,等等。
4. 同步传输方式。同步传输方式在预先约定的传输延迟时间占用预定的USB 带宽。同步传输也称为"流实时传输"。
A 型USB 连接器专用于数据下行传输,即,数据从设备传输到主机。所以,A 型连接器位于设备上。
B 型USB 连接器专用于数据上行传输,即,数据从USB 主机传输到设备或从集线器传输到设备。B 型连接器位于主机和集线器上,如图2 所示。
有时为了使占用空间更小,可以使用微型USB 连接器。
USB 设备通过拉高D+ 或D-端线电平来指示其速度,最高为3.3 伏。全速设备在D+ 端接一个上拉电阻表明它是全速设备,如图3 所示。
如果没有上拉电阻, USB 就假定总线上没有连接任何东西。有些设备中,上拉电阻是内置的,能通过固件开启和关闭。另一些设备则需要外部上拉电阻。在这种情况下,通过固件进行速度控制会受到限制,并且要求另外对外部中继服务进行实现与编码。
低速设备在D-端连接上拉电阻,表明其为低速设备,如图4 所示。
最开始,高速设备被当作全速设备进行连接(D+ →1.5k 至3.3V)。初始连接之后,设备在复位时将发出高速的啁啾声,然后与主机建立高速连接。一旦设备经初始化进入高速模式,上拉电阻就被禁用。
USB数据流模式:枚举在设备可以与应用进行通信前,USB 主机需要了解设备状态并给它分配设备驱动程序。实现这一初始信息交换的过程就叫作枚举。在枚举过程中,根据USB V2.0 规范的定义,设备将经历以下设备状态:
1. 上电状态(Powered)
2. 缺省状态(Default)
3. 地址状态(Address)
4. 配置状态(Configured)
另外还有两个USB 设备状态,"连接状态"(attached)和"挂起状态"(suspended)。枚举过程的具体细节超出了本文的范围;不过,在设备配置中使用的命令与结构是相关的。
描述符是让USB 主机能获取设备信息的数据结构。在枚举过程中,主机请求描述符,从最上层设备描述符开始,一直到最低层端点描述符,顺序如图5 所示。
枚举过程
下面概述一下USB 设备的枚举过程所包含的步骤,并讲解设备在枚举过程如何经历从上电到缺省、地址以及配置这几个状态。
1. 用户将一个USB 设备插入USB 端口。主机为端口供电,设备此时处于上电状态。
2. 主机检测设备。
3. 集线器使用中断通道将事件报告给主机。
4. 主机发送Get_Port_Status(读端口状态)请求,以获取更多的设备信息。
5. 集线器检测设备是低速运行还是高速运行,并将此信息送给主机,这是对Get_Port_Status 请求的响应。
6. 主机发送Set_Port_Feature(写端口状态)请求给集线器,要求它复位端口。
7. 集线器对设备复位。
8. 主机使用Chirp K 信号来了解全速设备是否支持高速运行。
9. 主机发送另一个Get_Port_Status 请求,确定设备是否已经从复位状态退出。
10. 设备此时处于缺省状态,且已准备好在零端点通过缺省通道响应主机控制传输。缺省地址为00h,设备能从总线获取高达100mA 的电流。
11. 主机发送Get_Descriptor(读设备描述符)报文,以便确定最大数据包大小。设备描述符的八个字节是bMaxPacketSize。
12. 通过发送Set_Address(写地址)请求,主机分配地址,设备此时处于地址状态。
13. 主机发送Get_Descriptor 报文,以获取更多的设备信息。主机通过发送描述符响应设备请求,随后发送全部的次级描述符。
14. 主机分配并加载设备驱动程序。
15. 通过发送Set_Configuration(写配置)请求,主机的设备驱动程序选择一个有效配置。设备此时处于配置状态。
16. 主机为复合设备接口分配驱动程序。
17. 如果集线器检测到有过流现象,或者主机要求集线器关闭电源,则USB 总线切断设备供电电源。在这种情况下,设备与主机无法通信,但设备处于连接状态。
18. 如果在3 毫秒内设备在总线上未见任何动作,则它将进入挂起状态,在挂起状态设备消耗的总线电能最少。
USB 协议层
控制传输使主机和设备之间可以交换设备配置信息和其他控制信息。控制传输在低速和全速传输运行时占用10% 的带宽,在高速运行时占用20% 的带宽。控制传输由设置阶段、可选的数据阶段
- 从1.8V到USB的多轨电压转换和管理(08-17)
- 具USB OTG和过压保护的紧凑型电源管理器(08-17)
- USB供电的单节镍氢电池开关模式充电器电路设计(02-12)
- 具有USB OTG和过压保护的紧凑型电源管理器的实现(10-17)
- 低导通损耗的USB电源开关的设计(12-01)
- 一种满足USB规范的电源开关设计方案(02-13)