产品概述
TinyWSN(Tiny Wireless Sensor Network)是一套Sub-1GHz无线传感器网络产品,支持GMSK,LORA等多种调制方式,旨在提供一种低功耗,远距离,大容量,安全可靠的通信方式,是一套简单易用的低成本方案,适用于几个~几千个节点的应用。它采用的是树型拓扑(Tree topology)结构的同步网络,节点自动同步于系统的网络时钟,按这个时钟所有节点有序地进行工作。它没有采取常见的自组网(MESH)方式,目的是避免无线冲突,简化路由信息,降低节点功耗,提高可靠性和可预测性,最终,降低工程维护的难度。总之,它是一套面向工程应用的网络产品。
网络结构
TinyWSN网络由节点(Node)和网关(Gateway)组成,节点又分为终端节点(End node)和路由节点(Route node),终端节点又称为传感器节点,数量众多,是整个网络的末端节点,路由节点负责消息的转发以及网络管理功能,一个路由节和它的所有接入的终端节点形成一个蜂窝(Cell),一个个蜂窝通过级联形成一张树型网,最终连接到网关。网关则充当TinyWSN网络和TCP/IP网络之间的桥梁,网关目前提供MQTT连接,支持用户自定义的消息转换功能。根据不同的应用场合,也可以取消网关,替换为应用控制器,消息就近本地处理。

图中蓝线表示当前已选的路由,红线表示的可选/备选路由,它表示树型网中父子关系动态建立的,子节点根据配置的层次关系(Tree level)会扫描附近可用父节点,优选其中一个。如果父节点发生故障,它就会重新进行扫描和选择,这样动态形成的树型网对故障有很好的自恢复能力,而且还可也直接加入新的路由节点,平滑地进行扩容的。而且根据不同的应用场景,还可以配置成为星型网(Star topology)和链型网(Linear topology)。
寻址方式
- 单节点
- 蜂窝广播
- 子网广播
下行报文可以直接传送到单个节点, 也可以在一个蜂窝内进行广播,还可以在一个子网(Sub network)内进行广播,这里子网指一个节点以及它所有的子节点构成网络,可以包括几个蜂窝,根节点的子网其实就是全网。这三种寻址方式主要应用在下行报文中,可以根据不同的应用场景在下行的报文中进行设置。 上行报文最终都流向网关。
同步模式
得益于网络同步的特性,节点可以精确地在自己的收发窗口中醒来进行数据传输,在其他空闲时间进行睡眠(电流小于1.6 uA), 由于避免了无谓的收发尝试,可以较大地降低系统功耗,同时还解决无线收发冲突问题,提高整个系统的可靠性和可预测性。而且还提供深度睡眠模式(电流小于0.8 uA),来满足特定的应用需求。
无线唤醒
当终端节点模块上电后,它扫描无线信道,尝试寻找路由节点,如果接入成功后,就进入连接模式(同步模式),如果多次尝试失败后,进入监听模式(low duty rx),在这种模式下,它周期打开接受窗口一小段时间,这种模式可以大大的降低系统功耗,如果接受到唤醒数据帧,重新进入扫描模式,下图就是它的模式转换图

功率控制
引入动态功率控制是为了进一步降低节点的发射功率,初始接入时按设定的功率发射,系统按照接受的信号强度和质量,动态调整节点的发射功率,在发射功耗和接受质量之间取得一个平衡。
通信带宽
终端节点通信带宽需求小,只需传输少量的测量数据,而路由节需要服务多个终端节点, 有较大通信带宽需求,因此节可以自行配置通信带宽需求,系统根据这个需求动态地进行带宽分配。
信道分配
路由节点在频率组中通过扫描选择一个相对干净的信道,作为接入信道广播网络信息,终端节点通过扫描找到接入信道,通过鉴权后完成接入过程。
异步传输
在节点接入系统后,它根据分配的时隙周期地进行数据传输,,为了降低节点功耗,这个周期一般设置的比较大,这也就是常规的同步模式,但是在一些特定的场景下需要异步传输能力。
- 节点检测到突发状况,需要尽快地上传告警,它可以直接断开原来的链接,重新接入系统,在接入过程中完成上行突发消息传送。
- 节点为了进一步降低功耗,进行深度睡眠,实际上链接已经断开,但是路由节点仍然缓存系统下行消息,当它重新接入到系统,可以接受这些消息。
通过上述机制系统提供一定程度的异步传输能力。
快速模式
在常规模式下,为了降低节点功耗,唤醒周期一般设置比较大,通信主要是终端节点的上行监测数据,但是在修改配置以及版本升级过程中希望有较快的传输速度,为了实现这个需求,在所有的路由节点中都支持快速模式,可以通过网关启动进入快速模式,提高系统的响应速度,在完成所有操作后,重新进入常规的模式。
安全控制
通过网络标识(Network ID)和接入密码来控制节点的接入,在接入过程中会动态生成会话秘钥(Session key), 利用这个秘钥以及时间戳信息(Timestamp)对消息进行加密,可以有效地防止外界的监听破译以及回放攻击(Replay Attacks),同时网关和MQTT服务器之间支持TLS/SSL进行认证和加密,通过以上这些机制可以很好地提高了系统安全性。
接口描述
- 交互命令
- 系统报文
- 嵌入模式
节点对外提供UART接口,可以支持报文和命令两种接口,通过输入管脚usrpkt进行配置, 交互命令接口主要适用简单应用模式,完成基本数据收发以及测试等基本操作。还可以接受系统定义的报文,这种报文不但可以传输用户数据,还可以进行网络管理等功能。还有一种是内部嵌入模式,这是一种混合编程模式,用户程序直接运行在节点上,和系统程序直接交互,这种模式好处是可以节省一个外部处理器,还可以利用系统程序的睡眠/唤醒的节拍进行工作,整个系统的功耗会更低。嵌入式的用户固件支持空中接口升级(OTA),这样可以容易大大地降低工程维护难度。这三种模式可以根据具体的项目需求进行选择。