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

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

3天内不再提示

第二十八章 W55MH32 Ethernet_Rate_Test示例

W55MH32 ? 来源:W55MH32 ? 作者:W55MH32 ? 2025-07-24 16:16 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

单芯片解决方案,开启全新体验——W55MH32 高性能以太网单片机

W55MH32是WIZnet重磅推出的高性能以太网单片机,它为用户带来前所未有的集成化体验。这颗芯片将强大的组件集于一身,具体来说,一颗W55MH32内置高性能Arm? Cortex-M3核心,其主频最高可达216MHz;配备1024KB FLASH与96KB SRAM,满足存储与数据处理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP协议栈、内置MAC以及PHY,拥有独立的32KB以太网收发缓存,可供8个独立硬件socket使用。如此配置,真正实现了All-in-One解决方案,为开发者提供极大便利。

在封装规格上,W55MH32提供了两种选择:QFN100和QFN68。

W55MH32L采用QFN100封装版本,尺寸为12x12mm,其资源丰富,专为各种复杂工控场景设计。它拥有66个GPIO、3个ADC、12通道DMA、17个定时器、2个I2C、5个串口、2个SPI接口(其中1个带I2S接口复用)、1个CAN、1个USB2.0以及1个SDIO接口。如此丰富的外设资源,能够轻松应对工业控制中多样化的连接需求,无论是与各类传感器、执行器的通信,还是对复杂工业协议的支持,都能游刃有余,成为复杂工控领域的理想选择。同系列还有QFN68封装的W55MH32Q版本,该版本体积更小,仅为8x8mm,成本低,适合集成度高的网关模组等场景,软件使用方法一致。更多信息和资料请进入http://www.w5500.com/网站或者私信获取。

此外,本W55MH32支持硬件加密算法单元,WIZnet还推出TOE+SSL应用,涵盖TCP SSL、HTTP SSL以及 MQTT SSL等,为网络通信安全再添保障。

为助力开发者快速上手与深入开发,基于W55MH32L这颗芯片,WIZnet精心打造了配套开发板。开发板集成WIZ-Link芯片,借助一根USB C口数据线,就能轻松实现调试、下载以及串口打印日志等功能。开发板将所有外设全部引出,拓展功能也大幅提升,便于开发者全面评估芯片性能。

若您想获取芯片和开发板的更多详细信息,包括产品特性、技术参数以及价格等,欢迎访问官方网页:http://www.w5500.com/,我们期待与您共同探索W55MH32的无限可能。

wKgZO2iBiBmAe3DyAACpGc5mWX8613.png

第二十八章 W55MH32 Ethernet_Rate_Test示例

本篇文章我们将详细介绍如何在W55MH32芯片上面实现太网测速功能,并通过实战例程,为大家讲解如何通过Jperf工具进行测速。

该例程用到的其他网络协议,例如DHCP请参考相关章节。有关W55MH32的初始化过程,请参考Network Install章节,这里将不再赘述。

1 Jperf简介

JPerf是一个基于 Java的图形化网络性能测试工具,它是 Iperf(一个常用的网络性能测试工具)的图形用户界面(GUI)版本。Iperf是一个流行的开源工具,广泛用于网络带宽、延迟和丢包等性能指标的测试,而 JPerf则通过图形化界面让用户更加方便地进行这些测试,而无需通过命令行操作。

2 Jperf特点

图形化界面: JPerf提供一个直观的用户界面,简化了 Iperf配置和运行过程,使得用户可以更加轻松地进行网络性能测试。

支持多种协议: JPerf 支持 TCP和 UDP协议,允许用户在测试过程中选择不同的协议来模拟不同类型的网络负载。

实时性能监控: JPerf 能够实时显示网络性能数据(如带宽、丢包率、延迟等),帮助用户分析网络状况。

易于配置: 用户可以通过图形化界面轻松配置测试参数,如测试时长、传输数据量、数据包大小等。

跨平台: 作为 Java应用程序,JPerf可以在多种操作系统平台上运行,包括 Windows、Linux 和 macOS。

3影响速率的几点原因

MCU主频

Socket缓存大小

单次传输数据长度

以太网差分线布线

4以太网测速流程

安装Jperf

下载地址:https://nchc.dl.sourceforge.net/project/iperf/jperf/jperf%202.0.0/jperf-2.0.0.zip?viasf=1

安装Jre

