通用串行总线USB的家用电器自动化设计2

2013-09-02 15:22 来源:电子信息网 作者:铃铛

USB数据流模式:枚举在设备可以与应用进行通信前,USB 主机需要了解设备状态并给它分配设备驱动程序。实现这一初始信息交换的过程就叫作枚举。在枚举过程中,根据USB V2.0 规范的定义,设备将经历以下设备状态:

1. 上电状态(Powered)

2. 缺省状态(Default)

3. 地址状态(Address)

4. 配置状态(Configured)

另外还有两个USB 设备状态,“连接状态”(attached)和“挂起状态”(suspended)。枚举过程的具体细节超出了本文的范围;不过,在设备配置中使用的命令与结构是相关的。

描述符是让USB 主机能获取设备信息的数据结构。在枚举过程中,主机请求描述符,从最上层设备描述符开始,一直到最低层端点描述符,顺序如图5 所示。

5

图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. 标记包。USB 中所有事务都是由主机(PC)来完成的。IN 表示数据被读入PC,OUT 表示数据由主机送出至设备,如图6 所示。

2. 数据包(可选)。USB 主机有两个数据包——DATA0 和DATA1。每一个包的容量为1024 字节。

3. 状态包。在诸如应答(ACK)、否定应答(NACK)以及停止(Stall)等事务中,状态包用来跟踪USB 状态。

4. 帧起始包(SOF)。每一毫秒,USB 主机都将发送一帧SOF,每帧有11 位数据。

6


基于 USB 的家电网络

在基于USB 的家电网络中,可以以菊花链式连接6 个USB 集线器,为多达127 台家电设备提供接口。所有的集线器能安放在一个集线盒中,集线盒则通过控制电缆连接到设备上。这也可以由带USB 端口、运行Windows OS 的单板机进行控制,最终将为家中每个房间配备一个家电控制台。

通过USB 自动化,您在与朋友聊天的同时,可以通过PC 控制洗衣机的运行时间、衣服类型、清洗剂类型以及水温等。您也可以为每项任务添加音频特征,这样当每项任务完成时,您可以在某个特定的地方(卧室、客厅、游泳池或厨房等)收到音频提示。

此外,烘干机可以通过USB 自动接收指令,从洗衣机处装入衣服,设置烘干时间,然后自动计时烘干,在每项任务成功完成后均有音频提示。

通过USB 自动化,您可以在办公桌上控制咖啡机,不仅仅是煮咖啡,还能检测咖啡壶中还剩多少咖啡。USB 自动化甚至可以使您能煮出符合自己口味的咖啡。

USB 还可以使您看到冰箱内部的情况,设置特定的触发开关来检测剩余的牛奶、饮料、奶酪以及蔬菜量。根据这些信息,当您计划去商场时,可以从PC 中快速汇总食品采购清单。

照明自动化是居家的基本需求。通过USB 自动化,能够检查全屋的照明情况,并通过PC 对其进行控制。

USB 与温度传感器配合使用,能够自动控制房屋某处电风扇和空调的运行。这样,可以使不同的房间或“区域”保持不同的温度,以便节能。此外,电风扇和空调可以自动地分担制冷荷合。

1 2 > 
USB 自动化 家用电器

相关阅读

暂无数据

一周热门