多串口转WiFi多跳路由通讯实现一
串口转WiFi在工业控制领域广泛的应用,工业控制领域通常距离比较远环境比较复杂。所以就有超远距离通讯的需求,通常我们使用多跳的方式实现WiFi远距离传输。即如果实现远距离的A与C进行通讯,我们可以在A与C之间增加一个模块B,这样,B充担中继的作用。以下以simpleWiFi的S2W-M02以及S2W-M03中所实现的多跳机制进行描述。S2WM02、S2WM03已经稳定的运用到了很多超长距离通讯环境,该算法稳定性以及大量现场验证。并且该系列串口转WiFi模块可以实现2串口、双串口、3串口和多串口的通讯,各个通讯相互完全独立,可以同时支持多个串口设备进行数据通讯。
开发基于标准操作系统的多跳路由网关主要有如下两个典型应用:
1、通过网关,能够实现公网(如Internet)与自组网设备之间互联互通,如下图典型应用场景1所示;
2、通过在S2W-M02上运行多跳路由协议,并配置无线网卡工作在WiFi自组网模式,方便用户与自组网中的设备通信,监控网络状态。如下图典型应用场景2所示。
应用场景一
应用场景二
多跳路由模块主要功能是无线路由,必须依附于操作系统的TCP/IP协议栈,因此设计时需要充分考虑TCP/IP协议栈特性。
软件架构图
1、多跳路由模块核心算法模块为在最中心黄色区域,被其他各个模块包围,其实现需要依赖于其他模块的参与。
2、最下面Platform config层供其他所有模块调用,其封装了操作系统的通用处理。
3、而中间netif、ipq以及sock等模块主要负责与TCP/IP协议栈交互。
4、多跳路由模块主功能模块在最上层,主要负责模块初始化、启动加载、管理资源、卸载等功能。
多跳路由器协议最终应用场景
无线网络在实际应用中,大多都是通过一个或多个网关节点,将数据传送到公网。然后用户可以远程监控网络中节点的状态。
如上图所示,传感器节点将采集到的数据发送至网关节点,通过网关实现与公网服务器的连接。上图描述了Adhoc网络中只有一个网关的情况,如果Adhoc网络覆盖区域较大,只有一个网关就无法满足要求,因为很可能处于Adhoc网络边缘的节点需要通过几十甚至上百跳(路由转发),才能将数据传送到网关节点,这样难免会造成数据的丢失。因此,覆盖大面积的Adhoc网络,需要有多个网关共同分担节点信息采集。
上述算法已经大量的应用到了现场,能够实现稳定的多跳通讯。参考simpleWiFi的S2W-M02多串口2串口3串口双串口以及三串口的通讯模块。后续文章会详细介绍多跳路由算法实现。