0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

USB的数据类型与如何实现家电自动化设计

电子设计 作者:电子设计 2018-10-22 10:29 次阅读

USB ,是英文Universal Serial BUS(通用串行总线)的缩写,而其中文简称为"通串线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。USB技术的发展,使得PC和周边设备能够通过简单方式、适度的制造成本将各种数据传输速度的设备连接在一起,上述我们提到应用,都可以通过USB总线,作为PC的周边,在PC的控制下进行数据交换。但这种方便的交换方式,一旦离开了PC,各设备间无法利用USB口进行操作,因为没有一个从设备能够充当PC一样的Host.On-The-Go,即OTG技术就是实现在没有Host的情况下,实现从设备间的数据传送。例如数码相机直接连接到打印机上,通过OTG技术,连接两台设备见的USB口,将拍出的相片立即打印出来;也可以将数码照相机中的数据,通过OTG发送到USB接口的移动硬盘上,野外操作就没有必要携带价格昂贵的存储卡,或者背一个便携电脑。

随着功能丰富的新型半导体器件的高速发展,同时其价格也随之达到消费者可以承受的水平,我们正在见证一场家电行业中的自动化风暴。在这些技术进步中就包括了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总线:为通用串行总线,USB接口位于PS/2接口和串并口之间,允许外设在开机状态下热插拔,最多可串接下来127个外设,传输速率可达480MB/S,P它可以向低压设备提供5伏电源,同时可以减少PC机I/O接口数量。通用串行总线USB(universal serial bus)是由Intel、 Compaq、Digital、IBM、Microsoft、NEC、Northern Telecom等7家世界着名的计算机和通信公司共同推出的一种新型接口标准。它基于通用连接技术,实现外设的简单快速连接,达到方便用户、降低成本、扩展PC连接外设范围的目的。它可以为外设提供电源,而不像普通的使用串、并口的设备需要单独的供电系统。另外,快速是USB技术的突出特点之一,USB的最高传输率可达12Mbps比串口快100倍,比并口快近10倍,而且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设备间数据流的传输。这些传输数据被当作连续的比特流。每个设备提供了一个或多个可以与客户程序通信的接口,每个接口由0个或多个管道组成,它们分别独立地在客户程序和设备的特定终端间传输数据。USBD为主机软件的现实需求建立了接口和管道,当提出配置请求时,主控制器根据主机软件提供的参数提供服务。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的家电网络

网络家电是将普通家用电器利用数字技术、网络技术及智能控制技术设计改进的新型家电产品。网络家电可以实现互联组成一个家庭内部网络,同时这个家庭网络又可以与外部互联网相连接。可见,网络家电技术包括两个层面:首先就是家电之间的互连问题,也就是使不同家电之间能够互相识别,协同工作。第二个层面是解决家电网络与外部网络的通信,使家庭中的家电网络真正成为外部网络的延伸。要制造出商业化的网络家电,有许多的技术问题需要解决,这涉及到硬件和软件两个方面。硬件主要要解决传统家电如何和互联网连接。软件要解决采用哪种方案实现通讯,也就是采用什么语言的问题。建立统一的网络家电标准平台是摆在家用电器行业面前的重大课题。目前国际上有两家非营利性组织开展这方面的研究,一家是1999年3月成立的开放服务连接组织(OpenServiceGatewayInitiative,简称OSGI组织)、目前有思科、IBM、太阳、惠而浦、摩托罗拉、诺基亚等30余家公司参加,主要是为制定家庭网络的标准服务;另一家是欧洲的Conver?gence项目,它是由欧洲三大家用和建筑电子协会合作推出的共同合作项目,它将结合各公司的技术,形成综合性的全球网络标准,该标准将适用于所有的欧洲家用和商用电器。但不管标准和技术如何发展,其必须是具有开发性的才能有前途。

在基于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的优点

UWB技术是一种新型的无线通信技术。它通过对具有很陡上升和下降时间的冲激脉冲进行直接调制,使信号具有GHz量级的带宽。超宽带技术解决了困扰传统无线技术多年的有关传播方面的重大难题,它具有对信道衰落不敏感、发射信号功率谱密度低、低截获能力、系统复杂度低、能提供数厘米的定位精度等优点。 1 超宽带信号及其特点 美联邦通信委员会(FCC)规定: 部分带宽号称为UWB信号。其中,部分带宽为信号功率谱密度在-10dB处测量的值。

