W5500通讯性能测试

合集下载

W5500通讯性能测试

W5500通讯性能测试

以太网TCP在W5500上的通讯性能测试author: ANGRY KUA MAXQQ : 2518383357Time : 2018-01-12本文为原创,转载请通知作者,文中代码,请勿用于商业用途!1. 概述当前以太网在嵌入式系统中使用范围越来越广,而一个性能稳定,高效率的以太网传输方式能大幅度降低产品开发周期与售后成本。

本文以作者工作环境中使用过的以太网芯片W5500 (硬件协议栈)与LWIP (软件协议栈)作为测试对象,这次只测试W5500性能测试,下次再测试LWIP。

2. 测试环境本次使用STM32F107搭配W5500进行带宽测试,W5500使用SPI 口通讯,时钟可以跑到80M,即理论可以速率为10MB ;下次也使用STM32F107搭配83848跑LWIP做验证测试。

(使用相同的MCU做数据分析才有对比价值,提前透漏,LWIP的性能比W5500要强一点,但W5500价格偏低,占用资源也少一些)STM32F107与W5500的通讯,采用SPI的DMA方式;初始化W5500为四个端口,各个收发缓存为(8K,4K,2K,2K),缓存对收发速度有影响。

测试的端口收发缓存为3. TCP测试数据3.1. W5500上传数据函数switch(getSn_SR(NET_TYPE_TCP)){case SOCK_INIT:liste n( NET_TYPE_TCP);break;case SOCK_ESTABLISHED:if(getSn_IR(NET_TYPE_TCP) & Sn_IR_CON){setSn_IR(NET_TYPE_TCB n」R_CON);}len=getSn_RX_RSR(NET_TYPE_TCP);if(le n>0){len = (le n > NET_BUF_RXSIZE)?NET_BUF_RXSIZE:le n;len = recv(NET_TYPE_TCPet_rxbuf,le n);if(le n > 0){while(1) //作死的发送{send(NET_TYPE_TCntet_rxbuf,1460); //本函数为阻塞函数,发生成功后,本函数才会返回}}}break;case SOCK_FIN_WAIT:case SOCK_CLOSING:case SOCK_TIME_WAIT:case SOCK_CLOSE_WAIT:case SOCK_LAST_ACK:close(NET_TYPE_TCP);break;case SOCK_CLOSED:socket(NET_TYPE_TCSn_MR_TCPnet_sys_i nfo->debug_save_i nfo.n et.port,Sn_MR_ND);break;default:break;}3.2. W5500 上传速率网络传输速率我们使用IPOP工具与360自带的加速球查看,其中IPOP软件以bit为单位,其实际的速度与360监测的一致(6080/8=750KB),即W5500在SPI速率为18兆位/秒的速度下测试,测试出来的通讯速度可达到750K左右,作者使用STM32F407做测试,上传速率可以达到3.5MB以上,STM32F107的通讯速率截图如下:3.3. W5500下载数据函数While⑴{switch(getSn_SR(NET_TYPE_TCP)){case SOCK_INIT:liste n( NET_TYPE_TCP);break;case SOCK_ESTABLISHED: if(getSn_IR(NET_TYPE_TCP) & Sn_IR_CON) { setSn_IR(NET_TYPE_TCS n」R_CON);}len=getSn_RX_RSR(NET_TYPE_TCP);if(le n>0){len = (le n > NET_BUF_RXSIZE)?NET_BUF_RXSIZE:le n; len =recv(NET_TYPE_TCPet_rxbuf,le n);if(le n > 0)memcpy( net_tempbuf, net_rxbuf,le n);// 收到的数据保存//}}break;case SOCK_FIN_WAIT:case SOCK_CLOSING:case SOCK_TIME_WAIT:case SOCK_CLOSE_WAIT:case SOCK_LAST_ACK:close(NET_TYPE_TCP);break;case SOCK_CLOSED:socket(NET_TYPE_TCBn_MR_TCPnet_sys_i nfo->debug_save_i nfo.n et.port,Sn_MR_ND);break;default:break;}}3.4. W5500下载速率测试出来的通讯速度可达到600K左右,但实际波动比较大,受限制与MCU的性能。

W5500问题集锦

W5500问题集锦

W5500问题集锦(一)发布时间:2013-11-27 阅读次数:1445 字体大小: 【小】【中】【大】在”WIZnet杯”以太网技术竞赛中,有很多参赛者在使用中对W5500有各种各样的疑问,对于这款WIZnet新推出的以太网芯片,使用中大家是不是也一样存在以下问题呢?来看一看:1.W5500不支持自动极性变换,有点失望……答:其实,只要对方支持极性变换就可以实现,现在的设备不支持极性变换的很少的。

你要是碰到个别老设备连不上,再换交叉线也不迟。

基本上2000年以后的设备都没问题的啦~原帖来自:9MCU2.W5500+STM32F0无法通信问题描述1:我现在做毕设,老师推荐买了W5500这款芯片,与STM32F0进行通信。

但是根据收集到的资料,修改的例程找不到问题所在。

对于网络这部分,本人小白一个,附上程序,希望大家指导一下!谢谢!答1:先附上W5500的例程问题描述2:如果ping 不通,TCP连接不能建立是代码的问题吗?loopback的程序步骤是怎样的答2:W5500 若想Ping通的话需要保证以下2点:1)物理信道通信正常:初步判定Link 灯及状态灯指示正常。

2)配置了W5500的IP,网关,子网掩码,MAC地址这些特殊寄存器由于W5500内部硬件逻辑电路实现了ARP协议。

所以,一旦收到ping包请求的话,会自动回复。

以上的设置不过是为了保证基本信道及通讯能够建立的而已。

反向而言,如果Ping不通,也可以先从这两方面着手。

原帖来自:9MCU3.W5500没指明接收缓冲数据格式,和W5100一样?问题描述:习惯码字和调试分离,虽然待会调试就知道了,也不妨提出来沟通下。

答:注意SPI帧的不同。

W5100:W5500:原帖来自:9MCU4.关于w5500程序的几个问题问题描述:有几个关于w5500程序的问题想请教大家:void Reset_W5500(void){WIZ_RESET_0; //低电平Delay_us(50); //这个的时间如果设为500us,貌似指示灯就全暗了??WIZ_RESET_1;Delay_ms(200);}while(( (getPHYCFGR()) & PHYCFGR_LNK_ON) == PHYCFGR_LNK_OFF); //PHYCFGR_LNK_OFF是0×00,PHYCFGR_LNK_ON是0×01。

基于FPGA和W5500的串口数据切换系统研究与设计

基于FPGA和W5500的串口数据切换系统研究与设计

基于FPGA和W5500的串口数据切换系统研究与设计基于FPGA和W5500的串口数据切换系统研究与设计摘要:串口作为一种常见的通信接口,在嵌入式系统中广泛应用。

本文基于FPGA(Field Programmable Gate Array)和W5500芯片,设计了一种串口数据切换系统。

该系统能够实现多个串口的数据交换和切换操作,并具备高速传输和稳定性。

关键词:FPGA,W5500,串口,数据切换1. 引言串口是一种用于在设备之间进行数据传输的通信接口,在各种嵌入式系统中得到广泛应用。

然而,常见的串口接口数量有限,无法满足复杂系统对多串口的需求。

为了解决这一问题,本文提出了一种基于FPGA和W5500芯片的串口数据切换系统。

2. FPGA和W5500芯片简介2.1 FPGAFPGA是一种可编程逻辑器件,可以根据需求进行编程,实现不同的电路功能。

其灵活性和高度可定制性使得FPGA成为嵌入式系统设计的重要工具。

2.2 W5500芯片W5500是一种以太网控制器,其集成了MAC(Media Access Control)和PHY(Physical Layer)功能。

该芯片能够实现高速数据传输,并支持TCP/IP协议栈。

3. 系统设计3.1 硬件设计本系统使用FPGA作为核心控制器,通过FPGA与多个串口通信。

为了实现数据切换,本文引入W5500芯片,利用其高速传输和稳定性,实现串口数据的交换和切换。

具体的硬件设计包括FPGA和W5500的连接,以及串口与W5500的连接。

3.2 软件设计本系统的软件设计主要包括FPGA的逻辑设计和W5500的驱动程序设计。

FPGA的逻辑设计根据具体需求,编写程序实现串口数据的交换和切换。

W5500的驱动程序设计则包括数据的接收和发送等功能。

4. 系统性能测试为了验证本系统的性能,对其进行了多方面的测试。

首先,测试系统能够稳定运行并实现串口数据的交换和切换。

其次,测试系统的数据传输速度和实时性,确保系统能够满足实际应用的需求。

YIXIN_W5500模块用户手册 V2

YIXIN_W5500模块用户手册 V2

User ManualYIXIN_W5500模块用户手册全硬件TCP/IP协议以太网模块目录一、YIXIN_W5500以太网模块简介 (1)二、YIXIN_W5500模块排针功能表 (1)三、W5500芯片资源介绍 (2)四、电脑调试软件安装 (3)五、调式方法 (5)1.YIXIN_W5500模块接线方法 (5)2.W5500客户端模式测试 (5)3.W5500服务端模式测试 (12)4.W5500 UDP模式测试 (15)模块购买链接:/item.htm?spm=a1z10.1.w4004-7343112040.8.6OZKhY&id= 40933615687一、YIXIN_W5500以太网模块简介YIXIN_W5500以太网模块是一款基于WIZnet W5500芯片的以太网模块,是一款性能出色、性价比高的以太网模块。

模块集成硬件化TCP/IP协议;内部具有32K字节存储器作为TX/RX缓存;支持10/100Mbps的网络传输速率;支持8个独立端口同时运行;同时模块还支持3.3V或者5V电源供电,当5V供电时还可以输出3.3V的电压,方便用户在不同的单片机系统中使用;模块与单片机系统的通讯方式是简单、方便的SPI总线通信。

W5500的具体性能参数请下文的“W5500芯片资料介绍”。

YIXIN_W5500以太网模块的实物图如图1.1所示:图1.1 YIXIN_W5500模块实物图二、YIXIN_W5500模块排针功能表表2.1 YIXIN_W5500模块排针功能说明注1:W5500的工作电压是3.3V,但I/O口可以承受5V电压。

注2:YIXIN_W5500模块有两种供电方式,即为3.3V供电或者5V供电,当使用5V供电时,“3.3V”引脚将会有3.3V的电压输出。

三、W5500芯片资源介绍W5500芯片是一款采用全硬件TCP/IP协议栈的嵌入式以太网控制器,它能使嵌入式系统通过SPI(串行外设接口)接口轻松地连接到网络。

W5500(socket)寄存器使用说明书

W5500(socket)寄存器使用说明书

Socket 端口寄存器Sn3_MR (Socket n 模式寄存器) [R/W] [0x0000] [0x00]Sn_MR 描述3n 是 Socket 编号(0,1,2,3,4,5,6,7).n 设置了 SNUM[2:0]控制位集 n is Socketnumber (0, 1, 2, 3, 4, 5, 6, 7). n is set ‘SNUM[2:0]’ in Control Bits sets.Sn_CR (Socket n 配置寄存器) [R/W] [0x0001] [0x00]该寄存器用于设置 Socket n 的配置命令如 OPEN、CLOSE、CONNECT、LISTEN、END 和RECEIVE。

经 W5500 识别这一命令后,Sn_CR 寄存器会自动清零为 0×00。

尽管 Sn_CR 被清零为 0×00,但命令仍在处理中。

为了验证该命令是否完成,请检查 Sn_IR 或 Sn_SR 寄IR (中断寄存器) [R/W] [0x0015] [0x00]中断寄存器( IR)指明了中断的状态。

IR 的每一位都是‘0’,直到被主机写为‘1’. 如果 IR 不等于‘0×00’, INTn 引脚将会被拉低。

直到其变为‘0×00’时, INTn 才会被拉高。

S n_SR (Socket n 状态寄存器) [R] [0x0003] [0x00]Sn_SR指示了 Socket n 的状态,并根据 Sn_CR 或者一些TCP模式下的特殊控制包,如 SYN,FIN 包而改变。

Sn_SR临时状态描述Sn_PORT (Socket n 源端口寄存器) [R/W] [0x0004-0x0005] [0x0000]该寄存器配置了 Socket n 的源端口号。

当 Socket n 工作在 TCP 或 UDP 模式下,该寄 存器生效。

注意:必须在 OPEN 命令生效前,完成对该寄存器的设置。

W5500以太网芯片及模块使用

W5500以太网芯片及模块使用

W5500以太网芯片及模块使用
一、模块介绍
是以太网转spi接口的,模块上有3个led和一个复位按钮,灯的含义是:
LINKLED
网络连接指示灯(Link LED)
显示当前连接状态:
低电平:连接建立;
高电平:未连接;
DUPLED
全/半双工指示灯(Duplex LED)
显示当前连接的双工状态:
低电平:全双工状态;
高电平:半双工状态;
ACTLED
活动状态指示灯(Active LED)
显示数据收/发活动时,物理介质子层的载波侦听活动情
况:
低电平:有物理介质子层的载波侦听信号;
高电平:无物理介质子层的载波侦听信号;
但貌似配置成全双工100M的速度也没什么增加,哪里出问题了呢?我现在使用18M的spi,使用wiz官方loopback软件测试速度为5Mb/s左右,好慢啊(/ □ \)
二、模块驱动
注意:在官网上有人共享了github的库函数驱动,不过是C99标准的,这一段Keil的c编译器支持好像有问题,而且对于是库函数很
致命,使用寄存器则无所谓
比如:ctlsocket和ctlwizchip函数的参数会因C99和C89的强转void类型定义不同,使其失效。

eg:0x0000不会错,0x0010可能会篡改成0x4e3c。

一种基于W5500的ModbusTCP服务器系统设计

一种基于W5500的ModbusTCP服务器系统设计

一种基于W5500的ModbusTCP服务器系统设计作者:渠薇韩宗平姜久慧陆毅陶为戈潘瑜韩晓新来源:《江苏理工学院学报》2018年第02期摘要:Modbus协议是由Modicon公司在1979年研发的一种完全开放免费的总线通信协议,目前已经在工业领域得到了广泛应用。

因为现在将Modbus/TCP传输协议投放于工业控制中是可行而方便的,并且它的帧格式较为简单易懂,所以先是简明扼要地介绍了Modbus/TCP 规范以及以太网芯片W5500,最后给出了一个基于W5500的Modbus/TCP服务器的系统设计。

关键词:W5500;Modbus/TCP;服务器;控制系统中图分类号:TP393.09 文献标识码:A 文章编号:2095-7394(2018)02-0052-05近年以来,以太网方面的网络技术发展日新月异,工业控制也已经逐渐走向了集中监控、集散控制的形式,并且以以太网为代表的通信技术正逐渐成为工业控制发展中的新兴方向。

[1]到如今,利用最新网络技术,为工业控制器连网来进行网络管理提供了方便。

Modbus协议是属于电子控制器上的一种网络协议。

因为就现在来看,以太网通信具有价格低、稳定性高和速率高等优点,所以就成为了应用最广而且最受欢迎的通信网络之一[2]。

而不管现代工业控制领域持续不断产生怎样先进的概念,Modbus协议的简单性使它能便于在许多通信媒体上实施应用,从而成为了应用最广泛的工业协议。

1 基于工业以太网的 Modbus/TCP协议1.1 工业以太网通信协议模型现在常见的工业以太网的通信模型如图 1所示[3]。

目前有两种重要的网络参考模型:开放式通信系统互联网(OSI)七层参考模型和TCP五层参考模型。

其中开放式通信系统互联网(OSI)七层参考模型是由国际标准化组织制订,而后者目前则是被国际互联网(Internet)采用的一种通信模型。

OSI参考模型共分为七层,分别是:(1)应用层(英文缩写为APDU);(2)表示层(英文缩写为PPDU);(3)会话层(英文缩写为SPDU);(4)运输层(英文缩写为TPDU);(5)网络层(报文);(6)数据链路层(以帧为单位);(7)物理层。

用 W5500构成的低成本嵌入式 Web服务器

用 W5500构成的低成本嵌入式 Web服务器

用 W5500构成的低成本嵌入式 Web服务器茅胜荣;肖家文;乔东海【摘要】In the era of HTML5 ,the B/S(Browser/Server) model has been applied in many applications with the number of Web server increasing .In the embedded field ,if the client wants to realize the function of the remote monitoring server ,the Web server not only need to parse the user requests ,but also need to make a quick and accurate response to the commands .Based on the OSI reference model and the HTTP communication ,a Web server is established ,which can run in a microcontroller ,without any complex web server framework . It can give a real‐time response to the traditional requests like HTML ,JavaScript and CSS ,and has the characteristics such as low re‐source consumption ,high efficiency ,good security ,low power consumption and low cost .%在HTML5的时代下,随着Web服务器的数量与日俱增,B/S(Browser/Server)模型得到了更加广泛的应用。

W5100S参数差异对比

W5100S参数差异对比
W5100S、W5500、W5100 差异对比
型号 参数
W5500
W5100
W5100S
内部架构
全硬件 TCP / IP 协议 全硬件 TCP / IP 协议 全硬件 TCP / IP 协议 栈+ MAC + PHY 栈+ MAC + PHY 栈+ MAC + PHY
交互接口
SPI
SPI,8bit bus
SPI,并行总线
SOCKET 数
8
4
4
收发缓存
32KB
16KB
16KB
MAX 速率(Mbps)
16
25
25
Sleep mode
O
X
X
Hybrid mode
O
O
O
工作温度
-40℃〜80℃
-40℃〜80℃
-40℃〜80℃
工作电压
3.3V/5V
3.3V/5V
3,3V/5V
性能转换
不支持极性自动转换 支持极性自动转换 支持极性自动转换
48 管脚 LQFP 封装
LQFP80 无铅封装
和 QFN 封装 (无 铅,7x7mm, 0.5mm
间距)
相比目前性价比较高的 W5500 各有千秋,具体对比详情如下。 1. 内部架构: 均为全硬件 TCP / IP 协议栈+ MAC + PHY 2. 交互接口: W5100S 提供 8 位间接总线与支持最高 70MHz 时钟的 SPI 接
LQFP 无铅封装 10. 成本考虑: W5100S 价格上要比 W5500 要低一些。
口 / W5500 支持最高 80MHz 时钟的 SPI 接口 3. Socket 数:W5100S 4 个独立 Socket / W5500 8 个独立 Socket 4. 收发缓存:W5100S 共用 16KB TX RX 缓存/ W5500 共用 32KB TX RX 缓

W5500问题集锦(二)

W5500问题集锦(二)

W5500问题集锦(二)W5500自去年9月推出,已经有一年的时间。

一年间,不乏很多客户纷纷将目光投向了W5500这颗性价比很高的全新硬件TCP/IP以太网芯片,无论是在工控、安防、交通,还是在智能医疗、智能家居等众多领域中,得到了广泛应用及认可。

同时,也收到了很多客户在使用过程中的问题反馈,比如W5500中断问题、切换端口问题,及W5500做服务器,多端口连接等常见问题。

这些,我们都一一帮助大家分析,一同解决!那么,为了提高技术支持效率,也特此将这些问题再次整理给大家,以供分享!期待能有所帮助!1.W5500作为服务器时,如何获取来自连接方的IP地址及端口问题描述:w5500作为服务器时,如何获取来自连接方的IP地址及端口?我怎么没有找到寄存器呢读DIPR 和SIPR都不对,是不是没有查询方法呀?UDP和TCP模式我都试过了,整了一天也没找出明堂来,如果实在不行,只能依靠,谁来连接W5500,谁就在DATA区自报家门了,但这样做感觉有点不是很爽,按说是可以获取到来自连接方的IP地址及端口的比如W5500接在网络上,要对它进行搜索和设置,那么就要UDP广播包,目前可以收到广播包,但量回应的包,去对方收不到,只能怀疑是目标地址和端口没有更新在dipr寄存器了,请支招儿,谢谢!!答1:TCP Server模式下,在连接建立后,由硬件更新目标IP和端口值。

答2:收到信息的前面6个字节即为对方IP地址和端口号。

答3:TCP Server 模式下,可以读取Sn_DIPR和Sn_DPORT来确定连接方的IP及端口。

这个是可以,你可以打印这个地址里的信息来查看。

W5500 As TCP Server原帖来自:9MCU2.W5500一个独立端口作为Server模式可以支持多少个客户端连接问题描述1:W5500一个独立端口端口作为TCP Server模式打开一个端口,此端口已经映射到外网,现在可能有多个客户端连接过来,可以支持多少个客户端连接?经测试,只能支持一个连接,连接上一个客户端后,后连的客户端根本连接不上;而采用ENC28J60采用uip协议时,利用TCP方式监听端口,是可以支持客户端多连接的。

W5500通讯性能测试

W5500通讯性能测试

以太网TCP在W5500上的通讯性能测试author:ANGRY_KUA_MAXQQ :2518383357Time :2018-01-12本文为原创,转载请通知作者,文中代码,请勿用于商业用途!1.概述当前以太网在嵌入式系统中使用范围越来越广,而一个性能稳定,高效率的以太网传输方式能大幅度降低产品开发周期与售后成本。

本文以作者工作环境中使用过的以太网芯片W5500(硬件协议栈)与LWIP(软件协议栈)作为测试对象,这次只测试W5500性能测试,下次再测试LWIP。

2.测试环境本次使用STM32F107搭配W5500进行带宽测试,W5500使用SPI口通讯,时钟可以跑到80M,即理论可以速率为10MB;下次也使用STM32F107搭配83848跑LWIP做(使用相同的MCU做数据分析才有对比价值,提前透漏,LWIP的性能比W5500验证测试。

要强一点,但W5500价格偏低,占用资源也少一些)STM32F107与W5500的通讯,采用SPI的DMA方式;初始化W5500为四个端口,各个收发缓存为(8K,4K,2K,2K),缓存对收发速度有影响。

测试的端口收发缓存为3.TCP测试数据3.1.W5500上传数据函数switch(getSn_SR(NET_TYPE_TCP)){case SOCK_INIT:listen(NET_TYPE_TCP);break;case SOCK_ESTABLISHED:if(getSn_IR(NET_TYPE_TCP) & Sn_IR_CON){setSn_IR(NET_TYPE_TCP, Sn_IR_CON);}len=getSn_RX_RSR(NET_TYPE_TCP);if(len>0){len = (len > NET_BUF_RXSIZE)?NET_BUF_RXSIZE:len;len = recv(NET_TYPE_TCP,net_rxbuf,len);if(len > 0){while(1) //作死的发送{send(NET_TYPE_TCP,net_rxbuf,1460); //本函数为阻塞函数,发生成功后,本函数才会返回}}}break;case SOCK_FIN_WAIT:case SOCK_CLOSING:case SOCK_TIME_WAIT:case SOCK_CLOSE_WAIT:case SOCK_LAST_ACK:close(NET_TYPE_TCP);break;case SOCK_CLOSED:socket(NET_TYPE_TCP,Sn_MR_TCP,net_sys_info->debug_save_.port,Sn_MR_ND);break;default:break;}3.2.W5500上传速率网络传输速率我们使用IPOP工具与360自带的加速球查看,其中IPOP软件以bit为单位,其实际的速度与360监测的一致(6080/8=750KB),即W5500在SPI速率为18兆位/秒的速度下测试,测试出来的通讯速度可达到750K左右,作者使用STM32F407做测试,上传速率可以达到3.5MB以上,STM32F107的通讯速率截图如下:3.3.W5500下载数据函数While(1){switch(getSn_SR(NET_TYPE_TCP)){case SOCK_INIT:listen(NET_TYPE_TCP);break;case SOCK_ESTABLISHED:if(getSn_IR(NET_TYPE_TCP) & Sn_IR_CON){setSn_IR(NET_TYPE_TCP, Sn_IR_CON);}len=getSn_RX_RSR(NET_TYPE_TCP);if(len>0){len = (len > NET_BUF_RXSIZE)?NET_BUF_RXSIZE:len;len = recv(NET_TYPE_TCP,net_rxbuf,len);if(len > 0){memcpy(net_tempbuf,net_rxbuf,len);//收到的数据保存//}}break;case SOCK_FIN_WAIT:case SOCK_CLOSING:case SOCK_TIME_WAIT:case SOCK_CLOSE_WAIT:case SOCK_LAST_ACK:close(NET_TYPE_TCP);break;case SOCK_CLOSED:socket(NET_TYPE_TCP,Sn_MR_TCP,net_sys_info->debug_save_.port,Sn_MR_ND);break;default:break;}}3.4.W5500下载速率测试出来的通讯速度可达到600K左右,但实际波动比较大,受限制与MCU的性能。

w5500中文资料_数据手册_参数

w5500中文资料_数据手册_参数

W5500数据表版本1.0(2013年8月) 55/65可以使用16位偏移地址范围访问Socket n TX缓冲区块从0x0000到0xFFFF,不管配置的大小. (参考Sn_TX_WR& Sn_TX_RD).价值(dec) 0 1 2 4 8 16缓冲区大小 0KB 1KB 2KB 4KB 8KB 16KB Ex)Socket 0 TX缓冲区大小= 4KB 0x001F 0×04 Sn_TX_FSR(Socket n TX自由大小寄存器)[R] [0x0020-0x0021] [0x0800] Sn_TX_FSR表示Socket n TX缓冲块的空闲大小. 它被初始化为配置的大小由Sn_TXBUF_SIZE.数据大于Sn_TX_FSR不应该保存在Socket n TX缓冲区中,因为较大的数据会覆盖以前 的数据保存的数据尚未发送.因此,在将数据保存到Socket n TX之前检查缓冲区,如果数据等于或小于其检查的大小,则传输数据 在Socket n TX缓冲区中保存数据后,发送/ SEND_MAC命令.但是,如果数据是大于其检查尺寸,将数据分成检查尺寸后传输并保 存在Socket n TX缓冲区中.如果Sn_MR(P [3:0])不是TCP模式(“0001”),则会自动计算为 “Socket n TX Write Pointer(Sn_TX_WR)”和“Socket n TX Read”之间的区别指针(Sn_TX_RD)“.如果Sn_MR(P [3:0])为TCP模式 (“0001”),则会自动计算作为 Sn_TX_WR与内部ACK指针之间的区别连接的对等体已经接收到数据点. Ex)在S0_TX_FSR中为 2048(0x0800)的情况下, 0×0020 0×0021 0x08的为0x00 Sn_TX_RD(Socket n TX读指针寄存器)[R] [0x0022-0x0023] [0x0000] Sn_TX_RD由OPEN命令初始化.但是,如果Sn_MR(P [3:0])是TCP模式 W5500数据表版本1.0(2013年8月) W5500 W5500芯片是提供的硬连线TCP / IP嵌入式以太网控制器更容易互联网连接到嵌入式系 统 W5500使用户能够拥有互联网连接在他们的应用程序中只需使用单芯片即可 TCP / IP协议栈,10/100以太网MAC和PHY嵌入式. WIZnet的硬连线TCP / IP是经市场验证的技术,支持TCP,UDP, IPv4,ICMP,ARP,IGMP和PPPoE协议. W5500内置32K字节内 存缓冲区用于以太网数据包处理.如果你使用W5500,你可以通过添加简单的套接字程序来实现以太网应用程序.它的而不是使用任 何其他嵌入式以太网解决方案.用户可以同时使用8个独立的硬件插座.提供SPI(串行外设接口),便于与外部的集成 MCU. W5500 的SPI支持80 MHz速度和新的高效SPI协议高速网络通信.为了降低功耗系统中,W5500提供WOL(网络唤醒)和掉电模式.特征 - 支 持硬连线TCP / IP协议:TCP,UDP,ICMP,IPv4,ARP,IGMP,PPPoE - 同时支持8个独立插座 - 支持省电模式 - 支持通过UDP唤 醒LAN - 支持高速串行外设接口(SPI模式0,3) - 用于TX / RX缓冲器的内部32K字节内存 - 10BaseT / 100BaseTX以太网PHY嵌入式 支持自动协商(全双工,半双工,10和100) - 不支持IP分段 - 3.3V操作,具有5V I / O信号容差 - LED输出(全/半双工,链路,速 度,有效) - 48引脚LQFP无铅封装(7x7mm,0.5mm间距) W5500适用于以下嵌入式应用: - 家庭网络设备:机顶盒,PVR,数字媒体适配器 - 串行到以太网:访问控制,LED显示屏,无线 AP继电器等 - 并行至以太网:POS /迷你打印机,复印机 - USB到以太网:存储设备,网络打印机 - GPIO到以太网:家庭网络传感 器 - 安全系统:DVR,网络摄像机,信息亭 - 工厂和楼宇自动化 - 医提供一站式配套, 解决物料烦恼,万联芯城-以良心做好良芯,专为终端工厂企业客户提 供电子元器件一站式配套报价服务,客户提交物料清单,商城即可整单 报价,整单下单有优惠,万联芯城电子元器件配单服务可以为客户节 省采购成本,满足客户物料需求,丰富的电子元器件供应链体系已为 全国多家终端企业服务,点击进入万联芯城。

w5500芯片

w5500芯片

W5100 是一款多功能的单片网络接口芯片,内部集成有10/100Mbps 以太网控制器,主要应用于高集成、高稳定、高性能和低成本的嵌入式系统中。

使用W5100 可以实现没有操作系统的Internet 连接。

W5100与IEEE802.3 10BASE-T和802.3u 100BASE-TX兼容。

W5100 内部集成了全硬件的、且经过多年市场验证的TCP/IP 协议栈、以太网介质传输层(MAC)和物理层(PHY)。

全硬件TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP 和PPPoE,这些协议已经在很多领域经过了多年的验证。

W5100 内部还集成有16KB 存储器用于数据传输。

使用W5100不需要考虑以太网的控制,只需要进行简单的端口编程。

W5100提供3种接口:直接并行总线、间接并行总线和SPI总线。

W5100与MCU接口非常简单,就像访问外部存储器一样。

20本词条百科名片缺少名片信息, 百科名片缺少图片, 欢迎各位编辑词条,额外获取20个积分。

特性:l 与MCU多种接口选择:直接总线接口、间接总线接口和SPI总线;l 支持硬件TCP/IP协议:TCP, UDP, ICMP, IGMP, IPv4, ARP, PPPoE, Ethernet;I 可选择1:1 YL18-2050S YT37-1107S,YL2J011D,YL2J201A网络变压器l 支持ADSL连接(支持PPPOE协议,带PAP/CHAP验证);l 支持4个独立的端口(sockets)同时连接;l 内部16K字节存储器作TX/RX缓存;l 内嵌10BaseT/100BaseTX以太网物理层,支持自动应答(全双工/半双工模式);l 支持自动极性变换(MDI/MDIX);l 多种指示灯输出(Tx,Rx,Full/Duplex,Collision,Link,Speed);l 0.18μm CMOS工艺;l 3.3V工作电压,I/O口可承受5V电压;l LQFP80无铅封装,符合环保要求;l 工作温度:-45 ~ 80℃工业级。

通讯接口应用笔记3:使用W5500实现ModbusTCP服务器

通讯接口应用笔记3:使用W5500实现ModbusTCP服务器

通讯接⼝应⽤笔记3:使⽤W5500实现ModbusTCP服务器 前⾯我们设计实现了W5500的驱动程序,也讲解了驱动的使⽤⽅式。

在最近⼀次的项⽬应⽤中,正好有⼀个使⽤W5500实现TCP通讯的需求,所以我们就使⽤该驱动程序轻松实现。

这⼀篇中我们就来说⼀说基于我们W5500通讯驱动程序实现TCP通讯的过程。

1、应⽤需求 在本次应⽤中,要求实现⼀个基于W5500的Modbus TCP服务器。

这个需求的描述虽然只有⼀句话,但是这个需求的内容可不简单。

我们⾸先来分析⼀下这个需求的具体内容。

为了实现基于W5500的Modbus TCP服务器,我们必先须基于W5500实现⼀个TCP服务器。

W5500本⾝是带硬件协议栈的,但却并不带TCP服务器。

不过在我们前⾯的关于外设驱动库的系列⽂章中已经封装了W5500的驱动,其中就带有⼀个TCP服务器,我们可以直接采⽤就可以了。

其次我们要在TCP服务器的基础上实现Modbus TCP协议。

关于Modbus协议栈,我们以前的⽂章就讲述过Modbus通讯协议栈的开发问题。

⽽且我们已经将我们开发的Modbus通讯协议栈开源。

其中已经封装了Modbus TCP服务器对象,所以我们直接采⽤这⼀Modbus通讯协议栈就可以了。

有了驱动和协议栈,我们还需要考虑应⽤层⾯的具体问题,⽽且也只需要考虑应⽤层⾯的具体问题。

这⾥就看出我们前⾯封装外设驱动和Modbus通讯协议栈的价值所在了。

关于应⽤层⾯的问题我们主要需要重点考虑⼏个问题: 第⼀,数据的存储类型及地址范围。

我们知道Modbus协议常见的数据类型有4种。

我们需要考虑在系统中需要使⽤到的类型及地址,这将决定Modbus协议数据处理回调函数的实现。

第⼆,⽹络配置问题,我们需要通过⽹络访问这台下位机就需要要为其配置⽹络。

这存在静态配置,动态配置和系统⾃动分配的问题。

作为服务器,我们⼀般不会希望让系统⾃动分配。

所以我们需要考虑的是如何⽅便使⽤者为其分配地址的问题。

w5500 处理流程

w5500 处理流程

w5500 处理流程W5500是一款基于TCP/IP协议的以太网控制器芯片,广泛应用于嵌入式系统中的网络通信。

它提供了丰富的接口和功能,可以实现网络连接、数据传输和网络管理等功能。

下面将详细介绍W5500的处理流程。

1. 初始化:在系统上电或复位后,W5500会进行初始化操作。

首先,它会检查硬件连接是否正确,包括电源、晶振、引脚等。

然后,它会进行内部寄存器的初始化,设置默认参数和配置。

最后,它会启动网络接口,准备接收和发送数据。

2. 建立连接:当W5500初始化完成后,它可以开始建立网络连接。

首先,它会监听网络中的广播消息,寻找可用的路由器或网关。

一旦找到合适的设备,它会发送连接请求,并等待对方的响应。

如果对方同意连接,W5500会与对方建立物理连接,并进行握手过程,确保双方的身份和通信参数一致。

3. 数据传输:一旦建立了连接,W5500就可以开始进行数据传输了。

它支持TCP和UDP两种传输协议,可以根据应用需求选择合适的协议。

在数据传输过程中,W5500会根据协议要求进行数据的封装和解封装操作。

对于TCP协议,它会进行序列号的管理和确认机制,确保数据的可靠传输。

对于UDP协议,它会提供无连接的数据报文传输服务。

4. 网络管理:除了数据传输,W5500还提供了一些网络管理功能。

例如,它可以实现ARP(地址解析协议)功能,根据IP 地址获取物理地址。

它还可以实现IP和MAC地址的过滤功能,防止非法设备的接入。

此外,它还支持DHCP(动态主机配置协议),可以自动获取IP地址和其他网络配置信息。

5. 错误处理:在网络通信过程中,可能会出现各种错误和异常情况。

W5500提供了错误处理机制,可以检测和处理这些错误。

例如,它可以检测到物理连接中断、超时、数据丢失等错误,并采取相应的措施进行处理。

它还可以检测到网络层的错误,如IP地址冲突、路由不可达等,并返回相应的错误信息给上层应用。

6. 关闭连接:当数据传输完成后,或者出现异常情况需要关闭连接时,W5500会执行关闭连接的操作。

W5500模块用户手册

W5500模块用户手册

User ManualYIXIN_W5500模块用户手册全硬件TCP/IP协议以太网模块目录一、YIXIN_W5500以太网模块简介 (1)二、YIXIN_W5500模块排针功能表 (1)三、W5500芯片资源介绍 (2)四、电脑调试软件安装 (3)五、调式方法 (5)1.YIXIN_W5500模块接线方法 (5)2.W5500客户端模式测试 (5)3.W5500服务端模式测试 (12)4.W5500 UDP模式测试 (15)5.使用手机调试W5500模块 (19)一、YIXIN_W5500以太网模块简介YIXIN_W5500以太网模块是一款基于WIZnet W5500芯片的以太网模块,是一款性能出色、性价比高的以太网模块。

模块集成硬件化TCP/IP协议;内部具有32K字节存储器作为TX/RX缓存;支持10/100Mbps的网络传输速率;支持8个独立端口同时运行;同时模块还支持3.3V或者5V电源供电,当5V供电时还可以输出3.3V的电压,方便用户在不同的单片机系统中使用;模块与单片机系统的通讯方式是简单、方便的SPI总线通信。

W5500的具体性能参数请下文的“W5500芯片资料介绍”。

YIXIN_W5500以太网模块的实物图如图1.1所示:图1.1 YIXIN_W5500模块实物图二、YIXIN_W5500模块排针功能表表2.1 YIXIN_W5500模块排针功能说明注1:W5500的工作电压是3.3V,但I/O口可以承受5V电压。

注2:YIXIN_W5500模块有两种供电方式,即为3.3V供电或者5V供电,当使用5V供电时,“3.3V”引脚将会有3.3V的电压输出。

三、W5500芯片资源介绍W5500芯片是一款采用全硬件TCP/IP协议栈的嵌入式以太网控制器,它能使嵌入式系统通过SPI(串行外设接口)接口轻松地连接到网络。

W5500具有完整的TCP/IP协议栈和10/100Mbps以太网网络层(MAC)和物理层(PHY),因此W5500特别适合那些需要使用单片机来实现互联网功能的客户。

以太网接口芯片W5500与ENC28J60对比

以太网接口芯片W5500与ENC28J60对比

以太网接口芯片W5500与ENC28J60对比以太网接口芯片W5500与ENC28J60对比目前较为成熟的单片机接入以太网方案:W5100和ENC28J60,都是被常常使用到的芯片,这两种方案也可以说是硬件协议栈和软件协议栈的典型代表,都经得住市场考验。

除了在传统单片机的以太网接入中被广泛使用,也能看到他们在开源硬件的以太网扩展以及物联网应用等方面发挥的重要作用。

W5500是WIZnet最新的以太网芯片,这里就拿W5500来做比较。

表1为W5500与ENC28J60基本参数对比表。

表1 W5500于ENC28J60基本参数对比1、硬件参数对比(1)ENC28J60芯片结构方面,结构比较简单,通过内置MAC+PHY芯片来实现简单的以太网物理层连接,用户需要自己创建或市场上的第三方库方能实现应用层的设计;PHY芯片方面,内置了一块10M BASE-T 芯片,基本可以满足目前通信需要;接口方面,采用最高10MHz的SPI接口;缓存方面,ENC28J60仅提供8KB内部收发缓存,在目前处理大量数据要求的背景下显得捉襟见肘。

(2)W5500芯片结构方面,内部由TCP/IP协议栈+MAC+PHY构成,拥有非常完善的官方应用库,极大缩短开发周期,可以完美实现以太网接入要求;PHY芯片方面,10M/100M BASE-T自适应芯片让W5500表现更为出色;接口方面,W5500采用新的高效SPI协议支持80MHz 速率;缓存方面,W5500内置32KB收发缓存,用户可以同时使用8个硬件Socket独立通信,且各个Socket之间互不影响。

2、TCP/IP协议栈ENC28J60采用的是传统的软协议操作,需要主控MCU不断的响应中断,这在很大程度上占用了MCU的资源来跑软协议栈。

经过测试发现,随着需要响应的事件增多,MCU的处理效率直线下降,会严重影响通信质量。

W5500采用的是最新的TOE(TCP卸载引擎)技术,不同于传统的软协议栈,通过内置TCP/IP硬件协议栈也就是硬件逻辑电路,在W5500芯片内完成TCP/IP握手请求,基本上不占用MCU内部资源,能够极大地提高MCU工作效率。

W5500网络扩展板介绍

W5500网络扩展板介绍

W5500网络扩展板介绍
W5500网络扩展板集成了一个硬件TCP/IP协议栈芯片W5500以及一个含有网络变压器的RJ-45(HR911105A)。

其中,W5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易的互联网连接方案.使用硬件逻辑门电路实现TCP/IP协议栈的传输层及网络层(如:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE等协议),并集成了数据链路层,物理层,以及32K字节片上RAM作为数据收发缓存。

使得上位机主控芯片,只需承担TCP/IP应用层控制信息的处理任务。

从而大大节省了上位机对于数据复制、协议处理和中断处理等方面的工作量,提升了系统利用率及可靠性。

W5500支持同时的8个socket,方便和不同的IP和设备进行通讯;为了减少系统能耗,W5500提供了网络唤醒模式(WOL)及掉电模式供客户选择使用;W5500是非可攻击性的硬件网络引擎,可防止类似于洪流,诈骗式及注入式网络攻击,提高了网络安全;
W5500网络扩展板为了方便测试,选用标准的接口是2.54mm的插针,并在此2X6的插针上集成了供电和80MHz高速SPI,非常方便与您的MCU结合测试;针脚排序如下:
我们基于W5500网络扩展板+STM32平台做了很多参考例程,包含TCP/UDP socket 通讯,SMTP,NTP,NetBios,HTTP_Server,HTTP_Client等丰富的应用,并有配套视频可供参考。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以太网
author:ANGRY_KUA_MAX
QQ:2518383357
Time:2018-01-12
本文为原创,转载请通知作者,文中代码,请勿用于商业用途!
1.
当前以太网在嵌入式系统中使用范围越来越广,而一个性能稳定,高效率的以太网传输方式能大幅度降低产品开发周期与售后成本。
本文以作者工作环境中使用过的以太网芯片W5500(硬件协议栈)与LWIP(软件协议栈)作为测试对象,这次只测试W5500性能测试,下次再测试LWIP。
2.
本次使用STM32F107搭配W5500进行带宽测试,W5500使用SPI口通讯,时钟可以跑到80M,即理论可以速率为10MB;下次也使用STM32F107搭配83848跑LWIP做验证测试。(使用相同的MCU做数据分析才有对比价值,提前透漏,LWIP的性能比W5500要强一点,但W5500价格偏低,占用资源也少一些)
case SOCK_CLOSING:
case SOCK_TIME_WAIT:
case SOCK_CLOSE_WAIT:
case SOCK_LAST_ACK:
close(NET_TYPE_TCP);
break;
case SOCK_CLOSED:
socket(NET_TYPE_TCP,Sn_MR_TCP,net_sys_info->debug_save_.port,Sn_MR_ND);
STM32F107与W5500的通讯,采用SPI的DMA方式;初始化W5500为四个端口,各个收发缓存为(8K,4K,2K,2K),缓存对收发速度有影响。测试的端口收发缓存为
3.
3.1.
switch(getSn_SR(NET_TYPE_TCP))
{
case SOCK_INIT:
listen(NET_TYPE_TCP);
len = recv(NET_TYPE_TCP,net_rxbuf,len);
if(len > 0)
{
while(1) //作死的发送
{
send(NET_TYPE_TCP,net_rxbuf,1460); //本函数为阻塞函数,发生成功后,本函数才会返回
}
}
}
break;
case SOCK_FIN_WAIT:
break;
case SOCK_ESTABLISHED:
if(getSn_IR(NET_TYPE_TCP) & Sn_IR_CON)
{
setSn_IR(NET_TYPE_TCP, Sn_IR_CON);
}
len=getSn_RX_RSR(NET_TYPE_TCP);
if(len>0)
{
len = (len > NET_BUF_RXSIZE)?NET_BUF_RXSIZE:len;
break;
default:
break;
}
3.2.
网络传输速率我们使用IPOP工具与360自带的加速球查看,其中IPOP软件以bit为单位,其实际的速度与360监测的一致(6080/8=750KB),即W5500在SPI速率为18兆位/秒的速度下测试,测试出来的通讯速度可达到750K左右,作者使用STM32F407做测试,上传速率可以达到3.5MB以上,STM32F107的通讯速率截图如下:
socket(NET_TYPE_TCP,Sn_MR_TCP,net_sys_info->debug_save_.port,Sn_MR_ND);
break;
default:
break;
}
}
3.4.
测试出来的通讯速度可达到600K左右,但实际波动比较大,受限制与MCU的性能。
4.
作者在使用W5500的过程中,发现使用其tcp的上传数据存在死机的Bug,MCU在主动传输数据给上位机,若此时将网线断开或者上位机直接关闭sock,则MCU直接死掉,而且是导致MCU直接死掉,使用看门狗都无法恢复的那种。至于为什么MCU会死掉,又怎么解决这个MCU死机的问题,欢迎联系讨论。
3.3.
While(1)
{
switch(getSn_SR(NET_TYPE_TCP))
{
case SOCK_INIT:
listen(NET_TYPE_TCP);
break;casBiblioteka SOCK_ESTABLISHED:
if(getSn_IR(NET_TYPE_TCP) & Sn_IR_CON)
{
setSn_IR(NET_TYPE_TCP, Sn_IR_CON);
//
}
}
break;
case SOCK_FIN_WAIT:
case SOCK_CLOSING:
case SOCK_TIME_WAIT:
case SOCK_CLOSE_WAIT:
case SOCK_LAST_ACK:
close(NET_TYPE_TCP);
break;
case SOCK_CLOSED:
}
len=getSn_RX_RSR(NET_TYPE_TCP);
if(len>0)
{
len = (len > NET_BUF_RXSIZE)?NET_BUF_RXSIZE:len;
len = recv(NET_TYPE_TCP,net_rxbuf,len);
if(len > 0)
{
memcpy(net_tempbuf,net_rxbuf,len);//收到的数据保存
相关文档
最新文档