下载地址:Java Archive Downloads - Java SE 8u211 and later | Oracle 中国

打开jperf图形界面

注意:必须安装Jre才支持打开图形化界面。

jperf.bat位于Jperf安装目录下:

wKgZO2iB65iAeeNEAAAm9Xxr7ew153.png

配置工作模式以及单位量程:

wKgZO2iB65mAI3H2AAC-fHfsAug121.png

对端发送数据开始测速。

5实现过程

接下来,我们在W55MH32上实现以太网测速功能。

注意:测试实例需要PC端和W55MH32处于同一网段。

步骤1:填充测速数据

 1. for(uint16_t i=0; i< ETHERNET_BUF_MAX_SIZE; i++)
 2.     {
 3.         ethernet_buf[i]?=?65?+ i?%?26;
 4.     }

步骤2:初始化socket缓存

1. uint8_t tx_size[_WIZCHIP_SOCK_NUM_]        ={2,0,0,0,0,0,0,0};
2. uint8_t rx_size[_WIZCHIP_SOCK_NUM_]        ={2,0,0,0,0,0,0,0};
3.     /* Set socket0 send and receive cache to 16KB */
4.     wizchip_init(tx_size, rx_size);
5. 

步骤3:主循环调用do_jperf()函数进行测速测试

do_jperf()函数如下:

 1. void do_jperf(uint8_t sn,uint8_t*buffer_txst,uint8_t*des_ip,uint16_t des_port)
 2. {
 3.     uint32_t len;
 4.     uint16_t port=50000;
 5.     switch(getSn_SR(sn))
 6.     {
 7.     case SOCK_INIT:
 8.         connect(sn, des_ip, des_port);
 9.         printf("%d:Try to connect to the %d.%d.%d.%d : %drn", sn, des_ip[0], des_ip[1], des_ip[2], des_ip[3], des_port);
10.         break;
11.     case SOCK_ESTABLISHED:
12.         if(getSn_IR(sn)&Sn_IR_CON)//// Socket n interrupt register mask; TCP CON interrupt = connection with peer is successful
13.         {
14.             setSn_IR(sn,Sn_IR_CON); // this interrupt should be write the bit cleared to '1'
15.             printf("%d:Connected to - %d.%d.%d.%d : %drn", sn, des_ip[0], des_ip[1], des_ip[2], des_ip[3], des_port);
16.         }
17.         send(sn, buffer_txst, strlen((char*)buffer_txst));// Data send process (User's buffer -> Destination through H/W Tx socket buffer)
18.         len= getSn_RX_RSR(sn);
19.  
20.         if(len>=sizeof(buffer_txst))// Sn_RX_RSR: Socket n Received Size Register, Receiving data length
21.         {
22.             recv(sn, buffer_txst, len);// Data Receive process (H/W Rx socket buffer -> User's buffer)
23.             send(0, buffer_txst, len);
24.         }
25.         elseif(len>0)
26.         {
27.             len= recv(sn, buffer_txst, len);
28.             send(sn, buffer_txst, len);
29.         }
30.  
31.         break;
32.     case SOCK_CLOSE_WAIT:
33.         disconnect(sn);
34.         break;
35.     case SOCK_CLOSED:
36.         socket(sn,Sn_MR_TCP, port++,Sn_MR_ND);
37.         if(port>60000)
38.         {
39.             port=50000;
40.         }
41.         break;
42.     }
43. }

do_jperf()函数创建了一个无时延模式的TCP客户端,在成功连接上服务器之后则不断发送数据。

6运行结果

烧录例程运行后,首先进行了PHY链路检测,然后打印网络地址信息,最后在未连接服务器时,不断打印提示信息,直到连接上所设置的服务器为止:

wKgZPGiB65iATJLcAABp8IGJpaE906.png

接下来,我们看看不同主频、socket缓存以及单次发送数据对速率的影响:

主频:216MHz

socket收发缓存:16KB

单次数据:2048 Byte

测试速率为:6.55Mbits/s

wKgZO2iB65iAVoEZAACq-3fkMjM526.png

主频:216MHz

socket收发缓存:2KB

单次数据:2048 Byte

测试速率为:5.44Mbits/s

wKgZPGiB65iATAwUAACkw0LS9Qw965.png

主频:216MHz

socket收发缓存:16KB

单次数据:512 Byte

测试速率为:6.03Mbits/s

主频:72MHz

socket收发缓存:16KB

