分享好友 最新资讯首页 最新资讯分类 切换频道
LoRa自组网络设计 6
2024-12-20 04:15

LoRaWAN采用星型无线拓扑
End Nodes 节点
Gateway 网关
Network Server 网络服务器
Application Server 应用服务器

LoRa自组网络设计 6

LoRa联盟是2015年3月Semtech牵头成立的一个开放的、非盈利的组织,发起成员还有法国Actility,中国AUGTEK和荷兰皇家电信kpn等企业。至2016年4月,联盟已经发展成员公司290余家,其中不乏IBM、思科、法国Orange等重量级产商

128AES加密功能

节点与server之间的加密通信
HAL驱动SPI驱动物理层phy,物理层通过lora或者fsk协议再与网关通信,网关可以通过spi或usb与网关模块通信
网关也可以通过3Gwifi与我们网络服务器通讯

zigbee属于mesh

1.4.1 LoRaWAN网关SX1301

1.4.2 LoRaWAN终端Class A

LoRaWAN Server选择最佳Gateway下行通信,都是通过LoRaServer选择
开启两个接收窗口,平时处于休眠模式,当他需要工作的时候才会去发送数据包,功耗最低,实时性不高,比如1小时才能发送1次信息,控制不太合适,采集信息用classA最合适

1.4.3 LoRaWAN终端Class B

