查看: 1405|回复: 0

[技术交流] 荧火系列LoRa自组网集中器、节点Q&A

[复制链接]

67

主题

100

帖子

570

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
570
发表于 2022-12-8 09:57:03 | 显示全部楼层 |阅读模式
Q1: 针对数据漫游的客户,比如做人员定位的,他们的位置信息肯定一直在动的。一个网关做不到全覆盖 ,那我们这个组网的模块可以支持接入不同的网关?还是说通过中继器,最后还是接入一个网关?
A1:荧火不支持节点在网关间漫游,只适合节点固定的场景,或者在某个固定网关下移动的场景,即节点不能超过网关的信号覆盖范围。
原因是,一方面设备的信息是注册在网关上的,网关集抄的时候回按照自己记录的节点名单去找节点要数据,如果节点移动走了,集中器找不到节点会失败重传,耗时增加,也会增加误唤醒其他节点的次数。另一方面,从节点端来看的话,节点移动到新网关下,如果没有重新入网,也是无法通信的,所以这套网络的机制是不支持节点漫游的。

Q2:针对数据漫游的用户,网关都配置成一样的band和NetID,节点也是一样的。然后让节点提前入几个网关,只需要节点定时上报,不需要网关唤醒群抄,这样之后在应用中会有什么问题?
A2:这样只是节点定时上报,是可以用的,但是不能有下发的数据,因为节点是会移动的,集中器不能判断目前节点位置,所以也不知道让哪个集中器去下发数据,如果让每个集中器都去发会影响功耗,且集抄失败耗时会比较长,不适合节点移动场景。

Q3:网关的节点名单包含哪些内容?
A3:网关会保存网内节点的MAC ,信号质量参数,通信时隙参数。

Q4:入2000个点 节点和集中器的band和netld怎么配置?
A4:单集中器带2000点:选定Band和NetID后,集中器和所有节点配置成相同参数就好了。

Q5:集抄流程具体是什么样的?
A5:集抄流程可以参考你发的流程图,设备入网后,对集中器发送“数据下发指令”,集中器会自己完成集抄,给用户发送收到的节点数据。集抄过程里,用户在节点端要做的事情就是收到数据下行后,用串口应答需要上报的数据。后续工作我们的节点模组会完成。


Q5:入2000个点 节点和集中器的band和netld怎么配置?
A4:单集中器带2000点:选定Band和NetID后,集中器和所有节点配置成相同参数就好了。

Q6:集中器集抄或点抄时,节点上报的2条“数据下发应答”帧里面RSSI、SNR的值一样,这种现象正常吗?
A6:是正常的,因为信号的RSSI、SNR值是衡量信号强弱的指标,一般受信号发射功率、距离、周围环境噪声强弱等因素影响,一般设备不动的话,RSSI、SNR值变化比较小,而且集抄点抄这些逻辑不影响信号质量。如果客户想验证一下RSSI、SNR值是否会变,那么可以采取让发射和接收端距离拉远、拔掉天线等方式来验证。


Q7:集中器使用说明书中数据下发(集抄、点抄)的区别与联系?
A7:原则上集中器可以随意带不带数据下去,节点也能随意发不发数据上去。
联系:集中器数据下发(集抄、点抄)时,都是使用0x84指令。
区别:指令中MAC地址全填FF,代表集抄,集中器会给网内所有节点发抄表指令;MAC地址填某个节点的,那么集中器只会给该节点下发抄表指令。

Q8:集中器白名单功能客户有必要开启吗?
A8:首先,不启用白名单功能,所有设备都能入网;如果启用的话,只有白名单内设备可以入网。
其次,这个要看客户具体情况来决定,有好处也有坏处。好处是启用白名单后,每个子网间就算有节点的band、NetID相同,也无法加入别的子网,这样就避免了网间干扰。
坏处是子网每增加1个节点,需要把这个节点的MAC地址写入集中器内,如果此网络已商用,那么往集中器内写入MAC地址这一动作,实现起来可能比较麻烦。

Q9:客户使用WB25自组网节点开发板+显示屏测试时,修改MAC地址需要注意什么?

