分享好友 最新动态首页 最新动态分类 切换频道
高性能以太网芯片W5500 数据手册 V1.0(三)
2024-11-07 22:10

    W5500是WIZnet最新推出的一款高性能以太网芯片,发扬了早期芯片W5100 & W5200的所有主要特征。全功能10/100以太网MAC&PHY,全硬件TCP/IP协议处理,8个独立socket,32KB RAM缓存。新的W5500独特处包括一个更快、多功能的SPI接口(80 MHz),主控芯片灵活地利用W5500缓存处理通用的数据,片上RAM比较小的低成本单片机也同样可以。

高性能以太网芯片W5500 数据手册 V1.0(三)

那么,今天给大家继续介绍W5500数据手册的最后一部分。

 

4.2       Socket 端口寄存器

 Sn3_MR (Socket n模式寄存器) [R/W] [0x0000] [0x00]

该寄存器用于配置所有 SOCKET 的选项或协议类型

表格 12 Sn_MR 描述

3是 Socket 编号(01234567.n  设置了 SNUM[2:0]控制位集

is Socket number (0, 1, 2, 3, 4, 5, 6, 7). 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 寄存器。

表格 13 Sn_CR 描述

Sn_IR (Socket n 中断寄存器) [R] [0x0002] [0x00]

Sn_IR 寄 存器用于提供给 Socket n 中断类型信息, 如建立(Establishment)、 终止

(Termination)、接收数据(Receiving data)和超时(Timeout)。当触发一个中断即 Sn_IMR

的对应位是’1′的时候,Sn_IR 的对应位也将会变成‘1’。 如果想把 Sn_IR 位清零的话,主机应该将该位置‘1’。

表格 14 Sn_IR 描述

Sn_SR (Socket n 状态寄存器) [R] [0x0003] [0x00]

Sn_SR 指示了 Socket n 的状态,并根据 Sn_CR 或者一些 TCP 模式下的特殊控制包,

如 SYN,FIN 包而改变。

表格 15 Sn_SR 状态描述

下表显示了 Socket n 状态改变时的临时状态。

表格 16 Sn_SR 临时状态描述

Sn_PORT (Socket n 源端口寄存器) [R/W] [0x0004-0x0005] [0x0000]

该寄存器配置了 Socket n 的源端口号。当 Socket n 工作在 TCP 或 UDP 模式下,该寄

存器生效。注意:必须在 OPEN 命令生效前,完成对该寄存器的设置。 例如 SOCKET 0 的端口=5000(0×1388),配置应如下,

Sn_DHAR (Socket n 目的 MAC 地址寄存器) [R/W] [0x0006-0x000B] [0xFFFFFFFFFFFF]

Sn_DHAR 寄存器指示的为:UDP 模式下,使用 Send_MAC 配置命令,配置 Socket n

的目标主机 MAC 地址;或者 CONNECT/SEND 配置命令,ARP 过程获取到的 MAC 地址。

如 Socket 0 的目标 MAC 地址 = 08.DC.00.01.02.10,配置应如下,

Sn_DIPR (Socket 目标 IP 地址寄存器) [R/W] [0x000C-0x000F] [0x00000000]

Sn_DIPR 配置或指示的为 Socket n 的目标主机 IP 地址,在 TCP/UDP 模式下生效。

在 TCP 客户端模式下,在 ConNECT 配置命令前,该寄存器设置了 TCP 服务器的 IP

地址。

在 TCP 服务器模式下,他显示了在成功建立连接后,TCP 客户端的 IP 地址;

在 UDP 模式下,他配置了对方主机的 IP 地址以供 SEND 或 SEND_MAC 配置命令后接 收 UDP 包。

例) 如 Socket 0 的目标 IP 地址= 192.168.0.11, 配置应如下,

Sn_DPORT (Socket n 目标端口寄存器) [R/W] [0x0010-0x0011] [0x00]

Sn_DPORT 配置或指示了 Socket n 的目标主机端口号,在 TCP/UDP 模式下生效。

在 TCP 客户端模式下,在 ConNET 配置命令前,该寄存器配置了 TCP Server 监听的 端口号。

在 TCP 服务器模式下,他显示了在成功建立连接后,TCP 客户端的端口号;

在 UDP 模式下,他配置了对方主机的端口号以供 SEND 或 SEND_MAC 配置命令后接收

UDP 包。

