基于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速度:
1. 高速:480Mbits/s
2. 全速:12Mbits/s
3. 低速:1.5Mbits/s
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连接器:
A型USB连接器
B型USB连接器
图 2
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_De
12. 通过发送Set_Address(写地址)请求,主机分配地址,设备此时处于地址状态。
13. 主机发送Get_De
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)共存。
无线技术比较
技术 数据率 (Mb/s) 距离(英尺) 频率(GHz)
UWB 50-100 500 3.1-10.7
蓝牙 0.8-1.0 30 2.4
ZigBee 0.02-0.2 20-25 2.4
802.11g 54 100 2.4
总结
本文讨论并演示基于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
暂无评论