3串口多串口双串口以及2串口UART转WiFi多跳通讯实现二
串口转WiFi在工业控制领域广泛的应用,通常我们使用多跳的方式实现WiFi远距离传输。,我们可以在A与C之间增加一个模块B,这样,B充但中继的作用。以下以simpleWiFi的S2W-M02以及S2W-M03中所实现的多跳机制进行描述。S2WM02、S2WM03已经稳定的运用到了很多超长距离通讯环境,该算法稳定性以及大量现场验证。并且该系列三串口转WiFi模块可以实现2串口、双串口、3串口和多串口UART转wifi的通讯,各个通讯相互完全独立,可以同时支持多个串口设备进行数据通讯。
本节主要描述多跳路由算法:
- 协议概述
该多跳路由实际上是 DSR和 DSDV的综合,以 DSDV为基础,采用DSR中的按需路由思想进行改进。它采用了DSR中路由发现和路由维护的原理,结合了DSDV的逐跳(hop-by-hop)路由,顺序编号和路由维护阶段的周期更新机制。与DSDV保存完整的路由表不同的是,基于按需路由思想的多跳路由只有在有需要的时候才建立路由,这与DSDV相比的好处是能减少大量维护路由所需的开销。与DSR相比,多跳路由的优势在于源路由并不需要包括在每一个数据分组中,这样能减少路由协议的开销。多跳路由协议可以实现在移动终端动态的、自发的路由,使移动终端很快的获得通向所需目的地的路由,而且不用维护当前没有使用的路由信息,还能对链路状态和拓扑的变化做出快速的反应。多跳路由使用路由请求序列号来保证无环路。避免了通常 Bellman-foul 算法的无穷计数(count-to-infinite)的问题,并且提供了很快的收敛速度。鉴于多跳路由路由协议功能强大而又便于实现的优点,故其成为嵌入式系统下UART 转WiFi 路由协议的首选。
路由请求帧格式
路由响应帧格式
(1)结点在需要时(路径不存在或者无效),向其邻居广播RREQ分组用于路由发现。
如果在“路由发现定时”内已收到一个具有相同标识的RREQ分组,则抛弃该分组,不作任何处理;否则,更新该反向路由表项;
②:结点的路由表中有到信宿的活动表项,且表项的序列号大于RREQ中的信宿序列号;
则结点产生“路由回答分组”RREP,并发送到信源;否则,更新RREQ分组,并广播更新后的RREQ分组 。
(3)RREP的传播:RREP中的内容包括:跳计数、信宿序列号、信宿地址、信源地址、生存时间等。结点通过前面建立的反向路由反馈给源结点,并且是以单播方式发送;
(4)转发RREP的中间结点会更新路由表,记录转发路由的下游结点、跳数、生存时间、目的序列号等内容,并根据先前记录的反向路由将RREP报文转发给上游结点,直至源结点;
(5)源结点收到RREP报文后,就获得了到目的结点的路由,接下来,源结点就可以用该路由进行数据报文的发送了。
上述算法已经大量的应用到了现场,能够实现稳定的多跳通讯。参考simpleWiFi的S2W-M02多串口2串口3串口双串口以及三串口的通讯模块。后续文章会详细介绍多跳路由保持实现。
3串口多串口双串口以及2串口UART转WiFi多跳通讯实现二相关推荐
- FPGA 串口中断_一个严谨的STM32串口DMA发送amp;接收(1.5Mbps波特率)机制
昨天分享的<嵌入式大杂烩读者福利:第一期>大家有去抽奖吗,没抽的可参与抽奖,碰碰运气.我最喜欢抽奖了,还记得前几个月疫情严重时期连抽中了3包口罩,真刺激,哈哈.之后多多安排抽奖,敬请期待. ...
- FPGA之串口收发字符串之(四)——串口屏USART_HMI介绍
之前对串口各模块的设计都做了相关介绍.这里介绍串口屏的相关知识. 本次项目使用的串口屏型号是陶晶驰串口屏TJC3224T024_011,这个型号的串口屏的资料在官网可以找到.本文抛转引玉,简单介绍以便 ...
- c++ 测试串口速率_Raspberry Pi Zero W:串口(UART)的配置和使用
Raspberry Pi Zero W:串口(UART)的配置和使用 开启UART 据官方所言(https://www.raspberrypi.org/documentation/configurat ...
- STM32 HAL库 串口DMA(收发)和STM32串口中断接收(接收时间管理机制)+ESP8266 wifi模组通信问题
一.HAL库 串口 DMA+ESP8266模组通信问题 用STM32 HAL库串口的DMA发送和空闲中断接收处理数据,单片机发送AT指令给ESP8266 wifi模组问题:单片机连续几次给wifi模组 ...
- 在串口通信开发中实现自动查找串口端口的方法
开发工具:visual studio 2010 本机可用串口信息如下: 1 .查询注册表 查询注册表的方法是比较常见的方法,通过查看" HKEY_LOCAL_MACHINE\HARDWARE ...
- pci-e串口卡linux 驱动下载,万能PCI串口卡驱动下载
下面点击下载安装,最新更新的这个版本对于很多用户来说,体验感觉还是可以的.虽然有一些小问题没有解决,但是大体上还是符合用户使用需求.尤其是针对之前版本的修改,就比较OK的感觉. 万能PCI串口卡驱动官 ...
- android 串口一直打开_实例 | 使用Python串口实时显示数据并绘图
今天为大家分享一篇使用Python串口实时显示数据并绘图的例子,具有很好的参考价值,希望对大家有所帮助. 一.安装pyserial以及基本用法 使用pyserial进行串口传输,在cmd下输入命令pi ...
- rxtx串口事件不触发_一种串口高效收发思路及方案
摘要:本文在探讨传统数据收发不足之后,介绍如何使用带FIFO的串口来减少接收中断次数,通过一种自定义通讯协议格式,给出帧打包方法:之后介绍一种特殊的串口数据发送方法,可在避免使用串口发送中断的情况下, ...
- react android 串口,Maix Bit(K210) 与上位机串口通信
串口通信 1.K210 UART 1.1 .串口通信函数 1.2 .常用函数 3.代码 4.效果展示 准备工具 K210开发板 USB转TTL串口 (俗称ISP烧录器) 串口助手 其实Maix Bit ...
- android 串口通信丢包,新手求教为什么串口接收数据总丢包
void Init_NVIC(void) { NVIC_InitTypeDef NVIC_InitStructure; //定义一个NVIC向量表结构体变 ...
最新文章
- javascript 防止息屏
- Ubuntu 12.04自带包安装GLPI IT资产管理软件
- 保存oracle数据之后乱码,Oracle保存中文数据和读取数据页面显示乱码解决方案
- 这个C怎么了?求大佬指教
- NanShan作者:风景未变人已变
- 如何保证缓存与数据库的双写一致性
- AIX补丁中TL、SP、CSP、IF、PTF的含义
- 深度学习—利用TensorFlow2实现狗狗品种品种(mobilenet实现)
- 基于神经网络的图像去水印/图像修复实践
- 10行代码,带你理解自然底数e、自然指数ln
- Android 4.3 隐藏功能 App Ops 分析
- java 高并发商城库存订单处理,下单减库存,如何解决高并发减库存问题
- 使用visDrone数据集训练yolov5检测器
- 【解读】Intel在hot chips上发布首款AI芯片
- npm更新和nodejs更新
- linux内核 猪头 作用,Linux内核驱动之一些重要数据结构
- pdf转换器的注册码
- 学院旅行计算机学院,计算机学院学生会 | 关于我们,你所不知道的……
- 振幅型空间光调制器为什么会改变相位?
- 使用xsl实时处理xml文档(Javascript语言)
热门文章
- pyecharts-饼图/极坐标/雷达/水球图/仪表盘/词云图/漏斗图/箱型图/热力图/日历图
- magisk核心功能模式是什么_HRT-Lin-荣耀V9 B347 自动接听Xposed 机型 Magisk 桌面设置 dpi等功能...
- Windows平台安装flutter之初体验(安装教程)
- 计算机联锁设备施工论文,毕业设计论文-计算机联锁设计
- APP原型设计利器-墨刀MockingBot
- Adreno GPU上Android 游戏开发介绍 (3)
- linux i350网卡,intel I350 网卡驱动安装方法
- Adobe Premiere(Pr视频剪辑)下载安装
- 应届毕业生软件测试面试流程、面试问题总结
- c语言sinx幂级数展开,求幂级数展开式的方法