如 Socket 0 的目标端口号 = 5000(0×1388) ,配置应如下,

Sn_MSSR (Socket n-th 最大分段寄存器) [R/W] [0x0012-0x0013] [0x0000]

该寄存器配置或显示了 Socket n 的最大传输单元 MTU(Maximum Transfer Unit)。

在 TCP/UDP 模式下,默认该寄存器设定的最大传输单元生效。

然而,在 PPPoE 模式下(MR[PPPoE] = ‘1’),该寄存器将取决于 PPPoE 的最大传输单元。

表格 17 Sn_MSSR 描述

当 Socket n 处于 MACRAW 模式时,由于 MTU 不在内部处理,默认的 MTU 将会生效,

因此,当传输的数据比默认的 MTU 大时,主机需要手动的将数据划分成默认 MTU 大小 单元进行传输。

当 Socket n 处于 TCP/UDP 模式,而传输的数据比 MTU 大时,数据将会被自动的划分 成默认 MTU 单元大小传输。

在 UDP 模式下,由于不像 TCP 模式那样涉及到一些连接过程,所以使用了 MTU 配置。 当不同大小的 MTU 数据传输给对方是时,可能会收到 ICMP 包(MTU 分片)。这样的话 IR(FMTU)置‘1’,对方的信息如 MTU 大小以及 IP 地址将分别由 FMTUR 和 UIPR 指定。 如果 IR[MTU] = ‘1’,用户不能发送数据到对方。如果要重新恢复与对方的通讯,可以按 照以下操作:

1.  通过 CLOSED 配置命令关闭 Socket。

2.  设置 Sn_MSS 指定 FMTUR 中的 MTU。

3.  通过 OPEN 配置命令打开 Socket n。

4.  重新与对方通信

例) 如 Socket 0 的 MSS = 1460(0x05B4) , 配置应如下,

Sn_TOS (Socket IP 服务类型寄存器) [R/W] [0x0015] [0x00]

该寄存器设置在 IP 层里 IP header 的 TOS(Type of Service – 服务类型) 字段。它应在执 行 OPEN 命令之前设置。请参考 http://www.iana.org/assignments/ip-parameters.

Sn_TTL (Socket IP 生存时间寄存器) [R/W] [0x0016] [0x80]

该寄存器设置在 IP 层里 IP 头的 TTL(Time-To-Live – 生存时间) 字段。它应在执行

OPEN 命令之前设置。请参考 Uhttp://www.iana.org/assignments/ip-parametersU . Sn_RXBUF_SIZE (Socket n 接收缓存大小寄存器 - Socket n RX Buffer Size Register) [R/W] [0x001E] [0x02]

Sn_RXBUF_SIZE 配置了 Socket n 的接收缓存大小。Socket n 接收缓存区大小可以配置 为 1,2,4,8 和 16Kbytes。如果配置为其他大小,则 W5500 不能正常的从对方主机接 收数据。

即使  Socket  n  的 接收 缓存 大 小初始 默认为  2Kbytes 。 用户仍 然可 以 使用 Sn_RXBUF_SIZE 重新定义。但是所有 Socket 接收缓存(Sn_RXBUF_SIZE)的总大小不能 超过 16Kbytes。否则,将会使得接收异常。

当 所 有 的  Sn_RXBUF_SIZE 配 置 完 成 后 , 就 会 按 照  Socket 0  到  7  的 顺 序 依 次 将

16Kbytes 的接收内存分配给各个 Socket 作为接收缓存使用。

不论 Socket n 的接收缓存配置的大小如何,都可以被 16 位的偏移地址寻址找到。(寻 址范围:0×0000 到 0xFFFF)

Socket 0 RX Buffer Size = 8KB

Sn_TXBUF_SIZE (Socket n 发送缓存大小寄存器) [R/W] [0x001F] [0x02]

Sn_TXBUF_SIZE 配置了 Socket n 的发送缓存大小。Socket n 发送缓存区大小可 以配置为 1,2,4,8 和 16Kbytes。如果配置为其他大小,则 W5500 不能正常给对 方主机发送数据。

即使  Socket  n  的 发送 缓 存 大小 初始默 认 为  2Kbytes 。用 户 仍然 可以使用 Sn_RXBUF_SIZE 重新定义。但是所有 Socket 发送缓存的总大小不能超过 16Kbytes。 否则,将会使得发送异常。

