WIZnet技术专区
直播中

百步飞剑

11年用户 51经验值
擅长:嵌入式技术
私信 关注

关于W5500接收发送缓存读写的问题

   大家好!本人大学生一枚。正在学习使用W5500。遇到一些问题希望william hill官网 的各位大神能够为我解惑!在下感激不尽!!问题:W5500的发送接收缓存地址是怎么计算的??寄存器Sn_RX_RSR   Sn_RX_RD    Sn_RX_WR 之间用什么关系????




再次表示感谢!!
已退回1积分

回帖(7)

傻彪5213

2014-11-10 10:12:55
缓存地址主要看你怎么分配了,一般默认是从你分配的首地址开始。每个Socket都有自己的缓存,地址范围和起始地址也不一样。一般默认是从Socket0到Socket7 按顺序每个缓存2K,总共16K.如果你想自己从新分配,可以通过Sn_TXBUF_SIZE/Sn_RXBUF_SIZE配置为1、2、4、8、16K.如果是其他值则不能正常收发数据。




Sn_SR是Socket状态寄存器,指示Socketn的状态,比如SOCK_CLOSED/SOCKET_INIT/SOCK_LISTEN
/SOCK_ESTABLISHED等等。
Sn_RX_RD    Sn_RX_WR是Socket n接收读/写指针寄存器,主要是在接收数据的过程中缓存地址变化的一个指针变量。
1 举报

百步飞剑

2014-11-10 22:43:06
引用: 傻彪5213 发表于 2014-11-10 10:12
缓存地址主要看你怎么分配了,一般默认是从你分配的首地址开始。每个Socket都有自己的缓存,地址范围和起始 ...

谢谢!!!!!!!!!!

举报

wmark

2015-10-9 16:19:16
待我再仔细研究一下数据手册后,回答你
举报

陈彬

2016-2-16 00:45:47
引用: 傻彪5213 发表于 2014-11-10 10:12
缓存地址主要看你怎么分配了,一般默认是从你分配的首地址开始。每个Socket都有自己的缓存,地址范围和起始地址也不一样。一般默认是从Socket0到Socket7 按顺序每个缓存2K,总共16K.如果你想自己从新分配,可以通过Sn_TXBUF_SIZE/Sn_RXBUF_SIZE配置为1、2、4、8、16K.如果是其他值则不能正常收发数据。

瞎扯!               
举报

崔晓君

2017-3-22 11:13:58
表示感谢!!
举报

wiliam

2017-5-9 11:46:24
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

sdfan2000

2017-10-27 15:48:02
Sn_RX_RSR和Sn_RX_WR都是W5500芯片自动更新的,Sn_RX_RD在每次open、connect命令后由W5500硬件初始化,自后在单片机读取接收缓存数据后,需要我们自己更新,正常Sn_RX_RSR=Sn_RX_WR-Sn_RX_RD;
举报

更多回帖

发帖
×
20
完善资料,
赚取积分