LED调光基础:
☆:LED照明调光控制信号的方式有两种:
  1. 通过PWM信号控制LED灯具开关电源的占空比从而实现调光;
  2. 通过调光控制信号和交流电源供电线合用的两线式或三线式(例如LED相控调光)
  3. 调光控制信号和交流电源供电线分离调光(0-10V,ADLI,DMX512,KNX等)。
☆:LED智能家居通讯协议:
  1. wifi(项目最开始的时候用这个吧,比较熟悉,而且速度很快(快于下面的三个,就是不够安全))
  2. ZigBee(功耗1/10,网状网络)
  3. ZigBee Light Link(支持很多智能家居的东西)
  4. Z-Wave(室内覆盖范围30M,室外100M)
Zwave基础:
☆:控制节点(Controller)
  控制节点是一个具有网络全部路由表的Z-Wave网络设备,因此他可以跟Z-Wave网络中所有节点进行通讯。新的Z-Wave网络创建取决于控制设备的加入。控制节点分为主控制器和次控制器,每个Z-Wave网络只能有一个主控制器,只有主控制器具有添加和删除其他设备,次控制器只能进行指令的发送,不能向网络中添加或删除设备。
☆:从属节点(Slavers)

  从属节点在网状网络中充当路由器,普通从节点可以是调光器。路由节点可以主动发送路由信息给网络中的其他节点,路由节点存储了一定数量的静态路由信息,用于给一定数量的节点发送未审核的信息。增强节点是一个可以用EEPROM储存信息的节点。

☆:网络的标志(Home ID,Node ID)

  Home ID在Z-Wave网络用于区分不同的网络,在一个Z-Wave网络中,Node ID是唯一且不可以重复的。

☆:物理层(MAC Layer)
  1. 数据传输使用曼切斯特码(Manhester Code)序列并以40k的速率进行传输(以8位数据块结构进行传输) 这些数据块分布分别是:前序(Preamble),起始帧(Start of Frame),数据(Data),结束帧(End of Frame),物理层独立于频射介质,频率和调制方式,为了调高数据传输的可靠性,物理层采用多址/冲突避免(CSMA/CA)机制,来保证传输通道不被占用。
  2. Z-Wave的物理层具有避免冲突的机制,这种机制可以避免不同的时刻发送信息。如果当一个节点正在传输数据,其他需要发送数据的节点将会自动延迟,当网络中存在数据传输时,所有节点的冲突保护都将会被激活启用,传输数据将会被延迟。
☆:传输层(Transfer Layer)   
  1. Z-WAVE的数据包的结构如图所示
                                
    一个Z-Wave数据包包含以下信息:该网络的Home ID,发送该数据节点的Node ID,帧头,帧长度,目的节点的Node ID,数据和数据校验块。传输层的数据包主要包括以下几种:
    ①:单播数据包:单播数据包总是被传送给一个特殊的节点,并且接受节点的需要作出回应以确定该数据包被接受。如果单播数据包或者反馈数据丢失或者损失,就要重新发送这个数据包。为了避免潜在的冲突发生,重发会在一定的延迟后进行,这个延迟的时间应该小于发送最大长度的数据包并收到反馈信息的时间。当系统不要求可靠数据的传输的时候,单播数据包可以使用无反馈的方式进行。
    ②:回应数据包:Z-Wave网络的回应数据包是一个不包含数据的特殊单播数据包。当节点收到其他节点发来的单播数据包时,会发送一个回应数据包给发送节点当做回应。
    ③:多播数据包:多播数据包可以同时发送给多个节点,并且接受节点不需要回应。(不可靠传输)
    ④:广播数据包:包发送给Z-Wave网络中的所有节点,并且不需要回应。
    ⑤:探询数据包:探询数据包是一种特殊的广播数据包(用于更新网络拓扑结构和发现网络中特定节点的位置)
☆:路由层(Routing Layer)

1. Z-Wave网络的路由层有两种数据结构:一种是路由单播数据包,另一种是反馈数据包。

    两者的区别仅仅在于是否多了回环确认字符(acknowledgement character)(Routed Ack和一个Ack)(另一篇论文有优化)
    2.路由表
路由表被Z-Wave网络的控制节点用来保存路由信息和网络拓扑结构(说白了就是图)。比如(都学过了)
☆:应用层(Application Layer)
     1. 应用层的数据结构:

LED控制基础:
☆:LED亮度调节
  1.调电压(线性调光)2. 调脉冲占空比(PWM调光方式)2. 硅亮度调光(新的调光方式),调脉冲占空比的方式和红外线实验的那个方式差不多,要读协议书才知道脉冲应该怎么调。
  2. 内置的RGB三原色LED分别受到三个PWM信号的控制,LED的颜色就可以改变,还可以改变透明度(就可以改变灰度);要熟读CIE色度原理。
  3. 可以直接选用ZM4104芯片进行网络控制,但是好像用STM332也可以,需要尝试。
☆:接口电路
  和8086/80386硬盘访问的方式类似,先要产生中断(8086/80386是用out指令对总线进行访问),产生中断后然后传等到信号传输->信号传输,循环。
 
 
 
 
 
 Refernce: 《基于Z-WAVE协议的LED智能照明系统的研究》-马欣儒
     《基于Z_wave技术的智能家居系统设计》-刘晗
 
 

