zigbee路灯无线通讯机制
zigbee路灯无线通讯机制
wang@20160630
前言
目前路灯上通讯主要有电力载波和无线通讯;各有利弊,众说纷纭;本文不对两种技术进行比较,也不讨论哪种好,毕竟同种通讯模块,有的开发出来稳定,有的就不稳定,究其原因有很多,所以也不好做其讨论;本文主要是记述了我如何通过zigbee无线来为路灯做数据的传输;采用的何种通讯技术;为了必免时间久了,忘记了,因此有必要把它记录下来,方便自己记忆,也可给别人做参考。
内容
本文主要内容分四点讲述:1、Zigbee角色定义;2、采用的通讯机制及实现功能;3、路由表定义及作用;4、通讯协义定义和解释;
1、Zigbee角色定义
现状分析:路灯灯杆与灯杆之间都是比较远,而且有点直线分布,不像是网状分布。Zigbee的角色有coorder、router、device。考虑到路灯灯杆分布的现状、一个集中器要带载很多个路灯终端设备,及为了节省资源和以后安装方便,本系统只采用两种角色:coorder和router,每个单灯控制器都是router,可做中转;一个coorder最多可带250个router。
- 采用的通讯机制及实现功能
本系统主要采用泛洪消息机制向本区域所管辖的网络广播,router设备收到包后判断是否是自已的数据包,如何是则接收;如果不是,则先判断是否可转发,若转发次数未到则转发,并且只能转发一次;router设备需维护一张路由表记录以前转发过的包,并在通讯协议上增加两个字段,记录转发次数和发送序列号;每一个router设备维护一个发送序列号,每发送一个包,序列号加1,并把该序列号加到数据包的包头信息中;其它设备节点收到一个数据包后依靠查找路由表中的序列号rxsn和uid来判断自己是否已接过该包,是否是自己的包,或是否需要转发该包。
主要功能:实现coord和route数据透传功能,coord通过串口接收特定的数据,再通过无线传输,把数据传到指定的route设备中,route设备再把信息通过串口显示出来;route设备也可以传送相关的数据到coord设备;每个route设备都具有上、下行数据转发功能,当收到的数据通过mac地址检测到的不是属于它的数据,它需要再次转发出去,并相应的更改转发次数,同一数据包只能被转发一次,数据包总的转发次数不超过100次;
示意图