当所有的 Sn_TXBUF_SIZE 配置完成后,就会按照 Socket 0 到 7 的顺序依次将

16Kbytes 的发送内存分配给各个 Socket 作为发送缓存使用。

不论 Socket n 的接发送存配置的大小如何,都可以被 16 位的偏移地址寻址找到。

(寻址范围:0×0000 到 0xFFFF)

例) Socket 0 TX Buffer Size = 4KB

Sn_TX_FSR (Socket n 空闲发送缓存寄存器) [R] [0x0020-0x0021] [0x0800]

Sn_TX_FSR 显 示了 Socket n 发送缓 存的 空闲空 间 大小。 该寄存 器初 始化 配 置为 Sn_TXBUF_SIZE 大小。当传输数据比 Sn_TX_FSR 大时,将不能保存到 Socket n 的发送 缓存中。因为多出来的数据会覆盖之前未传输完成的数据。因此在向 Socket n 发送缓 保存数据之前,需要先检查一下数据大小是否等于或小于其剩余空间,然后再保存数据 到发送缓存并通过 SEND/SEND_MAC 配置命令发送。如果数据比检查到的剩余空间大, 需要将数据划分成小于或等于剩余空间的大小之后,再保存数据到 Socket n 发送缓存。

如果 Sn_MR(P[3:0])不是 TCP 模式(‘0001’),W5500 将计算发送写指针(Sn_TX_WR)和

Socket n 发送读指针之间的空间,并自动将数据划分成相应大小。

如果 Sn_MR(P[3:0])是 TCP 模式(‘0001’),W5500 将计算发送写指针(Sn_TX_WR)与内 部 ACK 指针(指示已经从连接对方接收数据的节点位置)之间的空间。

例) 如 2048(0×0800) 在 S0_TX_FSR 时,

例) In case of 2048(0×0800) in S0_TX_FSR,

Sn_TX_RD (Socket n 发送读指针寄存器) [R] [0x0022-0x0023] [0x0000]

Sn_TX_RD 寄存器可以通过 OPEN 配置命令进行初始化。然而,如果 Sn_MR(P[3:0])是

TCP 模式(‘0001’),该寄存器将会在 TCP 连接期间,重新进行初始化。 该寄存器初始化之后,会根据 SEND 配置命令自增。SEND 配置命令传输的是 Socket n

发送缓存中,当前 Sn_TX_RD 到 Sn_TX_WR 之间保存的数据。在传输完保存的数据之后,

SEND 配置命令会使得 Sn_TX_RD 等于 Sn_TX_WR。当 Sn_TX_RD 增加的值超出最大值

0xFFFF(大于 0×10000 并产生进位),Sn_TX_RD 会忽略进位,仅使用低 16 位的值。

Sn_TX_WR (Socket n 发送写指针寄存器) [R/W] [0x0024-0x0025] [0x0000]

Sn_TX_WD 寄存器可以通过 OPEN 配置命令进行初始化。然而,如果 Sn_MR(P[3:0])是

TCP 模式(‘0001’),该寄存器将会在 TCP 连接期间,重新进行初始化。 该寄存器需要读取或更新如下。

1.  读取发送缓存中将要保存传输数据的首地址。

2.  从 Socket n 的发送缓存对应的首地址开始,保存需要传输的数据;

3.  在保存完传输数据之后,将 Sn_TX_WR 的值增加到传输数据大小。如果增加后, 超过最大值 0xFFFF(比 0×10000 大且产生进位),那么将自动忽略进位,并自动 更新为低 16 位的值。

4.  通过使用 SEND 命令发送保存在 Socket n 发送缓存中的数据。

Sn_RX_RSR (Socket n 空闲接收缓存寄存器) [R] [0x0026-0x0027] [0x0000]

Sn_RX_RSR 显示了 Socket n 接收缓存中已接收和保存的数据大小。

Sn_RX_RSR 不会超过 n_RXBUF_SIZE 大小,且计算的为 Socket n 接收写指针(Sn_RX_WR)

和 Socket n 接收读指针之间的空间大小。 例如 2048(0x0800) 在 S0_RX_RSR 时,

Sn_RX_RD (Socket n 接收读指针寄存器) [R/W] [0x0028-0x0029] [0x0000]

Sn_RX_RD 寄存器可以通过 OPEN 配置命令进行初始化。请确保该寄存器按照以下步 骤读取并更新:

