Skip to content

ssqf/lora

Repository files navigation

lora 设备功能描述

〇、默认配置说明

  1. 默认Lora和Device串口的波特率为115200,8,0,1,None;(Lora串口——单片机连接Lora模块的串口,Device串口——单片机连接设备或者GPRS模块的串口)
  2. 网关的Lora为定点模式,地址为0xFFFF
  3. 网关的GPRS服务器地址为我们的主备服务器地址
  4. 节点的Lora为透传模式,默认地址0xFFFF
  5. 默认配置为常量,在设备首次初始化时,将配置写入EEPROM
  6. EEPROM中有个数据完整性标志,每次写数据时先清除标志,然后在写数据,最后在设置完整性标志,如果完整性标志为False,则Lora设备会恢复默认配置

一、自动判断设备是Lora网关还是Lora节点

功能说明:

  1. 未配置的设备启动后,向Device串口发送+++,判断是不是带GPRS模块的网关
  2. 发送5次+++如果未响应.则停止发送+++,而开始发送网关注册消息(3次),如果收到服务器回应,则说明Device口连接了网络,可以看做是网关
  3. 如果1、2步骤都没有响应则认为该设备是一个Lora节点

二、自动配置GPRS和Lora模块的参数

功能说明:

  1. 设备判断为GPRS后,向GPRS模块配置服务器地址端口等配置信息,将Lora模块配置为定点传输,地址为FFFF(节点透传可以收到)
  2. 设备判断为Lora节点后,配置Lora模块为透传模式,地址为FFFF(尚未注册需要从服务器获取自己的Lora的相关配置)
  3. 如果是节点连接了串口转网络设备,并且串口转网络可以连接到服务器,则认为也是网关,只是不进GPRS AT命令配置

三、从服务器获取Lora节点要配置的Lora参数

功能说明:

  1. 设备被判断为Lora节点后,向服务器发送注册信息
  2. 服务器收到Lora节点的注册信息后,分配lora地址,lora信道,lora模式,lora空传速率、心跳时隙等参数给Lora节点
  3. Lora收到服务器返回的配置参数后,保存并配置到Lora模块

四、Lora节点从服务器获取连接设备的参数并配置

功能说明:

  1. Lora节点注册后,需要知道自己连接的是什么设备,向服务器请求设备相关的参数,
  2. 服务器收到Lora节点的设备配置信息后,返回 Device串口参数,设备类型、数据发送时段
  3. Lora节点收到设备配置相关的信息,设置参数并保存

五、保存相关配置数据到EEPROM

功能说明:

  1. 保存设备的一些配置参数,在重启后直接获取
  2. 保存设备的一些状态标志,如:是什么设备,Lora、 GPRS、 设备参数、等是否配置完成

六、写入程序时在Flash中写入序列号

功能说明:

  1. 在使用STVP下载程序时,勾选编程前擦除,将Serial Number功能打开,并设置起始地址0X17FF0,长度为4字节,基础值10000000(不同人烧写是用最高位区分),步长设置为1,大端模式,则每次烧写会写入不同的SN到Flash
  2. 程序启动后读取SN,在后续的通讯中使用

七、网关接收服务器SN查询

功能说明:

  1. 网关启动后向服务器建立TCP连接,服务器接收到TCP连接,立即相关网关发起查询命令。连续发送3次,如果网关没有回应则端口连接
  2. 网关收到服务器查询命令后,向服务器回复SN等信息(同网关注册命令)
  3. 服务器收到网关回复后,回复确认信息,并关联SN和TCP连接等信息

八、节点和网关从服务器同步时间

功能说明:

  1. 网关和节点向服务器发送时间同步命令
  2. 服务器接收到时间同步命令后,回复当前服务器的时间戳,滴答数TICk和定时的Counter置零
  3. 网关收到服务器时间同步的回复消息后,判断是返回给节点的还是给网关自己的,如果是自己的则更新网关的时间。如果是返回给节点的并且网关已经同步过时间,则将网关自己的时间秒,Tick,Counter发送给节点(从而保证网关和节点时间更一致)
  4. 网关和节点更新自己时间同步标志

