tag 标签: 问题集锦

相关博文
  • 热度 16
    2014-11-13 11:24
    2463 次阅读|
    0 个评论
    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 2. W5500一个独立端口作为Server模式可以支持多少个客户端连接 问题描述1:W5500一个独立端口端口作为TCP Server模式打开一个端口,此端口已经映射到外网,现在可能有多个客户端连接过来,可以支持多少个客户端连接?经测试,只能支持一个连接,连接上一个客户端后,后连的客户端根本连接不上;而采用ENC28J60采用uip协议时,利用TCP方式监听端口,是可以支持客户端多连接的。不知w5500内部的硬件协议栈能否支持作为server,多个客户端连接过来? 答1:可以这样用,但是要把5500的Socket都设置成TCP Server,然后端口都一致。这样就可以有8个客户连接进来了。 问题描述2:就是说,每个独立端口实际上对应的是一个连接,最多只能有8个连接,对吧? 答2:是的 答3:按照你初始化第一个Socket 0为TCP Server的方式,将其他Socket 1~7 配置成参数一致的TCP Server即可 3. W5500无法清中断 问题描述:这几天一直在调试W5500,MCU用的是STM32F205, 可以正常的收发,非中断方式。 现在改用中断模式,无法清除中断。 用户手册上写,Sn_IR,清除需对应位写1。但此寄存器为只读寄存器,每次对此寄存器进行写操作都会导致看门狗复位。 有没有人遇到类似情况,求教 注:UDP方式 答:问题已解决,是回环测试后又产生了SEND_OK中断,最终因超时引起看门狗复位。 屏蔽发送中断后一切正常。 4. 问一下:无论是通用寄存器中断IR还是socket中断寄存器SN_IR中断的清除都是我们使用MCU对该寄存器进行手动写0XFF么?谢谢哦。期待回信。。。 问题描述:W5500的中断是不是可以理解成二级中断?首先判断是不是通用寄存器IR的中断,如果不是然后判断中断是不是来自SN_IR。如果来自SN那么进行检测SN的中断触发。。检测到中断之后,需要手动的向产生中断的IR寄存器写入0XFF进行中断的清除? 请问是这种思路么? 答1:请看看 W5500中断寄存器的理解 http://www.9mcu.com/9mcubbs/foru … eadtid=1062343 答2:首先,可以类似的说成是二级中断,通用寄存器的中断和Socket中断的细分不同。 其次,清中断就是往对应位上写1。 5. W5500工业方面有使用的吗 问题描述:w5500抗干扰能力怎么样 答:你好, W5500的抗干扰还是很好的,工业客户还是蛮多的。其实,光说的话也没有太大意义,你可以测试评估一下。 你可以给我一个邮箱,我发测试报告给你。 WIZnet的芯片都是工业级芯片。 6. W5500上传数据错误 问题描述1:我现在使用CC2530单片机和MCU通过SPI接口和W5500连接,使用W5500库函数,下载进去程序之后,在电脑中可以ping 通W5500设备,在电脑中打开TCP工具,程序中设置MCU自动上传数据和接收到什么数据就返回什么数据,但是这两个数据都出现错误,不能接收到正常的数据,这个数据通过串口发送出来,都是正常的数据,在TCP工具中偶尔可以见到几包正确的数据,但是大多数时候都是错误数据包,搞不清楚哪里设置错误,请大神指点一下。 答1:你好,你可以用Wireshark抓包看看有无丢包。 如果没有丢包的话,就是说裸数据阶段就出现问题了。 看一下你SPI的速率,试着提升一下SPI速率试一下。有可能你SPI处理数据太慢了导致的。 问题描述2:我单步执行的时候,数据还是错误的,但是没有出现丢包的现象,在内部数据还是正确的,但是执行到W5500发送出来的时候,就是错误的。 //SCK时钟4MHZ,时钟频率/8 U1BAUD = 0×00; // BAUD_M = 0 U1GCR |= 0×11; // BAUD_E = 17 SPI的速率我这是设置的4M,我也尝试着提高了速率,但是没什么效果,减少速率也是不行,大多数数据都是错误的,中间偶尔会出现几包正确数据。 答2:问题已经解决,是库函数没设置好,send_data_processing()和recv_data_processing()中,ptr一开始是16位,因为移位使数据溢出,可以设置成32位,或者在移位的时候,进行强制类型转换的时候,多使用括号,不要因为优先级不同,不能安装自己想要实现的功能来运行。 7. W5500工作一段时间灯全亮 问题描述1:W5500工作一段时间(大概几分钟),有时会出现双灯全亮的现象,此时,拔下网线,灯依旧亮。重启断电后上电,依然灯全亮。需要过很长时间才能恢复。 灯全亮阶段,网口显示断开状态。各DX有遇到过此类问题的吗?如有,是什么原因,该如何解决啊,谢谢! 答1:会不会是有个别的控制引脚悬空了?比较容易受到干扰。 比如reset之类的,状态进入随机,失去控制 问题描述2:ARM和W5500的控制线确实走线较远,这样是不是应该在RESET等信号端加上拉或下拉电阻啊? 答2:但就RESET而言,是应该加一个上拉,给芯片一个上电默认状态! 问题描述3:恩恩,非常感谢!! 继续阅读:http://www.iwiznet.cn/blog/?p=6609   阅读:W5500问题集锦(一) 如有任何问题可随时留言给我们,或发送至WIZnet官方邮箱:wiznetbj@wiznet.co.kr 关注WIZnet更多动态: WIZnet官方微博:http://www.e.weibo.com/wiznet2012
  • 热度 26
    2014-11-13 11:23
    2353 次阅读|
    1 个评论
    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 2. W5500一个独立端口作为Server模式可以支持多少个客户端连接 问题描述1:W5500一个独立端口端口作为TCP Server模式打开一个端口,此端口已经映射到外网,现在可能有多个客户端连接过来,可以支持多少个客户端连接?经测试,只能支持一个连接,连接上一个客户端后,后连的客户端根本连接不上;而采用ENC28J60采用uip协议时,利用TCP方式监听端口,是可以支持客户端多连接的。不知w5500内部的硬件协议栈能否支持作为server,多个客户端连接过来? 答1:可以这样用,但是要把5500的Socket都设置成TCP Server,然后端口都一致。这样就可以有8个客户连接进来了。 问题描述2:就是说,每个独立端口实际上对应的是一个连接,最多只能有8个连接,对吧? 答2:是的 答3:按照你初始化第一个Socket 0为TCP Server的方式,将其他Socket 1~7 配置成参数一致的TCP Server即可 3. W5500无法清中断 问题描述:这几天一直在调试W5500,MCU用的是STM32F205, 可以正常的收发,非中断方式。 现在改用中断模式,无法清除中断。 用户手册上写,Sn_IR,清除需对应位写1。但此寄存器为只读寄存器,每次对此寄存器进行写操作都会导致看门狗复位。 有没有人遇到类似情况,求教 注:UDP方式 答:问题已解决,是回环测试后又产生了SEND_OK中断,最终因超时引起看门狗复位。 屏蔽发送中断后一切正常。 原帖来自:9MCU 4. 问一下:无论是通用寄存器中断IR还是socket中断寄存器SN_IR中断的清除都是我们使用MCU对该寄存器进行手动写0XFF么?谢谢哦。期待回信。。。 问题描述:W5500的中断是不是可以理解成二级中断?首先判断是不是通用寄存器IR的中断,如果不是然后判断中断是不是来自SN_IR。如果来自SN那么进行检测SN的中断触发。。检测到中断之后,需要手动的向产生中断的IR寄存器写入0XFF进行中断的清除? 请问是这种思路么? 答1:请看看 W5500中断寄存器的理解 http://www.9mcu.com/9mcubbs/foru … eadtid=1062343 答2:首先,可以类似的说成是二级中断,通用寄存器的中断和Socket中断的细分不同。 其次,清中断就是往对应位上写1。 5. W5500工业方面有使用的吗 问题描述:w5500抗干扰能力怎么样 答:你好, W5500的抗干扰还是很好的,工业客户还是蛮多的。其实,光说的话也没有太大意义,你可以测试评估一下。 你可以给我一个邮箱,我发测试报告给你。 WIZnet的芯片都是工业级芯片。 6. W5500上传数据错误 问题描述1:我现在使用CC2530单片机和MCU通过SPI接口和W5500连接,使用W5500库函数,下载进去程序之后,在电脑中可以ping 通W5500设备,在电脑中打开TCP工具,程序中设置MCU自动上传数据和接收到什么数据就返回什么数据,但是这两个数据都出现错误,不能接收到正常的数据,这个数据通过串口发送出来,都是正常的数据,在TCP工具中偶尔可以见到几包正确的数据,但是大多数时候都是错误数据包,搞不清楚哪里设置错误,请大神指点一下。 答1:你好,你可以用Wireshark抓包看看有无丢包。 如果没有丢包的话,就是说裸数据阶段就出现问题了。 看一下你SPI的速率,试着提升一下SPI速率试一下。有可能你SPI处理数据太慢了导致的。 问题描述2:我单步执行的时候,数据还是错误的,但是没有出现丢包的现象,在内部数据还是正确的,但是执行到W5500发送出来的时候,就是错误的。 //SCK时钟4MHZ,时钟频率/8 U1BAUD = 0×00; // BAUD_M = 0 U1GCR |= 0×11; // BAUD_E = 17 SPI的速率我这是设置的4M,我也尝试着提高了速率,但是没什么效果,减少速率也是不行,大多数数据都是错误的,中间偶尔会出现几包正确数据。 答2:问题已经解决,是库函数没设置好,send_data_processing()和recv_data_processing()中,ptr一开始是16位,因为移位使数据溢出,可以设置成32位,或者在移位的时候,进行强制类型转换的时候,多使用括号,不要因为优先级不同,不能安装自己想要实现的功能来运行。 7. W5500工作一段时间灯全亮 问题描述1:W5500工作一段时间(大概几分钟),有时会出现双灯全亮的现象,此时,拔下网线,灯依旧亮。重启断电后上电,依然灯全亮。需要过很长时间才能恢复。 灯全亮阶段,网口显示断开状态。各DX有遇到过此类问题的吗?如有,是什么原因,该如何解决啊,谢谢! 答1:会不会是有个别的控制引脚悬空了?比较容易受到干扰。 比如reset之类的,状态进入随机,失去控制 问题描述2:ARM和W5500的控制线确实走线较远,这样是不是应该在RESET等信号端加上拉或下拉电阻啊? 答2:但就RESET而言,是应该加一个上拉,给芯片一个上电默认状态! 问题描述3:恩恩,非常感谢!! 继续阅读:http://www.iwiznet.cn/blog/?p=6609 阅读:W5500问题集锦(一) 如有任何问题可随时留言给我们,或发送至WIZnet官方邮箱:wiznetbj@wiznet.co.kr 关注WIZnet更多动态: WIZnet官方微博:http://www.e.weibo.com/wiznet2012
  • 热度 25
    2013-11-19 16:28
    1537 次阅读|
    0 个评论
    在”WIZnet杯”以太网技术竞赛中,有很多参赛者在使用中对W5500有各种各样的疑问,对于这款WIZnet新推出的以太网芯片,使用中大家是不是也一样存在以下问题呢?来看一看: 1.W5500不支持自动极性变换,有点失望…… 答: 其实,只要对方支持极性变换就可以实现,现在的设备不支持极性变换的很少的。 你要是碰到个别老设备连不上,再换交叉线也不迟。基本上2000年以后的设备都没问题的啦~ 原帖来自:9MCU 2.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不通,也可以先从这两方面着手。 原帖来自:9MCU 3.W5500没指明接收缓冲数据格式,和W5100一样? 问题描述:习惯码字和调试分离,虽然待会调试就知道了,也不妨提出来沟通下。 答:注意SPI帧的不同。 W5100: W5500: 原帖来自:9MCU 4.关于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。代码在这里死循环了!绿色的灯常亮,黄色的闪烁。 相关代码:uint8   getPHYCFGR(void) { return WIZCHIP_READ(PHYCFGR); } uint8  WIZCHIP_READ(uint32 AddrSel) { uint8 ret; WIZCHIP_CRIS_enter(); WIZCHIP_CS_select(); AddrSel |= (_W5500_SPI_READ_ | _W5500_SPI_VDM_OP_); /* //RWB #define _W5500_SPI_READ_            (0×00 2) //OM #define _W5500_SPI_VDM_OP_          0×00 //BSB #define WIZCHIP_CREG_BLOCK          (0×00)         // Common register block 通用寄存器 #define PHYCFGR                     ((0x002E 8) + (WIZCHIP_CREG_BLOCK 3))  //16位地址段+8位控制段 */ WIZCHIP_SPI_write_byte((AddrSel 0x00FF0000)   16); WIZCHIP_SPI_write_byte((AddrSel 0x0000FF00)   8); WIZCHIP_SPI_write_byte((AddrSel 0x000000FF)   0); //8位控制段 ret = WIZCHIP_SPI_read_byte(); WIZCHIP_CS_deselect(); WIZCHIP_CRIS_exit(); return ret; } uint8 WIZCHIP_SPI_read_byte(void) { uint8 data; data = MSP430_SPI_read_byte(); return data; } uint8 MSP430_SPI_read_byte(void) { while (!(UC0IFG UCB0RXIFG)) ; // wait for an rx character? return UCB0RXBUF; // reading clears RXIFG flag } 答: 具体的问题? 开始是一个reset的延时,表示拉低reset脚多长时间使reset引脚生效。 下面那个是检查W5500PHY的状态。看一下网线是插入还是断开状态。你看一下你的While 函数判断过后是否进入死循环。 建议先参考一下官方的STM32+W5500的代码,再转移到MSP430平台上 原帖来自:9MCU 5.W5500io的Keil C工程文件包 参考:9MCU下载   以上问题均来自9MCU,如有任何问题可随时留言给我们,或发送至WIZnet官方邮箱:wiznetbj@wiznet.co.kr 关注WIZnet更多动态: WIZnet官方微博:http://www.e.weibo.com/wiznet2012
  • 热度 20
    2013-5-24 11:08
    968 次阅读|
    0 个评论
    1. WizFi630如何在client模式下将ip packet通过无线传送目标主机 问题详述: 我目前正在开发一款产品,目的是通过贵公司的WizFi630为现有产品增加无线功能。该系统有两个终端,希望通过无线将二者连接起来,其中一台终端是AP,另一台通过网线和WizFi630相连,WizFi630工作在client模式下。需要两个终端进行ip packet的数据交换。不知道WizFi630是否支持该功能。 解答: 如您所说,WizFi630wi支持该功能。 此时WizFi630相当于非AP终端的无线网卡。使用Client模式或AP Client模式,具有NAT功能。 详情参阅WizFi630用户手册。   2. WizFi630如何在client模式下与linux下建立的无线节点进行通信 问题详述: 您好,我在实际的开发中想通过WizFi630模块把以太网的内容发送到linux下创建的access point中,并且通过无线接收access point 发送的命令再转发到以太网,说白了,就是用WizFi630作为一个无线中继模块。linux的access point 不是很稳定,我目前用一个无线路由器作为access point,WizFi630和一台笔记本通过无线连接到路由器,另一台笔记本通过有线连接到wizfi630。连接wizfi630的笔记本的ip是192.168.16.11,是WizFi630分配的。另一台笔记本的ip是192.168.1.87是无线路由分配的。现在从192.168.16.11 ping 192.168.1.87可以,但是从192.168.1.87 ping 192.168.16.11不行,请问如何解决。 解答: 您好,你说的问题是正常现象,下层可以ping通上层,但上层ping不通下层。这个是路由协议所决定的。 您所说的网络拓扑,与WizFi630 连接的PC(192.168.16.11)为通过WizFi630这个无线网卡连接到上层AP。您现在应该可以Ping通WizFi630 Wlan口的IP。 举个简单的例子,您家里的PC 可以Ping 通任意一个网站。但是,这些网站公司向反向ping 通您的电脑是不可以的。   3. WizFi如何恢复成出厂模式 问题详述: 本人对无线路由表做了一些添加后,在浏览器中输入192.168.16.254无法打开控制界面,并且ping 192.168.16.254也无法成功。也尝试使用WIZSmartScript通过串口进行复位,一直是serial command error。感觉WIZSmartScript没有任何用处。现在请问还有什么办法能恢复成出厂模式 解答: 首先,WizFi630恢复出厂设置有2种方式: 1)  软复位: WIZsmart WIZsmart 进入串口配置模式 串口输入+++进入AT command 模式,然后输入WF恢复出厂设置,借着输入WR重启; 2)  硬件复位 复位管脚38: EJT_TDO (复位管脚GPIO17) 另外,我觉得你这个问题,应该是你进入了AT command模式,而不是数据模式。 WIZSmartScirpt 其实就是串口通信,只不过是软件代客户输入AT命令罢了。你可以先确认一下,串口能否通信。可以参考一下,我们的AT command 命令手册。   4.  WIFI模块自己的DHCP的DNS信息无法设置和获取,在Multi-Bridge 模式下DHCP是禁用的。 解答: 当WizFi630 链接上层AP的时候,DNS地址会自送从上层AP获取; 你可以尝试用以下命令配置静态DNS,再试一下RT or RV显示命令:WT0_172.31.254.113_255.255.255.0_192.31.254.113_202.106.46.51 5.  WIFI模块设置为AP-Client模式,用PI命令去连接其他AP时,手册上提示,所要连接的AP必须采用WEP的加密方式,如果采用其他加密方式请使用PU命令,测试发现使用PU命令之后在使用PI命令,返回值依然是4。 请问: PU命令完成的是什么功能?上级AP如果采用除WEP之外的加密方式进行加密,那么该怎么去连接? 解答: PU 是配置WizFi630 的安全加密模式。 如:配置为WPA模式,输入PU_5(WPA)or7(WPA2)_2(TKIP)or3(AES)_1(Default Key)_keyvalue 注:若连上级AP,则需要与上级AP的加密模式相同; PI 是连接AP命令。 注:无论WEP,WAP还是其他安全模式都用此命令连接上级AP,但是除WEP外,其他的安全模式都需要用PU先配置,之后才能用PI连接;   感谢阅读! 与我们更多交流: WIZnet邮箱: wiznetbj@wiznettechnology.com WIZnet中文主页:http://www.iwiznet.cn WIZnet中文博客:http://blog.iwiznet.cn WIZnet企业微博:http://e.weibo.com/wiznet2012
  • 热度 23
    2013-4-24 15:44
    901 次阅读|
    1 个评论
    为大家整理一下 W5200 和 W5300最近客户反馈出现的问题,望对大家有所帮助。 1.  关于W5200 您好,请教一下,我在调试W5200的过程中,出现一种问题,单片机可以成功的读取W5200中寄存器中的数据,但是不能向W5200中写入数据,数据的格式完全符合官方的资料,模拟SPI和硬件SPI我都尝试过,但是效果还是一样!请教一下这是我代码的问题还是其它的问题?   答:关于您的问题,我建议您确认一下,是否确实能够读取 W5200 的寄存器。请按照以下流程确认,并反馈数据予我: 1)  测试 W5200 的 3.3V 及 1.8V 输入管脚电压; 2)   查找数据手册,有一些寄存器是有默认值的,请选取一个带默认值的寄存器读取一下,并用示波器读取一下是否与寄存器的默认值相同,以确认我们确实能够正确读取寄存器; 3)    如果第 2 步成功,请尝试向 01 寄存器写入一个数据,并读取。若不同: → 请依次尝试写入不同的值,查看输出的值是什么?是否有规律? 烦请确认后,我们再来判断一下是代码,还是硬件的问题。 2.  W5200使用问题 w5200配置为每个接收缓冲区为2K,当接收缓冲区满时就不能接收新的数据,这时该如何处理。另外能解释下Sn_TX_RD;Sn_TX_WR;Sn_RX_RD;Sn_RX_WR的意思吗,手册上讲的很不明白。 答: 1)W5200的缓冲区的大小是可以设置的,如果你用不到8个Socket且期望通信速率有所提高,可以将缓冲区重新设置,关闭几个Socket,将部分Socket的缓冲区扩大; 2)W5200的缓冲区的数据是需要你及时发送Send命令发送出去。其写入数据类似于堆栈,如果满了的话从首地址进行覆盖写入; 3)Sn_TX_RD 传输读指针寄存器,显示传输内存里最后一个传输的地址; Sn_TX_WR 传输写指针寄存器,指示当前写入要发送的数据的位置; Socket n的命令寄存器执行SEND命令时,把从当前Sn_TX_RD指针地址到Sn_TX_WR指针地址的数据发送出去,并在发送完成后自动更新Sn_TX_RD的值。因此,在发送完成后,Sn_TX_RD和Sn_TX_WR的值相同。 4)Sn_RX_RD接收读指针寄存器,提供接收数据的位置信息; Sn_RX_WR接收写指针寄存器,提供内部存储器中写入接收数据的位置信息;    3. W5300包处理速度问题 我用的开发板是arm架构,处理器使用s3c2440,网卡使用的是w5300芯片。 驱动使用的是你们官网提供的驱动,驱动已经移植成功了。普通速度下ping,tcp/udp收发都没问题。 现在进行压力测试,用台式机给开发板发网络包,每个包大小为300字节,问题就出来了。 用socket 0工作在mac_raw模式下,最快只能收大约每毫秒 1.2个包,经换算速度大概为2.3Mbps,再快w5300就不工作了。 用socket 1~7,与端口绑定,不工作在mac_raw模式下,则最快大约收取每毫秒 3个包,经换算速度大约为6.87Mbps,300(字节) x 8(bit) x 3000(包/秒钟) / 1024 / 1024 = 6.87Mbps,再快w5300同样不工作。 不工作时,看各个寄存器的值,结果如下: MR = 0x8000, Sn_MR(n) = 0x0 IMR = 0x1, Sn_IMR(n) = 0xFF IR = 0x0, Sn_IR(n) = 0x0 Sn_SSR(n) = 0x00 , Sn_PROTOR = 0x0 这说明socket n口关闭了。 我想问的是,不论是2.3Mbps还是6.87Mbps,都没有达到你们说的使用500字节的数据包,可以达到40Mbps的速度。 这是什么原因呢。 答:感谢您的问题反馈! 我看到您是在用PC给W5300发包。不知您控制W5300的机制是什么样的?有无让W5300及时的传输数据? 如果您PC一直在发包,而W5300不做传输处理的话,容易造成RAM溢出。 另外,您使用了mac_raw模式。上层协议是什么呢?对W5300是如何控制的? 至于W5300的速率也是用户实际使用测试过的。当然,还与主控芯片的接口及处理速率有关。 不过,您的数据显然有些不太正常。 我们可以一起分析一下原因。如仍有问题,请随时联系我们。     感谢关注! 如有任何问题,及时联系我们. WIZnet邮箱:wiznetbj@wiznettechnology.com WIZnet官方主页:       http://www.iwiznet.cn/ WIZnet官方博客:        http://www.iwiznet.cn/ WIZnet企业官方微博:http://e.weibo.com/wiznet2012
相关资源
  • 所需E币: 5
    时间: 2019-12-27 19:10
    大小: 1.35MB
    上传者: givh79_163.com
    C语言常见问题集锦C语言常见问题集原著:SteveSummit翻译:朱群英,孙云修订版0.9.4,2005年6月23日版权所有c2005目录目录i前言xvii1声明和初始化11.1我如何决定使用那种整数类型?...................11.264位机上的64位类型是什么样的?................11.3怎样定义和声明全局变量和函数最好?...............21.4extern在函数声明中是什么意思?.................21.5关键字auto到底有什么用途?...................21.6我似乎不能成功定义一个链表。我试过typedefstruct{char……
  • 所需E币: 5
    时间: 2020-1-4 12:58
    大小: 761.89KB
    上传者: 二不过三
    PCB设计问题集……