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

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

3天内不再提示

AT32讲堂023 | AT32 MCU TCP client与TCP server如何与PC端通信

雅特力 AT32 MCU 2022-08-19 09:52 次阅读

概述

使用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. 管脚配置6557c0a8-1f1c-11ed-9ade-dac502259ad0.png

LwIP设置

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

TCP client project设置

在初始化LwIP协议栈之后,就可以配置TCP client的应用了,芯片作为客户端是发出请求的一方,所以必须要配置往哪里发送数据,也就是说要知道服务端的socket。所谓的socket就是IP地址加上端口,在代码中我们宣告了几个宏定义代表服务端的socket,可以在tcp_client.h中找到TCP_SERVER_IP跟TCP_SERVER_PORT这两个宏定义,用户可以根据网段跟应用修改这两个宏。图2. 配置服务端的socket6589c9ae-1f1c-11ed-9ade-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、网路屏蔽与闸口659c7d88-1f1c-11ed-9ade-dac502259ad0.png图4. 设置服务器软件65a5f2dc-1f1c-11ed-9ade-dac502259ad0.png图5. 接收TCP client的数据65b6b392-1f1c-11ed-9ade-dac502259ad0.png

TCP server project设置

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

上位机客户端设置

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

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

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

    关注

    146

    文章

    16022

    浏览量

    343676
  • 通信
    +关注

    关注

    18

    文章

    5706

    浏览量

    134412
收藏 人收藏

    评论

    相关推荐

    如何使用AT32 MCU WDT和WWDT?

    如何使用AT32 MCU WDT和WWDT?
    的头像 发表于 11-10 18:26 555次阅读
    如何使用<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> WDT和WWDT?

    Segger Jscope波形软件在AT32 MCU的使用

    Segger Jscope波形软件在AT32 MCU的使用
    的头像 发表于 11-10 18:24 711次阅读
    Segger Jscope波形软件在<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>的使用

    如何在AT32 MCU上使用FPU功能

    如何在AT32 MCU上使用FPU功能
    的头像 发表于 11-01 17:18 3659次阅读
    如何在<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>上使用FPU功能

    关于AT32 MCU温度传感器的应用

    关于AT32 MCU温度传感器的应用
    的头像 发表于 10-27 09:44 269次阅读
    关于<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>温度传感器的应用

    AT32 MCU Printf的功能使用方法

    AT32 MCU Printf的功能使用方法
    的头像 发表于 10-27 09:27 455次阅读
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> Printf的功能使用方法

    AT32 MCU如何使用USB MSD 进行IAP升级?

    AT32 MCU如何使用USB MSD 进行IAP升级?
    的头像 发表于 10-27 09:23 627次阅读
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>如何使用USB MSD 进行IAP升级?

    AT32 MCU DMA通道的灵活配置

    AT32 MCU DMA通道的灵活配置
    的头像 发表于 10-26 17:51 463次阅读
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> DMA通道的灵活配置

    带VSCode EIDE的AT32 MCU

    AT32 MCU With VSCode EIDE描述了VSCode开发环境中,使用Embedded IDE管理AT32项目。
    发表于 10-26 07:38

    AT32 MCU USART应用说明

    AT32 MCU USART Application Note介绍了AT32 的USART 功能,并对BSP 例程的软件设计加以说明,同时演示使用方法并展示实验效果,供用户参考。
    发表于 10-25 08:11

    AT32 MCU ACC使用指南

    AT32 MCU ACC使用指南AT32 MCU 拥有HICK 自动时钟校准器,其作用是当系统内部使用HICK 作为时钟源时,若外界环境改变等因素导致HICK 时钟差生偏差时,可利用H
    发表于 10-25 07:24

    AT32 MCU SDRAM应用说明

    AT32 MCU SDRAM Application Note本文主要讲解AT32 SDRAM 控制器的使用。
    发表于 10-25 06:37

    AT32 MCU CAN入门指南

    AT32 MCU CAN入门指南本文介绍了CAN 标准协议,AT32 CAN 的使用流程以及基于AT32 的几个CAN 使用例程。
    发表于 10-25 06:01

    AT32 EMAC客户和服务器

    AT32 EMAC client and server本文以雅特力的AT32F407系列,演示了一系列的范例
    发表于 10-24 07:39

    AT32 MCU SDIO入门指南

    电子发烧友网站提供《AT32 MCU SDIO入门指南.pdf》资料免费下载
    发表于 09-19 16:18 1次下载
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> SDIO入门指南

    AT32 MCU Develop with VSCode

    电子发烧友网站提供《AT32 MCU Develop with VSCode.pdf》资料免费下载
    发表于 09-19 15:22 0次下载
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> Develop with VSCode