A9:客户需注意,通过底板上KEY1、2按键仅可以修改MAC地址的首字节,如果客户要新改1个MAC地址,需要通过串口指令设置。

Q10:萤火系列的数据下发和数据上报重传次数都是2次吗?
A10:是的。


Q11:集中器下发一帧数据,接收到ACK后,立马发下一帧,要等16S才能收到ACK回复,但是,如果等10s再发下一帧的话,4S左右就能接受到ACK,这个是什么原因?集中器端下发数据是有时间间隔要求的吗?
A11:集中器下发数据后,4s左右收到应答是正常时间。
如果完成一次数据通信后,立即再进行一次下发,节点可能因为刚好进入了CAD休眠(用时3s)而错过一次集中器的唤醒,导致响应时间变慢,这个是正常现象。
建议客户集中器端间隔3s以上,发下一帧数据。

Q12:萤火虫节点模块PCB封装中间这些漏铜异型焊盘是做什么用的,需要在PCB设计上用吗?
A12:产测用的,客户用不上。

Q13:WB25节点、集中器的恢复出厂指令是什么?
A13:68 00 08 90 FF FF 78 16       //恢复出厂设置

Q14:集中器调试串口报“ERROR:failed to configure rxrf0”错误,代表什么含义?如何解决?
A14:

代表客户配置了非法参数导致1302启动失败,解决办法是恢复出厂设置。

Q15:节点模组带液晶屏时,还能通过串口调试助手给模组发指令吗?
A15:不能,需要先拔掉液晶屏。
液晶板上有一颗STM32L4的mcu,节点模组的串口出来分两路 同时连接到液晶板MCU和EVK的usb接口,两个串口二选一。如果要PC控制模块,就去掉液晶板;要用液晶板控制模块,就断开和PC的连接。

Q16:节点入网失败,该如何查找原因?
A16:有以下几点需要注意:
必须保证节点、集中器的band、NetID保持一致。
若集中器端启用了白名单功能,需要将节点MAC地址添加到集中器白名单内,名单外的节点无法加入网络。
如果排除以上原因,依旧入网失败,那么需打开集中器debug串口,看通信log来判断是谁的问题。
如果还排除不出来原因,那么可能是节点或集中器某个参数配置错误,推荐恢复出厂设置,配置好band、NetID,再尝试入网。

Q17:节点液晶屏源码中,2个串口发送函数UartSendFrame()与UartSendFrameNoWake(),具体有何区别?
A17:

UartSendFrame()是带wake唤醒的,UartSendFrameNoWake()是直接发的。
调用UartSendFrame()函数发串口数据,函数内部实现了先去拉wake唤醒模块,再传送串口数据。

Q18:客户给节点模组升级固件时,选择了全擦Erase chip,烧完固件后入网一直失败,请问是什么原因?
A18:如果排除了频点、Netid和低功耗模式两边不相同这几个常见原因,还是失败,那么应该是由于节点模组在工厂烧完代码,会加一道工序,在EEPROM写入负载电容参数。而用户烧录代码时,选择了全擦,擦除了EEPROM,所以需要重新写入一下负载电容参数。
[2022-08-11 17:40:41.432 T]68 00 07 FB 01 03 16        //进入测试模式
[2022-08-11 17:40:41.462 R]68 00 07 20 00 27 16

[2022-08-11 17:40:45.252 T]68 00 07 FD 1C 20 16        //写入负载电容值
[2022-08-11 17:40:45.283 R]68 00 07 20 00 27 16

[2022-08-11 17:40:47.802 T]68 00 07 FB 00 02 16         //退出测试模式
[2022-08-11 17:40:47.833 R]68 00 07 20 00 27 16

