0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TCP-UART数据透传技术,居然如此简单!

青山老竹农 ? 来源:jf_82863998 ? 作者:jf_82863998 ? 2024-12-30 16:46 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天,来分享下TCP-UART透传示例,源码开放,可根据实际需求灵活应用。

一、TCP协议概述

TCP(Transmission Control Protocol,传输控制协议)——是一种面向连接的、可靠的、基于字节流的传输层通信协议。它主要用于在不可靠的网络环境中提供稳定的数据传输服务,确保数据能够按照顺序、无错误地到达接收端。

TCP通过三次握手建立连接,使用滑动窗口进行流量控制,以及通过校验和确认应答、超时重传等机制来保证数据的可靠性。它是互联网协议套件(TCP/IP协议族)的核心组成部分,广泛应用于各种网络应用中。

▼ TCP工作原理

连接建立:

TCP协议使用三次握手协议来建立连接。

客户端发送一个SYN(同步序列编号)报文给服务端,并携带一个随机生成的初始序列号。

服务端收到SYN报文后,发送一个SYN+ACK(同步序列编号 + 确认应答)报文给客户端,表示确认收到了客户端的SYN报文,并携带自己的初始序列号。

客户端收到服务端的SYN+ACK 报文后,发送一个ACK(确认应答)报文给服务端,表示确认收到了服务端的SYN+ACK报文。至此,TCP连接建立完成。

数据传输:

在连接建立后,双方就可以开始传输数据了。TCP协议会将应用层发送的数据分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元MTU的限制),并为每个报文段分配一个序号。

接收端在收到报文段后,会按照序号进行排序,并发送确认应答(ACK)给发送端。如果发送端在合理的往返时延(RTT)内未收到确认应答,则会重传对应的报文段。

连接释放:

TCP协议使用四次挥手协议来终止连接。

客户端发送一个FIN(结束)报文给服务端,表示自己想要关闭连接。

服务端收到FIN报文后,发送一个ACK报文给客户端,表示确认收到了客户端的FIN报文。此时,客户端到服务端的连接关闭,但服务端到客户端的连接仍然打开。

服务端在发送完所有剩余数据后,也发送一个FIN报文给客户端,表示自己也想要关闭连接。

客户端收到服务端的FIN报文后,发送一个ACK报文给服务端,表示确认收到了服务端的FIN报文。至此,TCP连接完全关闭。

二、TCP-UART透传示例

本小节教你使用LuatOS脚本语言,让Air201模组连接上一个TCP服务器,并且实现模组和服务器之间数据的双向传输。

wKgZPGdyW6uAdHISAAJCjv0QY_g668.png

软硬件相关准备工作及最新示例源码下载详见:

https://docs.openluat.com/air201/luatos/app/socket/tcp/

2.1 本教程实现的功能定义:

通过网页端启动一个TCP服务器;

Air201模组插卡开机后,连接上TCP服务器;

Air201模组向TCP服务器发送:TCP CONNECT,服务器可以收到数据并且在网页端显示;

TCP服务器网页端向Air201模组发送:data from TCP server,Air201模组可以收到数据并且通过串口输出显示。

2.2 核心脚本代码详解

2.2.1 串口初始化

本文示例:串口使用MAIN_UART(uart1)。

wKgZO2dyW8eAQtSCAADP3s-j55Q413.png

2.2.2 数据接收回调:搭建响应桥梁

这里使用uart.rx接口,和以zbuff的方式存储从uart1外部串口收到的数据--收取数据会触发回调。

注意:这里的"receive"是固定值不要修改。

wKgZPGdyW9WAcuEmAAIXQ-U3V3k756.png

2.2.3 TCP网络配置:铺就数据通道

wKgZO2dyW-KAMu6CAAPxcQda8eQ995.png

2.2.4 TCP至串口透传:数据无缝流转

wKgZPGdyW--AULbRAAGeMxxQTz8320.png

2.2.5 串口至TCP反透传:信息双向传递

wKgZO2dyW_uANRgfAAIUn5l7Fxg252.png

2.3 完整代码及运行结果

2.3.1 完整代码

wKgZO2dyXBeAOmRPAAZ_U-ep_Tw834.png

wKgZPGdyXCuAOweDAAWPXu5-8PI053.png

wKgZO2dyXEGAOp8yAASNR5CjG8c814.png

wKgZO2dyXFaAJYmtAATBtbUEWi8972.png

wKgZPGdyXGeAcOHSAAIbvNlkmH0956.png

2.3.2 运行结果

使用TCP/UDP web测试工具及SSCOM串口工具,运行结果如下图所示:

wKgZO2dyXIGAAaa2AAPVpVn8iQ4970.png


