基于USB的家电自动化设计
扫描二维码
随时随地手机看文章
近年来,通用串行总线(Universal Serial Bus,USB)的使用为家电自动化引入了一种更为简单的实现途径。本文介绍了建立在USB基础之上的、创新的家电自动化应用,并以基于USB的照明控制为例,讲解了基于USB的家电自动化的基础知识。最后,本文比较了USB和其他用于家电自动化的主流无线技术(如ZigBee通信协议和Bluetooth无线通信协议等)的异同。
即插即用(Plug-n-play) 的简单操作就是当家电插入PC上的USB端口,就会与PC交换USB家电参数,从而消除了对家电接口进行设置的繁琐工作。根据经由USB端口传送至PC的家电描述符,自动把家电配置为“就绪”状态。此外,在家电网络上添加或删除新家电,只要将它们简单地插拔即可。
随着功能丰富的新型半导体器件的高速发展,同时其价格也随之达到消费者可以承受的水平,我们正在见证一场家电行业中的自动化风暴。在这些技术进步中就包括了PC上USB的演化。现在,我们的日常生活中方方面面都会用到PC机。我们与周围环境的互动,很大程度上是通过PC机进行控制的。
此外,从PC的角度看,USB使外围设备初始化方面发生了巨大的变化,不再需要用户与PC机进行交互或关注PC机。USB协议非常智能,它能自动检测并驱动多达127个连接在其总线上的设备。可以预见,USB将能够最终控制和驱动绝大部分家电。
由于USB能实现家电自动化,它对于最终用户是有用的,包括USB自动洗衣机、烘干机、咖啡机、安保系统以及家电控制台,如图1所示。不仅如此,对于家电制造商而言,在新产品测试方面,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是每条总线支持一个主机的一种主机控制架构。大部分的PC上都有多个USB主机。设备能用集线器以菊花链方式连接到主机上。多个集线器能够以菊花链方式连接起来,支持多达127个不同设备,每个菊花链段长度不能超过五英尺。
这种菊花链式连接,形成了称为层式星状(Tiered Star)的拓扑结构,它与10-Base T以太网类似。与以太网拓扑结构相比,USB有一些优点,因为USB集线器能为连接在其上的设备供电,并在发生过流现象时关闭设备。USB集线器还能适当过滤主机和设备间的数据,实现低速(LS)、全速(FS)和高速(HS)设备的无缝集成。
USB是即插即用型协议,能动态加载和卸载USB驱动程序。要加载USB驱动程序,必须有USB提供商标识符(VID)和产品标识符(PID)。
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支持四种不同类型的数据传输:
◆ 控制传输方式。控制传输在设备插入时对其进行配置,并能用于其他的设备特定用途,诸如对设备上的其他通道进行控制等。
◆ 批量传输方式。在数据的产生和使用量相对较大时采用批量传输方式。
◆ 中断传输方式。中断传输用于及时且可靠的数据传送。例如,具有人类可感知反应或反馈响应特征的字符或坐标等。
◆ 同步传输方式。同步传输方式在预先约定的传输延迟时间占用预定的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规范的定义,设备将经历以下设备状态:
◆ 上电状态(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(写配置)请求,主机的设备驱动程序选择一个有效配置,设备此时处于配置状态。
◆ 主机为复合设备接口分配驱动程序。
◆ 如果集线器检测到有过流现象,或者主机要求集线器关闭电源,则USB总线切断设备供电电源。在这种情况下,设备与主机无法通信,但设备处于连接状态。
◆ 如果在3毫秒内设备在总线上未见任何动作,则它将进入挂起状态,在挂起状态设备消耗的总线电能最少。
USB协议层
控制传输使主机和设备之间可以交换设备配置信息和其他控制信息。控制传输在低速和全速传输运行时占用10%的带宽,在高速运行时占用20%的带宽。控制传输由设置阶段、可选的数据阶段和状态阶段组成,下面详细描述每个阶段的包。
◆ 标记包。USB中所有事务都是由主机(PC)来完成的。IN表示数据被读入PC,OUT表示数据由主机送出至设备,如图6所示。
◆ 数据包(可选)。USB主机有两个数据包——DATA0和DATA1。每一个包的容量为1024字节。
◆ 状态包。在诸如应答(ACK)、否定应答(NACK)以及停止(Stall)等事务中,状态包用来跟踪USB状态。
◆ 帧起始包(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的优点
超宽带(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的家电自动化,实现高带宽、低干扰的无线连接。