Q19:客户端前期测试时,入网了3个设备,后来开启白名单后,又入网了几个设备,之后客户测试发现前面3个未写入白名单的设备也是能正常入网通信的,请问是什么原因?如何让前3个未写入白名单的设备退网?
A19:因为刚开始测试时,集中器未开启白名单,那么只要待入网节点、集中器的band、NetID相同,这些节点都是能成功入网的。入网后,集中器会保存每个节点的入网信息。
开启白名单后,后续节点MAC地址必须提前写入白名单内,才能入网成功。但是先前入网的3个节点信息也不会被自动删掉,还是能继续正常入网的。
客户如果需要让前3个已入网,但未写入白名单的设备彻底退网,那么集中器可以依次对这些节点下发离网指令,具体如下所示:
【集中器串口】
[2022-06-09 17:11:07.395 T]68 00 0D 82 02       61 61 62 62 63 63      DD 16       //集中器下发离网指令,让节点61 61 62 62 63 63 退网。
[2022-06-09 17:11:15.277 R]68 00 07 06 00 0D 16        //退网任务结束。

Q20:集中器不开启白名单时,最多能挂载多少个节点?
A20:能,单个集中器下最大挂载 2000 个节点。

Q21:集中器开启白名单,最多能挂载多少个节点?
A21:白名单列表最多支持2500个设备。

Q22:不在白名单内的节点,集中器是否也能让它退网?节点退网流程具体是什么样的?
A22:是的,不在白名单内,集中器也可以发退网指令。
节点退网流程具体如下:
集中器下发退网指令,节点收到后不再发起入网,同时回复ACK给集中器。集中器收到ACK后,删掉保存的该节点入网信息。

Q23:客户通过串口给模组发查询指令,模组无返回,请问是什么原因?
A23:客户手头的模组应该是默认低功耗版本的,需要用 WAKE 引脚脉冲信号(上升沿唤醒,高电平持续时间>1ms)唤醒模组。


Q24:模组低功耗模式下,工作模式是什么样的?
A24:低功耗模式下,节点模组空闲时处于低功耗 CAD 检测状态,用户主动发送串口数据帧给模块前需要用 WAKE 引脚脉冲信号(上升沿唤醒,高电平持续时间>1ms)唤醒模组,否则模块无法响应串口数据。
节点模组被唤醒后最大保持 8s 工作时间,后续重新回到低功耗 CAD 状态。


Q25:客户测试发现节点、集中器的band设置不同,但是可以相互通信上,具体是集中器可以收到节点入网信息和数据上报指令,请问是什么原因?如何解决?
A25:这个现象只有当LoRa通讯频点间隔特定MHz时,(8M,12M,32M)存在串扰现象。数据跨频点可以解调出来。但是信号衰减会很严重,实际使用情况下,集中器和节点距离超过1m,基本就不会有串扰了,在实际环境里,网关只要不挨着节点装就没事的,这是LoRa调制的特性。
然后,NetId还可以配置成不同的,也可以做软件层的隔离,两个网络不会相互干扰。

Q26:WB25萤火节点模块的TX脚 ,间隔约3秒会往外发1个脉冲出来,这个是什么原因?
A26:这个是模组为了低功耗考虑,做了这样设计。这个3s是模组CAD周期,模组在CAD RX时串口2个引脚是配置成串口功能,所以电平是高;CAD sleep时2个引脚状态配置成了模拟输入,所以电平是低。
解决办法是:MCU把RX脚配置为上拉输入 。

选择播放速率:



Q27:DM34集中器模组背面有1块镂空区域,是什么作用?模组背面有4个露铜点,是什么作用?
A27:
1.模组背面这几个点是测试点,PCB注意不要露铜。
2. 方块这里是散热区,建议PCB也做镂空处理。


Q28:NetID参数支持的范围是多少?
A28:0x00-0xFF。

Q29:WB25萤火节点、集中器模组的数据重传机制,是什么样的?
A29:
节点模组数据上报:节点模组以集中器的 ACK 作为上报成功依据,并进行最多 2 次失败重传。上报结束后告知用户上报结果。
集中器数据下发:同上,也是进行最多2次失败重传,即集中器下发数据连续3轮没有节点响应就会结束。

Q30:WB25萤火模组上电,如果小于3秒就给唤醒信号会导致上电指令无响应,大约等1分钟后有响应,这个是什么原因?
A30:节点模组上电后存在初始化过程,期间注意不要操作就行,可以放>500ms的延时,再操作模组。

