AT32 EMAC client and server

AN0052

应用笔记

AT32 EMAC client and server

前言

随着物联网的发展,各式各样的装置都必须具备连网的能力,单芯片也不例外,为此我们以雅特力的AT32F407系列,演示了一系列的范例,以其用户能基于这些范例,使用雅特力的开发板发展出自己所需要的功能。

支持型号列表:

支持型号

具备EMAC的型号

                                                           

                                                               

目录

1                   概述... 5

1.1        硬件资源... 5

1.2        软件资源... 5

2                   AT32 TCP client/server程序设置.. 6

2.1        管脚配置... 6

2.2        LwIP设置... 6

2.3        TCP client project设置... 6

2.4        上位机服务端设置... 7

2.5        TCP server project设置... 9

2.6        上位机客户端设置... 9

3                   版本历史.. 11

表目录

表1. 管脚配置... 6

表2. 文档版本历史... 11

图目录

图1. 配置芯片的IP地址... 6

图2. 配置服务端的socket 6

图3. 设置PC端的IP、网路屏蔽与闸口... 7

图4. 设置服务器软件... 8

图5. 接收TCP client的数据... 8

图6. 服务器端口的宏定义... 9

图7. 设置上位机的客户端软件... 9

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

  1. 概述

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

本使用指南会分别说明TCP clientTCP server该如何与PC端通信。

    1. 硬件资源
  1. AT-START-F407 V1.0 实验板
  2. DM9162 以太网模块
  3. 以太网线
    1. 软件资源
  1. tcp_client, TCP client源程序,运行TCP客户端程序
  2. tcp_server, TCP server源程序,运行TCP服务端程序
  1. AT3 TCP client/server程序设置
    1. 管脚配置

1. 管脚配置

EMAC信号

管脚

EMAC_MDC

PC1

EMAC_MDIO

PA2

EMAC_RMII_REF_CLK

PA1

EMAC_RMII_CRS_DV

PD8

EMAC_RMII_RXD0

PD9

EMAC_RMII_RXD1

PD10

EMAC_RMII_TX_EN

PB11

EMAC_RMII_TXD0

PB12

EMAC_RMII_TXD1

PB13

    1. LwIP设置

硬件资源只提供从PHY到MAC的信号处理,若要进行开发,则需要实作TCP/IP协议栈,在本应用中使用LwIP协议栈,该协议栈主要关注的是怎样减少减少内存的使用和程序代码的大小,这样就可以让LwIP适用于资源有限的小型平台例如嵌入式系统,更详细的内容可以访问官方网站

由于整个协议栈已经整合到代码中,大部分的内容都无须修改,使用者只要根据自己的网段去设定IP地址及闸口地址即可,这两个全局变量宣告在netconf.c的上头。

1. 配置芯片的IP地址

    1. TCP client project设置

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

2. 配置服务端的socket

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

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

3. 设置PC端的IP、网路屏蔽与闸口

 

4. 设置服务器软件

5. 接收TCP client的数据

 

    1. TCP server project设置

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

6. 服务器端口的宏定义

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

7. 设置上位机的客户端软件

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

  1. 版本历史

2. 文档版本历史

日期

版本

变更

2021.09.03

2.0.0

最初版本

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值