今天的内容就分享到这里了~

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7264

    浏览量

    92388
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1409

    浏览量

    81530
  • 透传
    +关注

    关注

    0

    文章

    11

    浏览量

    6970
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    XL2417D 无线模组,开发门槛低,快速实现低功耗无线数据传输

    XL2417D 模组 采用 XL2417D 低功耗高性能 SoC 芯片,集成 2.4G 射频收发器、MCU 及丰富外设。模块开发门槛低,用户只要掌握串口 UART 接口通信,无需深究 2.4G
    发表于 08-14 15:43

    汇川PLC连接电脑:御控网关如何实现本地数据通信与远程

    御控网关通过虚拟串口映射技术实现本地化远程PLC操作,支持4G/Wi-Fi/以太网多网络接入,可自由切换与协议转换模式。在模式下保持
    的头像 发表于 08-12 10:56 ?114次阅读

    HM-BT2204蓝牙模块规格详解:功能特性、电气参数及应用设计指导

    内容概要:HM-BT220X是一款基于低功耗蓝牙BLE5.2SoC芯片的模块,采用ARM?Cortex?-M3332位处理器内核,最高频率76.8MHz,内嵌2.4GHz射频收发器,支持无线数据
    发表于 07-21 09:56 ?0次下载

    【干货】数据“零处理”,什么是DTU机制?

    概述DTU(数据传输单元)模式是工业物联网的核心技术,它像一条透明的数据管道,不做任何解析或修改,直接将终端设备的原始字节流(如传感器
    的头像 发表于 07-03 19:32 ?688次阅读
    【干货】<b class='flag-5'>数据</b>“零处理”,什么是DTU<b class='flag-5'>透</b><b class='flag-5'>传</b>机制?

    低功耗蓝牙BLE模块HM-BT4531的技术规格与应用指南

    内容概要:HM-BT4531是一款基于高性能、超低功耗蓝牙5.1芯片CMT4531的低功耗蓝牙(BLE)模块。它采用32位ARM? Cortex?-M0内核,最高频率64MHz,集成48KB
    发表于 06-12 17:13 ?1次下载

    低功耗蓝牙模块在物联网的应用

    在当今万物互联的时代,低功耗蓝牙模块凭借其独特的优势,正成为物联网领域中不可或缺的关键技术之一。它如同一座无形的桥梁,将各种设备紧密相连,实现了数据的高效、稳定传输,为智能生活和工
    的头像 发表于 04-09 14:34 ?648次阅读
    低功耗蓝牙<b class='flag-5'>透</b><b class='flag-5'>传</b>模块在物联网的应用

    【第一章 策略】手把手教你玩转新版正点原子云

    点击复制 2.6 打开两个模型配置软件,依次进行配置,调出刚才复制的内容按Win + V 2.7 本次实验使用两个模型进行数据,所以再重复以上步骤完成另一个的配置 2.8 此时打开新版原子
    发表于 03-05 16:52

    BLE方案,IoT短距无线通信的“中坚力量”

    BLE技术实现设备间快速数据同步,支持多设备连接,功耗低,兼容性强,适用于物联网设备。通过简单设置即可上手,加速产品开发,广泛应用于智能
    的头像 发表于 02-11 10:14 ?1441次阅读
    BLE<b class='flag-5'>透</b><b class='flag-5'>传</b>方案,IoT短距无线通信的“中坚力量”

    开源直接用!UDP-UART数据传来了

    今天就来分享一下UDP-UART示例,源码开放,可根据实际需求灵活应用。 一、UDP-UART
    的头像 发表于 02-05 17:14 ?398次阅读
    开源直接用!UDP-<b class='flag-5'>UART</b><b class='flag-5'>数据</b><b class='flag-5'>透</b>传来了

    BLE方案,IoT短距无线通信的“中坚力量”

    BLE技术是一种采用蓝牙通信协议在设备之间实现数据透明传输的技术,设备在通信时会互相验证身份和安全密钥,具有较高的安全性。
    的头像 发表于 01-21 14:23 ?534次阅读
    BLE<b class='flag-5'>透</b><b class='flag-5'>传</b>方案,IoT短距无线通信的“中坚力量”

    Zigbee模块使用手册

    电子发烧友网站提供《Zigbee模块使用手册.pdf》资料免费下载
    发表于 01-12 09:32 ?2次下载

    TCP-UART示例~看完就会源码开放!

    今天,来分享下TCP-UART示例,源码开放,可根据实际需求灵活应用。 ? 一、TCP协议概述 TCP(Transmission Con
    的头像 发表于 12-30 16:43 ?672次阅读
    <b class='flag-5'>TCP-UART</b><b class='flag-5'>透</b><b class='flag-5'>传</b>示例~看完就会源码开放!

    【新品】100%纯国产方案!高效传输,低功耗2.4G无线模块

    的效率、可靠性和可持续性。亿佰特E35-2G4T10S/SX系列2.4G无线模块支持高效数据连续传输且具备多种传输方式,简单易开发,赋能电网等多种应用场景。E35
    的头像 发表于 11-01 08:07 ?885次阅读
    【新品】100%纯国产方案!高效传输,低功耗2.4G无线<b class='flag-5'>透</b><b class='flag-5'>传</b>模块

    DTU终端CATCOM-100云端转发应用

    本文介绍DTU设备数据转发应用,实现点对点通信。应用场景DTU设备数据
    的头像 发表于 10-13 08:05 ?858次阅读
    DTU终端CATCOM-100云端<b class='flag-5'>透</b><b class='flag-5'>传</b>转发应用

    【新品】这样的4G DTU网关,你见过吗?

    DP210是一款全网通4GDTU网关,提供1路开关量输入和1路继电器输出。支持循环定时写入数据给PLC实现锁机功能,以及循环定时同步时间给PLC同步年月日/时分秒。还可接入阿里云、腾讯云、百度云
    的头像 发表于 08-31 08:05 ?1305次阅读
    【新品】这样的4G DTU<b class='flag-5'>透</b><b class='flag-5'>传</b>网关,你见过吗?