3串口多串口双串口以及2串口UART转WiFi多跳通讯实现二 点击:102 | 回复:0



andyzhangcs

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 2回
  • 年度积分:0
  • 历史总积分:260
  • 注册:2011年6月12日
发表于:2022-03-15 17:25:58
楼主

3串口多串口双串口以及2串口转WiFi多跳通讯实现二

串口转WiFi在工业控制领域广泛的应用,工业控制领域通常距离比较远环境比较复杂。所以就有超远距离通讯的需求,通常我们使用多跳的方式实现WiFi远距离传输。即如果实现远距离的AC进行通讯,我们可以在AC之间增加一个模块B,这样,B充但重疾的作用。以下以simpleWiFiS2W-M02以及S2W-M03中所实现的多跳机制进行描述。S2WM02S2WM03已经稳定的运用到了很多超长距离通讯环境,该算法稳定性以及大量现场验证。并且该系列串口转WiFi模块可以实现2串口、双串口、3串口和多串口的通讯,各个通讯相互完全独立,可以同时支持多个串口设备进行数据通讯。

本节主要描述多跳路由算法:

1、          协议概述

1.1.1        协议概述

该多跳路由实际上是 DSR DSDV的综合,以 DSDV为基础,采用DSR中的按需路由思想进行改进。它采用了DSR中路由发现和路由维护的原理,结合了DSDV的逐跳(hop-by-hop)路由,顺序编号和路由维护阶段的周期更新机制。与DSDV保存完整的路由表不同的是,基于按需路由思想的多跳路由只有在有需要的时候才建立路由,这与DSDV相比的好处是能减少大量维护路由所需的开销。与DSR相比,多跳路由的优势在于源路由并不需要包括在每一个数据分组中,这样能减少路由协议的开销。多跳路由协议可以实现在移动终端动态的、自发的路由,使移动终端很快的获得通向所需目的地的路由,而且不用维护当前没有使用的路由信息,还能对链路状态和拓扑的变化做出快速的反应。多跳路由使用路由请求序列号来保证无环路。避免了通常 Bellman-foul 算法的无穷计数(count-to-infinite)的问题,并且提供了很快的收敛速度。鉴于多跳路由路由协议功能强大而又便于实现的优点,故其成为嵌入式系统下UART WiFi 路由协议的首选。

5.png

1  RREQ帧格式

7.png

2 RREP帧格式

路由请求分组RREQ的转发过程类似于DSR协议。简单描述如下:收到“路由请求”分组的节点,在路由表中设置反向路径表项指向源节点。目的是使RREP分组能够返回源节点。当目标节点接到RREQ 分组时,它就发送RREP分组。RREP分组沿着反向路径(RREQ分组经过时形成的路径的反方向)到达源节点。

1.1.1        路由发现过程

1)结点在需要时(路径不存在或者无效),向其邻居广播RREQ分组用于路由发现。

2)对接收到RREQ的结点作如下处理:

创建一个表项,用于记录反向路径;

如果在路由发现定时内已收到一个具有相同标识的RREQ分组,则抛弃该分组,不作任何处理;否则,更新该反向路由表项;

如果满足如下两个条件:

①:该结点就是信宿;

②:结点的路由表中有到信宿的活动表项,且表项的序列号大于RREQ中的信宿序列号;

则结点产生路由回答分组”RREP,并发送到信源;否则,更新RREQ分组,并广播更新后的RREQ分组 

3RREP的传播:RREP中的内容包括:跳计数、信宿序列号、信宿地址、信源地址、生存时间等。结点通过前面建立的反向路由反馈给源结点,并且是以单播方式发送;

4)转发RREP的中间结点会更新路由表,记录转发路由的下游结点、跳数、生存时间、目的序列号等内容,并根据先前记录的反向路由将RREP报文转发给上游结点,直至源结点;

5)源结点收到RREP报文后,就获得了到目的结点的路由,接下来,源结点就可以用该路由进行数据报文的发送了。 

6.png

    上述算法已经大量的应用到了现场,能够实现稳定的多跳通讯。参考simpleWiFiS2W-M02多串口2串口3串口双串口以及三串口的通讯模块。后续文章会详细介绍多跳路由保持实现。




楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师