当前位置: 首页 > news >正文

关于W5500网卡使用过程的部分问题记录

某个项目中用到了W5500这种自带网络协议栈的网卡芯片,由于该项目开发时间很紧,就临时网上买了一些模块拼凑到了一套系统,经过验证果真这种拼积木的方法只能用在学生实验开发中,真不能拿来做工程应用,硬件太不稳定很容易掉坑。现记录部分发现的问题做下记录:

一、W5500网卡运行一段时间ping不通与SPI总线配置速率高低有关系吗?

发现系统运行一段时间后,网络ping处理器的ip无法ping通且不可恢复,起初简单思考W5500是硬件协议栈出了问题应该与应用软件无关,可能是自制的W5500 RJ-45 线未经过双绞或SPI总线速率过快导致的问题,因此通过将 RJ-45 线双绞并且降低的SPI总线速率。现在仔细想想,ping不通真的与SPI总线配置速率高低有关系吗?答案是无关。
W5500所在单机系统通过以太网的数据流走向示意图见下图:
在这里插入图片描述
5500与处理器间通过spi总线进行交互,而其交互的协议为UDP或TCP应用协议,即W5500只有tcp和udp数据通过spi总线与处理器进行交互。而ping走的icmp协议属于数据链路层协议,应用程序协议下的数据流是网关直接通过水晶头与网卡进行交互,并不通过spi总线,因此,ping不通与处理器软件无关,也与处理器设置的spi总线速率无关。ping不通不是软件的问题,而是网卡水晶头信号干扰或虚接的问题,通过降低spi总线速率并不能解决该问题。
扩展:像ENC28J60、DM9000等这些非硬件协议栈的网卡,由于网络协议栈是由处理器实现,因此我们在使用ping指令时,除了通过水晶头到达网卡后,还需要通过网卡与处理器之间的通信到达处理器协议栈,由协议栈返回ping指令应答,而这实际是通过了spi或者并行总线的。

http://www.lryc.cn/news/197635.html

相关文章:

  • Unity DOTS World Entity ArchType Component EntityManager System概述
  • 最详细STM32,cubeMX 点亮 led
  • 论文阅读:Image-to-Lidar Self-Supervised Distillation for Autonomous Driving Data
  • 前端版本控制工具,常见的Git 和SVN
  • C++ —— Tinyxml2在Vs2017下相关使用2(较文1更复杂,附源码)
  • 阿里内推强推的并发编程学习笔记,原理+实战+面试题,面面俱到!
  • 域名注册查询流程
  • 【Linux学习笔记】代码编辑工具vim
  • Android Boring SSL
  • 中国人民大学与加拿大女王大学金融硕士项目:开启你的金融精英之路
  • HashSet编程小案例,控制生日和姓名。重写HashCode
  • 虚幻阴影整理
  • MySQL数据库(一)
  • C++11 新特性
  • 排查手机应用app微信登录问题不跳转失败原因汇总及其解决方案
  • 软考高级系统架构设计师系列之:数学与经济管理
  • 基于Scrapyd与Gerapy部署scrapy爬虫方案【可用于分布式爬虫部署】
  • ST-SSL:基于自监督学习的交通流预测模型
  • 如何处理C++中的字符串编码和国际化?
  • DH48WK 温控器参数设置
  • 【文档智能】多模态预训练模型及相关数据集汇总
  • 超全整理,性能测试——数据库索引问题定位+分析(详细)
  • 44springboot摄影跟拍预定管理系统
  • Flink之窗口触发机制及自定义Trigger的使用
  • 蓝牙资讯|2024年智能家居新趋势,蓝牙助力智能家居发展
  • 机器学习 | Python实现GA-XGBoost遗传算法优化极限梯度提升树特征分类模型调参
  • 手部关键点检测3:Pytorch实现手部关键点检测(手部姿势估计)含训练代码和数据集
  • 服务日志性能调优,由log引出的巨坑
  • 【VR】【Unity】如何调整Quest2的隐藏系统时间日期
  • C++之设计模式