Q31:客户端测试发现集中器点抄总是失败,而入网、主动上报是成功的,请问可能是什么原因?
A31:可能是集中器、节点的功耗模式不同导致的,比如说本次客户就是把节点配置的低功耗,集中器配置的非低功耗。

Q32:WB25萤火模组的3s CAD休眠周期,可以通过指令来调整吗?
A32:不可以。
低功耗唤醒周期固定,目前不支持修改。电流由休眠、接收、发射几部分组成,每个阶段的电流参数有在硬件规格书里给出。

Q33:客户端测试WB25节点模组在CAD低功耗模式下,平均功耗达到了50uA左右,是软件操作手册里面描述的25uA的一倍,请问可能是什么原因?
A33:下图25uA是模块仅做周期CAD检测的电流(见Avg)。
如果期间有通信、干扰误唤醒之类的行为,就可能导致平均功耗往上提25uA是模块仅做周期CAD检测的电流,如果期间有通信、干扰误唤醒之类的行为,就可能导致平均功耗往上提。


Q34:WB25萤火模组在低功耗模式下长时间挂测,功耗大概是多少?
A34:不同band对应不同速率,不同速率功耗也不同。
DR5(SF7),低功耗模式,无通讯,1h挂测,存在5次误唤醒,平均电流是30.32uA。

DR3(SF9),低功耗模式,无通讯,1h挂测,没有误唤醒,平均电流是10.58uA。

测试环境:


Q35:请问下,实际使用中如何降低外部环境的误唤醒?误唤醒对电池使用时长估算影响较大。
A35:通常是在部署阶段,通过手持频谱仪扫描470-510MHz,确认周围环境是不是存在干扰?避开干扰,确定一个干扰比较少的通信频段,再设置合适的band值。(设备的Band配置决定实际的通信频段)
后续我们也有计划在集中器端增加扫频接口,准确度没有频谱仪高,但是会方便一些。

Q36:客户现场部署设备时,环境中其他厂家的lora设备也会唤醒咱们自己设备吗?如何避免?
A36:有可能。
因为萤火节点是3s左右,起来做一次几ms的监听,所以误唤醒概率本来就很低。而且,扫频主要为了规避长时间占用频谱的设备,如果干扰源通讯频次比较低,那么误唤醒概率也很低的,不用特别在意。

Q37:DM34萤火集中器模组添加白名单功能,每次上电需要新添加一下吗?
A37:不需要。
白名单列表是支持掉电存储的,不用重复添加。

Q38:DM34萤火集中器的退网机制是什么样的?
A38:节点入网后,集中器会保存其设备信息,不会随意删掉已在网节点信息。
如果用户想让节点退网、不再上报或接收数据,那么需要集中器端主动下发离网指令。
如果节点出现断电、复位、通信收到干扰等异常现象,那么节点重新上电、干扰消失后,节点可直接进行通信,无需重复入网。

Q39:如果用户想知道当前实际在网设备,该如何操作?
A39:建议节点定时上报通信,保持心跳,集中器应用层自己维护节点在线状态。具体做法是,如果集中器每次点抄或集抄都没有数据,或者连续几次收不到节点的心跳包,那么建议发送离网指令从在网列表里删去。
如果集中器端是定时在做集抄的,可以直接拿集抄的结果当做心跳,用户端维护一个设备在线状态,异常设备及时发送离网指令,通知工作人员维护节点设备。

Q40:如果应用场景是1000个节点主动上报,那么信号碰撞、丢失是否会很严重?如何避免?
A40:可能会。
主动上报的话,需要用户自己做延时、离散处理。集中器同一时刻最多接收8个节点的数据。

Q41:节点主动上报、集中器点抄、集中器集抄这3种数据上传方式,各自适用于哪些场景?
A41:点抄和主动上报,如果是对所有节点做一遍,效率是很低的,通常是个别点的告警类消息或者控制需求会用。
批量的数据交互用集抄最好。
集抄的数据上报逻辑是我们设计好的,节点挨个排队上报,不会产生碰撞。用户MCU只要在收到集中器集抄指令后做个应答,把数据给到节点模块,后续的通信部分我们模块会负责。

