Zigbee网络

在智能家居系统中,WIFI可以用于大数据量通信,适合用于摄像头。尽管WIFI在通信速率上本可以做为所有节点间的通信手段,但考虑到WIFI用于TCP/IP的通信,而使用这样复杂的协议栈对于处理器要求比较高,另外加上功耗比较高,所以在慢速无线通信的时候,可以采用其他相对简单的无线通信。除了ISM频段,其他频段需要许可证,用于专用的通信,所以只可以在ISM频段下选择非WIFI的另外一种通信方式。
目前最常用的无线通信方式除了WIFI外主要有Zigbee/蓝牙等。Zigbee和蓝牙尽管都适合低速率传输,但Zigbee有更加强大的网络拓扑功能,而蓝牙目前最主要用来一对一的通信。

Zigbee简介
Zigbee(IEEE802.15.4)技术是2000年以来建立起的一种采用跳频技术和扩频技术来实现的无线通信技术,采用2.4G频段,该频段属于ISM。
IEEE802.15.4标准只是规定了物理层(PHY)和媒体接入控制层(MAC),但设计PHY和MAC的时候考虑到了之后协议扩展的需要,而zigbee在此基础上再加入了上层协议,包括网络层和应用层。

Zigbee网络
除了最简单的一对一通信之外,zigbee实现了各种网络结构,所有的zigbee网络中,都有唯一的一个核心,称之为协调器。除了协调器之外,还有一些其他的成员,根据网络中其他成员与协调器之间关系,可以分为星型网络,以及树型网络,还有最复杂的网格网络。
星型网络:所有的非协调器网络成员只与协调器之间直接通信,成员之间的通信通过协调器转发。
树型网络:整个网络拓扑是一个树型,网络中两个网络成员之间通信可能需要别的成员进行数据转发。因为为树型,任何两个非协调器成员之间的通信路径单一。
网格网络:网络拓扑是一个连通图,但可能不是树型,于是可能存在两个点的通信路径不唯一。
对于树型网络和网格网络,称参与通信数据转发的非协调器成员叫路由器,而不参与通信数据转发的成员叫节点。

Zigbee的优点以及缺点
Zigbee的优点主要有如下几点:
低功耗:引入休眠和唤醒机制。
低成本:Zigbee协议栈实现简单,无专利费的门槛。
网络容量大:当采用网格网络组网的时候,整个网络最大的规模可以到60000以上。一个区域内可以同时存在最多可达100个不同的Zigbee网络
安全性:采用AES 128位对称加密算法保障用户通信安全,非对称加密计算复杂度底,使用单片机完全可以完成。
通信可靠:动态组网,网络拓扑结构可能随时自动调整。
当然Zigbee也有缺点,缺点主要有如下几点:
传输距离小:Zigbee网络有效传输距离一般10米~75米,这个距离使得覆盖面积较小。用功率放大器可以扩大覆盖范围。
数据传输速率低:链路层上的速率只有200Kb/s,在此基础上,还有帧头、应答、重传以及信道竞争等等,所以实际的速率是很低的。

为何采用Zigbee
Zigbee的通信实现简单,协议栈可以在一个主频只有50MHz,RAM只有8k的处理器上运行,对硬件的要求很低。Zigbee动态组网,随时可以加入新的节点到网络,组网方便。Zigbee对于普通不带路由功能的节点通信采用休眠/唤醒机制,大多数情况下硬件可以处于休眠状态,功耗可以很低,两节5号电池可以使用半年之久。
考虑到智能家居系统之中,一些节点可能需要电池去供电,功耗是一个很重要的参考因素。大多数的通信在于节点状态汇报,网关发出控制指令等,而这些通信数据量都很低。从而,设计智能家居系统的时候,可以考虑使用zigbee作为智能网关与各个节点之间通信的手段,采用网格网络比星型网络更有优势。在Zigbee网格网络中,路由器因为随时需要通信转发,所以无法休眠,耗电量相对较大,设计时可以考虑使用在一些外部供电的节点上,例如电表抄表、智能插座;而不带路由功能的普通节点可以使用在一些电池供电的手持设备,例如家电控制模块。整个Zigbee网格网络的协调器由智能网关担当。