超宽带(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的家电自动化,实现高带宽、低干扰的无线连接。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • usb
    usb
    +关注

    关注

    59

    文章

    7432

    浏览量

    258076
  • 电脑
    +关注

    关注

    15

    文章

    1602

    浏览量

    67291
  • 总线
    +关注

    关注

    10

    文章

    2706

    浏览量

    87206
收藏 人收藏

    评论

    相关推荐

    GaussDB 数据类型介绍

    GaussDB 数据库 GaussDB 是华为基于 openGauss 自研生态推出的云化企业级分布式关系型数据库,它支持多种数据类型,包括数值、字符、日期等。在使用 GaussDB 时,可能需要
    的头像 发表于 06-05 16:40 1271次阅读
    GaussDB <b class='flag-5'>数据类型</b>介绍

    工业自动化数据采集方案推荐

    工业自动化数据采集一直是困扰着所有制造工厂的传统痛点,因自动化终端设备品牌类型繁多,不同采购年代的产品厂家和数据接口及支持协议各异,加之国外
    发表于 07-02 07:58

    PLC编程中几种实用的数据类型转换方法分享

    数据结构给算法带来诸多便利,很多优秀的算法往往都是建立在完美的数据结构之上的。  碰到不好处理的数据类型,可以进行转换后再做处理,界面显示一定是易懂的,程序内部处理数据一定是符合算法
    发表于 03-09 14:39

    基于USB家电自动化设计

      近年来,通用串行总线(Universal Serial Bus,USB)的使用为家电自动化引入了一种更为简单的实现途径。本文介绍了建立在USB
    发表于 10-28 17:56 755次阅读

    基于USB家电自动化

    本文介绍了建立在USB 基础之上的、创新的家电自动化应用,包括USB 自动洗衣机、烘干机、咖啡机、安保系统以及
    发表于 05-24 10:53 1702次阅读

    vhdl数据类型

    VHDL中的标识符可以是常数、变量、信号、端口、子程序或参数的名字。VHDL中的数据类型可以分成四大类: 标量型(SCALAR TYPE):属单元素的最基本的数据类型,通常用于描述一个单值数据对象
    发表于 03-30 15:59 11次下载

    Struct结构数据类型

    Struct类型是一种由多个不同数据类型元素组成的数据结构,其元素可以是基本数据类型,也可以是Struct、数组等复杂数据类型以及PLC
    的头像 发表于 07-25 17:02 2435次阅读

    结构数据类型(Struct)及应用案例

    Struct数据类型使用非常灵活,随时可以使用,但是相对于PLC数据类型 (UDT) 有以下缺点,所以建议需要使用Struct类型时,可以使用PLC数据类型(UDT)代替。
    的头像 发表于 07-27 16:10 1344次阅读

    什么是数据类型转换

    常用的3种数据类型:1、Python数据类型第一种:字符串(str)。 2、Python数据类型第二种:整数(int)。 3、Python数据类型第三种:浮点数(float)。
    的头像 发表于 02-23 15:21 576次阅读

    定义数据类型

    在运算之前我们必须首先定义出数据类型,定义出脚本支持的数据类型,这是运算的基础。 这一小节我们将定义出数据类型,在这里我们暂时定义四个数据类型:
    的头像 发表于 03-03 10:10 623次阅读

    ARRAY 数据类型的变量

    中,系统将提供自动完成功能。 将打开“数组”对话框。 在“数据类型”文本框中,指定数组元素的数据类型。 在“ARRAY 限值”(ARRAY limits) 输入字段中,指定各维度的上限和下限
    的头像 发表于 07-06 11:08 650次阅读

    PLC 数据类型 (UDT) 的基本知识

    ,也可直接使用关键字 STRUCT 声明为一个结构。因此,嵌套深度限制为 8 级。 PLC 数据类型 (UDT) 可在程序代码中统一更改和重复使用。系统自动更新该数据类型的所用使用位置。 PLC
    的头像 发表于 09-10 09:46 2231次阅读
    PLC <b class='flag-5'>数据类型</b> (UDT) 的基本知识

    Redis的数据类型有哪些

    Redis的数据类型有哪些?有五种常用数据类型:String、Hash、Set、List、SortedSet。以及三种特殊的数据类型:Bitmap、HyperLogLog、Geospatial
    的头像 发表于 10-09 10:51 401次阅读

    oracle的数据类型有哪些

    Oracle数据库中有许多数据类型可供选择,每种数据类型都有其各自的特点和适用场景。下面是对Oracle数据库中最常用的数据类型的详尽说明,
    的头像 发表于 12-05 16:45 636次阅读

    plc数据类型怎么理解和应用

    PLC(可编程逻辑控制器)是一种工业自动化设备,用于控制机械和工业过程。在PLC编程中,数据类型是非常重要的概念,因为它决定了程序中数据的存储和处理方式。正确理解和应用PLC数据类型
    的头像 发表于 12-19 11:39 1388次阅读