基于Z-WAVE 协议的LED智能照明系统的研究笔记的更多相关文章

  1. 基于STM32+华为云IOT设计智能称重系统

    摘要:选择部署多个重量传感器和必要的算法.通过WiFi 通信模块.GPS定位模块,采集车辆称重数据一地理位置信息,并通过网络发送至云平台,设计图形化UI界面展示称重.地图位置等重要信息,实现对称重系统 ...

  2. 基于TCP/IP协议的C++网络编程(API函数版)

    源代码:http://download.csdn.net/detail/nuptboyzhb/4169959 基于TCP/IP协议的网络编程 定义变量——获得WINSOCK版本——加载WINSOCK库 ...

  3. Netty中解码基于分隔符的协议和基于长度的协议

    在使用Netty的过程中,你将会遇到需要解码器的基于分隔符和帧长度的协议.本节将解释Netty所提供的用于处理这些场景的实现. 基于分隔符的协议 基于分隔符的(delimited)消息协议使用定义的字 ...

  4. nightwatchjs 基于nodejs&& webdriver 协议的自动化测试&&持续集成框架

    nightwatchjs 是基于nodejs&& webdriver 协议的自动化测试&&持续集成框架 参考架构 参考资料 http://nightwatchjs.or ...

  5. Netty入门(十)解码分隔符和基于长度的协议

    我们需要区分不同帧的首尾,通常需要在结尾设定特定分隔符或者在首部添加长度字段,分别称为分隔符协议和基于长度的协议,本节讲解 Netty 如何解码这些协议. 一.分隔符协议 Netty 附带的解码器可以 ...

  6. 基于JT/T808协议的车辆监控平台架构方案

    技术支持QQ:78772895 1.接入网关应用采用mina/netty+spring架构,独立于其他应用,主要负责维护接入终端的tcp链接.上行以及下行消息的解码.编码.流量控制,黑白名单等安全控制 ...

  7. 使用java做一个能赚钱的微信群聊机器人(2020年基于PC端协议最新可用版)

    前言 微信群机器人,主要用来管理群聊,提供类似天气查询.点歌.机器人聊天等用途. 由于微信将web端的协议封杀后,很多基于http协议的群聊机器人都失效了,所以这里使用基于PC端协议的插件来实现. 声 ...

  8. [ZigBee] 16、Zigbee协议栈应用(二)——基于OSAL的无线控制LED闪烁分析(下)

    说在前面:上一篇介绍了无线LED闪烁实现的OSAL部分,本篇介绍如何实现无线数据收发及数据处理: 上一篇是用SI跟着流程查看源码,我个人认为以架构的思维去了解代码能让人更清晰 ::ZMain.c程序入 ...

  9. FastSocket学习笔记~制定自已的传输协议~续~制定基于FastSocket的协议

    FastSocket这个东西上次我已经说过,它使用简单,功能强大,扩展灵活,目前在新浪的生产环境中已经被广泛使用,所以它的性能,安全等各方面我们绝对可以信赖,今天我们来说一个话题,和上一讲有关,这次我 ...

随机推荐

  1. 【跟着子迟品 underscore】Object Functions 相关源码拾遗 & 小结

    Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对 ...

  2. CSS3系列之3D制作

    一.序 博主最近这些天,突发奇想的想研究一下CSS3的东西,从而提升一下CSS的能力,在学习的过程中发现其实CSS3是一个挺复杂的东西,深入的研究,你可能会涉及到初中的光学理论来帮助理解一些概念,同时 ...

  3. 使用 VS Code 来编辑 markdown 文章

    一开始我就用 VS Code 来编辑 markdown 文本,只是因为 VS Code 用起来感觉很好,然后我又去寻找其他的能够预览 markdown 的编辑器,看了好多都不是很方便.突然我发现 VS ...

  4. URLConnection类介绍

    URLConnection是一个功能强大的抽象类,它表示指向URL指定资源的活动连接. 与URL类相比,它与服务器的交互提供了更多的控制机制.尤其服务器是HTTP服务器,可以使用URLConnecti ...

  5. 项目分析_xxoo-master

    项目介绍:使用java1.5的原生xml操作类实现 对象<-->xml字符串的相互转化 项目分析:主要分为是三个部分 1.容器类:AbstractContainer         存储x ...

  6. bzoj 1014 splay维护hash值

    被后缀三人组虐了一下午,写道水题愉悦身心. 题很裸,求lcq时二分下答案就行了,写的不优美会被卡时. (写题时精神恍惚,不知不觉写了快两百行...竟然调都没调就A了...我还是继续看后缀自动机吧... ...

  7. 用Python制作新浪微博爬虫

    早上刷空间发现最近好多人过生日诶~ 仔细想想,好像4月份的时候也是特别多人过生日[比如我 那么每个人生日的月份有什么分布规律呢...突然想写个小程序统计一下 最简单易得的生日数据库大概就是新浪微博了: ...

  8. fedora22切换用户windows分区不能自动挂载

    新建立一个用户后,然后登陆后,再次登出,登陆原来的账户windows分区不能自动挂载

  9. node 常用命令

    nvm nvm list  列出安装的node npm install -g cnpm --registry=https://registry.npm.taobao.org  安装cnpm npm i ...

  10. RabbitMQ 声明Queue时的参数们的Power

    参数们的Power 在声明队列的时候会有很多的参数 public static QueueDeclareOk QueueDeclare(this IModel model, string queue ...