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

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

3天内不再提示

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

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

扫码添加小助手

加入工程师交流群

单芯片解决方案,开启全新体验——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的无限可能。

wKgZPGiB6tSAIRD0AABj2H6elJA670.png

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

本篇文章我们将详细介绍如何在W55MH32芯片上面实现上位机搜索和配置功能,并通过实战例程,为大家讲解如何通过上位机搜索局域网中的W55MH32,并进行网络地址配置。例程中提供了一个开源的上位机配置工具SmartConfigTool,支持搜索设备,设置网络地址参数以及固件升级等功能。

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

1上位机简介

嵌入式上位机(Embedded Host)是指在嵌入式系统中,作为与嵌入式设备进行通信、控制和数据交换的上位设备。它通常拥有更强的计算能力和存储资源,用于控制和监控下位嵌入式设备(如传感器、执行器、嵌入式控制器等)的运行。

2特点

高效性:上位机配置下位机可以大大提高控制系统的效率。上位机发出控制命令,下位机接收并解释成相应的时序信号来直接控制设备,响应速度快,可靠性高。

实时性:下位机可以实时地响应上位机的控制指令,并对设备进行实时控制,确保系统的稳定性和安全性。同时,下位机也可以实时地向上位机反馈设备状态数据,使得上位机可以及时了解系统状态并进行相应的控制调整。

灵活性:上位机和下位机可以灵活地组合和扩展,以满足不同系统的需求。上位机可以同时连接多个下位机,对它们进行监控、控制和数据处理。同时,下位机也可以根据需要连接多个设备,实现设备的分布式控制。

交互友好:上位机通常具有人机交互界面,为用户提供友好的图形界面或者文本界面,方便用户进行操作、配置和监控。

3应用场景

W55MH32使用NetBIOS协议可以进行以下几种应用:

工业自动化:上位机发出控制指令,下位机接收并解释成相应的时序信号来直接控制设备,响应速度快,可靠性高。上位机可以监控生产过程、发出控制指令、进行数据分析和优化等。下位机可以实时控制设备、采集设备状态数据、接收和执行控制指令等。

物联网:上位机可以远程监控和管理设备、进行数据分析和处理等。下位机可以接收和执行控制指令、采集和传输设备状态数据等。

智能家居:上位机可以发出控制指令、监控家庭网络等。下位机可以接收和执行控制指令、控制智能设备的运行和状态采集等。

医疗设备:上位机可以发出控制指令、远程监控和管理医疗设备等。下位机可以接收和执行控制指令、控制医疗设备的运行和状态采集等。

4搜索和配置的基本工作流程

搜索:上位机通过 UDP广播发送 FIND命令,设备作为下位机在收到后将自身配置信息发送给上位机,上位机收到后呈现获取到的设备信息;

配置:在已经搜索到设备的基础上,上位机向该设备发送 SETT命令后,设备收到后根据上位机显示的网络信息对本地进行重新配置,并在串口显示。

wKgZO2iB6tSAB59CAABBdtX2Qcg508.png

5实现过程

接下来,我们在W55MH32上实现上位机搜索回复以及上位机配置功能。

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

首先在主循环内,调用了do_udp_config()函数。持续地运行do_udp_config()函数。