socket简单理解的更多相关文章

  1. php socket 简单理解

    以下内容转自:https://www.cnblogs.com/loveyoume/p/6076101.html 和 https://www.cnblogs.com/WuNaiHuaLuo/p/6107 ...

  2. TCP/IP、Http、Socket 简单理解

    转自:http://blog.csdn.net/guyan0319 https://blog.csdn.net/guyan0319/article/details/79404216 一. 什么是TCP ...

  3. http、tcp和socket简单理解

    1.Http属于应用层,主要解决如何包装数据. 2.Tcp属于传输层,主要解决数据如何在网络上传输. 3.Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API) ...

  4. [转]简单理解Socket

    简单理解Socket 转自 http://www.cnblogs.com/dolphinX/p/3460545.html  题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公 ...

  5. 简单理解php的socket连接

    socket建立套接的过程图: 首先了解socket 几个主要函数: socket的关键函数1: socket_create($net参数1,$stream参数2,$protocol参数3) 作用:创 ...

  6. linux中socket的理解

    对linux中socket的理解 一.socket 一般来说socket有一个别名也叫做套接字. socket起源于Unix,都可以用“打开open –> 读写write/read –> ...

  7. Socket 的理解及实例

    Socket 的理解及实例Socket 的理解TCP/IP要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Intern ...

  8. .NET 跨平台RPC框架DotNettyRPC Web后台快速开发框架(.NET Core) EasyWcf------无需配置,无需引用,动态绑定,轻松使用 C# .NET 0配置使用Wcf(半成品) C# .NET Socket 简单实用框架 C# .NET 0命令行安装Windows服务程序

    .NET 跨平台RPC框架DotNettyRPC   DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standar ...

  9. python socket 的理解(1)

    前言 socket的用法简单,但里面的概念有点模糊,记录自己本人的一点理解. socket层结构图 注意,从此图中看出socket处于tcp和应用层之间.那么它代表啥意思呢?简明的说,数据的传输都是底 ...

随机推荐

  1. js 零散知识

    # 同一种类型的事件注册多个事件句柄,后面的不会覆盖前面的事件 # event.which == 13,13代表回车 # parsley.js验证框架 # JSON.stringify, avoid ...

  2. 类方法__setattr__,__delattr__,__getattr__

    __getattr__,_delattr_,_getattr_ class Foo: x = 1 def __init__(self, y): self.y = y def __getattr__(s ...

  3. CAD参数绘制样条线(网页版)

    在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::PathLineTo 把路径下一个点移到指定位置.详细说明如下: 参数 说明 DOUBL ...

  4. idea拉出Output窗口和还原窗口

    拉出:按住标题可以拖出 效果: 还原:点击restore layout

  5. java中mkdir()和mkdirs()区别

    mkdirs()可以建立多级文件夹 mkdir()只会建立一级的文件夹 例如: new File("/file/one/two").mkdirs(); 可建立/file/one/t ...

  6. show()的方向

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. Node.js中的Buffer

    Buffer介绍 为什么要用Buffer? 在Node/ES6 出现之前,前端工程师只需要进行一些简单的额字符串或者ODM操作就可以满足业务需求了,所有对二进制数据比较陌生. 在node出现之后,前端 ...

  8. c++基础_时间转换

    #include <iostream> using namespace std; int main(){ int n; cin>>n; ,b=,c=; )!=){ a=n/; ...

  9. LeetCode(64) Minimum Path Sum

    题目 Total Accepted: 47928 Total Submissions: 148011 Difficulty: Medium Given a m x n grid filled with ...

  10. os系统下安装Python2和Python3

    一.下载Xcode工具 1.在App Store 里面下载并安装Xcode 2.安装好Xcode后就打开它,首次进入会有一些LicenceAgreement,点同意就是了,然后就进入到 这个界面: 3 ...