OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 154|回复: 0

如何在AT32F4xx单片机上通过DM9051A网卡芯片实现iPerf服务器

[复制链接]

58

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
235
金钱
235
注册时间
2024-12-9
在线时间
13 小时
发表于 5 天前 | 显示全部楼层 |阅读模式
前言
DM9051ANX芯片是带有行业标准串行外设接口的独立以太网控制器。
本应用指南将介绍如何在AT32F4xx单片机上通过DM9051A网卡芯片实现iPerf服务器,用以评估网络吞吐量,并提供基于AT32F4xx_Firmware_Library_V2.x.x和LwIP协议栈的源代码。

支持型号列表:

AT32F402系列
AT32F403系列
AT32F403A系列
AT32F405系列
AT32F407系列
AT32F413系列
AT32F415系列
AT32F423系列
AT32F43x系列
AT32F45x系列
AT32F490系列
AT32A403A系列
AT32A423系列


备注说明:本文档仅供有需求的小伙伴分享,如需更多关于本文档的更多资料,可访问雅特力官网获取:https://www.arterytek.com/cn/support/index.jsp?index=1
1                 简介
DM9051ANX SPI接口网卡芯片是为了方便MCU单片机系统进行以太网通信而开发出的解决方案。DM9051ANX芯片是带有标准串行外设接口(Serial Peripheral Interface,SPI)的独立以太网控制器。DM9051ANX符合IEEE 802.3 规范,它还支持以DMA 模式来传输,以实现快速传送资料。DM9051ANX通过1个中断引脚和SPI接口来进行与主控制器/MCU单片机的通信,资料传输规格为10/100M。
l  Package:支持24接脚封装QFN.
l  IEEE 802.3az Energy Efficient Ethernet (EEE)
l   支持可变电压1.8V,2.5V,3.3V
l  远程唤醒 (WOL)
l   并行线/交叉线自动切换 (HP Auto-MDIX)
l  Support 光口界面
l   具有16KB SRAM静态随机存取记忆
l  EMI (Class B) and HBM ESD Rating 6KV
l  工业温度规范: –40℃ to +85℃
l  功率:(10/100 M) => 32/45 mA
l   100M模式连续工作芯片温度30.7度
l  不须外置bandgap电阻与EEPROM

l   每个芯片自带一个MAC地址

1.1           基于AT32的以太网通信
本应用指南将介绍如何在AT32F4xx单片机上通过DM9051ANX网卡芯片实现以太网通信,并提供基于AT32F4xx_StdPeriph_Lib和LwIP协议栈的源代码。该以太网通信应用程序基于LwIP协议栈对TCP/IP网络进行解析,DM9051ANX通过SPI接口与AT32F4xx单片机进行数据交换。结合AT-START Board与Davicom提供的SPI接口DM9051ANX模块 可以方便快速的搭建起一套以太网通信设备。
1.2           iPerf
iPerf是测量网络吞吐量的一个工具,藉由server和client之前在指定时间内传输数据,计算出这段时间内的平均网速,以评估当前的网络环境。

2                 使用方法2.1           硬件资源
以下是所需的硬件资源:
1)      AT-START-F4xx实验板
2)      DM9051ANX SPI Fast EthernetController模块
3)      Micro-USB传输线
4)      网线

5)      PC机
Note: demo是基于AT32F415的硬件条件,若需要在AT32其他型号上使用,请修改相应配置即可。

2.2            管脚配置
本应用笔记未针对该应用设计Arduino Daughter Board, 因此需要自行飞线开发板上的管脚到SPI网络模块上,代码中配置的管脚如下:
DM9051ANX AT32F415
VDD 3.3V
GND GND
CS  PB6
RST PB8
CLK PA5
MISO PA6
MOSI PA7

如有其他设计上的考虑,可以自行更换配置的管脚。

2.3            代码设置2.3.1       LwIP设置
获取IP的方式,可以透过DHCP或是手动设定IP,但在配置上有些许需要注意的地方,主要有以下两个部分:
1)      使用DHCP的话需要将lwipopts.h中的LWIP_DHCP这个宏定义设成1, 本应用笔记默认为0(Fixed IP)
2)      使用DHCP的话需要将netconf.h中的DNS_SERVER_ADDRESS这行宏定义给取消定义(undef),并从Ali, Baidu, Google和NAT四个DNS server中选择一个来重新定义

在这个应用中,默认使用手动设定IP的方式直接与计算机对接,用户可以根据需求选择获取IP的方式。

2.3.2        iPerf配置
iPerf的IP跟着开发板的配置,但作为server开放的端口需要符合规范,默认是5001这个端口,用户如果没有特殊需求可以直接沿用不需要修改。iPerf server会在获取IP后自动初始化,这部份用户也可以自行配置,只要注意该应用需要在IP层配置完之后才能初始化即可。

n  iPerf初始化
  1. void iperf_init(void)
  2. {
  3.   struct tcp_pcb *pcb;
  4.   pcb = tcp_new();
  5.   tcp_bind(pcb, IP_ADDR_ANY, 5001); /* bind to iperf port */
  6.   pcb = tcp_listen(pcb);
  7.   tcp_accept(pcb, iperf_accept);
  8. }
复制代码
PC端这边也需要下载iPerf工具,本应用笔记支持的是iPerf 2版本,可以到官方网站下载。下载之后透过Windows的console tool进入iPerf tool所在的目录,输入以下命令:

n  iPerf client端命令
  1. iperf.exe -c SERVER_IP -t DURATION -i INTERVAL
复制代码
SERVER_IP为服务器端的IP, DURATION为想要测试的总时间,INTERVAL为多久印一笔报告,用户可以根据自己的需求修改输入,这里以测试时间60秒,每1秒打印一笔报告为例,结果如下图:

至此,本应用指南关于使用DM9051ANX进行iPerf的测试就完成了。








回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-8-30 18:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表