解决classA实时性不高(当需要节点去响应实时性问题的时候,首先网关会发送一个信标,告诉节点要加快通讯,快速工作,节点收到信标之后,会在128秒内去打开多个事件窗口,每个窗口在3-160ms,在128秒内可以实时对节点进行监控

1.4.4 LoRaWAN终端Class C 

既保持实时性,也保证了数据收发,一直会打开接收窗口,缺点能耗高

1.5.1 LoRaWAN服务器框架

与ABCclass建立了Star通讯
网络服务器与网关建立通讯
控制网络服务器协议算法是通过控制服务器做得,服务器如何决定通过那个网关进行通讯
应用服务器根据行业需求,布置不同应用,使用接口比较单一
客户服务器 二次开发,人机交互等在此开发

1.5.2 不同server的通信

 tcp udp
客户服务网、应用服务器、网络服务器、控制服务器都是通过TCP进行通讯,可靠性
网关、节点和网络服务器是通过UDP,保证实时性

1.5.3 LoRaWAN服务器通信协议 

TCP、UDP、网关通过JSON字符串进行交互的

思考 如何设计Class C终端进行私有组网

1.只能联网内才开发loraWan
2.loraWan网关成本高
3.要具备Sever开发能力

类似交通信号灯,无线信道只有1个,不设计会产生冲突
解决信号冲突的问题
尽可能地节省电能
保证通信的健壮和稳定性

设计要基于3种协议 

用时间片的思想,多任务。(在一定的事件内去分配时间槽,每个时间槽分给一个节点,使节点在这个时间槽里通信,如果不在这个时间槽是不能通信的。和电脑CPU的时间片是一个道理

时分多路复用是将时间划分为一段段等长的时分复用帧(TDM帧,每个用户在每个TDM帧中占用固定序号的时隙。
每个用户所占用的时隙是周期性出现(其周期就是TDM帧的长度)。
时分复用的所有用户是在不同的时间占用相同的频带宽度。 

1301 芯片

(CPU是多核,多任务同时进行:不同频率的通信可以同时进行

SF扩频,SF不同,进行不同的通信

LoRa 中的码分复用通过以下方式实现

  1. 唯一的扩频因子(Spreading Factor 在 LoRa 中,每个终端设备使用唯一的扩频因子,这个扩频因子决定了数据信号的频带扩展程度。不同的扩频因子对应着不同的码片序列。每个终端设备在发送数据时,使用其唯一的扩频因子进行调制,因此即使在相同的频率上,不同的终端设备也可以同时发送数据而不会相互干扰。

  2. 自适应数据速率(Adaptive Data Rate,ADR LoRa 网络可以根据终端设备的距离和环境条件动态调整扩频因子和发送功率,以最大程度地提高通信的可靠性和覆盖范围。

  3. 碰撞避免技术 LoRa 中还采用了碰撞避免技术,通过随机选取发送时间和采用随机退避算法来减少终端设备之间的碰撞,进一步提高了网络的性能。

总的来说,LoRa 中的码分复用技术使得多个终端设备可以在同一时间和频率上进行通信,从而实现了低功耗、远距离和大规模连接的物联网应用场景。

modbus只有一个主机,节点可以是1-247,只允许主机发送,从机应答。实时性差 

时间 随机访问,竞争入网
信号(协调器
节点1 发送收到
节点2 先判断网络是否冲突,再延时发送 接收
节点3 先判断网络是否冲突,再延时发送 接收

时间槽分配、或者时间片,在规定时间内进行收发rx、tx,从而实现整个网络的通信
同时设置冗余、revered slot和空闲任务used idle 

2.7.1 LoRa自组网协调器设计

串口:我们需要牧场监控内的信息,控制器要与协调器进行数据通信
无线数据:入网没完成等待,是否有新节点加入,断电是否有旧节点加入
解决时钟飘移缺点,时钟同步

 2.7.2 LoRa自组网节点设计

思考 基于时分复用MAC协议如何开发协调器与节点程序

入网请求

从机->入网请求名称字节数描述举例帧头10x3C0x3C长度1最长126字节长度范围内不检测包头;计算整个帧长度0x0c网络类型1字符<J>代表入网请求J网络标识符2PANID,用于网络区分,只有PANID一样才可以组网通信0x0102设备地址2设备唯一地址标识0x1235CRC8校验1数据包校验,整个数据包,除校验位0x08主机->入网应答名称字节数描述举例帧头10x3C0x3C长度1最长126字节;长度范围内不检测包头;计算整个帧长度0x0c网络类型1字符<A>代表入网成功A网络标识符2PANID,用于网络区分,只有PANID一样才可以组网通信0x0102设备地址2设备唯一地址标识0x1235设备序号1设备是第几个入网1CRC8校验1数据包校验,整个数据包,除校验位0x08

        设备标识符 PANID和zigbee组网一样,相同才能在一个网通信 

时间同步

网络数据包

网络数据包名称字节数描述举例帧头1字符<N>代表网络数据包N网络标识符2PANID,用于网络区分,只有PANID一样才可以组网通信0x0102数据包包头10x210x21包长1数据包长度,代表数据域数据长度1数据类型10x00:数据、0x01:命令0x00设备地址2设备标识符0x0001传感器类型10x01:温湿度、0x02:三轴、0x03:风机、0x04:水表、0x05:地磁 0x06:灌溉0x01数据4每种传感器数值用一个字节标识,比如温湿度占两个字节0x01298113CRC8校验1数据包校验,整个数据包,除校验位0x08

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7|GPIO_PIN_15, GPIO_PIN_SET); 

3.2.1 Cubmx RTC外设配置

修改RTC时钟源为外部高速时钟
配置RTC分频系数
初始化日期和时间
配置Alarm参数
使能RTC全局中断

1s为单位.rtc时钟为250hz

3.2.2 Cubmx 定时器外设配置

配置TIM2分频系数
使能TIM2定时器中断 

1s为单位 

3.2.3 Cubmx 串口和ADC外设配置

把main函数的功能移到task文件夹下,数据解析、网络解析、协议等 

如果是从机增加一个ADC,用于生成随机数

配置ADC为连续采集
配置DMA通道
配置ADC标签

3.2.4 RTC任务

主要任务:RTC 提供实时时钟,用于时钟同步,开启闹钟中断

sTime的初值和sAlarm的初值都为0

 

闹钟事件回调函数,触发事件用于处理任务

协调器(主机
        同步时钟标志(因为每加入的设备都需要同步时钟
        获取时间,设置下次闹钟时间+5小时
节点(从机
        发送更新数据标志
        闹钟发送数据的时间赋值,使能闹钟中断

毫秒单位转换为时分秒

 

 时分秒转换函数 

 

 3.2.5 定时器任务

定时器 用来节点超时的判断

定时器初始化

开启定时器中断

 
 

定时器定时事件任务

定时器中断溢出,要在里面做一些处理,判断节点是否入网超时

 

3.2.5 CRC校验码及通信协议宏定义

protocol.c
1生成crc8校验码
2判断crc8校验码是否正确

 
 

3.2.6 数据处理任务

dataprocess.c

主机

从机 

3.2.6.1 串口数据获取并无线发出去
 

接收数据包计数、发送数据包计数

 
3.2.6.2 读取无线射频数据
 

根据radio.h process的不同枚举类型进行业务处理

 
3.2.6.3 主机协议解析
 

入网协议解析(新设备添加入网表

 

网络数据包解析

 
3.2.6.4 从机协议解析
 

从机协议解析

 
3.2.6.5 从机数据上传 
 

3.2.7 网络处理任务

netprocess.c

主机

从机

 netprocess.h

 

netprocess.c

 
 3.2.7.1 主机等待从机入网完成
 
 3.2.7.2 主机发送同步时钟
 

 3.2.7.3 生成随机数
 

库函数 放到时间数里面,循环读10次,转换为uint8 ,最大是2550,返回(0-2.5s) 

3.2.7.4 从机加入网络
 
3.2.7.5 从机获取时间片
 

3.2.8  获取数据发送时长

lora获取时间片的同时需要考虑数据发送的时长

 

 

3.2.8 主程序

主机:

等待入网
是否是新节点,如是改变节点入网状态未完成
是否旧节点,如是改变节点入网状态未完成
时钟同步时间是否到,到了时钟同步

从机

节点都已经在上面部分实现,只需要等待接收数据,数据解析
判断是否到达定时发送时间,发送数据,并清空标志位。

1.adc读取,返回随机时间
2.打印地址
3.发送完后收到应答包,加入完成
4.时间片是0,因为第一个
5.一分钟一个rtc闹钟
6网络同步
7收到同步包
8设置了时间
9 1分钟传一个数据,上传一次数据
10 还有另一个设备发送的,节点也会收到。


最新文章
【系统架构设计】计算机网络
OSI/RM 结构模型 1977年,国际标准化组织为适应网络标准化发展的需求,制定了开放系统互联参考模型(Open System Interconnectio
全世界规模最大战争排名,第一名居然是清朝时期!
自打人类走上进化这条路,就想着法儿想要证明【一伙人就该被另一伙人支配】。古罗马角斗士时代一方有多大势力,就看他有多少人的
python tk随机内容生成器
MyRandom ran=new MyRandom();System.out.println(ran.nextString(1));System.out.println(ran.nextString(50, OnlyNum));System
ai自动写文章在线 在线写文章自动生成器
身为文案工作者,我深感写作之重要且充满挑战。如今,随着人工智能(AI)写作平台的出现,我的写作历程出现了巨大变革。在此,很
AI写系统性综述ChatGPT还远远不够未来百年能否实现
在科学研究的浩瀚海洋中,科研人员时常面临一个棘手的问题:如何有效整合和理解海量的科学文献。尽管网络的普及极大地丰富了文献
全球AI半导体技术排名:韩国强势第三,未来发展值得关注
近年来,人工智能(AI)技术的迅猛发展促进了相关硬件的创新,尤其是AI半导体的需求日益上升。根据最新的研究报告和韩国媒体的报
MVSO影视程序源码 影视自动采集_魔改超强SEO_自定义苹果cms资源站接口
?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK ]/
多地楼市政策不断优化 房地产市场企稳态势渐明
原标题:多地楼市政策不断优化 房地产市场企稳态势渐明来源:人民网近日,海南省住房公积金管理局发布《关于调整优化住房公积金
新澳正版资料免费大全,词语作答释义解释汇总
随着互联网的普及和在线信息资源的丰富,人们对于各类资料的需求日益增长,在新时代,获取正版资料显得尤为重要,本文将介绍新澳
揭秘快速排名SEO软件,网站高效提升排名的秘密武器
快速排名SEO软件,是网站提升排名的得力助手。它通过优化关键词、内容布局和链接策略,帮助网站在搜索引擎中迅速提升排名,实现