【参考博文】
【1】SimpliciTI组网过程
——————————————————————————————————————————
1. SimpliciTI 概述
SimpliciTI 是TI公司针对简单小型RF网络开发的低功耗RF协议,主要实现无线网络的初始化、节点加入、节点之间建立连接、终止连接、Ping查询(类似因特网的ping,但不计算延时)、发送和接收数据等操作。
它在网络里提供了三种类似的节点:AP(Access Point)节点、ED(End Device)节点和RE(Range Extender)节点,即网络接入点、终端接入点、和中继节点。
2. SimpliciTI 的系统组成
2.1 加密技术
2.2 频率捷变
2.3 网络管理
2.4 访问接入
2.5 范围扩展器
2.6 电池供电网络
3. 网络拓扑结构
SimpliciTI 协议栈支持点对点和星形网络的拓扑结构
- 星形:该网络中,AP可作为数据中心的Hub,这时AP可以为睡眠的数据接收设备保护和转发数据。如果没有睡眠设备AP节点就可以作为RE来使用。在这个网络中节点之间同样可以建立连接,实现点对点的通信
- 点对点:要求每个接收设备都是始终开启,直接接收来自数据源节点的数据帧,或者来自RE。
4. 节点类型
4.1 AP节点
- 始终开启,一个网络中只允许一个AP存在
- 当作为中心(data hub)存在时,负责上位机对整个网络的控制接入点,通过接口(串口)控制网络信息
- 一个AP节点可以负责网络地址(网络标识符Join Token)的管理,为网络分配连接标识符(Link Token)
4.2 RE节点
1.当网络数据帧的跳数设置不为0 时,RE节点只是对原数据进行转发,相当于将原来的射频节点的射频有效范围扩大了。并且,RE节点不能转发来自另一个RE的数据
4.3 ED节点
- 终端节点实现整个网络终端的功能(如传感器数据采集、控制模块的动作)
- ED可始终开启,也可不始终开启,进入睡眠模式
5. 网络协议分层
SimpliciTI 协议栈简单地分了三层,即MRFI、NWK、APP层SimpliciTI
SimpliciTI 没有严格按照OSI参考模型设计
- 没有正式的物理层(PHY)和数据链路层(LLC和MAC)。数据直接在射频无线模块被成帧结构化了。也就是说在射频无线模块部分已经做了这方面的工作
- 如果对可靠的数据传输有要求的话,需要在应用层中实现,因此也就没有了传输层
5.1 application 层
应用层包含了一个应用TCP/IP协议中很典型的端口(port)机制。有网络本事使用的和用户可用的端口。对应用层来说,只需要知道建立连接的相关信息,利用网络层处理连接参数即可。端口模式如下
5.2 NWK(Network)层
网络层处理了整个协议的很多任务,如数据收发的网络管理、射频收发管理(包括射频无线参数)、加密算法管理等。网络层的参数主要有下面几个
- 中心频率和频率间隔
- 可用的信道数目
- 调制技术、数据波特率和其他的射频参数
- 默认和产生加密算法的密码
- 支持保存并转发数据的个数
- 设备地址
- Tx-only 设备的重发周期
- 加入和连接标志
5.3 MRFI(Minimal RF Interface)
不同的射频芯片具有不同的物理和链路层操作,MRFI层将这些统一装入一个层中设置,因此对于SimpliciTI 来说没有真正意思上的物理层和数据链路层,而是利用射频芯片特征,将这些操作功能全部封装在了MRFI这一层,利用芯片的CCA(信道清理)功能实现了信道的接入,数据包的收发,向上传递数据包等任务。
6. SimpliciTI 帧结构
一个SimpliciTI 协议的数据帧结构包括了三个部分:
- 由MRFI(PHY/MAC)层处理的部分,包括了由硬件处理的前导码和同步字节部分
- 由NWK层处理的网络管理实现,包括了帧类型、加密状态、跳数、序列号、同时一些连接和加入的参数分配也在该层完成。在该层负责了将数据帧分发到不同的端口以提供处理的任务。
- 应用层使用的有效负载部分
7. 网络协议应用
网络应用层的芝麻端口是用来管理网络的点对点通信的手段。一些应用是强制要求的,而另一些是在一定条件下可选的。
7.1 查询 Ping (0X01)
用来探测一个特定节点的存在性,发送者发送一个数据给接收者,接收者则回应以恶搞应答帧给发起者。发送之后发起者将会等待应答,因此这里需要使用一直超时机制。
7.2 连接 Link(0x02)
为两个节点的连接提供服务。提供两种连接请求内容
7.2.1 连接请求(Link Request)
一旦连接请求建立,双方就可以方便地相互传送数据
请求发起者的数据帧请求是广播的,而应答者的数据帧则是单播的。双方都从数据帧中获得对方的地址。
可以通过发起多个连接请求来建立多个连接。接收方将每个连接设置一个访问标志(Access Token)以建立多个连接。而发起方可以发起多个连接请求建立多个连接
-
连接发起方负载(Client side):广播
未加密
加密
– Link Token
– Local Port
– Rx Type
– Protocol Ver
– CTR Value -
连接接收方负载(Server side): 单播
未加密
加密