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

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

3天内不再提示

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

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2024-12-30 16:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天,来分享下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.pngwKgZPGdyXCuAOweDAAWPXu5-8PI053.pngwKgZO2dyXEGAOp8yAASNR5CjG8c814.pngwKgZO2dyXFaAJYmtAATBtbUEWi8972.pngwKgZPGdyXGeAcOHSAAIbvNlkmH0956.png

2.3.2 运行结果

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

wKgZO2dyXIGAAaa2AAPVpVn8iQ4970.png


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

审核编辑 黄宇

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

    关注

    8

    文章

    1436

    浏览量

    83888
  • uart
    +关注

    关注

    22

    文章

    1324

    浏览量

    107145
  • 源码开放
    +关注

    关注

    0

    文章

    2

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    GC433-TC007P 433MHz 无线模块:小身材大能量

    GC433-TC007P 433MHz 无线模块:小身材大能量 在无线射频和物联网领域,一款性能出色的无线模块往往能为产品带来极大的便利和竞争力。今天,我们就来深入了解一下深圳
    的头像 发表于 05-09 10:50 189次阅读

    GC2400-TC013 2.4GHz无线模块:设计与应用全解析

    GC2400-TC013 2.4GHz无线模块:设计与应用全解析 在无线射频与物联网领域,一款性能出色的无线模块能为众多应用场景带来极大便利。今天,我们就来详细探讨深圳市硅
    的头像 发表于 05-09 10:50 173次阅读

    GC433-TC016 433MHz无线模块:功能、应用与设计要点

    GC433-TC016 433MHz无线模块:功能、应用与设计要点 在无线通信领域,433MHz频段的无线模块凭借其独特的优势,广泛应用于各类物联网设备中。今天,我们就来详细了
    的头像 发表于 05-09 09:50 368次阅读

    RS485转WiFi串口数据采集终端技术架构与实现原理

    1. 概述 在工业物联网(IIoT)演进过程中,存量巨大的RS485总线设备面临着协议封闭、布线复杂及云端接入困难等技术瓶颈。本文深入剖析RS485转WiFi串口终端的技术实现,重点阐述其硬件
    发表于 03-20 14:25

    如何快速上手BLE SoC CMT4531,开发高效的短距方案?

    BLE短距方案通过无线传输实现设备间数据互通,需优化串口通信与MCU调度,提升系统性能。钱
    的头像 发表于 03-02 14:21 1781次阅读
    如何快速上手BLE SoC CMT4531,开发高效的短距<b class='flag-5'>透</b><b class='flag-5'>传</b>方案?

    蓝牙模组XL2411的产品特点和应用场景

    XL2411蓝牙模组基于高性能低功耗的 OM6625A 系统级芯片(SoC)设计,允许单片机等设备通过简单的串口(UART)指令,无需了解复杂的蓝牙协议栈,就能实现蓝牙无线通信。旨在为用户提供
    的头像 发表于 01-09 12:45 831次阅读
    蓝牙<b class='flag-5'>透</b><b class='flag-5'>传</b>模组XL2411的产品特点和应用场景

    BLE-TPT蓝牙串口模块有何应用优点

    在物联网与智能设备快速发展的今天,稳定、高效的无线数据传输方案成为众多嵌入式系统的核心需求。蓝牙模块,特别是基于低功耗蓝牙(BLE)技术的串口模块,因其易于集成、功耗低、兼容性
    的头像 发表于 01-08 15:20 480次阅读
    BLE-TPT蓝牙串口<b class='flag-5'>透</b><b class='flag-5'>传</b>模块有何应用优点

    XL2477 WiFi 模组,让产品快速、低成本接入无线网络

    XL2477 WiFi 模组是一款基于 WiFi 技术的物联网模块解决方案,通过AT指令实现串口(UART)、SPI、I2C 等有线接口与 WiFi 网络的透明数据转发,无需用户修改原有设备通信
    的头像 发表于 01-04 17:15 654次阅读
    XL2477 WiFi <b class='flag-5'>透</b><b class='flag-5'>传</b>模组,让产品快速、低成本接入无线网络

    无线组网新突破!SG-Lora-TCP 模块,7 公里 TCP 信号无线更自由

    TCP 信号转为无线信号远,空旷传输距离达 7000 米,无需复杂布线即可实现 TCP 设备远程互联,彻底摆脱线缆束缚! 核心优势,重塑 TCP 无线传输体验 超远距稳定传输 :工
    的头像 发表于 12-12 10:25 668次阅读

    【干货分享】基于道生物联TKB-623评估板串口的手写数字识别

    本文介绍了道生物联TKB-623开发板结合UART串口实现手写数字识别与远距离传输的项目设计。摘自优秀创作者-jf_07365693https://bbs.elecfans.com
    的头像 发表于 11-11 08:07 1217次阅读
    【干货分享】基于道生物联TKB-623评估板串口<b class='flag-5'>透</b><b class='flag-5'>传</b>的手写数字识别

    【道生物联TKB-623评估板试用】基于串口的手写数字识别

    【道生物联TKB-623评估板试用】基于串口的手写数字识别 本文介绍了道生物联TKB-623开发板结合 UART 串口实现手写数字识
    发表于 11-08 11:44

    【道生物联TKB-623评估板试用】GPS定位时钟

    这里给出两种方案实现 GPS 定位信息。 方案一 TKB-623 GPS module Note UART_TXD RXD Receive UART_RXD TXD Transm
    发表于 11-06 18:48

    物联网开发必备:四款低功耗蓝牙模块参数全解析与应用实战

    剖析四款MinewSemi(创新微)经过市场验证的几款模块,助您精准选型。 一、技术核心:BLE模块为何成为开发首选? BLE模块的本质,是提供了 免协议栈开发 的
    的头像 发表于 11-05 14:37 1044次阅读

    【ESP8266】进入模式后,数据间隔怎么调整,

    01.TCP客户端用ESP8266模式发送数据是10ms发送一次,(连续发送) 02.TCP服务器接收到的数据是200ms左右接收一次,数据未丢失,但是更新不及时; 03.通过
    发表于 09-15 10:16

    揭秘Air780EGH定位功能:源码开放助力极速开发 !

    例,带你快速上手定位功能的基本使用方法,可根据实际需求灵活扩展和应用。   一、Air780EGH定位示例源码开放 Air780EGH示例持续更新中,本文将讲解Air780EGH核心板
    的头像 发表于 07-29 16:11 935次阅读
    揭秘Air780EGH定位功能:<b class='flag-5'>源码</b><b class='flag-5'>开放</b>助力极速开发 !