0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于DWC_ether_qos的以太网驱动开发-数据流验证过程

嵌入式USB开发 来源:嵌入式Lee 作者:嵌入式Lee 2023-08-31 08:41 次阅读

转自公众号欢迎关注

https://mp.weixin.qq.com/s/klrHhaLMM_0W3FGVwHXFkA

基于DWC_ether_qos的以太网驱动开发-数据流验证过程 (qq.com)

一.前言

以太网驱动的编写与调试是以数据流为导向的,数据流的确认我们可以采取层层推进的方式进行验证。即先验证MAC层,再验证PHY层,再验证接具体的设备比如PC收发数据。

如下所示

wKgaomTv7TmARPccAAB715-4tFs084.png

二.MAC层回环

MAC层回环可以确认MAC的DMA和PHY接口等是否工作正常.

MAC层回环即MAC的MII接口内部回环,不到外部PHY上,但是也验证到了MAC的PHY接口。

见手册16 Using the Loopback Mode

使能MAC回环需要配置寄存器MAC_Configuration的LM位为1

wKgZomTv7TmAemNZAAC08pFmVCw142.png

有以下需要注意的地方:

1.只能使用全双工模式

2.MAC回环也需要RXC时钟,正常RXC时钟来源于PHY,所以要不就使用PHY正常工作,要不就使用其他方式提供RXC时钟。很多时候MAC回环不通就是RXC或者TXC没有,所以先使用示波器确认这两个信号

对于RTL8211F可以通过如下寄存器查看RXC是否输出

wKgaomTv7TqAYgVqAAJNGpil5zU184.png

同时确认如下寄存器是否是LPI停止了RXC

最好如下寄存器按照默认配置为0,即LPI时不停止RXC

wKgZomTv7TuAM6COAACikgoDESI795.png

还有需要注意的是我这里实测是要接上网线到电脑,Link OK状态BMSR的bit2为1,才能MAC回环。否则MAC回环不通。

3.不要回环大包

三.PHY层回环

配置PHY寄存器0的bit14为1

wKgaomTv7TuAToDHAAHzsZNacgM975.png

四.ARP测试数据收发

发送ARP请求,电脑会自动返回ARP响应以测试回路。

ARP请求包格式如下

DA 6字节目的MAC地址,设置为全FF广播
SA 6字节源MAC地址
Type 2字节Type 0x0806
HWType 2字节 0x0001
ProtocolType 2字节0x0800
HWSize 1字节0x06
ProtocolSize 1字节0x04
Opcode 2字节0x0001
6字节发送端MAC地址
4字节发送端IP地址
6字节目的端MAC地址,未知所以全0
4字节目的端IP地址
18字节填充0,使得包长(DA到FCS)64字节

ARP响应包,和请求对比Opcode不一样,MAC和IP的源和目的反向。

DA 6字节目的MAC地址
SA 6字节源MAC地址
Type 2字节Type 0x0806
HWType 2字节 0x0001
ProtocolType 2字节0x0800
HWSize 1字节0x06
ProtocolSize 1字节0x04
Opcode 2字节0x0002
6字节发送端MAC地址
4字节发送端IP地址
6字节目的端MAC地址,未知所以全0
4字节目的端IP地址
18字节填充0,使得包长(DA到FCS)64字节

1.注意最低64字节的帧长要求

TDES3的CPC设置为00可以自动填充。

wKgZomTv7TuAYlF_AAJHv81cH2A532.png

2.使用wireshark抓包确认

wKgaomTv7TyAeo__AAFrOXIeDvk285.png

wKgZomTv7TyAew9rAAFNcBRl-Zg050.png

五.总结

1.MAC层回环不通,则确认RXC和TXC是否有时钟,确认DMA_Debug_Status0的收发状态和描述符的相关寄存器(后面会单独详讲收发的调试)。

2.PHY层回环不通则确认PHY是否处于LINK Ok状态,逻辑分析仪监控MII接口等。

3.ARP测试不通,则确认发送包是否填充到了64字节;确认网线,硬件分析仪抓包等。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4982

    文章

    18281

    浏览量

    288459
  • 以太网
    +关注

    关注

    40

    文章

    5076

    浏览量

    166235
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117722
  • 数据流
    +关注

    关注

    0

    文章

    112

    浏览量

    14208
  • 驱动开发
    +关注

    关注

    0

    文章

    129

    浏览量

    12010