九、Lora节点连接其他串口设备充当Lora网关

功能说明:

  1. 用Lora节点板子的device串口连接串口转网络设备,并保证串口转网络设备可以连接到服务器。
  2. Lora在未确认自己类型时,会发送注册信息,收到服务器回复后则将自己设置为网关。
  3. 如果Lora已经将自己设置为节点,则需要按K1 5秒以上恢复为默认配置,Lora设备会自动重新配置

十、设备复位和回复出厂设置

功能说明:

  1. 按下K1 1-5秒Lora设备重启
  2. 按下K1 5秒以上sLora恢复默认配置

十一、服务器下发设备周期性命令配置

功能说明:

  1. 如果设备需要定时去发送命令读数据,则可以配置一个命令到Lora节点,让节点定时发送命令给设备,并返回设备的数据给服务器
  2. 服务器下发周期命令,数据字节0第几条命令,1命令的长度,2-3命令的发送周期(2byte 秒),4-n具体的命令
  3. Lora节点收到命令配置,保存数据,并给服务器返回确认
  4. 服务器如果没有收到Lora节点确认,则会一直下发

十二、服务器下发地磅数据过滤配置(目前只能过滤地磅类似数据,模式匹配未实现)

功能说明:

  1. 如果设备是自动连续发送数据,而且需要过滤掉无效数据,则可以配置一个过滤条件Lora节点,让节点过滤出有效的数据再发送给服务器
  2. 服务器下发过滤条件,数据字节0第几条过滤,1过滤的长度,2过滤数据的类型(1连续相同),3-4过滤命令参数(2byte 连续相同次数),5-n具体的数据匹配模板(0xFF为任意匹配)
  3. Lora节点收到命令配置,保存数据,并给服务器返回确认
  4. 服务器如果没有收到Lora节点确认,则会一直下发

十三、向服务器发送按配置时隙发送心跳

功能说明:

  1. 心跳时隙为一个字节,所以最大为255,则最多255个不同设备在255的某一秒发送心跳
  2. Lora设备心跳周期(默认5分钟没有配置)自己的时隙向服务器发送心跳

十四、Lora节点正确将数据发送到服务器

功能说明:

  1. Lora和服务器之间按照规定的协议收发数据
帧头 帧长 帧号 设备SN 版本 数据类型 设备类型 Lora信道 Lora地址 data 校验和 帧尾
2byte 1byte 1byte 4byte 1byte 1byte 1byte 1byte 2byte 0-n 1byte 2byte
0x5a55 0-0xFF 0-0xFF 0-0xFFFFFFFF 0-0xFF 0-FF 0-FF 0-FF 0-FFFF 0-0xFF 0-0xFF 0x6A69

Notes:

  • 帧长:不包含帧头和帧尾
  • 数据类型:表示这个数据是干嘛的,比如注册、时间同步、设备数据等
  • 校验和:不包含帧头帧尾的和
  • 不是每个字段都在所有传输中有用
  1. 服务器可正常将数据发送到指定Lora节点,服务器根据SN找到对应网关的TCP连接,设置要发送的目标的SN,数据类型,Lora信道,Lora地址后发送到网关
  2. 网关收到数据后按照帧解析,解析出Lora地址,将数据转发到具体的Lora节点
  3. Lora节点收到数据后按帧解析出数据,将数据发送给设备
  4. 设备发送数据给Lora节点,lora将数据组装成帧发送给网关,网关则直接将数据转发到服务器

十五、数据发送时隙控制(未实现)

功能说明:

  1. Lora节点周期性设备数据只在每秒的前1/3发送数据
  2. Lora节点告警类设备数据只在每秒的2/3时隙发送数据
  3. Lora网关只在每秒的后1/3发送数据给节点
  4. Lora节点数据发送时隙要避开心跳时隙

十六、Lora看门口(未实现)

功能说明:

  1. 在Lora设备异常跑飞后重启Lora设备

About

LoRa节点网关和服务器传输数据

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages