SimpliciTI 网络协议栈


【参考博文】
【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 协议栈支持点对点和星形网络的拓扑结构

  1. 星形:该网络中,AP可作为数据中心的Hub,这时AP可以为睡眠的数据接收设备保护和转发数据。如果没有睡眠设备AP节点就可以作为RE来使用。在这个网络中节点之间同样可以建立连接,实现点对点的通信
  2. 点对点:要求每个接收设备都是始终开启,直接接收来自数据源节点的数据帧,或者来自RE。

4. 节点类型

4.1 AP节点

  1. 始终开启,一个网络中只允许一个AP存在
  2. 当作为中心(data hub)存在时,负责上位机对整个网络的控制接入点,通过接口(串口)控制网络信息
  3. 一个AP节点可以负责网络地址(网络标识符Join Token)的管理,为网络分配连接标识符(Link Token)

4.2 RE节点

1.当网络数据帧的跳数设置不为0 时,RE节点只是对原数据进行转发,相当于将原来的射频节点的射频有效范围扩大了。并且,RE节点不能转发来自另一个RE的数据

4.3 ED节点

  1. 终端节点实现整个网络终端的功能(如传感器数据采集、控制模块的动作)
  2. ED可始终开启,也可不始终开启,进入睡眠模式

5. 网络协议分层

SimpliciTI 协议栈简单地分了三层,即MRFI、NWK、APP层SimpliciTI 在这里插入图片描述
SimpliciTI 没有严格按照OSI参考模型设计

  1. 没有正式的物理层(PHY)和数据链路层(LLC和MAC)。数据直接在射频无线模块被成帧结构化了。也就是说在射频无线模块部分已经做了这方面的工作
  2. 如果对可靠的数据传输有要求的话,需要在应用层中实现,因此也就没有了传输层

5.1 application 层

应用层包含了一个应用TCP/IP协议中很典型的端口(port)机制。有网络本事使用的和用户可用的端口。对应用层来说,只需要知道建立连接的相关信息,利用网络层处理连接参数即可。端口模式如下

5.2 NWK(Network)层

在这里插入图片描述
网络层处理了整个协议的很多任务,如数据收发的网络管理、射频收发管理(包括射频无线参数)、加密算法管理等。网络层的参数主要有下面几个

  1. 中心频率和频率间隔
  2. 可用的信道数目
  3. 调制技术、数据波特率和其他的射频参数
  4. 默认和产生加密算法的密码
  5. 支持保存并转发数据的个数
  6. 设备地址
  7. Tx-only 设备的重发周期
  8. 加入和连接标志

5.3 MRFI(Minimal RF Interface)

不同的射频芯片具有不同的物理和链路层操作,MRFI层将这些统一装入一个层中设置,因此对于SimpliciTI 来说没有真正意思上的物理层和数据链路层,而是利用射频芯片特征,将这些操作功能全部封装在了MRFI这一层,利用芯片的CCA(信道清理)功能实现了信道的接入,数据包的收发,向上传递数据包等任务。

6. SimpliciTI 帧结构

在这里插入图片描述
一个SimpliciTI 协议的数据帧结构包括了三个部分:

  1. 由MRFI(PHY/MAC)层处理的部分,包括了由硬件处理的前导码和同步字节部分
  2. 由NWK层处理的网络管理实现,包括了帧类型、加密状态、跳数、序列号、同时一些连接和加入的参数分配也在该层完成。在该层负责了将数据帧分发到不同的端口以提供处理的任务。
  3. 应用层使用的有效负载部分

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): 单播

未加密
在这里插入图片描述
加密
在这里插入图片描述

7.2.2 终止连接请求 (Unlink Request)

7.3 加入网络 Join(0x03)

7.4 安全 Security(0x04)

7.5 频率捷变 Freq(0x05)

7.5.1 频率切换命令

7.5.2 回应请求

7.5.3 频率切换请求

7.6 网络管理

7.7 终端节点查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「Thunder Studio」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值