几年前,用个人电脑(Personal computer,PC)实现家电自动化是一件令人望而却步的事——它要求配置中断请求(Interrupt Request,IRQ)、向PC 机添加额外的控制卡,以及对跳线组态进行恰当的设置。每当在家电网络上添加/ 删除某个设备或家电时,都需要重复这种冗长乏味的过程。
通用串行总线(Universal Serial Bus, USB)是连接外部设备的一个串口总线标准,在计算机上使用广泛,但也可以用在机顶盒和游戏机上,补充标准(On-The-Go)使其能够用于在便携设备之间直接交换数据。
USB初是由英特尔与微软公司倡导发起,其的特点是支持热插拔(Hot plug)和即插即用 (Plug&Play)。当设备插入时,主机枚举(enumerate)此设备并加载所需的驱动程序,因此使用远比PCI和ISA总线方便。
USB速度比平行埠并联总线(Parellel Bus,例如EPP、LPT)与串联埠总线(Serial Port,例如RS-232)等传统电脑用标准总线快上许多。原标准中USB 1.1 的传输带宽为 12Mbps,USB 2.0 的传输带宽为 480Mbps。 usb拓扑结构
USB的设计为非对称式的,它由一个主机(host)控制器和若干通过hub设备以树形连接的设备组成。 一个控制器下多可以有5级hub,包括Hub在内,多可以连接127个设备,而一台计算机可以同时有多个控制器。 和SPI-SCSI等标准不同,USB hub不需要终结器。
本文介绍了建立在USB 基础之上的、创新的家电自动化应用,包括USB 自动洗衣机、烘干机、咖啡机、安保系统以及家电控制台,如图1 所示。此外,本文还以基于USB 的照明控制为例,讲解了基于USB 的家电自动化的基础知识。,本文比较了USB 和其他用于家电自动化的主流无线技术(如,ZigBee. 通信协议和Bluetooth. 无线通信协议等)的异同。
背景
随着功能丰富的新型半导体器件的高速发展,同时其价格也随之达到消费者可以承受的水平,我们正在见证一场家电行业中的自动化风暴。在这些技术进步中就包括了PC 上USB 的演化。
此外,从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的端点
设备/功能(和集线器)与管道pipe (逻辑通道)联系在一起,管道把主机控制器和被称为端点endpoint的逻辑实体连接起来。 管道和比特流(例如UNIX的pipeline)有着相同的含义,而在USB词汇中术语端点经常和管道混用,甚至在正式文档中。
端点(和各自的管道)在每个方向上按照0-15编号,因此一个设备/功能多有32个活动管道,16个进,16个出。 (出( OUT)指离开控制器,而入(IN)指进入主机控制器。) 两个方向的端点0总是留给总线管理,占用了32个端点中的2个。在管道中,数据使用不同长度的包传递,端点可以传递的包长度上限一般是<math>2^n</math>字节,所以USB包经常包含的数据量依次有8、16、32、64、128、256、512或者1024字节。
一个端点只能单向(进/出)传输数据,自然管道也是单向的。每个USB设备至少有两个端点/管道:它们分别是进出方向的,编号为0,用于控制总线上的设备。按照各自的传输类型,管道被分为4类:
控制传输——一般用于短的、简单的对设备的命令和状态反馈,例如用于总线控制的0号管道。
等时传输——按照有保障的速度(可能但不必然是尽快地)传输,可能有数据丢失,例如实时的音频、视频。中断传输——用于必须保证尽快反应的设备(有限延迟),例如鼠标、键盘。
批量传输——使用余下的带宽大量地(但是没有对于延迟、连续性、带宽和速度的保证)传输数据,例如普通的文件传输。
USB总线架构
一个USB主机通过hub链可以连接多个设备。由于理论上一个物理设备可以承担多种功能,例如路由器同时也可以是一个SD卡读卡器,USB的术语中设备(device)指的是功能(functions)。集线器(hub)由于作用特殊,按照正式的观点并不认为是function。 直接连接到主机的hub是根(root)hub。
这种菊花链式连接,形成了称为层式星状(tiered star)的拓扑结构,并在发生过流现象时关闭设备。USB 集线器还能适当过滤主机和设备间的数据,实现低速(LS)、全速(FS)和高速(HS)设备的无缝集成。
USB 是即插即用型协议,能动态加载和卸载USB 驱动程序。要加载USB 驱动程序,必须有USB 提供商标识符(VID)和产品标识符(PID)。这两个标识信息记录在USB 设备的设备描述符中。
与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 与温度传感器配合使用,能够自动控制房屋某处电风扇和空调的运行。这样,可以使不同的房间或“区域”保持不同的温度,以便节能。此外,电风扇和空调可以自动地分担制冷荷合。
而在家庭安保方面,使用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 单片机。在Microchip 的嵌入式 FAT16 文件系统的协助下,USBSTOR.SYS 驱动程序在Secure Digital. 卡上创建文件,用来记录模数转换数据。然后,把记录的数据存放在SD 卡上一个叫做DATALOG.TXT 的文本文件中。
USB 音频视频应用
本演示将展示Microchip USB PIC. 单片机播放实时音频视频流的能力。演示将证实PIC 器件不仅非常适用于嵌入式控制,也适用于含有音频视频信息的应用,如可视门铃等。
超宽带(UWB)USB的优点
无线的USB(WUSB) 首先,我们来想像一下,如果一个家庭的所有装置,比如:打印机,扫描机,外接硬盘和数码相机等等,都将没有任何的电线直接连接到你电脑上。再来想像一下,如果整个的家庭娱乐中心的所有附件都将不需要一根电线就能够连接。或者,我们再想像一下,如果数码照片不需要电线就可以接到照片打印机上,这该是多么方便、多么美好的事情。然而,这些只是无线USB (WUSB) 良好连接性的几个小侧面,因为的技术发展将会给各种设备带来更大的便捷和移动性(包括市区和郊区)。
目前,USB技术已经成为PC间普遍流行的技术标准,而且也逐渐被用到消费电子,移动终端中。现在,WUSB这个高速有效的连接接口的诞生是为了消去电缆的负担,以加强USB所不具有的功能。
蓝牙是目前短距离无线连接的行业标准。然而,由于蓝牙与Wi-Fi(802.11g 标准)使用相同的频段,因此可能存在干扰问题。
另一方面,UWB 使用3.1-10.6GHz 的频段,它的每个无线电信道均超过500MHz,美国联邦通信委员会(Federal Communications Commission,FCC)对其有严格的传送功率限制。
UWB 使用了极宽的频段,同时发射功率较小,以便窄带设备能够检测到信号。因此,UWB 能与其他的无线通信协议(如Wi-Fi)共存。
无线网络为迫切需要解决的就是电源消耗和电池续航能力。试想一下,如果消费者的PDA或者其它手持移动终端,在没有进行WUSB连接时消耗的电力不多,但是连上后,消耗电力明显增多,这对消费者来说,是个很大遗憾。WUSB的能耗就应该控制在蓝牙,红外等短距离交流技术之下,才能更好的发挥WUSB的作用。目前,OFDM联盟发展能耗低于300mw的WUSB技术,同时,把能耗向100mw的方向发展。
无线技术比较
总结
本文讨论并演示基于USB 的家电自动化。文中说明了来自Microchip 的8 位PIC 单片机不仅能用于交流家电的控制,也完全可以用于解决数据记录、用于需要类似音频视流那样的实时应用。
基于USB 的家电自动化具有无限的空间。预计采用USB 控制的家电产品将迅速发展。无线USB 的标准化,将促进基于USB 的家电自动化,实现高带宽、低干扰的无线连接,提高了人们的生活水平。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。