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

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

3天内不再提示

TCP client与TCP server该如何与PC端通信

倩倩 来源:AT32 MCU 雅特力科技 作者:AT32 MCU 雅特力科技 2022-08-18 14:49 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

概述

使用TCP执行通讯时,会有Server与Client的差别。Server是经由开启特定的Port来等待来自Client端的连线需求;而Client端则是向Server端提出连线需求,此例程使用LwIP作为协议栈,可以使用tcp_bind(), tcp_listen()与tcp_accept()这三种系统呼叫来使Server端接受Client的连线要求。 本使用指南会分别说明TCP client与TCP server该如何与PC端通信

硬件资源

1) AT-START-F407 V1.0实验板 2) DM9162以太网模块 3) 以太网线

软件资源

tcp_client, TCP client源程序,运行TCP客户端程序

tcp_server, TCP server源程序,运行TCP服务端程序

AT32 TCP client/server程序设置

管脚配置

表1. 管脚配置

0f366a28-1ebb-11ed-ba43-dac502259ad0.png

LwIP设置

硬件资源只提供从PHY到MAC的信号处理,若要进行开发,则需要实作TCP/IP协议栈,在本应用中使用LwIP协议栈,该协议栈主要关注的是怎样减少减少内存的使用和程序代码的大小,这样就可以让LwIP适用于资源有限的小型平台例如嵌入式系统,更详细的内容可以访问官方网站。 由于整个协议栈已经整合到代码中,大部分的内容都无须修改,使用者只要根据自己的网段去设定IP地址及闸口地址即可,这两个全局变量宣告在netconf.c的上头。 图1. 配置芯片的IP地址

0f5251f2-1ebb-11ed-ba43-dac502259ad0.png

TCP client project设置

在初始化LwIP协议栈之后,就可以配置TCP client的应用了,芯片作为客户端是发出请求的一方,所以必须要配置往哪里发送数据,也就是说要知道服务端的socket。所谓的socket就是IP地址加上端口,在代码中我们宣告了几个宏定义代表服务端的socket,可以在tcp_client.h中找到TCP_SERVER_IP跟TCP_SERVER_PORT这两个宏定义,用户可以根据网段跟应用修改这两个宏。 图2. 配置服务端的socket

0f6a2ac0-1ebb-11ed-ba43-dac502259ad0.png

确认网段与服务端一致后,下载代码到芯片上,服务器端会一秒打印一次”tcp client experiment!”,同时LED2, 3, 4也会跟着闪烁。

上位机服务端设置

1) 设定上位机的IP地址、网路屏蔽及闸口,IP地址与闸口需要跟芯片设置在同一个网段下。 2) 打开上位机端的服务器软件,这里使用网路调适助手为例。协议类型选择TCP server,本地IP地址为代码中的TCP_SERVER_IP,本地端口号为代码中的TCP_SERVER_PORT,按下连线即建立连线。 3)连线建立后,会出现以下画面,不断打印来自TCP client的数据。 图3. 设置PC端的IP、网路屏蔽与闸口

0f834334-1ebb-11ed-ba43-dac502259ad0.png

图4. 设置服务器软件

0fa36614-1ebb-11ed-ba43-dac502259ad0.png

图5. 接收TCP client的数据

0fc532ee-1ebb-11ed-ba43-dac502259ad0.png

TCP server project设置

在初始化LwIP协议栈之后,就可以配置TCP server的应用了,芯片作为客户端是接受请求的一方,所以必须要配置在哪里接受数据,也就是说要开个端口给客户端丢数据进来。在代码中我们宣告了一个宏定义代表服务端的端口,可以在tcp_server.h中找到TCP_LOCAL_PORT这个宏定义,用户可以根据应用修改这个宏。 图6. 服务器端口的宏定义

0fd52c9e-1ebb-11ed-ba43-dac502259ad0.png

上位机客户端设置

1) 设定上位机的IP地址、网路屏蔽及闸口,IP地址与闸口需要跟芯片设置在同一个网段下,请参考图3。 2) 打开上位机端的服务器软件,这里使用网路调适助手为例。协议类型选择TCP client,服务器IP地址为芯片的IP地址,本地端口号为代码中的TCP_LOCAL_PORT,按下连线即建立连线。 3) 此时会出现讯息在视窗中,可以透过调试助手下方的区块输入字符串发送给服务器,服务器会响应输入的字符串到视窗中。 图7. 设置上位机的客户端软件

0fe4a0a2-1ebb-11ed-ba43-dac502259ad0.png

图8. 显示讯息到视窗中并响应发送的字符串

0ff6a036-1ebb-11ed-ba43-dac502259ad0.png

关于雅特力 雅特力科技于2016年成立,是一家致力于推动全球市场32位微控制器(MCU)创新趋势的芯片设计公司,专注于ARM Cortex-M4/M0+的32位微控制器研发与创新,全系列采用55nm先进工艺及ARM Cortex-M4高效能或M0+低功耗内核,缔造M4业界最高主频288MHz运算效能,并支持工业级别芯片工作温度范围(-40°~105°)。 雅特力目前已累积相当多元的终端产品成功案例:如微型打印机、扫地机、光流无人机、热成像仪、激光雷达、工业缝纫机、伺服驱控、电竞周边市场、断路器、ADAS、T-BOX、数字电源、电动工具等终端设备应用,广泛地覆盖5G物联网、消费、商务及工控等领域。
审核编辑 :李倩

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

    关注

    41

    文章

    6289

    浏览量

    181915
  • 信号处理
    +关注

    关注

    49

    文章

    1177

    浏览量

    105327
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1436

    浏览量

    83879

原文标题:AT32讲堂023 | AT32 MCU TCP client与TCP server如何与PC端通信