单次数据:2048 Byte

测试速率为:4.34Mbits/s

wKgZO2iB65iABUCoAACp06EsorI091.png

7总结

本文讲解了如何在 W55MH32芯片上实现以太网测速功能,通过实战例程展示了借助 Jperf工具进行测速的具体过程,包括填充测速数据、初始化 socket缓存以及在主循环中调用函数进行测试等步骤。文章详细介绍了 Jperf的概念、特点,以及影响以太网速率的因素和测速流程,帮助读者理解其在网络性能测试方面的实际应用价值。

下一篇文章将聚焦在 W55MH32芯片上实现 Modbus TCP协议,解析 Modbus TCP协议的核心原理及在工业通信中的应用,同时通过实战例程讲解如何在 W55MH32上搭建 Modbus TCP服务器,实现与客户端的通信,敬请期待!

WIZnet是一家无晶圆厂半导体公司,成立于 1998年。产品包括互联网处理器 iMCU?,它采用 TOE(TCP/IP卸载引擎)技术,基于独特的专利全硬连线 TCP/IP。iMCU?面向各种应用中的嵌入式互联网设备。

WIZnet在全球拥有 70多家分销商,在香港、韩国、美国设有办事处,提供技术支持和产品营销。

香港办事处管理的区域包括:澳大利亚、印度、土耳其、亚洲(韩国和日本除外)。