1. while(1) 2. { 3. do_udp_config(SOCKET_ID);// Run and precess UpperComputer command. 4. } 5.

do_udp_config()函数不断处理 UDP配置相关的操作,包括接收来自上位机的命令,根据命令进行不同的操作,如接收网络信息查询请求并返回网络信息,或者接收网络配置信息并更新本地网络信息等。

do_udp_config()函数如下:

1. void do_udp_config(uint8_t sn) 2. { 3. uint16_t i; 4. uint16_t len=0; 5. uint8_t rip[4]; 6. uint16_t rport; 7. uint16_t local_port =1460; 8. uint8_t sw_version[2]={1,0}; 9. 10. memset(RecvMsg.op,0,sizeof(RecvMsg));// clear RecvMsg 11. 12. switch(getSn_SR(sn)) 13. { 14. case SOCK_UDP: 15. if((len= getSn_RX_RSR(sn))>0) 16. { 17. len= recvfrom(sn,(uint8_t*)&RecvMsg, len, rip,&rport); 18. if(len>sizeof(ConfigMsg)) 19. break; 20. { 21. // FIND: searching, SETT: setting, FIRM: firmware uploading 22. if((RecvMsg.op[0]=='F')&&(RecvMsg.op[1]=='I')&&(RecvMsg.op[2]=='N')&&(RecvMsg.op[3]=='D')) 23. { 24. wizchip_getnetinfo(&netinfo);// get config network infomation. 25. 26. memcpy(ConfigMsg.mac, netinfo.mac,6); 27. memcpy(ConfigMsg.lip, netinfo.ip,4); 28. memcpy(ConfigMsg.gw, netinfo.gw,4); 29. memcpy(ConfigMsg.dns, netinfo.dns,4); 30. memcpy(ConfigMsg.sub, netinfo.sn,4); 31. memcpy(ConfigMsg.sw_ver, sw_version,2); 32. 33. RecvMsg=ConfigMsg; 34. memcpy(RecvMsg.op,"FIND",4); 35. sendto(sn,(uint8_t*)&RecvMsg,sizeof(RecvMsg), rip, rport);// return network info to uppercomputer. 36. printf("Findrn"); 37. } 38. elseif((RecvMsg.op[0]=='S')&&(RecvMsg.op[1]=='E')&&(RecvMsg.op[2]=='T')&&(RecvMsg.op[3]=='T')) 39. { 40. printf("Settrn"); 41. if((RecvMsg.mac[0]==ConfigMsg.mac[0])&&(RecvMsg.mac[1]==ConfigMsg.mac[1])&&(RecvMsg.mac[2]==ConfigMsg.mac[2])&&(RecvMsg.mac[3]==ConfigMsg.mac[3])&&(RecvMsg.mac[4]==ConfigMsg.mac[4])&&(RecvMsg.mac[5]==ConfigMsg.mac[5])) 42. { 43. for(i=0; i<  4; i++) // recv uppercomputer config network info 44. { 45. memcpy(netinfo.ip, RecvMsg.lip, 4); 46. memcpy(netinfo.sn, RecvMsg.sub, 4); 47. memcpy(netinfo.gw, RecvMsg.gw, 4); 48. memcpy(netinfo.dns, RecvMsg.dns, 4); 49. netinfo.dhcp = NETINFO_STATIC; 50. } 51. wizchip_setnetinfo(&netinfo); // write chip 52. printf("From the UpperComputer Config network information :rn"); 53. print_network_information();  // readback and print 54. } 55. } 56. } 57. } 58. 59. break; 60. case SOCK_CLOSED: 61. socket(sn, Sn_MR_UDP, local_port, 0x00); 62. break; 63. } 64. } 65.

首先会运行一个UDP的状态机,当接收到消息时,会判断指令,如果为“FIND”指令,则读取设备的网络地址信息进行回传,如果为“SETT”指令,则将上位机下发的地址更新到W55MH32中。

6运行结果

烧录例程运行后,首先进行了PHY链路检测,然后是通过DHCP获取网络地址并打印网络地址信息,观察串口打印的信息以获取设备运行状态;等待设备打印相关网络信息后,打开ConfigTool上位机工具,点击Search可以看到上位机成功获取并呈现设备信息,然后修改IP地址,点击Setting可以看到串口这边打印了上位机配置后的网络信息,如下图所示:

wKgZPGiB6tSALLa6AABj2H6elJA051.png

上位机查找设备:

wKgZO2iB6tSAJVnjAAB1iufsydc490.png

上位机修改网络配置信息:

wKgZPGiB6tSAWfakAAB1iufsydc128.png

7总结

本文讲解了如何在 W55MH32芯片上实现上位机搜索和配置功能,通过实战例程展示了使用开源上位机配置工具 SmartConfigTool搜索局域网中的 W55MH32并进行网络地址配置的过程。文章详细介绍了上位机的概念、特点、应用场景以及搜索和配置的基本工作流程,帮助读者理解其在嵌入式设备管理中的实际应用价值。

下一篇文章将聚焦在 W55MH32芯片上面使用 TOE中断功能,解析 TOE中断功能的核心原理及应用,同时通过实战例程讲解如何利用中断进行回环数据测试,敬请期待!

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

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

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

审核编辑 黄宇

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

    关注

    5186

    文章

    20146

    浏览量

    328814
  • 以太网
    +关注

    关注

    41

    文章

    5923

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    第二十九章 W55MH32 Modbus_TCP_Server示例

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

    第二十七章 W55MH32 Interrupt示例

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

    第二十五章 W55MH32 TCP_Server_Multi_Socket示例

    本文讲解了如何在 W55MH32 芯片上使用 8 个 socket 实现 TCP 服务器模式,让多个客户端连接进行数据回环测试,通过实战例程展示了从初始化 socket 到监听端口、处理客户端连接
    的头像 发表于 07-24 16:10 738次阅读
    <b class='flag-5'>第二十</b>五章 <b class='flag-5'>W55MH32</b> TCP_Server_Multi_Socket<b class='flag-5'>示例</b>

    第二十三章 W55MH32 MQTT_OneNET示例

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

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

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

    第二十一章 W55MH32 PHY配置示例

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

    第十八章 W55MH32 FTP_Server示例

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

    十六章 W55MH32 PING示例

    本文讲解了如何在 W55MH32 芯片上通过 IPRAW 模式实现 ICMP 协议中的 PING 命令,以进行网络连通性测试,通过实战例程展示了从发送 PING 请求、接收并解析回复到统计结果的完整
    的头像 发表于 07-24 11:41 501次阅读
    第<b class='flag-5'>十六章</b> <b class='flag-5'>W55MH32</b> PING<b class='flag-5'>示例</b>

    第十五章 W55MH32 SNMP示例

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

    第九章 W55MH32 HTTP Server示例

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

    六章 W55MH32 UDP Multicast示例

    本文介绍了在W55MH32芯片上实现UDP组播的原理、应用场景及回环测试方法,并通过实战代码展示了其具体实现过程。下一篇文章将聚焦DNS例程,讲解其工作原理及实现方法,帮助大家更深入地理解网络通信。敬请期待!
    的头像 发表于 07-24 09:19 650次阅读
    第<b class='flag-5'>六章</b> <b class='flag-5'>W55MH32</b> UDP Multicast<b class='flag-5'>示例</b>

    第五章 W55MH32 UDP示例

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

    第二W55MH32 DHCP示例

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

    第二十六章 DAC——输出正弦波

    本文介绍了W55MH32的DAC模块,其可配置8位或12位分辨率。两通道。详解功能框图、参考电压等,还通过实验展示用定时器触发、DMA传输实现双声道正弦波输出,配置含GPIO、DAC等初始化。
    的头像 发表于 06-20 14:06 1052次阅读
    <b class='flag-5'>第二十六章</b> DAC——输出正弦波

    即刻启程,踏上W55MH32高性能以太网单片学习之路!

    即刻启程,踏上W55MH32高性能以太网单片学习之路!即刻开启W55MH32学习之旅!本教系列程配套官方手册与W55MH32L开发板,从外设功能框图解析到代码实操,助你掌握高性能以太
    的头像 发表于 05-07 18:51 834次阅读
    即刻启程,踏上<b class='flag-5'>W55MH32</b>高性能以太网单片<b class='flag-5'>机</b>学习之路!