- 路由表定义及作用
typedef struct _dev_mac_t
{
u32 srcmac;//源mac
u8 rxsn; //接收系列号
u8 rssi; //存储 rssi值
}dev_mac_t;
路由表数据采用动态分配,源mac为唯一标识,接收RF数据时,通过查找srcmac判断是否增加或修改相应数据;首次接收到数据时,会增加一笔记录,保存srcmac、rxsn和rssi,;当再次接收到源mac发来的数据时,如果当前数据包的rxsn与路由表记录的rxsn相同,则不接收,以必免重复接收,如果不是只需要更新rxsn和rssi值;
4、通讯协义定义和解释
总体包格式:包长PHR(1)+MAC(7)+自定义数据(N)+MFR(2)
详细包格式:包长PHR(1)+MAC{帧类型fcf (2)+系列号seq(1)+目标panid(2)+目标短地址(2)}+数据{包类型(1)+源地址(4)+目标地址(4)+发送序列号(1)+转发次数(1)+终端MCU数据包(N)}+MFR(2)
系统基于MAC层的自定义的zigbee协议数据包,采用芯片的mac地址的后48位来做唯一的地址并称为uid;短地址中设coorder地址为0;coorder设备专门为集中控制器用的;
coorder-->router:则源地址为0,目标地址为router的uid;
Router-->coorder:则源地址为router的uid,目标地址为0;
相关文章:
zigbee路灯无线通讯机制
zigbee路灯无线通讯机制 wang20160630 前言 目前路灯上通讯主要有电力载波和无线通讯;各有利弊,众说纷纭;本文不对两种技术进行比较,也不讨论哪种好,毕竟同种通讯模块,有的开发出来稳定,有的…...
asp.net docker-compose添加kafka和redis和zookeeper
docker-compose.yml添加 redis:image: redis:alpinekafka:image: "bitnami/kafka:3.1.1"depends_on:- zookeeperzookeeper:image: "bitnami/zookeeper:3.5.10" docker-compose.override.yml添加 redis:ports:- "6379"kafka:links: - zookeepere…...
2024上海国际人工智能展(CSITF)“创新驱动发展·科技引领未来”
人工智能(Artificial Intelligence,AI)作为当今世界科技发展的关键领域之一,正不断推动着各行各业的创新和变革。作为世界上最大的消费市场之一,中国正在积极努力将AI技术与产业融合并加速推广应用。在这个背景下&…...
汽车标定技术(三)--XCP协议如何支持测量功能
目录 1. 概述 2. 测量方式 -- Poll 3. 测量方式 -- DAQ 3.1 ODT概念模型 3.2 DAQ List概念 3.3 ODT 绝对编号和相对编号 3.4 静态DAQ和动态DAQ模式 (1)静态DAQ (2)动态DAQ 4.小结 1. 概述 在该系列的首篇文章汽车标定技…...
[c++]你最喜爱的stringstream和snprintf性能深入剖析
最近写一个程序中两个差不多的模块,一个使用了snprintf输出中间数据,另一个偷懒使用stringstream。结果你猜怎么着?居然压帧了!!到底是谁拖了性能的后退? 来自阿里云的性能分析实验 我上网一搜࿰…...
windows 用vs创建cmake工程并编译opencv应用项目生成exe流程简述
目录 前言一、安装opencv(1)下载(2)双击安装(3)环境变量和system文件夹设置 二、打开vs创建项目三、编辑cpp,.h,cmakelist.txt文件(1)h文件(2&…...
QML 仪表盘小示例
本次项目已发布在CSDN->GitCode,下载方便,安全,可在我主页进行下载即可,后面的项目和素材都会发布这个平台。 个人主页:https://gitcode.com/user/m0_45463480怎么下载:在项目中点击克隆,windows:zip linux:tar.gz tar # .pro TEMPLATE = appTARGET = dialcontrol#…...
力扣206. 反转链表
题目: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head [1,2] 输出:[2,1] 示例 3:…...
深度学习之基于Tensorflow卷积神经网络花卉识别系统
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习是一种机器学习方法,它通过模拟人脑神经网络的结构和功能来实现对数据的自动分析和学习。卷积神…...
leetcode链表
这几天手的骨裂稍微好一点了,但是还是很疼,最近学校的课是真多,我都没时间做自己的事,但是好在今天下午是没有课的,我也终于可以做自己的事情了。 今天分享几道题目 移除链表元素 这道题我们将以两种方法开解决&…...
Kali Linux渗透测试的艺术
Kali Linux(Kali)是专门用于渗透测试的Linux操作系统,它由BackTrack 发展而来。在整合了IWHAX、WHOPPIX 和Auditor 这3 种渗透测试专用Live Linux 之后,BackTrack正式改名为Kali Linux。 BackTrack是相当著名的Linux发行版本。在…...
2023年最新版潮乎盲盒源码含搭建教程
后台开发语言:后端 Laravel 框架开发 前端开发框架:uniappvue 环境配置: php7.4 mysql5.6 nginx1.22 redis(建议宝塔面板或 lnmp) 源码获取请自行百度:一生相随博客 一生相随博客致力于分享全网优质资源&#x…...
[GitLab] 安装Git 指定版本
卸载旧版本 检查是否已经安装 git --version如果已经安装,先卸载 yum -y remove git安装新版本 在GitHub上选择需要下载的版本 Git版本 在/usr/local/目录下新建文件夹:git,并在/usr/local/git/文件夹内下载压缩包 wget https://github…...
vue中ref和$refs
1.作用 利用ref 和 $refs 可以用于 获取 dom 元素 或 组件实例,也可以在父组件获取子组件,从而调用子组件的方法。 2.特点: 查找范围 → 当前组件内(更精确稳定) 3.语法 1.给要获取的盒子添加ref属性 <div ref"chartRef"&…...
CRM怎样帮助您的企业进行营销管理?
CRM助力企业营销管理,为企业降本增效提升投入产出比。CRM软件是如何实现的呢? 扩大线索量 想要精准获客的第一步是要扩大线索量,多渠道营销推广是很好的方法。例如: 1.线下展会线上Webinar等市场活动 2.搭建微信、微博、…...
Gerrrit 管理员常用命令
1. replication插件重新加载 当修改replication配置文件(replication.config),需要重启gerrit生效,或者重新加载replication。 # 重新加载replication插件 ssh -p 29418 usernamegerrit.company.com gerrit plugin reload repli…...
深入理解强化学习——多臂赌博机:增量式实现
分类目录:《深入理解强化学习》总目录 至今我们讨论的动作—价值方法都把动作价值作为观测到的收益的样本均值来估计。下面我们探讨如何才能以一种高效的方式计算这些均值,尤其是如何保持常数级的内存需求和常数级的单时刻计算量。 为了简化标记&#x…...
视频批量混剪剪辑软件类似剪映设计一个模板后, 视频,图片,文字,转场,音频,特效都可以系统随机
随着自媒体时代的到来,越来越多的人加入到了视频创作行列。然而,视频剪辑是一项繁琐的任务,特别是当你需要批量处理多个视频时。为了提高效率,一款名为“视频闪闪”的批量剪辑软件应运而生。 www.shipinshanshan.com “视频闪闪”…...
优维低代码实践:打包发布
导语 优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。…...
js深度学习(三)
循环 var i0 for(;i<10;){ console.log(i) i } while(i<10){ console.log(i) i } var i100; for(;i--;){ console.log(i) }2、引用值 typeof:number string boolean Object(object/array/null出现是为了指定为空对象/)undefined function typeof a >unde…...
3分钟净化微信社交圈:WechatRealFriends让200+好友检测效率提升99%的秘密
3分钟净化微信社交圈:WechatRealFriends让200好友检测效率提升99%的秘密 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/Wech…...
解锁欧空局10米土地利用数据:从注册到实战应用全流程解析
1. 欧空局10米土地利用数据简介 第一次接触欧空局WorldCover平台的朋友可能会被这个10米分辨率的土地利用数据惊艳到。作为一个长期和遥感数据打交道的从业者,我可以很负责任地说,这个数据集在精度和实用性上确实很能打。简单来说,它把全球地…...
飞书机器人告警配置避坑指南:夜莺监控常见报错解决方案
飞书机器人告警配置避坑指南:夜莺监控常见报错解决方案 深夜的告警风暴里,飞书机器人突然罢工是什么体验?上周三凌晨2点,当我面对满屏的Key Words Not Found和sign match fail报错时,终于理解了为什么运维工程师的咖啡…...
HoRain云--Vue3组件开发:从入门到精通的终极指南
🎬 HoRain 云小助手:个人主页 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …...
LockSupport深度解析:线程阻塞与唤醒的底层实现原理
在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...
WarcraftHelper:让魔兽争霸3重获新生的兼容性增强工具
WarcraftHelper:让魔兽争霸3重获新生的兼容性增强工具 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 你是否曾在现代电脑上尝试重温魔兽争…...
高级CMB2技巧:可重复字段组和动态条件显示
高级CMB2技巧:可重复字段组和动态条件显示 【免费下载链接】CMB2 CMB2 is a developers toolkit for building metaboxes, custom fields, and forms for WordPress that will blow your mind. 项目地址: https://gitcode.com/gh_mirrors/cm/CMB2 CMB2是Word…...
Windows环境下coturn服务器部署与配置实战
1. Windows下coturn服务器部署全攻略 最近在做一个WebRTC项目时,发现很多开发者卡在了TURN服务器搭建这个环节。特别是需要在Windows环境下部署coturn的场景,网上的资料要么太零散,要么直接照搬Linux的教程。今天我就把自己在Windows 10上通过…...
C++的std--allocator_traits分配器特性与自定义内存管理的适配
C标准库中的内存管理一直是个既基础又复杂的主题。std::allocator_traits作为C11引入的分配器特性模板,为自定义内存管理提供了统一的适配接口,让开发者能在不重写整套分配逻辑的情况下,灵活扩展内存管理策略。无论是实现高性能内存池&#x…...
ZYNQ PS侧DDR3内存配置避坑指南:以ACZ702开发板为例,手把手教你搞定MT41K128M16
ZYNQ PS侧DDR3内存配置实战:从硬件原理到Vivado参数设置全解析 当你第一次拿到ACZ702这样的ZYNQ开发板,准备配置PS侧的DDR3内存时,是否遇到过这样的困惑:为什么在Vivado中找不到DDR管脚约束选项?为什么按照传统FPGA的D…...
