lora

所属分类:其他
开发工具:C/C++
文件大小:344KB
下载次数:22
上传日期:2018-09-13 23:20:25
上 传 者azmbek
说明:  stm8 and sx1278 integration project

文件列表:
.vscode (0, 2018-08-11)
.vscode\c_cpp_properties.json (508, 2018-08-11)
.vscode\settings.json (344, 2018-08-11)
BuildLog.log (3, 2018-08-11)
config.hex.bak (0, 2018-08-11)
inc (0, 2018-08-11)
inc\at_cmd.h (2668, 2018-08-11)
inc\clock.h (767, 2018-08-11)
inc\config.h (5883, 2018-08-11)
inc\init.h (172, 2018-08-11)
inc\lora.h (476, 2018-08-11)
inc\protocol.h (3626, 2018-08-11)
inc\stm8l15x_conf.h (3345, 2018-08-11)
inc\stm8l15x_it.h (4077, 2018-08-11)
inc\task.h (1340, 2018-08-11)
inc\uart.h (1703, 2018-08-11)
libs (0, 2018-08-11)
libs\inc (0, 2018-08-11)
libs\inc\stm8l15x.h (131506, 2018-08-11)
libs\inc\stm8l15x_adc.h (16666, 2018-08-11)
libs\inc\stm8l15x_aes.h (5042, 2018-08-11)
libs\inc\stm8l15x_beep.h (3581, 2018-08-11)
libs\inc\stm8l15x_clk.h (19103, 2018-08-11)
libs\inc\stm8l15x_comp.h (9862, 2018-08-11)
libs\inc\stm8l15x_dac.h (9997, 2018-08-11)
libs\inc\stm8l15x_dma.h (13042, 2018-08-11)
libs\inc\stm8l15x_exti.h (9643, 2018-08-11)
libs\inc\stm8l15x_flash.h (14300, 2018-08-11)
libs\inc\stm8l15x_gpio.h (6473, 2018-08-11)
libs\inc\stm8l15x_i2c.h (34769, 2018-08-11)
libs\inc\stm8l15x_irtim.h (2340, 2018-08-11)
libs\inc\stm8l15x_itc.h (13966, 2018-08-11)
libs\inc\stm8l15x_iwdg.h (4633, 2018-08-11)
libs\inc\stm8l15x_lcd.h (22314, 2018-08-11)
libs\inc\stm8l15x_pwr.h (4494, 2018-08-11)
libs\inc\stm8l15x_rst.h (3151, 2018-08-11)
libs\inc\stm8l15x_rtc.h (36957, 2018-08-11)
... ...

# 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:` * 帧长:不包含帧头和帧尾 * 数据类型:表示这个数据是干嘛的,比如注册、时间同步、设备数据等 * 校验和:不包含帧头帧尾的和 * 不是每个字段都在所有传输中有用 2. 服务器可正常将数据发送到指定Lora节点,服务器根据SN找到对应网关的TCP连接,设置要发送的目标的SN,数据类型,Lora信道,Lora地址后发送到网关 3. 网关收到数据后按照帧解析,解析出Lora地址,将数据转发到具体的Lora节点 4. Lora节点收到数据后按帧解析出数据,将数据发送给设备 5. 设备发送数据给Lora节点,lora将数据组装成帧发送给网关,网关则直接将数据转发到服务器 ### 十五、数据发送时隙控制(未实现) > **功能说明:** 1. Lora节点周期性设备数据只在每秒的前1/3发送数据 2. Lora节点告警类设备数据只在每秒的2/3时隙发送数据 3. Lora网关只在每秒的后1/3发送数据给节点 4. Lora节点数据发送时隙要避开心跳时隙 ### 十六、Lora看门口(未实现) > **功能说明:** 1. 在Lora设备异常跑飞后重启Lora设备

近期下载者

相关文件


收藏者