收藏 人收藏

    评论

    相关推荐

    基于DWC_ether_qos以太网驱动开发-MAC帧格式介绍

    本文转自公众号,欢迎关注 基于DWC_ether_qos以太网驱动开发-MAC帧格式介绍 (qq.com) 一.前言   在以太网
    的头像 发表于 08-30 09:23 1280次阅读
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太网</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-MAC帧格式介绍

    基于DWC_ether_qos以太网驱动开发-MDIO驱动编写与测试

    本文转自公众号欢迎关注 基于DWC_ether_qos以太网驱动开发-MDIO驱动编写与测试 一.前言
    的头像 发表于 08-30 09:37 2271次阅读
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太网</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-MDIO<b class='flag-5'>驱动</b>编写与测试

    基于DWC_ether_qos以太网驱动开发-描述符链表介绍

    本文转自公众号欢迎关注 一.描述符概述 1.0 前言 对于DWC Ethernet QoS驱动的编写来说,初始化完成之后,核心操作就是DMA的描述符链表配置(linked list
    的头像 发表于 08-30 09:39 2713次阅读
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太网</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-描述符链表介绍

    基于DWC_ether_qos以太网驱动开发-收发驱动编写与调试

    本文转自公众号,欢迎关注 基于DWC_ether_qos以太网驱动开发-收发驱动编写与调试 (qq.com) https://mp.wei
    的头像 发表于 09-05 08:47 1364次阅读
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太网</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-收发<b class='flag-5'>驱动</b>编写与调试

    基于DWC_ether_qos以太网驱动开发-无OS环境移植LWIP

    本文转自公众号欢迎关注 基于DWC_ether_qos以太网驱动开发-无OS环境移植LWIP (qq.com) https://mp.weixin.qq.com
    的头像 发表于 09-06 08:40 804次阅读
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太网</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-无OS环境移植LWIP

    基于DWC_ether_qos以太网驱动开发-LWIP的堆管理介绍

    本文转自公众号欢迎关注 基于DWC_ether_qos以太网驱动开发-LWIP的堆管理介绍 (qq.com) https://mp.weixin.qq.com
    的头像 发表于 09-08 08:40 765次阅读
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太网</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-LWIP的堆管理介绍

    基于DWC_ether_qos以太网驱动开发-RTOS环境移植LWIP与性能测试

    本文转自公众号,欢迎关注 基于DWC_ether_qos以太网驱动开发-RTOS环境移植LWIP与性能测试 (qq.com) https://mp.weixin.qq.com
    的头像 发表于 09-11 11:20 1094次阅读
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太网</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-RTOS环境移植LWIP与性能测试

    基于DWC_ether_qos以太网驱动开发-LWIP在PC上进行开发调试

    本文转自公众号欢迎关注 基于DWC_ether_qos以太网驱动开发-LWIP在PC上进行开发调试 (qq.com) https://mp
    的头像 发表于 09-11 08:40 1105次阅读
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太网</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-LWIP在PC上进行<b class='flag-5'>开发</b>调试

    电信级以太网QoS的解决思路与方案

    根据实时业务的特征提出改进实时业务交换算法的思路。【关键词】:准同步;;中继;;呼叫接纳控制;;资源确认【DOI】:CNKI:SUN:DXKB.0.2010-02-011【正文快照】:电信级以太网
    发表于 04-24 09:10

    以太网和工业以太网的区别

    网络发送灌装数据,以确保瓶子按照预期进行灌装。当使用以太网时,数据流将被分成较短的部分或帧,每部分包含特定信息,例如数据以太网技术的其他术
    发表于 10-24 10:41

    如何去验证在ART-PI开发板的以太网(ETH)驱动

    文件夹下的,所以我们需要稍作修改。二、编译下载验证可以看到以太网已经初始化成功。插入网线,可以已经连接上了并且可以看到网络信息。输入 ifconfig 命令可以看到以太网网卡以及 wifi 网卡都已经挂载到了设备中,并且默认为
    发表于 09-22 11:41

    设计软件核心以太网服务质量数据手册免费下载

    本文描述Synopsys设计软件核心以太网服务质量DWC以太网QoS核心5.10A。DWC以太网
    发表于 10-23 08:00 15次下载
    设计软件核心<b class='flag-5'>以太网</b>服务质量<b class='flag-5'>数据</b>手册免费下载

    DesignWare核心以太网服务质量数据

      本文档介绍Synopsys DesignWare核心以太网服务质量(DWC_Ethernet_qos)核心,5.10a。DWC_Ethernet_qos实现了与MAC层相关的以太网
    发表于 03-31 15:11 3次下载

    基于DWC_ether_qos以太网驱动开发-包过滤

    以太网数据非常多,如果所有数据都接收交给软件去处理软件负载会非常重,所以一般只需要接收发给自己的数据即可
    的头像 发表于 09-02 09:19 826次阅读
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太网</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-包过滤

    基于DWC_ether_qos以太网驱动开发-软复位介绍与问题案例

    一般模块都会有软复位的功能,软复位在驱动编写中很重要。一般初始化时执行软复位使得模块进入确定的初始状态以提高可靠性,异常时也可以重新初始化来恢复,所以软复位在驱动中一般是必须要做的动作。
    的头像 发表于 09-02 09:17 887次阅读
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太网</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-软复位介绍与问题案例