1.  读取保存在接收缓存中数据的首地址;

2.  从保存在 Socket n 接收缓存中数据的首地址开始读取数据;

3.  在读取完毕接收数据,将 Sn_RX_RD 的值更新为所读数据大小。如果增加后的值 超过最大值 0xFFFF,即超过 0×10000 并产生进位,将会忽略进位,只取低 16 位 值。

4.  在接收到 RECV 命令后,将更新后的 Sn_RX_RD 值告知 W5500.

如 2048(0x0800) 在 S0_RX_RD 时,

Sn_RX_WR (Socket n 接收写指针寄存器) [R] [0x002A-0x002B] [0x0000]

Sn_RX_WR 寄存器可以通过 OPEN 配置命令进行初始化。并且随着数据接收自动增加。 如果 Sn_RX_WR 的值增长到超过最大值 0xFFFF(即超过 0×10000 并产生进位),那么

将自动忽略进位,并自动更新为低 16 位的值。 例) 如 2048(0×0800) 在 S0_RX_WR 时,

Sn_IMR (Socket n 中断屏蔽寄存器) [R/W] [0x002C] [0xFF]

Sn_IMR 负责屏蔽 Socket n 的中断。每一位都对应了 Sn_IR 寄存器的相应位。Socket n 的中断触发并且 Sn_IMR 的对应位为‘1’时,Sn_IR 的对应位变为‘1’。如果 Sn_IMR 和 Sn_IR 的对应位均为‘1’且 IR 寄存器的相应为‘1’,INTn 引脚便会拉低并使主机 产生中断。

表格 18 Sn_IMR 描述

Sn_FRAG (Socket n 分段寄存器) [R/W] [0x002D-0x002E] [0x4000]

它设置了 IP 层中 IP 报头的分段字段。 例) Sn_FRAG0 = 0×4000 (不要分段)

Sn_KPALVTR (Socket 在线时间寄存器) [R/W] [0x002F] [0x00]

Sn_KPALVTR 配置了 SOCKET n 的‘KEEP ALIVE(KA)’在线验证心跳包传输时间。他只在

TCP 模式下生效,在其他模式下将会被忽略。单位时间为 5 秒。

KA 包会在 Sn_SR 变为 SOCK_ESTABLISHED 且与对方至少进行过一次收或发的通讯后 进行传输。如果‘Sn_KPALVTR > 0’,W5500 在一定时间周期会自动传输 KA 包以检查 TCP 的连接状态(自动在线验证)。如果‘Sn_KPALVTR = 0’,将不会启动自动在线验 证,主机可以通过 SEND_KEEP 配置命令发送 KA 包(手动在线验证)。在‘Sn_KPALVTR

> 0’时,将会无视手动在线验证。

例)Sn_KPALVTR = 10(会每 50 秒自动发送一次在线验证包)

5          电气规范

5.1       绝对最大额定值

                                       表格 19 绝对最大额定值

*备注:设备加载超过‘绝对最大额定值’时,可能造成永久性损坏。

5.2       绝对最大额定值 (电气灵敏度)

静电释放

表格 20 ESD

静态锁定

                                                 表格 21 静态锁定

5.3       直流特性

                                                       表格 22 直流特性

5.4       功耗

(测试环境: VDD=3.3V, AVDD=3.3V, Ta = 25°C)

表格 23 功耗

5.5       交流特性 

5.5.1     复位时钟

图 22 复位时钟

表格 24 复位时钟

5.5.2     唤醒时间

整流器的唤醒时间为:10us

5.5.3     晶体特性

表格 25 晶体特性

5.5.4     SPI 时钟

图 23 SPI 时钟

表格 26 SPI 时钟

4  理论值速度

即使理论设定值速率为 80MHz,但是高速信号在受电磁串扰和长信号线的影响下可能会失真。目前实测具

有稳定波形的速率,至少能够保证为 33.3MHz.

详情参考 SPI 应用笔记,里面展示了 WIZnet 的测试环境及结果。

5.5.5     变压器特性

表格 27 变压器特性

图 24 变压器类型

5.5.6     极性变换 MDIX

W5500 不支持自动极性变换功能。 因此,用户需要使用直连线与交换机或路由器连接,使用交叉线与终端设备(如服务器,工作站 或其他 W5500)相连。 然而,用户可以使用任何一种类型的网线与具有自动极性变换的其他设备相连。对应接口会自动 纠正不正确的布线。

