版本 |
日期 |
原因 |
V0.01 |
23/03/22 |
创建文档 |
V0.02 |
23/05/30 |
增加网关配置、低功耗说明 |
V0.03 |
23/06/01 |
增加每包数据最大230字节说明、更改回环次数说明 |
V0.04 |
23/06/16 |
完善AT指令索引 |
V0.05 |
23/07/13 |
更改频段AT指令描述、更改频点对应表、更新异步休眠图 |
V0.06 |
23/11/17 |
更改输出扩展帧头描述 |
V0.07 |
24/04/02 |
更改输出扩展帧头描述 |
本名词解释仅是快速了解255MESH中名词的含义,具体内容与名词的详细功能介绍见具体讲解。
- 255MESH: 一种无线自组网 mesh 协议。
- 255MESH 模块:255MESH网络的终端与节点产品,可以和255MESH 网关双向通讯,不能直接与其它255MESH 模块进行通讯。
- 255MESH 终端:255MESH 网络中的一种设备类型,没有中继功能。一般为低功耗应用,配合休眠使用。
- 255MESH 节点:255MESH 网络中的一种设备类型,有中继功能。
- 255MESH 网关:255MESH网络的控制端与数据收集端,255MESH 模块可以直接与网关双向通讯。
- 模块中继:当255MESH 网络中模块与网关距离过远或信号强度过低时,模块会通过使能了中继功能的模块转发数据到网关。
- 回环:一种测试网络的方式,将接收的数据不做修改发送出去。
- 网络ID:在255MESH 网络中用来区分不同 255MESH 网络的标识,不同网络ID的 255MESH 网络不能进行通讯。
- 频点:255MESH 网络中的无线发射信号的中心频率。
- 频段:一定范围内频率的合集,255MESH 目前支持4个频段。
- 信道:对同一频道进行频率的细分,255MESH对每一个频段划分成32个信道。
- 带宽:电磁波频带的宽度,也就是信号的最高频率与最低频率的差值,255MESH网络中频段的带宽为16MHz,信道的带宽为500KHz。
- 速率(SF):每秒中发射的比特数,255MESH支持2.1kbps 到 62.5kbps。
- 功率(dbm): 发射功率的绝对值,255MESH模块支持 2dbm 到 22dbm 发射功率。
- 扩展帧头:255MESH 网络是透传网络,为了获取网络中更多有用信息,255MESH协议提供了输出扩展帧头的功能,在透传数据前加入扩展帧头中可以看到信号强度和模块ID,扩展帧头的内容不支持用户自定义是固定的。
- 报文:255MESH 网络中一条完整的串口数据帧。每个数据帧最大可以发送230字节。
本文档的配置工具适用于下列 255MESH 产品。 适用产品列表:
- 255MN-L01A
- 255MN-L01C
- 255MN-LP01A
- 255MN-LP01C
- 255MN-L01EV
- 255MN-LP01EV
- 255MT-L01
- 255MT-LP01
- 255MT-L02
- 255MT-LP02
- 255MG-L01
- 255MG-LP01
- 255MG-901ETH
- 255MG-901LTE
- 255MG-910ETH
- 255MG-910LTE
255MESH是分布式的对等网状网络,采用私有路由协议,能够充分利用网络中的路由冗余,具有优异的网络自愈性、稳定性和极佳的数据吞吐量,其组网速度耗时为零,所有的设备上电即工作,支持255级路由和几万节点的超大组网规模。物理层采用了很多先进的无线通信技术安全可靠的全网无线唤醒技术、交织纠错编码等。链路层采用智能的碰撞避免算法,具有优异的抗干扰能力。拥有灵活的休眠技术,所有的组网设备都可以休眠,有自主和异步两种休眠模式。
255MESH极为丰富的参数配置,用户不需要对现有设备、协议做任何修改,便可以轻松实现无线自组网。为用户节省大量的研发时间和费用的同时提供了业界最先进的自组网方案,满足对性能、功耗和成本的苛刻要求,解决业界的难题。
· 自路由 所有节点各自计算自己的路由,不需要中心节点掌控全网路由;
· 自恢复 所有节点都可以任意移动,在移动的同时保持数据流连续传输,网络采用多径路由协议,时刻感知网络的拓扑变化,可以在尽可能多的路径上平滑切换路由,有效抵抗部分节点故障、外来干扰、拓扑变化等;
· 无限扩展 协议栈资源开销与网络节点数量无关,网络规模没有理论上限,支持的网络规模一般在几千点到几万点;网络中可以同时允许有多个网关, 多个网关之是对等关系, 下行数据报文可以由任意网关转发。 节点会自动选择距离自己最近或者相对空闲的网关进行上行数据报文转发。只要两个相邻网关的间距不大于255跳,网络规模可以通过增加网关的数量无限制地扩展。
· 255 级路由 上行支持255级路由,而且不会因为路由深度的增加而牺牲网络的稳定性和路由的准确性或产生路由回路的问题。
· 网络初始化时间短 网络中的所有设备都是即插即用的,包括网关。网络中的节点可以随意增加和移除,整个网络完全没有初始化的过程。
· 多种休眠机制 休眠机制有自主模式和异步模式。安全迅速地全网无线唤醒技术,带来的响应延时几乎和网络规模无关。适用于对功耗有苛刻要求的应用场合。
· 可靠数据传输 包括广播在内,所有的报文都是按照5次握手的方式可靠传输,并且采用多次尝试、碰撞避免和拥塞,控制机制保证所有的报文都安全可靠抵达目的节点。
· 高吞吐量 空间、时间和频域的三个维度分集的巧妙结合,数据流能在多个路径、多个物理信道并行发送。可以通过多个网关同时与异构网络之间建立连接,大大增加了网络带宽。
255MESH 网络支持三种类型的设备,终端,节点和网关。在255MESH 网络中必须有节点与网关两种设备类型,节点负责上传数据,网关负责收集节点上传的数据,拓扑图如图 3-1 节点与网关拓扑图所示。对于某些功耗要求较高的节点,可以关闭节点的中继功能,变成终端设备,终端设备不能转发其它节点的数据只能上传自己的数据,拓扑图如图 3-2 节点、终端与网关拓扑图所示。
图 3-1 节点与网关拓扑图
图 3-2 节点、终端与网关拓扑图
单径路由协议数据的发送只利用一条路径,无法并行或并发地发送数据,导致网络传输率较低,延迟增加,网络负载不平衡,造成网络拥塞。
255MESH为多路经路由协议,网络中从任何一个源节点到目的节点的路径通常会有多条,而且节点具有随机移动性,整个网络的拓扑结构经常变化。采用多径路由协议可以克服上述单径路由协议的不足,可以充分利用网络资源,平衡网络负载,改善通讯性能,避免网络震荡。255MESH 采用私有按需轻量动态多径路由协议,该协议是针对硬件资源条件苛刻的移动自组网设计的,适用于移动速度快、拓扑结构变化快的无线网络。该路由协议可以最大限度减小路由建立和维护过程的开销,能够在多条路径并行进行数据报文的发送,可以感知网络拓扑结构的变化并对路由进行更新不需要进行洪泛,在不同路由之见无缝切换。主要特点有:每个节点维护尽可能多的路由信息;没有路由回路;路由稳定性好、建立速度快;能够维护充分利用无线信号的冗余,时时刻刻进行路由的维护和更新,没有额外开销;路由选择算法权衡了很多因素如距离矢量、信号能量和链路质量等;对网络拓扑结构的变化很敏感,路由能够动态迅速达到最优;网络吞吐量高;支持255级路由,网络规模大。
图 3-3 多路径示意图
多径路如图 3-3 多路径示意图所示,255MESH网络拓扑蓝线表示,E到G建立了两条数据线路。E->N1->N2->G 与E->N6->N7->N8->N5->N3->G两条数据链路,绿线为上行数据,橙色为下行数据。
路由的建立通过洪泛实现,多条路由间没有闭环回路、允许多条路径相交。每个节点都会选择尽可能多的节点作为自己的下一跳路由,数据报文可以在多条路径之间动态切换,能够并行传输。失效路由检测、新路由发现、网络拓扑结构的变化通过监听相邻节点间的握手报文来感知,不需要进行洪泛也不需要额外的开销。包括源节点在内的所有节点仅需要寻找自己的下一跳中继节点,而不需要确定整条路径,因此该路由协议开销很小,适合拓扑结构快速变化的移动网络,能够迅速发现即时最佳路由,支持255级路由的超大规模网络。
255MESH路由协议会综合多种选择算法进行路由的筛选,包括距离矢量、信号质量(链路状态),距离矢量算法根据目的地的远近来决定的路径,每个节点都会维护一张矢量表,表中列出了当前已知的到每个目标的最佳距离。节点可以根据这张矢量表,选择比自己更接近目的地的节点作为转发路由。根据距离矢量算法可以找到两个节点间的最近路径,但不一定是最佳路径。
不同于有线的网络,对于网络来说无线信号容易受外界干扰的影响,造成数据链路生存时间短、稳定性差的特点。路由协议必须能够正确选择信号质量好、链路稳定的路径才能保证网络的稳定性、实时性、可靠性和抗干扰能力。255MESH 路由协议能够迅速探测多条路由的即时链路质量,能在极短时间内选择出最佳链路质量的路径做路由,并且在必要时可以选择次最近路径作为路由。255MESH 链路状态算法路由选择如图 3 3 多路径示意图所示,E可以通过N4中继到G,但该条路径受到干扰为不稳定链路,同时E到G有另外一条链路质量好的路径E->N1->N2->G。选择E->N4->G这条路径虽然距离更近,但是由于链路不稳定性报文的接收成功率很低,会大大增加报文的重发概率耗费大量时间。而如果选择E->N1->N2->G,虽然距离会远一些,但是能保证报文传输的可靠性和实时性。
255MESH 支持多网络,配置了不同网络ID的设备间不能互相通讯,拓扑结构如图 3-4 255MESH多网络拓扑图所示。网络ID 为00 1F 01的设备不能与网络ID 为00 1E 01的设备通讯。网络ID范围为000000到FFFFFF共16777216个网络ID。
图 3-4 255MESH多网络拓扑图
255MESH 网络共支持128个频点,见表 3-1 255MESH频点。
^表 3-1 255MESH频点^
目前255MESH配置工具软件仅支持Windows操作系统。
目前软件获取有以下两种途径
- 在官网下载(https://www.255mesh.com/wiki)。
- 联系销售,由销售发送给您(https://www.255mesh.com/sales)。
获取到的255MESH配置工具是一个zip格式压缩的压缩包,需要先进行解压,推荐使用windows自带的解压软件或者7zip(https://7-zip.org/)解压软件。
~图 4-1 配置工具解压后~
解压后会获得3个文件,如图 4-1 配置工具解压后所示只需要运行App.exe,可以看到图 4-2 配置工具开始界面所示。目前255MESH配置工具仅有模块配置功能开放使用,网关配置,配置模板,收发测试功能暂未开放使用。
~图 4-2 配置工具开始界面~
使用255MESH模块,需要通过USB转TTL模块连接电脑和255MESH模块,USB转TTL模块推荐选择CH340与FT232芯片的模块。连接稳定性会好,如果电脑第一次连接USB转TTL设备会要求安装对应的驱动程序。
CH340驱动下载地址(https://www.wch.cn/product/CH340.html)。
FT232驱动下载地址(http://ftdichip.cn/Products/ICs/FT232R.htm)。
~图 4-3 设备管理器串口~
安装驱动完成后在电脑的设备管理器界面可以看到端口目录下出现了一个USB Serial Port(COM11)这个设备,如图 4-3 设备管理器串口所示你的电脑不一定会显示为COM11,有可能会是其它端口号,是正常的。能够看到端口号说明驱动安装正确,如果不能看到端口号请检查电脑USB端口,或者更换一个电脑USB端口在进行连接。
点击图 4-2 配置工具开始界面模块配置,可以进入模块配置界面图 4-4 模块配置界面。
~图 4-4 模块配置界面~
~图 4-5 串口选择~
在图 4-5 串口选择所示选择串口位置选择设备管理器中看到的那个端口,我这里是COM11,请根据电脑显示进行实际选择,如果看不到选择的端口号,可以单击这个图标进行刷新。
如果您电脑上有多个串口设备,请拔掉其它串口设备以确定当前模块的具体端口号。选择完成后单击按钮。我们的模块出厂默认的端口参数是波特率115200,停止位1位,无校验位。
~图 4-6 模块信息~
单击打开串口后,会自动读取状态,如果没有自动读取,可以单击 按钮,进行读取信息,如图 4-6 模块信息所示。在确定可以读取模块信息之后软件的配置和安装已经完成。
~图 5 1 选择串口~
在图 5 1 选择串口位置选择当前连接入电脑的串口端口号,如果没有可以参考软件安装,波特率选择模块配置过的波特率,如果没有配置过,出厂默认配置为115200,停止位选择配置过的停止位,如果没有配置过,出厂默认停止位是1。选择正确后,点击打开串口 按钮。成功打开串口后打开串口按钮会变为关闭串口。
配置完成后请点击关闭串口,在关闭软件。
~图 5 2 模块配置~
在正确打开串口后会默认读取状态,软件在读取状态时,读取状态按钮为不可点击状态,等读取成功后,变为可点击状态,可以再次读取模块配置。等配置完成后,要点击写入配置按钮,将配置好的参数写入到模块中。
如果写入成功会提示写入成功。如果写入失败会提示图 5 3 写入失败提示,如果提示写入失败,请检查模块串口与电脑的连接是否正常,然后尝试在次写入。
~图 5 3 写入失败提示~
~图 5 4 模组概况~
如图 5 4 模组概况所示,当正确读取到模组信息时,会显示下列信息:
· 网络ID 是当前模块配置的所属网络,可以在配置工具中更改。
· 名称 当前模块的固件名称,不可在配置工具中更改。
· 固件版本 为当前模块的软件版本。不可在配置工具中更改
· MAC地址 为模块唯一ID后六位的ASCII码,不可在配置工具中更改。
· 频点 为当前模块发射信号的中心频率。可以在配置工具中更改。
· 功率 为当前模块发射信号的功率。可以在配置工具中更改。
· 唯一ID 为模块在255MESH网络中的全球唯一编号。不可在配置工具中更改。
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x43 0x49 0x0D |
获取模块概况AT指令 |
从模块串口接收 |
0x41 0x54 0x43 0x49 |
AT指令 |
0x2D |
后面字节数 2D 换算成十进制 为45字节0x00-0x0D |
0x00 0x0A |
软件版本号 |
0x32 0x35 0x35 0x2D 0x4D 0x45 0x53 0x48 0x2D 0x32 0x35 0x35 0x4D 0x4E 0x2D 0x4C 0x2D 0x57 0x57 0x57 0x2E 0x32 0x35 0x35 0x4D 0x45 0x53 0x48 0x2E 0x43 0x4F 0x4D |
模块名称255-MESH-255MN-L-WWW.255MESH.COM |
0x00 |
模块名称结束符 |
0x00 0x02 0x9E |
硬件版本号 |
0x00 0x01 0x00 0x03 0xB8 0xDA |
唯一ID |
0x0D |
结束符 |
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x0C 0x06 0x0D |
获取MAC地址AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x08 |
后面字节数 |
0x0C |
偏移地址 |
0x30 0x33 0x42 0x38 0x45 0x36 |
MAC 地址 |
0x0D |
结束符 |
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x2E 0x01 0x0D |
获取频段AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x2E |
偏移地址 |
0x30 |
转换成2进制 00110000 高第3位与4位为频段 |
0x0D |
00 430MHz-446MHz |
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x04 0x01 0x0D |
获取信道AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x04 |
偏移地址 |
0x07 |
转换成2进制 00000111 高5位为信道,见表 5‑1 信道对应表 |
0x0D |
结束符 |
^表 5 1 信道对应表^
二进制 |
信道 |
二进制 |
信道 |
二进制 |
信道 |
二进制 |
信道 |
00000 |
1 |
01000 |
9 |
10000 |
17 |
11000 |
25 |
00001 |
2 |
01001 |
10 |
10001 |
18 |
11001 |
26 |
00010 |
3 |
01010 |
11 |
10010 |
19 |
11010 |
27 |
00011 |
4 |
01011 |
12 |
10011 |
20 |
11011 |
28 |
00100 |
5 |
01100 |
13 |
10100 |
21 |
11100 |
29 |
00101 |
6 |
01101 |
14 |
10101 |
22 |
11101 |
30 |
00110 |
7 |
01110 |
15 |
10110 |
23 |
11110 |
31 |
00111 |
8 |
01111 |
16 |
10111 |
24 |
11111 |
32 |
频点由频段与信道共同决定,详细对应见表 5 2 频点对应表
频段 |
信道 |
频点 |
频段 |
信道 |
频点 |
频段 |
信道 |
频点 |
430MHz |
1 |
430.5 MHz |
470MHz |
12 |
459.5 MHz |
480MHz |
23 |
481.5 MHz |
430MHz |
2 |
431 MHz |
470MHz |
13 |
460 MHz |
480MHz |
24 |
482 MHz |
430MHz |
3 |
431.5 MHz |
470MHz |
14 |
460.5 MHz |
480MHz |
25 |
482.5 MHz |
430MHz |
4 |
432 MHz |
470MHz |
15 |
461 MHz |
480MHz |
26 |
483 MHz |
430MHz |
5 |
432.5 MHz |
470MHz |
16 |
461.5 MHz |
480MHz |
27 |
483.5 MHz |
430MHz |
6 |
433 MHz |
470MHz |
17 |
462 MHz |
480MHz |
28 |
484 MHz |
430MHz |
7 |
433.5 MHz |
470MHz |
18 |
462.5 MHz |
480MHz |
29 |
484.5 MHz |
430MHz |
8 |
434 MHz |
470MHz |
19 |
463 MHz |
480MHz |
30 |
485 MHz |
430MHz |
9 |
434.5 MHz |
470MHz |
20 |
463.5 MHz |
480MHz |
31 |
485.5 MHz |
430MHz |
10 |
435 MHz |
470MHz |
21 |
464 MHz |
480MHz |
32 |
486 MHz |
430MHz |
11 |
435.5 MHz |
470MHz |
22 |
464.5 MHz |
500MHz |
1 |
494 MHz |
430MHz |
12 |
436 MHz |
470MHz |
23 |
465 MHz |
500MHz |
2 |
494.5 MHz |
430MHz |
13 |
436.5 MHz |
470MHz |
24 |
465.5 MHz |
500MHz |
3 |
495 MHz |
430MHz |
14 |
437 MHz |
470MHz |
25 |
466 MHz |
500MHz |
4 |
495.5 MHz |
430MHz |
15 |
437.5 MHz |
470MHz |
26 |
466.5 MHz |
500MHz |
5 |
496 MHz |
430MHz |
16 |
438 MHz |
470MHz |
27 |
467 MHz |
500MHz |
6 |
496.5 MHz |
430MHz |
17 |
438.5 MHz |
470MHz |
28 |
467.5 MHz |
500MHz |
7 |
497 MHz |
430MHz |
18 |
439 MHz |
470MHz |
29 |
468 MHz |
500MHz |
8 |
497.5 MHz |
430MHz |
19 |
439.5 MHz |
470MHz |
30 |
468.5 MHz |
500MHz |
9 |
498 MHz |
430MHz |
20 |
440 MHz |
470MHz |
31 |
469 MHz |
500MHz |
10 |
498.5 MHz |
430MHz |
21 |
440.5 MHz |
470MHz |
32 |
469.5 MHz |
500MHz |
11 |
499 MHz |
430MHz |
22 |
441 MHz |
480MHz |
1 |
470.5 MHz |
500MHz |
12 |
499.5 MHz |
430MHz |
23 |
441.5 MHz |
480MHz |
2 |
471 MHz |
500MHz |
13 |
500 MHz |
430MHz |
24 |
442 MHz |
480MHz |
3 |
471.5 MHz |
500MHz |
14 |
500.5 MHz |
430MHz |
25 |
442.5 MHz |
480MHz |
4 |
472 MHz |
500MHz |
15 |
501 MHz |
430MHz |
26 |
443 MHz |
480MHz |
5 |
472.5 MHz |
500MHz |
16 |
501.5 MHz |
430MHz |
27 |
443.5 MHz |
480MHz |
6 |
473 MHz |
500MHz |
17 |
502 MHz |
430MHz |
28 |
444 MHz |
480MHz |
7 |
473.5 MHz |
500MHz |
18 |
502.5 MHz |
430MHz |
29 |
444.5 MHz |
480MHz |
8 |
474 MHz |
500MHz |
19 |
503 MHz |
430MHz |
30 |
445 MHz |
480MHz |
9 |
474.5 MHz |
500MHz |
20 |
503.5 MHz |
430MHz |
31 |
445.5 MHz |
480MHz |
10 |
475 MHz |
500MHz |
21 |
504 MHz |
430MHz |
32 |
446 MHz |
480MHz |
11 |
475.5 MHz |
500MHz |
22 |
504.5 MHz |
470MHz |
1 |
454 MHz |
480MHz |
12 |
476 MHz |
500MHz |
23 |
505 MHz |
470MHz |
2 |
454.5 MHz |
480MHz |
13 |
476.5 MHz |
500MHz |
24 |
505.5 MHz |
470MHz |
3 |
455 MHz |
480MHz |
14 |
477 MHz |
500MHz |
25 |
506 MHz |
470MHz |
4 |
455.5 MHz |
480MHz |
15 |
477.5 MHz |
500MHz |
26 |
506.5 MHz |
470MHz |
5 |
456 MHz |
480MHz |
16 |
478 MHz |
500MHz |
27 |
507 MHz |
470MHz |
6 |
456.5 MHz |
480MHz |
17 |
478.5 MHz |
500MHz |
28 |
507.5 MHz |
470MHz |
7 |
457 MHz |
480MHz |
18 |
479 MHz |
500MHz |
29 |
508 MHz |
470MHz |
8 |
457.5 MHz |
480MHz |
19 |
479.5 MHz |
500MHz |
30 |
508.5 MHz |
470MHz |
9 |
458 MHz |
480MHz |
20 |
480 MHz |
500MHz |
31 |
509 MHz |
470MHz |
10 |
458.5 MHz |
480MHz |
21 |
480.5 MHz |
500MHz |
32 |
509.5 MHz |
470MHz |
11 |
459 MHz |
480MHz |
22 |
481 MHz |
|
|
|
|
|
|
|
|
|
|
|
|
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x00 0x01 0x0D |
获取功率AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x00 |
偏移地址 |
0x18 |
转换成2进制 00011000 高3位为功率,见表 5‑3 功率对应表 |
0x0D |
结束符 |
表 5 3 功率对应表
二进制 |
功率 |
二进制 |
功率 |
二进制 |
功率 |
二进制 |
功率 |
0 |
22dbm |
10 |
17dbm |
100 |
11dbm |
110 |
5dbm |
1 |
20dbm |
11 |
14dbm |
101 |
8dbm |
111 |
2dbm |
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x12 0x03 0x0D |
获取网络ID AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x05 |
后面字节数 |
0x12 |
偏移地址 |
0x00 0x00 0x00 |
网络ID |
0x0D |
结束符 |
网络参数包括网络ID,无线频段,信道,速率(SF)和功率。网络ID,无线频段,信道,速率(SF)完全相同的配置模块才能通信。如图 5 5 网络参数所示。配置后需要点击写入配置。
~图 5 5 网络参数~
网络ID用来区分不同的255MESH网络,不同的网络ID之间的255MESH模块不能进行通讯。网络ID取值范围00000-FFFFFF。
如图 5 6 不同网络ID数传图所示,网络ID 00 00 01、00 00 02与00 00 03 三个网络。00 00 01网络传输02 0F 0E 0R 与02 0F 0E 0A数据,00 00 02 网络传输01 0A 00与010A 01数据,00 00 03网络传输03 07 0F数据。不同网络数据不互通,互不影响。
~图 5 6 不同网络ID数传图~
- 获取网络ID AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x12 0x03 0x0D |
获取网络ID AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x05 |
后面字节数 |
0x12 |
偏移地址 |
0x00 0x00 0x00 |
网络ID |
0x0D |
结束符 |
- 更改网络ID AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
更改网络ID AT指令 |
0x05 |
后面字节数 |
0x12 |
偏移地址 |
0x00 0x00 0x01 |
网络ID |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x05 0x12 0x00 0x00 0x01 0x0D |
如果发送和接收的数据一致说明更改成功 |
255MESH 网络可配置4个频段 433MHz、470MHz、480MHz与500MHz,如图 5 7 无线频段配置。配置后需要点击写入配置。
~图 5 7 无线频段配置~
- 获取频段AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x2E 0x01 0x0D |
获取频段AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x2E |
偏移地址 |
0x30 |
转换成2进制 00110000 高第3位与4位为频段 |
|
00 430MHz-446MHz |
|
01 454MHz-469MHz |
|
10 470MHz-486MHz |
|
11 494MHz-509MHz |
0x0D |
结束符 |
- 配置频段AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置频段 AT指令 |
0x03 |
后面字节数 |
0x2E |
偏移地址 |
0x30 |
转换成2进制 00110000 高第3位与4位为频段 |
|
00 430MHz-446MHz |
|
01 454MHz-469MHz |
|
10 470MHz-486MHz |
|
11 494MHz-509MHz |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x2E 0x30 0x0D |
如果发送和接收的数据一致说明更改成功 |
255MESH 网络每个频段有32个信道可以配置,范围1到32。如图 5 8 信道所示。在配置工具中可以直接在下拉框中选取。配置后需要点击写入配置。
~图 5 8 信道~
- 获取信道的AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x04 0x01 0x0D |
获取信道AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x04 |
偏移地址 |
0x07 |
转换成2进制 00000111 高5位为信道,见表 5‑1 信道对应表 |
0x0D |
结束符 |
- 配置信道的AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置信道 AT指令 |
0x03 |
后面字节数 |
0x04 |
偏移地址 |
0x07 |
转换成2进制 00000111 高5位为信道,见表 5‑1 信道对应表,更改信道时要先获取信道,确保低3位与原先保持一致 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x04 0x07 0x0D |
如果发送和接收的数据一致说明更改成功 |
255MESH 在每个频点上有7种空中速率,62.5kbps、37.5kbps、21.8kbps、12.5kbps、7.0kbps、3.9kbps与2.1kbps。在其它参数与硬件环境一致的情况下,空中速率越低,信号传输距离越远。如图 5 9 速率所示,在配置工具中可以直接在下拉框中选取。配置后需要点击写入配置。
~图 5 9 速率~
- 获取速率(SF)的AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x3E 0x01 0x0D |
获取速率(SF)AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x3E |
偏移地址 |
0x00 |
速率值,见表 5‑4 速率 |
0x0D |
结束符 |
- 配置速率(SF)的AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置速率(SF)AT指令 |
0x03 |
后面字节数 |
0x3E |
偏移地址 |
0x00 |
速率值,见表 5‑4 速率 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x3E 0x00 0x0D |
如果发送和接收的数据一致说明更改成功 |
^表 5 4 速率^
值 |
速率 |
值 |
速率 |
值 |
速率 |
值 |
速率 |
0x00 |
62.5kbps |
0x20 |
21.8kbps |
0x40 |
7.0kbps |
0x60 |
2.1kbps |
0x10 |
37.5kbps |
0x30 |
12.5kbps |
0x50 |
3.9kbps |
|
|
255MESH 中模块支持8种发射功率22dbm、20dbm、17dbm、14dbm、11dbm、8dbm、5dbm和2dbm。如图 5 10 功率所示,在配置工具中可以直接在下拉框中选取。配置后需要点击写入配置。
~图 5 10 功率~
- 获取功率AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x00 0x01 0x0D |
获取功率AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x00 |
偏移地址 |
0x18 |
转换成2进制 00011000 高3位为功率,见表 5‑3 功率对应表 |
0x0D |
结束符 |
- 配置功率AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置功率AT指令 |
0x03 |
后面字节数 |
0x00 |
偏移地址 |
0x18 |
转换成2进制 00011000 高3位为功率,见表 5‑3 功率对应表。更改功率时要先获取寄存器参数,确保低5位与原先保持一致 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x00 0x18 0x0D |
如果发送和接收的数据一致说明更改成功 |
^表 5 5 功率对应表^
二进制 |
功率 |
二进制 |
功率 |
二进制 |
功率 |
二进制 |
功率 |
0 |
22dbm |
10 |
17dbm |
100 |
11dbm |
110 |
5dbm |
1 |
20dbm |
11 |
14dbm |
101 |
8dbm |
111 |
2dbm |
功能参数包括中继使能,串口使能,休眠使能。配置工具中的配置位置如图 5 11 功能参数所示。配置后需要点击写入配置。
~图 5 11 功能参数~
当255MESH 网络中模块与网关距离过远或信号强度过低时,模块会通过使能了中继功能的模块转发数据到网关。建议在非低功耗模块上都使能中继功能。中继功能默认都是使能的,如图 5 12 使能中继所示。配置后需要点击写入配置。
~图 5 12 使能中继~
- 获取中继状态AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x00 0x01 0x0D |
获取中继状态AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x00 |
偏移地址 |
0x18 |
转换成2进制 00011000 高第4位为中继状态,1为使能 |
0x0D |
结束符 |
- 配置中继状态的AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置中继状态AT指令 |
0x03 |
后面字节数 |
0x00 |
偏移地址 |
0x18 |
转换成2进制 00011000 高第4位为中继状态,1为使能。更改中继状态时要先获取,确保其它位与原先保持一致 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x00 0x18 0x0D |
如果发送和接收的数据一致说明更改成功 |
255MESH 网络中模块可以去掉串口使能,并使能中继功能,充当纯中继模块。需要主动上发数据的模块,必须使能串口功能。串口功能默认都是使能的,如图 5 13 串口使能所示。配置后需要点击写入配置。
~图 5 13 串口使能~
- 获取串口使能AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x00 0x01 0x0D |
获取串口使能AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x00 |
偏移地址 |
0x18 |
转换成2进制 00011000 高第5位为串口使能,1为使能 |
0x0D |
结束符 |
- 配置串口使能AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置串口使能AT指令 |
0x03 |
后面字节数 |
0x00 |
偏移地址 |
0x18 |
转换成2进制 00011000 高第5位为串口使能,1为使能。更改串口使能时要先获取,确保其它位与原先保持一致 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x00 0x18 0x0D |
如果发送和接收的数据一致说明更改成功 |
255MESH 网络中模块可以配置休眠,进一步降低功耗,如果配置了自主休眠或异步休眠,必须使能休眠参数,如图 5 14 休眠所示,配置才会生效。默认休眠不使能。配置后需要点击写入配置。
~图 5 14 休眠~
- 获取休眠状态AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x00 0x01 0x0D |
获取休眠状态AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x00 |
偏移地址 |
0x18 |
转换成2进制 00011000 高第6位为休眠状态,1为使能 |
0x0D |
结束符 |
- 配置休眠状态的AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x00 0x01 0x0D |
获取休眠状态AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x00 |
偏移地址 |
0x18 |
转换成2进制 00011000 高第6位为休眠状态,1为使能 |
0x0D |
结束符 |
255MESH 网络为了测试模块的空中网络功能,可以配置回环次数来测试模块的发送和接收数据功能是否完好,取值范围为1到254,配置255代表不使用回环次数测试,不能配置为0值。
回环测试是模块将从网关接收到的数据不做任何修改在发送到网关。
回环次数是配置发送几次数据,例如配置回环次数是10,从网关接收到了 00 00 01数据,模块将返回10包 00 00 01数据。
~图 5 15 回环次数~
测试完成后记得回环次数更改为00 或者 FF 才能正常发送数据。
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x1D 0x01 0x0D |
获取回环次数AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x1D |
偏移地址 |
0x0A |
回环次数,转换成十进制为10次。00到FF 对应 0到 255 其中 00 与 FF 为不配置 |
0x0D |
结束符 |
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置回环次数AT指令 |
0x03 |
后面字节数 |
0x1D |
偏移地址 |
0x0A |
回环次数,转换成十进制为10次。00到FF 对应 0到 255 其中 00 与 FF 为不配置 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x1D 0x0A 0x0D |
如果发送和接收的数据一致说明更改成功 |
255MESH 网络为了适配低功耗的应用场景,设计了自主休眠功能。对于不需要进行数据中继和路由转发的叶子节点(终端节点),可以仅仅在需要进行收发或者询问属于自己的数据报文时才会打开射频进行数据传输,在数据传输完毕可以立即进入休眠,称之为自主休眠。
要使用自主休眠,中继功能需要关闭。如果未使能休眠或者使能了中继,该参数不起作用。
配置如图 5 16自主休眠所示画面,配置软件上的自主休眠配置的是多少个休眠单位,每单位休眠时间为1048ms,可配置的最大休眠时间为4.47min。如果设置自主休眠时间片长度为0,则模块不会主动醒来,只能由串口唤醒。
~图 5 16自主休眠~
自主休眠节点可以和不休眠节点之间进行突发数据传输,但自主休眠节点之间无法进行数据交换。自主休眠节点和不休眠节点之间不存在绑定关系,因此自主休眠节点可以在网络中任意移动,甚至脱离网络。自主休眠的节点按照预设的休眠时间片进行休眠, 在休眠时间片结束后会主动发送报文询问广播报文,以及探测不休眠节点的存在。因此,不休眠节点无需主动唤醒自主休眠节点。在接收到串口数据报文时,可以立即结束自主休眠时间片,进行突发数据传输。
· 自主休眠节点没有路由和数据中继转发的能力,网络需要有不休眠的路由/网关节点和自主休眠节点配合才能进行数据传输;
· 不要求自主休眠节点的休眠时间片都相同,可以任意设定;
· 自主休眠节点可以主动醒来探测网络和询问广播报文,其休眠时间片可以设置为1秒到4.5分钟;
· 如果不需要自主休眠节点主动醒来探测网络,可以设置自主休眠时间片为无穷大,这样自主休眠节点只有在收到串口数据报文时才打开射频进行数据传输,没有数据传输时会一直休眠状态;
· 自主休眠节点可以获得最低的待机功耗,节点功耗通常比异步休眠低1-3个数量级,可以用于低功耗传感节点;
· 在允许部署少量不休眠节点做路由的情况下,自主休眠是最佳选择;
· 自主休眠节点在主动醒来探测网络时采用碰撞算法,在遇到网络拥塞或者无线报文错误时,可能会导致此次数据交换失败立刻重新进入休眠时间片,但数据报文不会丢失,并且在休眠时间片结束后会继续尝试;
· 因此只要给足够多的时间,自主休眠单次全网数据集抄保证 100%可靠性;
· 自主休眠的网络稳定性、抗干扰能力和网络规模都要优于异步休眠网络;
配置了自主休眠一定要使能休眠功能才会生效,并且不能使能中继。
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x1C 0x01 0x0D |
获取自主休眠AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x1C |
偏移地址 |
0x00 |
0为无限休眠,多少个休眠单位 |
0x0D |
结束符 |
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置自主休眠AT指令 |
0x03 |
后面字节数 |
0x1C |
偏移地址 |
0x00 |
0为无限休眠,多少个休眠单位 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x1C 0x00 0x0D |
如果发送和接收的数据一致说明更改成功 |
255MESH 网络为了适配更多低功耗的应用场景,设计了异步休眠功能。如果需要异步休眠需要使能中继,使能休眠。
配置软件上的异步休眠配置的是多少个休眠单位,每单位休眠时间为16ms,可配置的最大休眠时间为4s。当配置为0时代表取消异步休眠。
~图 5 17异步休眠~
异步休眠模式下节点会在网络空闲后自动按照设定进入“休眠-监听-休眠-监听…”的循环过程,协议栈在休眠时间片结束时会打开射频监听网络中的无线信号,进入监听时间片。如果在监听时间片之内识别出特定的无线唤醒信号则会结束监听过程进入正常工作模式;否则会在监听时间片结束时进入下一个休眠的时间片。休眠时间片和监听时间片的长度可以根据实际需要设定。异步休眠工作示意图如下所示:
所有节点和网关都可以进行异步休眠;
· 无论是否使能休眠,全网所有节点均需要设置相同的异步休眠时间片参数;
· 异步休眠节点之间通信,需要在交换正式数据之前进行无线唤醒;
· 异步休眠待机后节点不需要发送任何报文,全网保持静默;
· 异步休眠节点和非休眠节点可以进行数据通信,但需要非休眠节点设置相同的异步休眠参数以便能够唤醒异步休眠节点;
· 异步休眠节点在被串口的数据报文唤醒后会立即结束休眠时间片进行突发数据传输;
· 监听时间片的长度和无线的速率相关,无线速率越大监听时间片越短,反之越长;
· 异步休眠数据传输功耗优先级大于可靠性,单次全网数据集抄不保证 100%可靠性;
· 超时等待时间在不同速率下均不相同,具体时间联系商务获取。
配置了异步休眠一定要使能休眠功能才会生效
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x1A 0x01 0x0D |
获取异步休眠AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x1A |
偏移地址 |
0x00 |
多少个休眠单位 |
0x0D |
结束符 |
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置异步休眠AT指令 |
0x03 |
后面字节数 |
0x1A |
偏移地址 |
0x00 |
多少个休眠单位 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x1C 0x00 0x0D |
如果发送和接收的数据一致说明更改成功 |
255Mesh模块发送串⼝报⽂时如果模块恰好在休眠状态,需要通过在串⼝数据报⽂前增加⼀个字节0xFF 唤醒头通过串⼝线对模块进⾏唤醒。该⽅法对不同的串⼝波特率均适⽤。简单起⻅,外部 MCU 向模块发送数据报⽂时均可以固定增加这个唤醒字节 0xFF。
如果在模块完全透传的情况下,模块不休眠时可能会把这个 0xFF 字节也作为应⽤层的数据报⽂进⾏接收并转发,这就增加⼀个垃圾字节,甚⾄会破环应⽤层的报⽂解析。这种情况下可以使能模块的数据帧起始符检测,模块可以将这个 0xFF 字节⾃动过滤掉。配置⽅法⻅5.16.1帧起始符。
模块在接收到外部数据时可以用来唤醒外部 MCU,需要连接255MESH 模块的 wake 引脚,wake引脚为模块 GPIO1 引脚。wake 引脚电平变化之后会延时⼀段时间在通过串⼝发送数据,不同速率下的唤醒延时时间不同。
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 0x03 0x02 0x0A 0x0D |
wake引脚⾼电平,有数据时低电平 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x02 0x0A 0x0D |
如果发送和接收的数据一致说明更改成功 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 0x03 0x02 0x02 0D |
wake 引脚低电平,有数据时⾼电平 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x02 0x02 0x0D |
如果发送和接收的数据⼀致说明更改成功 |
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 0x03 0x18 0xFF 0x0D |
配置延时发送数据时间,具体延时时间⻅表格 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x18 0xFF 0x0D |
如果发送和接收的数据一致说明更改成功 |
速率 |
延时时间 |
速率 |
延时时间 |
速率 |
延时时间 |
速率 |
延时时间 |
62.5kbps |
35ms |
21.8kbps |
112ms |
7.0kbps |
240ms |
2.1kbps |
240ms |
37.5kbps |
64ms |
12.5kbps |
225ms |
3.9kbps |
240ms |
|
|
在这里可以配置255MESH 模块的串口参数,数据位为固定8位不可配置。波特率可配置范围为2400到115200,停止位可配置1、1.5、2,校验位可配置无,奇校验,偶校验。
串口参数如果配置错误,无法连接模块,需要硬件CFG脚拉低,RESET引脚拉低在拉高,模块串口配置会使用115200波特率,8位数据位,1位停止位,无校验位进行通讯。这时可以更改串口配置,更改完成后CFG脚拉高,模块就会使用配置的串口配置在进行通讯。
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x04 0x01 0x0D |
获取串口波特率AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x04 |
偏移地址 |
0x07 |
变成二进制 0000 0111 低3位为波特率,见下表 |
0x0D |
结束符 |
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x05 0x01 0x0D |
获取校验位和停止位AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x05 |
偏移地址 |
0x00 |
转为2进制 00000000 高2位为校验位 低6位为停止位 见下表 |
0x0D |
结束符 |
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置串口波特率AT指令 |
0x03 |
后面字节数 |
0x04 |
偏移地址 |
0x07 |
低3位为波特率,见下表 配置前请先获取,确保其它位与配置前一致 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x04 0x07 0x0D |
如果发送和接收的数据一致说明更改成功 |
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置校验位和停止位AT指令 |
0x03 |
后面字节数 |
0x05 |
偏移地址 |
0x00 |
转为2进制 00000000 高2位为校验位 低6位为停止位 见下表 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x05 0x00 0x0D |
如果发送和接收的数据一致说明更改成功 |
表 5 6波特率表
二进制 |
波特率 |
二进制 |
波特率 |
二进制 |
波特率 |
二进制 |
波特率 |
0 |
2400 bps |
10 |
9600 bps |
100 |
19200 bps |
110 |
57600 bps |
1 |
4800 bps |
11 |
14400 bps |
101 |
38400 bps |
111 |
115200 bps |
表 5 7校验位表
二进制 |
校验位 |
0 |
无校验 |
1 |
奇校验 |
10 |
偶校验 |
表 5 8停止位表
二进制 |
停止位表格 |
0 |
1bit停止位 |
10000 |
1.5bit停止位 |
100000 |
2bit停止位 |
255MESH 模块可以解析串口数据,如果想要指定帧起始字符的数据才发送可以使能帧起始符,并配置一个帧起始字符,帧起始符检测只能检测一个字符。
配置工具中的开关代表使能状态,后面的输入框是十进制的数据,范围是0到255,对应16进制00到FF。
- 测试案列
- 获取帧起始使能状态AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x01 0x01 0x0D |
获取帧起始使能AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x01 |
偏移地址 |
0x34 |
转为2进制 00110100 高4 位为帧起始使能状态位,1为使能 |
0x0D |
结束符 |
- 获取帧起始符AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x06 0x01 0x0D |
获取帧起始符AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x06 |
偏移地址 |
0x44 |
为帧起始符,十进制为68 |
0x0D |
结束符 |
- 配置帧起始使能状态AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置帧起始使能AT指令 |
0x03 |
后面字节数 |
0x01 |
偏移地址 |
0x34 |
转为2进制 00110100 高4 位为帧起始使能状态位,1为使能,配置前请先获取,确保其它位与配置前一致 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x01 0x34 0x0D |
如果发送和接收的数据一致说明更改成功 |
- 配置帧起始符AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置帧起始符AT指令 |
0x03 |
后面字节数 |
0x06 |
偏移地址 |
0x44 |
为帧起始符,十进制为68 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x06 0x44 0x0D |
如果发送和接收的数据一致说明更改成功 |
255MESH 模块可以解析串口数据,如果想要指定帧结束字符的数据才发送可以使能帧结束字符,并配置一个帧结束字符,帧结束字符检测只能检测一个字符。
配置工具中的开关代表使能状态,后面的输入框是十进制的数据,范围是0到255,对应16进制00到FF。
- 测试案列
- 同时使用帧起始符和结束符测试案列
- 获取帧结束使能状态AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x01 0x01 0x0D |
获取帧结束使能AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x01 |
偏移地址 |
0x34 |
转为2进制 00110100 高3 位为帧结束使能状态位,1为使能 |
0x0D |
结束符 |
- 获取帧结束字符AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x07 0x01 0x0D |
获取帧结束符AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x07 |
偏移地址 |
0x80 |
为帧结束符,十进制为128 |
0x0D |
结束符 |
- 配置帧结束使能状态AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置帧结束使能AT指令 |
0x03 |
后面字节数 |
0x01 |
偏移地址 |
0x34 |
转为2进制 00110100 高3 位为帧结束使能状态位,1为使能,配置前请先获取,确保其它位与配置前一致 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x01 0x34 0x0D |
如果发送和接收的数据一致说明更改成功 |
- 配置帧结束符AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置帧结束符AT指令 |
0x03 |
后面字节数 |
0x07 |
偏移地址 |
0x80 |
为帧结束符,十进制为128 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x07 0x80 0x0D |
如果发送和接收的数据一致说明更改成功 |
为了方便获取255MESH网络中的更多信息,可以使能输出扩展帧头,在使能了输出扩展帧头后会在接收的数据前增加5字节,分别为固定帧头起始字符,信号强度,综合距离,电压最大值,电压最小值,每个分别占一个字节。配置工具中的开关代表使能状态。
固定帧头起始字符为0xAE。
信号强度为模块接收到数据的信号强度,计算方法为将十六字节数据转换成十进制数据,然后除以2,减去150。
综合距离是模块到网关的距离,范围是0x01到0xFF。
电压最大值是接收端模块本地电压最大值。计算方法换算成十进制/40V
电压最小值是接收端模块本地电压最小值。计算方法换算成十进制/40V(举例:接收电压最小值83,转换成十进制为131,此时接收模块电压最小是为131/40V=3.27V)
- 测试案列
- 获取输出扩展帧头AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x01 0x01 0x0D |
获取输出扩展帧头AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x01 |
偏移地址 |
0x34 |
转为2进制 00110100 高6位为输出扩展帧头状态位,1为使能 |
0x0D |
结束符 |
- 配置输出扩展帧头AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置输出扩展帧头AT指令 |
0x03 |
后面字节数 |
0x01 |
偏移地址 |
0x34 |
转为2进制 00110100 高6位为输出扩展帧头状态位,1为使能,配置前请先获取,确保其它位与配置前一致 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x01 0x34 0x0D |
如果发送和接收的数据一致说明更改成功 |
255MESH 协议通过多次握手确保数据不会丢失。但是模块片内的缓存数量有限,在通过串口给模块发送数 据时,可能因为模块没有可用的缓存而丢失数据报文。为了确保整个系统的可靠性,需要通过模块串口握手确认报文来保证串口的可靠性,在一定时间内收不到模块串口握手确认数据时,需要通过串口重发上一包的数据。
握手确认报文最大长度为 15 字节,任意报文内容。如果该报文不是空,模块在通过串口收到一包完整数据时,会向串口立即发送该报文,告知已经准确收到数据报文。
- 测试案列
- 获取握手确认字节数AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x1E 0x01 0x0D |
获取握手确认字节AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x1E |
偏移地址 |
0x03 |
转为2进制 00000011 低4位为握手确认字节数,高4位默认为0 |
0x0D |
结束符 |
- 获取握手确认报文AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 |
获取握手确认报文AT指令 |
0x03 |
后面字节数 |
0x1F |
偏移地址 |
0x03 |
获取握手确认字节AT指令中获取到的数据 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x05 |
后面字节数 |
0x1F |
偏移地址 |
0x0A 0x0B 0x0C |
握手确认字节 |
0x0D |
结束符 |
- 配置握手确认字节数AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置握手确认字节数AT指令 |
0x03 |
后面字节数 |
0x1E |
偏移地址 |
0x03 |
转为2进制 00000011 低4位为握手确认字节数,高4位默认为0 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x1E 0x03 0x0D |
如果发送和接收的数据一致说明更改成功 |
- 配置握手确认报文AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置握手确认报文AT指令 |
0x05 |
后面字节数 |
0x1F |
偏移地址 |
0x0A 0x0B 0x0C |
握手确认字节 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x05 0x1F 0x0A 0x0B 0x0C 0x0D |
如果发送和接收的数据一致说明更改成功 |
在255MESH网络中,如果配置了成功发送报文,模块会在将确认将其串口报文成功发送给下一 跳节点时,通过模块串口发送发送成功报文。报文最大长度为 15 字节,任意报文内容。
- 测试案列
- 获取发送成功字节数AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x4E 0x01 0x0D |
获取发送成功字节数AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x4E |
偏移地址 |
0x03 |
转为2进制 00000011 低4位为发送成功字节数,高4位为0 |
0x0D |
结束符 |
- 获取发送成功报文AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 |
获取发送成功报文AT指令 |
0x03 |
后面字节数 |
0x4F |
偏移地址 |
0x03 |
获取发送成功字节AT指令中获取到的数据 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x05 |
后面字节数 |
0x4F |
偏移地址 |
0x0D 0x0D 0x0F |
发送成功字节 |
0x0D |
结束符 |
- 配置发送成功字节数AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置发送成功字节数AT指令 |
0x03 |
后面字节数 |
0x4E |
偏移地址 |
0x03 |
转为2进制 00000011 低4位为发送成功字节数,高4位为0 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x4E 0x03 0x0D |
如果发送和接收的数据一致说明更改成功 |
- 配置发送成功报文AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置发送成功报文AT指令 |
0x05 |
后面字节数 |
0x4F |
偏移地址 |
0x0D 0x0D 0x0F |
发送成功字节 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x05 0x4F 0x0D 0x0D 0x0F 0x0D |
如果发送和接收的数据一致说明更改成功 |
在255MESH网络中,如果配置了缓冲区空报文。如果模块的缓冲区由满变成空闲,模块会通过串口发送该报文,表示可以发送下一帧数据报文。报文最大长度为 15 字节,任意报文内容。
- 测试案列
- 获取缓冲区空字节数AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 0x03 0x2E 0x01 0x0D |
获取缓冲区空字节数AT指令 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x03 |
后面字节数 |
0x2E |
偏移地址 |
0x03 |
转为2进制 00000011 低4位为缓冲区空字节数 |
|
0x0D |
结束符 |
- 获取缓冲区空报文AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x52 0x44 |
获取缓冲区空报文AT指令 |
0x03 |
后面字节数 |
0x2F |
偏移地址 |
0x03 |
获取缓冲区空字节数AT指令中获取到的数据 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x52 0x44 |
AT指令 |
0x05 |
后面字节数 |
0x2F |
偏移地址 |
0x0E 0x0E 0x0F |
缓冲区空字节 |
0x0D |
结束符 |
- 配置缓冲区空字节数AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置缓冲区空字节数AT指令 |
0x03 |
后面字节数 |
0x2E |
偏移地址 |
0x03 |
转为2进制 00000011 低4位为缓冲区空字节数,配置前请先获取,确保其它位与配置前一致 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x03 0x2E 0x03 0x0D |
如果发送和接收的数据一致说明更改成功 |
- 配置缓冲区空报文AT指令
方向 |
实例 |
说明 |
通过串口发送到模块 |
0x41 0x54 0x57 0x52 |
配置发送成功报文AT指令 |
0x05 |
后面字节数 |
0x2F |
偏移地址 |
0x0E 0x0E 0x0F |
发送成功字节 |
0x0D |
结束符 |
从模块串口接收 |
0x41 0x54 0x57 0x52 0x05 0x4F 0x0E 0x0E 0x0F 0x0D |
如果发送和接收的数据一致说明更改成功 |
连接网关发射的Wi-Fi,默认的SSID为255mesh开头,默认的密码为www.255mesh.com。在浏览器输入192.168.99.1为网关web配置界面。
SN:网关设备唯一编码
硬件版本:设备硬件版本号
固件版本:设备软件版本号
连接状态:是否连接上服务器
地址:mqtt服务器地址(必填)
端口:mqtt服务器端口号(必填)
有户名:mqtt有户名(选填)
密码:mqtt密码(选填)
客户ID:mqtt client id (自动生成,不可更改)
订阅主题:mqtt sub topic(自动生成,不可更改)
发布主题:mqtt pub topic(自动生成,不可更改)
SN:mesh 网络模块ID(不可更改)
固件版本:mesh 网络模块软件版本
网络ID:见5.5.1网络ID介绍
无线频段:见5.5.3无线频段介绍
信道:见5.5.5信道介绍
空中速率:见5.5.7速率(SF)介绍
4G联网:4G 联网状态
SIM卡:是否插入SIM卡状态
IMEI:4G 上网设备编号
ICCID:SIM 卡ID
4G IP:运营商分配的IP地址
内网IP:网口获取到的IP地址(DHCP)
内网网关:网口获取到的网关地址
SSID:默认255mesh开头
Wi-Fi密码:默认 www.255mesh.com
配置网关发射Wi-Fi的SSID和密码。
地址:mqtt服务器地址(必填)
端口:mqtt服务器端口号(必填)
有户名:mqtt有户名(选填)
密码:mqtt密码(选填)
网络ID:见5.5.1网络ID介绍
无线频段:见5.5.3无线频段介绍
信道:见5.5.5信道介绍
空中速率:见5.5.7速率(SF)介绍
在消息日志界面可以看到255MESH网络中终端发送到网关的消息,消息ID为唯一UUID,可以进行消息的链路追踪,报文消息为带扩展帧头的消息,解析方法见下表。报文消息为HEX字符串。
如果终端发送的一条消息过长(大于120字节),网关可能会分包处理,需要自己在上层应用做处理。
实例 |
说明 |
AF |
固定帧头 |
C9 |
报文序列号 |
0003C333 |
255MESH终端地址 |
0003B8EC |
255MESH第一级中继地址 |
81 |
上行信号强度,255MESH终端收到的一级中继的信号强度,单位dbm,计算方法换算成十进制除以2减150. |
|
例如 81为89/2-150= -85.5dBm |
59 |
下行信号强度,255MESH终端收到的最后一级中继的信号强度,单位dbm,计算方法换算成十进制除以2减150. |
|
例如 59为89/2-150= -105.5dBm |
04 |
综合距离 |
21 |
终端电压最大值 |
00 |
终端电压最小值 |
313131310D0A |
255MESH终端上发数据 |
255MESH网关可以通过OTA的方式升级系统固件,固件需要联系销售获取。
敬请期待
敬请期待
本着为用户提供更好服务的原则,南京二五五物联科技有限公司(下称“二五五物联”)在本手册中将尽可能地为用户呈现详实、准确的产品信息。但介于本手册的内容具有一定的时效性,二五五物联不能完全保证该文档在任何时段的时效性与适用性。二五五物联有权在没有通知的情况下对本手册上的内容进行更新,恕不另行通知。为了得到最新版本的信息,请尊敬的用户定时访问二五五物联官方网站或者与二五五物联工作人员联系。感谢您的包容与支持!