基于LoRa MESH技术研发的EWD95M系列微型导轨式数传电台,前文主要介绍了EWD95M系列基于LoRa MESH协议的微型导轨数传电台产品功能特点、上位机配置简、远程配置教程、链接示意图等功能简介,本文主要介绍LoRa MESH组网数传电台基础通讯功能以及相关教程案例。
相关产品型号:
EWD95M-400NW22(485)系列433频段微型数传电台:https://www.ebyte.com/product/2407.html
EWD95M-900NW22(485)系列868、915频段微型数传电台:https://www.ebyte.com/product/2408.html
模块主要参数可通过“AT+INFO=?”AT指令进行获取,它主要用于串口显示,如下图所示。
若使用MCU对其进行解析难度较大,MCU正确的操作应该使用单独的AT指令进行获取,如下图所示。
单播通讯方式需要提前得知目标模块的地址(模块B的地址),基本参数获取具体步骤可参考产品手册。
首次发起单播请求需要等待路由建立(不同的空速下等待的时间不同),待路由建立完成之后模块会自动再次发送用户数据1234567890。路由建立完成后再次访问不需要等待路由重新建立,直到和某个节点连续通讯失败次数超过3次。
路由表可通过“AT+ROUTER_CLR=?”指令进行查询。
数据帧头可以使用“AT+HEAD=0”指令进行关闭。
用户数据不能为模块内部AT指令,否则会被模块识别为AT指令,导致无法用户数据发送。
EWD95M系列LoRa MESH数传电台单播基本操作步骤如下所示:
第一步:模块A使用“AT+DST_ADDR=26034,0”指令将目标地址配置为模块B的地址;
第二步:模块A使用“AT+OPTION=1,0”指令将通讯方式改为单播模式(Unicast);
第三步:模块A发送用户数据1234567890。发送成功会返回SUCCESS;若发送失败则会返回NOROUTE或NOACK。NOROUTE代表路由建立失败;NOACK代表路由建立成功但是未收到应答。若出现3次NOACK后,则需要重新建立路由表。
第四步:模块B收到了来自模块A发送的(ASCII码)1234567890转换为HEX格式为31323334353637383930(显示编码不同),并且添加了额外的数据帧头。
不同空速下首次发起单播请求的时间不同,至少为1.5个路由请求超时时间:
62.5K空速下首次发起单播请求需要等待约4秒,
21.875K空速下首次发起单播请求需要等待约8秒,
7K空速下首次发起单播请求需要等待约25秒。
多播(组播)通讯方式需要提前对目标模块进行分组管理,所有目标模块都需要使用“AT+GROUP_ADD=<group>”提前进行分组。
<group>可以理解为公共地址,每个模块最多可设置8个组地址。
在多播模式下,每次都需要重新建立路由,连续发起多播间隔建议在5秒左右。
“AT+GROUP_DEL=<group>”可以删除公共地址为group的组地址,同时会将新的组信息保存到Flash中。
“AT+GROUP_CLR=1”可以清除所有组地址,同时会将清除Flash中的组信息。
路由表可通过“AT+ROUTER_CLR=?”指令进行查询。
数据帧头可以使用“AT+HEAD=0”指令进行关闭。
用户数据不能为模块内部AT指令,否则会被模块识别为AT指令,导致无法用户数据发送。
EWD95M系列LoRa MESH数传电台多播(组播)基本操作步骤如下所示:
第一步:提前对模块B使用“AT+GROUP_ADD=123”进行分组设定;
第二步:模块A使用“AT+OPTION=2,0”指令修改通讯模式为多播模式(Multicast);
第三步:模块A使用“AT+DST_ADDR=123,0”指令修改通讯模式为多播模式,并设定目标组地址;
第四步:模块A发送用户数据1234567890。发送成功会返回SUCCESS;若发送失败则会返回NOROUTE或NOACK。NOROUTE代表路由建立失败;NOACK代表路由建立成功但是未收到应答。若出现3次NOACK后,则需要重新建立路由表。
第五步:模块B收到了来自模块A发送的(ASCII码)1234567890转换为HEX格式为31323334353637383930(显示编码不同),并且添加了额外的数据帧头。
不同空速下首次发起单播请求的时间不同,至少为1.5个路由请求超时时间:
62.5K空速下首次发起单播请求需要等待约4秒,
21.875K空速下首次发起单播请求需要等待约8秒,
7K空速下首次发起单播请求需要等待约25秒。
广播通讯方式不需要得知目标模块的地址。
广播模块下不会发送超时,也不需要建立路由,但所有接收模块收到数据后都会再次进行转发。模块内置的CSMA避让机制和广播过滤机制可以有效的防止数据碰撞和二次转发。
用户数据不能为模块内部AT指令,否则会被模块识别为AT指令,导致无法用户数据发送。
EWD95M系列LoRa MESH数传电台广播基本操作步骤如下所示:
第一步:模块A使用“AT+OPTION=3,0”指令将通讯方式改为广播模式(Broadcast);
第二步:模块A发送用户数据1234567890。发送成功会返回SUCCESS,用户可以等待SUCCESS来判断数据是否发送完成;
第三步:模块B收到了来自模块A发送的(ASCII码)1234567890转换为HEX格式为31323334353637383930(显示编码不同),并且添加了额外的数据帧头。
泛播通讯一般用于不同网络间的通讯,不同网络的网络识别码不同,采用单播、多播、广播通讯方式无法直接进行网络间数据交互,此时可采用泛播对不同网络间进行数据交互。
泛播通讯可跟根据设定的目标地址不同,将数据发送到单跳覆盖范围内的单个或者所有节点。
泛播模式下数据无法被中继和响应。
泛播无法保证数据传输的可靠性,类似于简单数据透传。
用户数据不能为模块内部AT指令,否则会被模块识别为AT指令,导致无法用户数据发送。
EWD95M系列LoRa MESH数传电台泛播基本操作步骤如下所示:
第一步:模块A使用“AT+DST_ADDR=26034,0”指令将目标地址配置为模块B的地址;
第二步:模块A或者使用“AT+DST_ADDR=65535,0”指令将目标地址配置为所有模块;
第三步:模块A使用“AT+OPTION=4,0”指令将通讯方式改为泛播模式(Anycast);
第四步:模块A发送用户数据1234567890。发送成功会返回SUCESS,用户可以等待SUCCESS来判断数据是否发送完成;
第五步:模块B收到了来自模块A发送的(ASCII码)1234567890转换为HEX格式为31323334353637383930(显示编码不同),并且添加了额外的数据帧头。
路由表由路由请求自动建立,无法手动修改,保存在RAM中,若模块重启则会丢失。路由表仅供查看路径,用户可无须理会,不需要对路由表进行AT指令解析。
路由表可以通过“AT+ROUTER_SAVE=1”指令保存到Flash中,再次上电时可通过“AT+ROUTER_READ=1”指令进行加载。
若要清除保存在Flash中的路由信息,则可以通过“AT+ROUTER_SAVE=0”指令进行清除。
若只想清除RAM中的路由信息,则可以通过“AT+ROUTER_CLR=1”指令进行清除。
路由表可通过“AT+ROUTER_CLR=?”、“AT+ROUTER_SAVE=?”、“AT+ROUTER_READ=?”三条指令进行读取。
路由表包含了目标地址、下级地址、分数、信号强度等参数。
当路由表中的DST和HOP不相同时,代表模块需要通过路由节点才能到达目标模块。
下图中NO.03和NO.04的路由信息,共同组成一条通往目标地址为59020的路径:
NO.04的路由信息告诉模块如果要发送数据给59020的模块,下一级应该通过给26017的路由节点发送数据。
NO.03的路由信息告诉模块如果要发送数据给26111的模块,下一级可以直接将数据传输到26111的路由节点。
当模块收到来自其他模块的数据时,串口输出数据会添加额外帧头信息。
LoRa MESH数传电台帧头含义:
帧类型:C1代表单播帧、C2代表多播帧、C3代表广播帧、C4代表泛播帧;
数据长度:用户数据长度,最大值200字节;
网络识别码:不同的网络的网络识别码不同,此信息可以得知来源是哪个网络;
地址:规定了数据的来源和去向;
用户数据:用户数据区,最大200字节。
数据帧头中地址和网络识别低位在前,像网络识别3412,实际上应该是0x1234,方便使用结构体对其进行解析。
数据帧头可以通过“AT+HEAD=0”指令进行关闭。
今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多无线数传电台产品更多资料,感兴趣的小伙伴可以登录我们的亿佰特官网和企业公众号(微信号:cdebyte)进行了解,也可以直接拨打400电话咨询技术专员!
相关阅读:
1、基于LoRa MESH协议的微型导轨数传电台及其上位机简介
2、EWD95M系列LoRa MESH组网数传电台远程配置教程
4、LoRa MESH网络:一种高效、可靠、低功耗的物联网通讯方案