基于USB的家电自动化
扫描二维码
随时随地手机看文章
摘要
几年前,用个人电脑(Personal computer,PC)实现家电自动化是一件令人望而却步的事——它要求配置中断请求(Interrupt Request,IRQ)、向PC 机添加额外的控制卡,以及对跳线组态进行恰当的设置。每当在家电网络上添加/ 删除某个设备或家电时,都需要重复这种冗长乏味的过程。
近来,通用串行总线(Universal Serial Bus,USB)的使用,为家电自动化引入了一种更为简单的实现途径。采用称为“即插即用”(plug-n-play)的简单操作,当家电插入PC 上的USB 端口,就会与PC 交换USB 家电参数,从而消除了对家电接口进行设置的繁琐工作。根据经由USB 端口传送至PC 的家电描述符,自动把家电配置为“就绪”状态。此外,在家电网络上添加或删除新家电,只要将它们简单地插拔即可。
本文介绍了建立在USB 基础之上的、创新的家电自动化应用,包括USB 自动洗衣机、烘干机、咖啡机、安保系统以及家电控制台,如图1 所示。此外,本文还以基于USB 的照明控制为例,讲解了基于USB 的家电自动化的基础知识。最后,本文比较了USB 和其他用于家电自动化的主流无线技术(如,ZigBee. 通信协议和Bluetooth. 无线通信协议等)的异同。
背景
随着功能丰富的新型半导体器件的高速发展,同时其价格也随之达到消费者可以承受的水平,我们正在见证一场家电行业中的自动化风暴。在这些技术进步中就包括了PC 上USB 的演化。
现在,我们的日常生活中方方面面都会用到PC 机。我们与周围环境的互动,很大程度上是通过PC 机进行控制的。类似地,如果没有PC 机作为其中心,未来的家电自动化根本无法想象。
此外,从PC 的角度看,USB 使外围设备初始化方面发生了巨大的变化,不再需要用户与PC 机进行交互或关注PC 机。USB 协议非常智能,它能自动检测并驱动多达127 个连接在其总线上的设备。可以预见,USB 将能够最终控制和驱动绝大部分家电。
由于USB 能实现家电自动化,它对于最终用户是有用的。不仅如此,对于家电制造商而言,在新产品测试方面,USB 也非常有用。
USB 的演化发展,使得家电的即插即用成为现实,而这促使了操作系统供应商对标准USB 驱动程序提供支持。
比如说,Microsoft. 在其Windows. 操作系统(OS)的各版本中,提供了USB 驱动程序支持,支持诸如人机接口设备(Human Interface Device,HID)、通信设备类(Communication Device Class,CDC)和大容量存储设备(Mass Storage Device,MSD)驱动程序。
USB 的另一项重要用途与预付费设施有关。比如说,
自动洗衣店可以向客户发行洗衣卡,洗衣卡可以通过USB端口进行读取,从而通过USB 总线对洗衣机进行控制。USB 总线提供了充足的数据率,用于记录设施数据和记录家电用电量明细。对于具有USB 总线的家电而言,这类大容量存储USB 特别适用于数据记录与控制。
USB 还可以用在家电的安全使用上。例如,父母能够通过USB 端口对家电锁定和解锁,防止孩子自己开启某些家电。这样能让人放心许多,在没有监护人的情况下,孩子无法去操作有潜在危险的家电。
现在已经为您介绍了USB 及其可能的应用,下面让我们来探索一下USB 协议的细节。
USB总线架构
USB 是每条总线支持一个主机的一种主机控制架构。大部分的PC 上都有多个USB 主机。设备能用集线器以菊花链方式连接到主机上。多个集线器能够以菊花链方式连接起来,支持多达127 个不同设备,每个菊花链段长度不能超过五英尺。
这种菊花链式连接,形成了称为层式星状(tiered star)的拓扑结构, 它与 10-Base T 以太网类似。与以太网拓扑结构相比,USB 有一些优点,因为USB 集线器能为连接在其上的设备供电,并在发生过流现象时关闭设备。USB 集线器还能适当过滤主机和设备间的数据,实现低速(LS)、全速(FS)和高速(HS)设备的无缝集成。
USB 是即插即用型协议,能动态加载和卸载USB 驱动程序。要加载USB 驱动程序,必须有USB 提供商标识符(VID)和产品标识符(PID)。这两个标识信息记录在USB 设备的设备描述符中。
VID 用来识别USB 总线的制造商。通常,VID 由名为“通用串行总线开发者论坛”(USB Implementers’ Forum,USB-IF,www.usb.org)组织分配。申请者需要支付注册VID 费用。
与VID 类似, PID 是一个16 位数字。PID 标识的是产品。设备制造商提供PID 号。不同于VID,对于PID 来说,USB-IF 对其没有任何管理上的限制。
USB 的另一个重要特性是它支持不同类型的数据传输方式。例如,USB V2.0 支持四种不同类型的数据传输:
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. 标记包。USB 中所有事务都是由主机(PC)来完成的。IN 表示数据被读入PC,OUT 表示数据由主机送出至设备,如图6 所示。
2. 数据包(可选)。USB 主机有两个数据包——DATA0 和DATA1。每一个包的容量为1024 字节。
3. 状态包。在诸如应答(ACK)、否定应答(NACK)以及停止(Stall)等事务中,状态包用来跟踪USB 状态。
4. 帧起始包(SOF)。每一毫秒,USB 主机都将发送一帧SOF,每帧有11 位数据。
基于 USB 的家电网络
在基于USB 的家电网络中,可以以菊花链式连接6 个USB 集线器,为多达127 台家电设备提供接口。所有的集线器能安放在一个集线盒中,集线盒则通过控制电缆连接到设备上。这也可以由带USB 端口、运行Windows OS 的单板机进行控制,最终将为家中每个房间配备一个家电控制台。
通过USB 自动化,您在与朋友聊天的同时,可以通过PC 控制洗衣机的运行时间、衣服类型、清洗剂类型以及水温等。您也可以为每项任务添加音频特征,这样当每项任务完成时,您可以在某个特定的地方(卧室、客厅、游泳池或厨房等)收到音频提示。
此外,烘干机可以通过USB 自动接收指令,从洗衣机处装入衣服,设置烘干时间,然后自动计时烘干,在每项任务成功完成后均有音频提示。
通过USB 自动化,您可以在办公桌上控制咖啡机,不仅仅是煮咖啡,还能检测咖啡壶中还剩多少咖啡。USB 自动化甚至可以使您能煮出符合自己口味的咖啡。
USB 还可以使您看到冰箱内部的情况,设置特定的触发开关来检测剩余的牛奶、饮料、奶酪以及蔬菜量。根据这些信息,当您计划去商场时,可以从PC 中快速汇总食品采购清单。
照明自动化是居家的基本需求。通过USB 自动化,能够检查全屋的照明情况,并通过PC 对其进行控制。
USB 与温度传感器配合使用,能够自动控制房屋某处电风扇和空调的运行。这样,可以使不同的房间或“区域”保持不同的温度,以便节能。此外,电风扇和空调可以自动地分担制冷荷合。
而在家庭安保方面,使用USB 自动化,可以通过PC 控制门锁、查看门锁状态,在卧室就可以关闭或打开房门。
此外,USB 自动可视门铃能用于防止入侵者进入房屋。USB 自动化也使您能通过PC 打开和关闭窗户及窗帘。
家电USB 自动化的潜力是无穷的。采用现代技术,USB 自动化就是把家电或设备与PC 上USB 端口连接,如图7 所示。
演示:基于 USB 的照明自动化
本演示将展示交流照明的USB 自动化,使用的是MCHPUSB.SYS,这是Microchip 开发的USB 驱动程序。此外,使用MCHPUSB.SYS 驱动程序可以通过PC 的图形用户界面(GUI)看到电灯的状态。
演示:USB 数据记录器
数据记录,对于家电制造商验证新产品设计,以及在向用户发货之前进行自动化家电设备测试,是非常重要的。
从消费者的角度看,数据记录也很重要;因为,可以预见,许多未来的家电产品都将具有储值卡激活系统,它要求用户进行登录以便使用家电。有了数据记录功能,储值卡在余额用完时,能够将设备锁定。
本演示使用Microsoft 的USBSTOR.SYS 驱动程序来操作被当作大容量存储设备使用的PIC18F4550 单片机。USBSTOR.SYS 是Windows 操作系统自带的大容量存储设备驱动程序。在Microchip 的嵌入式 FAT16 文件系统的协助下,USBSTOR.SYS 驱动程序在Secure Digital. 卡上创建文件,用来记录模数转换数据。然后,把记录的数据存放在SD 卡上一个叫做DATALOG.TXT 的文本文件中。
演示:USB 音频视频应用
本演示将展示Microchip USB PIC. 单片机播放实时音频视频流的能力。演示将证实PIC 器件不仅非常适用于嵌入式控制,也适用于含有音频视频信息的应用,如可视门铃等。
超宽带(UWB)USB的优点
超宽带(Ultra Wide Band,UWB)USB 也称为“无线USB”,它是一种短距离无线通信的推荐标准,有望在不久的将来取代蓝牙技术。
蓝牙是目前短距离无线连接的行业标准。然而,由于蓝牙与Wi-Fi(802.11g 标准)使用相同的频段,因此可能存在干扰问题。
另一方面,UWB 使用3.1-10.6GHz 的频段,它的每个无线电信道均超过500MHz,美国联邦通信委员会(Federal Communications Commission,FCC)对其有严格的传送功率限制。
UWB 使用了极宽的频段,同时发射功率较小,以便窄带设备能够检测到信号。因此,UWB 能与其他的无线通信协议(如Wi-Fi)共存。
无线技术比较
总结
本文讨论并演示基于USB 的家电自动化。文中说明了来自Microchip 的8 位PIC 单片机不仅能用于交流家电的控制,也完全可以用于解决数据记录、用于需要类似音频视流那样的实时应用。
基于USB 的家电自动化具有无限的空间。预计采用USB 控制的家电产品将迅速发展。无线USB 的标准化,将促进基于USB 的家电自动化,实现高带宽、低干扰的无线连接。
参考文献
[1] “USB Mass Storage Device using a PIC MCU”, Gurinder Singh,Microchip 应用笔记,AN1003,http://www.microchip.com/MSD
[2] “USB Complete: Everything You Need to Develop Custom USB Peripherals”,Jan Axelson,ISBN 0-9650819-5-8
[3] PIC18F4550数据手册: http://ww1.microchip.com/downloads/en/DeviceDoc/39632b.pdf