6   封装描述

图 25 封装描述

注意:1.    以上尺寸不包括模具突出部分;

2.    ( )代表仅供参考;

3.    [ ]基于组装质量

4.    单位:mm

感谢阅读!

W5500相关文章参考:

高性能以太网芯片W5500 数据手册 V1.0(一)

高性能以太网芯片W5500 数据手册 V1.0(二)

更多信息与我们交流:

WIZnet邮箱:http://www.wiznet.co.kr

WIZnet官网:http://www.wiznet.co.kr

最新文章
如何选择合适的邮箱进行OpenAI注册
如今,AI技术的发展已经渗透到了各个领域,并对我们的生活产生了深远的影响。OpenAI作为全球领先的人工智能研究机构,致力于推动AI技术的创新与发展。如果你对AI技术感兴趣,想要注册OpenAI账号,那么一个有效的邮箱是必不可少的。选择合适
12种文本数据采集方法
grabage_0.1_nk提供最基础的采集功能,有经验的开发人员可以将其嵌入到系统模块中用于采集数据。nk版本的内容检查不算完整,只能匹配部分发布时间,对于部分网页将作者,来源,发布时间混合在一起的情况,未能很好的解决。该问题会在将来的
AIGC重塑文旅行业新场景、新业态、新消费
(来源:中陆必得旅游规划)编者按AIGC(人工智能生成内容)在文旅产业中发挥着越来越重要的作用。通过深度学习、自然语言处理和计算机视觉等技术,AIGC能够自动化地分析和理解大量数据,从而生成丰富多样的内容。这不仅提高了内容创作的效
AI代码生成器——Cody
Cody由Sourcegraph开发,是一款人工智能驱动的编码助手,它不仅仅是一个简单的代码完成工具,更是一项功能强大且富有创新精神的工具。其主要优势在于能够深度理解代码编写的上下文,为开发人员提供准确、有意义的建议和评论。 Cody能够利用
会议OA项目之会议审批(亮点功能:将审批人签名转换为电子手写签名图片)
Java实现支持人脸识别的会议签到系统,方便参会人员高效签到,提高会议签到的安全性。采用深度学习进行模型训练以提高识别准确率,需要设计并优化相关的人脸识别算法。基本功能​ 1、支持基本的会议管理功能,包括会议申请、开始会议、会议
用AI绘画,让创意从未如此简单!搜狐简单AI带你开启智能创作之旅
在这个信息化高速发展的时代,创意和效率是任何行业中立足的关键。然而,对于许多人来说,面对日益增多的工作任务,如何高效且富有创意地完成工作成为了不小的挑战。想象这样一个情境:小李,一位营销专员,正在为即将到来的产品发布会寻找
WordPress 发布文章,出现发布失败与更新失败的解决办法
新版的Wordpress出来后,用新版的覆盖了之前老板的文件之后,出现了无法发布文章,更新老文章失败等错误提示。 这是什么原因呢?我通过网络查询,收集了以下原因和解决方法。1.古腾堡编辑器出错 这种情况非
影视建站遇到的坑与修复过程 苹果cms+海螺模板
主题设置后台 安装PHP扩展 后台快捷菜单配置添加 海螺主题设置,/admin.php/admin/conch/theme免费解析网:http://api.momimi.cn/?url=站长交流群:707031200海螺模板完美修复版2020.01.04带模板独立后台管理系统的多功能模板。使用此模板务
空间、算力、数据、场景“模力福地”重磅礼包发布!深圳福田打造人工智能产业高地!
12月11日,“模力福地”行动方案发布会暨人工智能先锋城市核心区高质量推进大会在深业上城城市云客厅举行。深圳市人工智能产业办、重点人工智能企业精英和深港两地专家,共同见证福田区在人工智能领域的重要举措与创新布局。“模力福地,智
扒一扒大模型应用隐形冠军:服务1600 企业、200 业务场景,分分钟就可构建专属应用
白小交 发自 凹非寺量子位 | 公众号 QbitAI服务1600+企业、200+业务场景直接落地。这位大模型应用的隐形冠军不藏了。他们打造大模型应用开发平台,客户能够开箱即用。服务企业覆盖央国企、金融、政务、民生、制造、零售等领域。就在今天,
相关文章
推荐文章
发表评论
0评