审核编辑 黄宇

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

    关注

    5154

    文章

    19713

    浏览量

    318227
  • 以太网
    +关注

    关注

    41

    文章

    5687

    浏览量

    176303
  • Ethernet
    +关注

    关注

    3

    文章

    472

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    第二十八章 RTC——实时时钟

    本文介绍了W55MH32的RTC外设,其为掉电可运行的32位计数器,常用LSE 32.768KHz时钟源,引入UNIX时间戳概念。还介绍相关库函数,及配置RTC、处理中断、显示时间和校准LSI频率的实验。
    的头像 发表于 06-20 14:08 ?685次阅读
    <b class='flag-5'>第二十八章</b> RTC——实时时钟

    火力发电厂水汽分析方法 第二十八部分:有机物的测定(紫外吸收法)

    火力发电厂水汽分析方法 第二十八部分:有机物的测定(紫外吸收法)
    发表于 09-11 01:09

    第二十八讲 数模和模数转换器

    第二十八讲 数模和模数转换器 第8章 数模和模数转换器8.1 概述 8.2 D/A转换器8.2.3 R-2R倒 T形电阻网络D
    发表于 03-30 16:34 ?3164次阅读
    <b class='flag-5'>第二十八</b>讲 数模和模数转换器

    轻生活科技将参加第二十八届广州国际照明展览会(GILE)

    轻生活科技将参加6月9日至12日的第二十八届广州国际照明展览会(GILE),届时我们将展示领先的离线语音控制技术方案
    的头像 发表于 05-30 10:57 ?759次阅读
    轻生活科技将参加<b class='flag-5'>第二十八</b>届广州国际照明展览会(GILE)

    第二W55MH32 DHCP示例

    本文介绍 DHCP?协议,包括其在 IP?网络自动分配参数的功能、便捷配置等特点、工作原理、报文格式和应用场景。通过 W55MH32?实战例程展示动态获取网络地址信息过程,含注册定时器中断、启用模式和获取信息等步骤,烧录后可完成检测与信息打印,PC?端能 PING?通设备。
    的头像 发表于 07-24 09:02 ?164次阅读
    <b class='flag-5'>第二</b>章 <b class='flag-5'>W55MH32</b> DHCP<b class='flag-5'>示例</b>

    第五章 W55MH32 UDP示例

    本文介绍了在 W55MH32?芯片上实现 UDP?通信及数据回环测试的方法。阐述了 UDP?协议的概念、特点、应用场景、报文传输流程和报文结构,展示了实现过程,借助网络调试工具完成测试。
    的头像 发表于 07-24 09:13 ?113次阅读
    第五章 <b class='flag-5'>W55MH32</b> UDP<b class='flag-5'>示例</b>

    第九章 W55MH32 HTTP Server示例

    本文介绍了在 W55MH32?芯片上实现 HTTP Server?功能,并通过浏览器修改其网络地址信息的方法。阐述了 HTTP?协议的概念、特点、应用场景、工作流程、请求方法、响应内容,以及 Web?页面构成和交互方式。展示了在W55MH32上实现的过程。
    的头像 发表于 07-24 09:35 ?136次阅读
    第九章 <b class='flag-5'>W55MH32</b> HTTP Server<b class='flag-5'>示例</b>

    第十五章 W55MH32 SNMP示例

    本文讲解了如何在 W55MH32?芯片上实现 SNMP?功能,通过实战例程展示了使用 MIB Browser?管理 W55MH32?的具体过程,涵盖在 MIB Browser?中创建分支、添加叶子
    的头像 发表于 07-24 10:43 ?173次阅读
    第十五章 <b class='flag-5'>W55MH32</b> SNMP<b class='flag-5'>示例</b>

    十八章 W55MH32 FTP_Server示例

    本文讲解了如何在 W55MH32?芯片上实现 FTP?协议的服务器模式,通过实战例程展示了使用 W55MH32?作为 FTP?服务器与 PC?端进行文件传输、目录操作等功能的过程,涵盖获取网络配置
    的头像 发表于 07-24 11:55 ?83次阅读
    第<b class='flag-5'>十八章</b> <b class='flag-5'>W55MH32</b> FTP_Server<b class='flag-5'>示例</b>

    第二十一章 W55MH32 PHY配置示例

    本文讲解了如何在 W55MH32?芯片上设置不同的 PHY?模式,通过实战例程展示了根据不同传输场景,将 PHY?模式在 100Mbps?全双工、10Mbps?半双工和掉电模式之间切换以降
    的头像 发表于 07-24 13:44 ?143次阅读
    <b class='flag-5'>第二十</b>一章 <b class='flag-5'>W55MH32</b> PHY配置<b class='flag-5'>示例</b>

    第二十二章 W55MH32 MQTT&amp;Aliyun示例

    本文讲解了如何在 W55MH32?芯片上实现 MQTT?协议并连接阿里云平台,通过实战例程展示了从准备工作、连接配置到消息订阅、发布及接收处理的完整过程。文章详细介绍了 MQTT?协议的概念、特点
    的头像 发表于 07-24 14:17 ?169次阅读
    <b class='flag-5'>第二十</b>二章 <b class='flag-5'>W55MH32</b> MQTT&amp;Aliyun<b class='flag-5'>示例</b>

    第二十三章 W55MH32 MQTT_OneNET示例

    本文讲解了如何在 W55MH32?芯片上实现 MQTT?协议并连接 OneNET?平台,通过实战例程展示了从准备工作、连接配置到消息订阅、发布及接收处理的完整过程。文章详细介绍了 MQTT?协议
    的头像 发表于 07-24 14:59 ?151次阅读
    <b class='flag-5'>第二十</b>三章 <b class='flag-5'>W55MH32</b> MQTT_OneNET<b class='flag-5'>示例</b>

    第二十六章 W55MH32?上位机搜索和配置示例

    本文讲解了如何在 W55MH32?芯片上实现上位机搜索和配置功能,通过实战例程展示了使用开源上位机配置工具 SmartConfigTool?搜索局域网中的 W55MH32?并进行网络地址配置的过程
    的头像 发表于 07-24 16:13 ?107次阅读
    <b class='flag-5'>第二十</b>六章 <b class='flag-5'>W55MH32</b>?上位机搜索和配置<b class='flag-5'>示例</b>

    第二十七章 W55MH32?Interrupt示例

    本文讲解了如何在 W55MH32?芯片上使用 TOE?中断功能并进行回环数据测试,通过实战例程展示了从初始化中断引脚、处理中断、开启中断功能到在主循环中运行 TCP?回环服务器的完整过程。文章详细
    的头像 发表于 07-24 16:14 ?105次阅读
    <b class='flag-5'>第二十</b>七章 <b class='flag-5'>W55MH32</b>?Interrupt<b class='flag-5'>示例</b>

    第二十九章 W55MH32 Modbus_TCP_Server示例

    本文讲解了如何在 W55MH32?芯片上实现 Modbus TCP?协议的服务器模式,通过实战例程展示了从初始化 LED?相关函数、主循环调用处理函数到解析处理接收到的报文的完整过程。文章详细介绍了
    的头像 发表于 07-24 16:18 ?100次阅读
    <b class='flag-5'>第二十</b>九章 <b class='flag-5'>W55MH32</b> Modbus_TCP_Server<b class='flag-5'>示例</b>