文章出处:【微信号:AT32 MCU 雅特力科技,微信公众号:AT32 MCU 雅特力科技】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【瑞萨RA2L1入门学习】W5500以太网通信与Web远程控制

    TCP 客户/服务器、UDP 通信、HTTP 服务器及 AJAX 无刷新 LED 控制功能,最终经由 SCI UART0 接口输出调试信息至上位机,实现了\"网络连接—协议处理—Web
    发表于 05-16 18:28

    开关量16路DI,8路DO,Modbus TCP远程采集模块

    TCP
    IBF贝福
    发布于 :2026年04月15日 15:11:03

    TCP和UDP的区别

    相比,TCP 有三大核心特性: 1、面向连接。所谓的连接,指的是客户和服务器的连接,在双方互相通信之前,TCP 需要三次握手建立连接,而 UDP 没有相应建立连接的过程。 2、
    发表于 12-09 07:24

    以太网通讯在FPGA上的实现

    ,其中client用于连接server。测试内容为在PC通过UDP,TCP client这两个
    发表于 10-30 07:45

    Profinet从转Modbus(TCP)主总线协议转换网关

    和Modbus(TCP)从站网络网络设备连接,‌从而实现不同工业通信协议之间的相互转换。可支持Modbus TCP Client和Modbus TC
    的头像 发表于 09-18 14:57 795次阅读
    Profinet从转Modbus(<b class='flag-5'>TCP</b>)主总线协议转换网关

    【HZ-RK3568开发板免费体验】--TCP通讯

    本篇实现客户(client)与服务(server)数据通讯收发功能。 一.TCP通讯流程 服务
    发表于 08-24 18:34

    快速通关上位机TCP通信:上位机通信防崩指南

    以太网 TCP 通信是上位机开发中常用的通信方式,西门子 S7 通信、三菱 MC 通信以及 MQTT、OPC UA、Modbus
    的头像 发表于 08-13 13:40 1196次阅读
    快速通关上位机<b class='flag-5'>TCP</b><b class='flag-5'>通信</b>:上位机<b class='flag-5'>通信</b>防崩指南

    GraniStudio : TCP/IP(Socket)协议深度剖析

    (Socket)客户与服务器模块,通过高度封装的可视化功能,将复杂的套接字通信逻辑转化为简单的 “拖拽式” 操作,为工业用户构建稳定、高效的网络通信系统提供了强大支撑。本文将从技术原理、功能实现、应用场景三个维度,深入解析 G
    的头像 发表于 08-03 22:20 1444次阅读
    GraniStudio : <b class='flag-5'>TCP</b>/IP(Socket)协议深度剖析

    Modbus TCP 转 Modbus RTU电脑 TCP 与西门子 V20 变频器的通信案例

    在工业自动化控制系统中,经常需要实现不同设备之间的通信与数据交互。本案例旨在展示如何通过 Modbus 协议,将电脑作为主站(Modbus TCP)与多台西门子变频器 V20(Modbus RTU
    的头像 发表于 07-27 17:19 1193次阅读
    Modbus <b class='flag-5'>TCP</b> 转 Modbus RTU电脑<b class='flag-5'>端</b> <b class='flag-5'>TCP</b> 与西门子 V20 变频器的<b class='flag-5'>通信</b>案例

    第二十九章 W55MH32 Modbus_TCP_Server示例

    Modbus TCP 的概念、基本原理、优势、注意事项、应用场景、报文结构和常用功能码,帮助读者理解其在工业通信中的实际应用价值。
    的头像 发表于 07-24 16:18 1328次阅读
    第二十九章 W55MH32 Modbus_<b class='flag-5'>TCP_Server</b>示例

    第三章 W55MH32 TCP Client示例

    本文介绍在 W55MH32 芯片上实现 TCP 客户模式进行数据回环测试的方法。阐述 TCP 协议概念、特点、与 UDP 区别、应用场景及相关机制。展示实现过程,包括开启 Keepalive 功能,在主循环运行测试程序。烧录例
    的头像 发表于 07-24 09:06 1490次阅读
    第三章 W55MH32 <b class='flag-5'>TCP</b> <b class='flag-5'>Client</b>示例

    什么是Modbus TCP协议

    Modbus TCP是一种基于TCP/IP协议的Modbus通信协议,用于在客户机和服务器之间进行数据通信。它常用于工业自动化控制、电力监控与管理、温湿度监测等领域。Modbus
    的头像 发表于 07-23 17:18 5060次阅读
    什么是Modbus <b class='flag-5'>TCP</b>协议

    WICED中使能TCP保活后无法disconnected怎么解决?

    开发环境 WICED,最新版本的SDK 芯片:CYW43907、使用freertos+lwip开发 描述:使用wiced_tcp_server_start开启TCP服务器,然后注册了连接和断开的回调
    发表于 07-08 06:57

    Modbus TCP连接多个客户解决方法-深圳市振鑫通信科技

    ZP-MBS008多主站模块是实现Modbus-TCP连接多个客户或者服务器通讯设备
    的头像 发表于 06-25 11:07 2161次阅读
    Modbus <b class='flag-5'>TCP</b>连接多个客户<b class='flag-5'>端</b>解决方法-深圳市振鑫<b class='flag-5'>通信</b>科技

    TCP攻击是什么?有什么防护方式?

    随着网络的高速发展,越来越多的企业都将业务部署在线下机房或者云上。随之而来的就是各种各样的网络攻击,如DDoS攻击、CC攻击、TCP攻击等,这些攻击对业务的影响也是很大。市面上有很多安全厂商都有研发
    的头像 发表于 06-12 17:33 1256次阅读