Q42:集中器下发广播入网时,节点的入网包是否会产生信号碰撞?
A42:有可能。
入网后才能做到0碰撞。批量广播重入网我们是做了另外的处理,减少碰撞,碰撞后会有重传。

Q43:萤火集中器点抄、集抄,节点入网、主动上报等动作的最大超时时间,该如何设置?
A43:


Q44:萤火节点和集中器端一些常用的参数,如band、NetID、功耗模式等,其出厂默认值是多少?
A44:老固件不支持非低功耗模式,默认低功耗。


Q45:节点模组主动上传数据时,模组返回68 00 07 20 01 28 16,上传失败,请问是什么原因?
A45:节点模组上报数据,没有收到集中器应答会返回失败。

Q46:节点模组主动上报数据时,MCU串口数据包发送到一半,程序会进入其他中断,用时几ms,待回来继续发送完毕,模组会返回2~3条68 00 07 20 01 28 16指令,代表帧头、帧尾非法,请问是什么原因?
A46:用户程序中断处理的几ms>模组串口分帧的超时时间(us级别),所以模组收到的前半段数据被自动认为是1包,由于帧结构不全,被模组判定为帧头帧尾非法,后面几包原因类似。

Q47:节点模组的串口分帧超时时间是多久?用户可以调整吗?
A47:串口分帧的超时时间是按照不同的波特率下,1.5倍的单Byte时长。比如说115200波特率,单byte时长*1.5=130us。
用户不可以调整,程序里写死的。
因为是标准品,分帧超时时间改长后,可能会有其他客户串口包发送过快,出现沾包的情况。

Q48:节点模组主动上报发完数据后,下行接收超时时间是多长?
A48:模组下行接收超时时间是200ms,如果模组在200ms内没有收到集中器下行数据,那么模组会返回上传失败。

Q49:节点、集中器发射功率默认是多少?
A49:默认是最大22dbm。

Q50:萤火集中器白名单删除同一个mac,然后又添加进去,该从机需要重新入网吗?
A50:不需要。
白名单是主机自己的一个列表,决定有入网请求时是不是要响应,删掉再添加不影响从机。

Q51:在集抄指令执行期间(主机未回复任务结束指令)时,还可以下发其他指令吗?
A51:不可以。
集中器在执行任务期间收到的新指令会被缓存起来,等上一条任务执行完毕后处理。

Q52:集抄广播指令集中器模组只发1次吗?假如某些节点未收到是不是就只能下次了?
A52:是的。但是,集抄的时候集中器内部有重传机制的,对失败的节点最少有2次重传。

Q53:集中器模组开启低功耗后跟非低功耗模式相比,有什么区别?
A53:集中器开启低功耗后,下发用户数据前,会先发个3s时长的唤醒包。
节点开启低功耗后,是间隔3s不断在做CAD休眠、唤醒机制。

Q54:集中器发起广播入网,如何保证让所有节点都入网成功?
A54:首先,为了保证让所有节点都能收到集中器下发的广播入网包,节点端设计是:待机时间,所有模组都工作在某个公共信道,只有发送或接收数据时,才工作在数据信道。集中器端设计是:集中器在这个公共信道下发广播入网包。
其次,集中器发广播,然后开RX窗口让节点随机入网,这是第一轮。因为集中器不知道可能有多少节点,第一轮开窗时间比较长。然后第二轮开始会根据第一轮的上报节点数量预估开窗数再来一轮,一直循环直到连续两轮没有任何节点上报。
相当于对每个节点都至少有三轮机会收到广播并上报。

Q55:集中器模组上电后,初始化时间需要预留多长?
A55:集中器模组上电初始化,建议加个3s延时,再操作模块。
射频启动需要时间,另外因为有掉电恢复功能,集中器还要从FLASH里恢复最多3000个节点的网络信息,所以需要等一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表