无线参数的配置非常重要,它涉及到组网和功耗等关键性能,下表列出常见的重要的无线参数,这些参数均可以通过配置工具TinyCFG进行设置。
名称 | 类别 | 默认值 | 说明 |
---|---|---|---|
UB_WNET_FUNC | 通用 | 0 | 节点角色 |
UB_SCAN_CHAN_OFT | 通用 | 1 | 信道编号 |
UB_SCAN_CHAN_NUM | 通用 | 4 | 信道数目 |
UB_LISN_CHAN_OFT | 通用 | 0 | 唤醒信道 |
UH_WNET_LEVEL_INIT | 通用 | 65535 | 层次编号 |
UB_WNET_LEVEL_THR | 通用 | 65535 | 层次门限 |
DB_MRFI_SLOW_TS_INFO | 路由 | 0x213a | 慢速时隙 |
DB_MRFI_FAST_TS_INFO | 路由 | 0x2138 | 快速时隙 |
DH_MRFI_RESV_TS_NUM | 路由 | 0 | 保留时隙 |
DH_WNET_NETID | 路由 | 0x37218848 | 网络标识 |
DH_WNET_PASSWD | 路由 | 0xbeef | 接入密码 |
NH_WNET_NETID | 节点 | 0x37218848 | 网络标识 |
NH_WNET_PASSWD | 节点 | 0xbeef | 接入密码 |
NH_MRFI_TS_NUM | 节点 | 1 | 时隙数目 |
节点角色
名称 | 数值 | 说明 |
---|---|---|
NOD | 0 | 终端节点 |
RTB | 1 | 路由节点-下端,负责下行无线,串口和上端相连 |
RTT | 2 | 路由节点-上端,负责上行无线,串口和下端相连 |
RTU | 3 | 路由节点,复合单元,负责上下行无线 |
信道配置
每个节点都配置一张可以信道列表,由信道编号(UB_SCAN_CHAN_OFT)和信道数目(UB_SCAN_CHAN_NUM)构成,同一小区的路由节点和终端节点信道列表需相同,路由节点通过扫描,测量信道的质量,选择其中最优一个作为工作信道,而终端节点接入时,也扫描信道列表,寻找广播信标,然后接入网络。如果多次扫描失败, 它就进入睡眠,这时它会周期监听唤醒信道(UB_LISN_CHAN_OFT),等待被唤醒 。
时隙配置
无线信道的时隙结构如下图所示,共有三种类型的时隙,描述如下表

名称 | 说明 |
---|---|
超时隙周期 | 无线信道可用的时隙数目,它是周期重复的 |
节点专用时隙 | 分配给节点的专用时隙,节点在时隙可以进行收发 |
广播信标时隙 | 需要接入的节点扫描到信标,根据它的内容进行接入 |
广播消息时隙 | 在线节点可以在这个时隙上接受到广播下行消息 如无待发的消息,则广播信标 |
时隙配置16bit包含如下信息
比特位 | 说明 |
---|---|
0..3 | 时隙的时长,2^^bits[0..3] 毫秒 |
4..7 | 超时的周期,共2^^bits[4..7]个时隙 |
8..11 | 每2^^bits[8..11]时隙,广播一次信标 |
12-15 | 每2^^bits[12..15]时隙,广播一次消息 |
例如时隙配置0x3248,就是对应上面的时隙配置示例图
比特位 | 说明 |
---|---|
0..3 | 时隙的时长256毫秒 |
4..7 | 超时的周期共16个时隙 |
8..11 | 每4时隙,广播一次信标 |
12-15 | 每8时隙,广播一次消息 |
对于在线节点,需要在分配的节点时隙和广播消息时隙进行收发,而对于准备接入的节点,需要扫描信标时隙。
快慢时隙
时隙的配置原理如上所述,在系统中存在快(DB_MRFI_FAST_TS_INFO)和慢(DB_MRFI_SLOW_TS_INFO)两种时隙配置,适应不同的需求,如下表
名称 | 说明 |
---|---|
慢速时隙配置 | 正常工作,功耗要低,流量低 |
快速时隙配置 | 修改配置,软件更新,流量高 |
可以在网关节点发起切换配置命令,在快速和慢速网络之间切换,以适应不同应用需求。比如需要更新软件时,先切换到快速网络,更新完成后,再恢复到慢速网络。
带宽配置
终端节点的接入时,申请的时隙数(NH_MRFI_TS_NUM), 对于终端节点通常是1个,而路由节点由于服务多个终端节点,需要更多的带宽,当它接入到上级路由节点是,可以申请更多的时隙,以满足更高的带宽需求,保留时隙(DH_MRFI_RESV_TS_NUM)指为下级路由节点保留的带宽,避免所以时隙被终端节点抢占 。
网络结构
TinyWSN本质上是一个层次网络,每个节点都有之间层次编号(UH_WNET_LEVEL_INIT)和层次门限(UH_WNET_LEVEL_THR),节点的接入都需要满足下面关系:
上级层次 < 层次编号 <= (上级层次+层次门限)
利用这个关系,可以控制网络的结构,主要是用在路由节点上,如下图所示线性网络

网关节点(层次编号,层次门限)为(0, 1), 下一级依次为(1,1),如下所示
(n, 1) — >(3,1) — > (2,1) –> (1,1) — > (0, 1)
最终形成线性结构, 也可以把层次门限提高到2, 这样它可以最多有两层上级候选,它根据接受信号的强度和质量选择其中一级,通常会选择离自己最近的一级,但是当这一级有故障发生时,它有机会选择上上级,这样提供一定的故障冗余能力
(n, 2) — >(3,2) — > (2,2) –> (1,2) — > (0, 2)
通过这种控制,可以容易构造出树状和环状的网络。而终端节点的默认门限(65535),意味是不受限的,可以随意接入到任何路由节点上。
网络标识
每个节点都有网络标识(NH_WNET_NETID)和接入密码(NH_WNET_PASSWD),只有它路由节点的相同,才会被允许接入到网络中,它提供最初的接入网络安全,当接入时会分配动态密钥,以及利用同步系统的时间戳,进行信息加密,保障信息安全。
配置示例
下面的示例展示如何利用默认的配置,只需做最小的修改,就可以使得整个网络工作起来。当我们拿到几个节点模块,只需要挑选其中一个作为网关,修改它的下面配置就可以了,就可以组成一个简单的星型网络,
名称 | 默认值 | 修改值 | 说明 |
---|---|---|---|
UB_WNET_FUNC | 0 | 1 | 配置成RTB,只有下行无线,上行是有线串口 |
UH_WNET_LEVEL_INIT | 65535 | 0 | 配置层次0,作为网关,上行数据从串口输出 |
如下图所示,其中网关模块可以简单使用节点模块+开发板代替,把网关程序TinyGW直接运行在电脑中, 或者不连接到MQTT服务器,直接从节点模块的串口输出上行数据。这就是最简单的软硬件配置过程。
