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

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

3天内不再提示

什么是Pause帧?以太网MAC的pause流控介绍

冬至子 来源:IC的世界 作者:IC小鸽 2023-09-15 10:48 次阅读

1、什么是Pause帧

Pause帧是一种报文类型。在IEEE802.3协议中规定中,pause帧是一种控制帧,用于控制数据流停止发送,在MAC 发送侧产生,在MAC接收侧解析并执行。当此端设备输入数据量过大,无法及时处理时会在此端发送侧MAC产生pause帧,发给对端,要求对端在一定时间内停止发送数据。

image.png

Pause报文由IEEE802.3协议规定,与标准以太帧格式相似:

DA表示目的地址,地址数据固定为0x180c2000001

SA表示源地址 地址由发送方确定

TYPE为报文类型字段,固定为0X8808

OPCODE为操作码,固定为0X0001

PAUSE_TIMING字段为上游MAC停止发送数据的时间,每单位为512bit传输时间,数值为16’d1024表示暂停时间为MAC传输1024*512bit数据所需要的时间

PAD:为填充字段,所有值为0

FCS: 为校验字段,通常为CRC校验值

2、Pause帧的流程过程

image.png

如图所示,左侧为本端芯片,右侧为对端芯片。MAC0和MAC1都包含发送侧tx和接收侧rx。左侧芯片内部mac上游模块A与mac0发送侧有流控信号fc_rdy。信号高表示模块A无法及时处理输入数据,需要进行流控。为了方便突出重点,图中省略了PCS以及serdes等模块。

流程处理如下:

1~2步:对端mac1发送数据给mac0接收侧,进行发送到模块A

3步:模块A无法及时处理输入的数据,需要减少数据输入,从而将fc_rdy拉高。

4步:mac0发送侧tx发现流控信号fc_rdy为高,产生pause帧,发送给mac1接收侧。只要fc_rdy为高,mac0发送侧tx每隔一段时间发送一个pause帧,间隔时间由配置寄存器控制。间隔时长计算由计数器counting计算。Pause帧内停止发送数据的时间由另外一个配置寄存器控制。只要fc_rdy为高期间,mac0发送侧不发送普通数据。

5步:mac1接收侧rx接收到pause报文后,提取pause帧内包含的暂停时间,产生流控信号fc通知MAC发送侧上游模块module B停止发送数据

678:mac1 TX侧在暂停时间内,停止发送数据。MAC0 TX侧可能会发起多个Pause帧。一旦模块A处理完之前的数据后将fc_rdy拉低,则进入第9步

9:步:第9步分2种情况。

情况1:fc_rdy拉低,并且counting在计数没有到一个间隔周期,此时发送pause帧,但是帧内暂停时间为0. Mac1接收到pause帧后,控制tx控制立即开始发送数据。

情况2:fc_rdy拉低的同时,counting正好计数到一个间隔周期,此时不发送pause帧。等到上一个pause帧的暂停时间到达后,mac1发送侧tx继续发送数据。

3、pause帧处理协议强制要求

1)pause的产生发送过程不能中断一个完整的数据报文。即在第4步中,fc_rdy拉高后,首先mac0 tx侧需要判断当前是否正常数据报文在传输。如果有,则需要在当前数据报文传输完成后才能发送pause帧。也就是说在发送过程中,只能在完整数据报文的间隙插入pause帧。

2)新的pause报文暂停时间会覆盖上一个暂停时间。对mac1来说,当mac1接收到新的pause帧后,暂停时间以最新时间为准。

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

    关注

    68

    文章

    19160

    浏览量

    229117
  • 寄存器
    +关注

    关注

    31

    文章

    5317

    浏览量

    120004
  • CRC校验
    +关注

    关注

    0

    文章

    84

    浏览量

    15188
  • PCS
    PCS
    +关注

    关注

    1

    文章

    136

    浏览量

    14621
  • MAC控制器
    +关注

    关注

    0

    文章

    6

    浏览量

    2614
收藏 人收藏

    评论

    相关推荐

    基于Xilinx FPGA的千兆以太网控制器的开发

    千兆以太网利用了原以太网标准所规定的全部技术规范,其中包括CSMA/CD协议、以太网、全双工、流量控制以及IEEE 802.3标准中所定义的管理对象。##
    发表于 01-23 11:13 3w次阅读
    基于Xilinx FPGA的千兆<b class='flag-5'>以太网</b>控制器的开发

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

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

    以太网中的格式及不同端口速率下的quanta值介绍

    PAUSE以太网在全双工模式下,MAC控制子层发出的流量控制
    的头像 发表于 02-29 10:04 2156次阅读
    <b class='flag-5'>以太网</b>中的<b class='flag-5'>帧</b>格式及不同端口速率下的quanta值<b class='flag-5'>介绍</b>

    FPGA学习-以太网的原理介绍

    以太网链路上的数据包称作以太网以太网起始部分由前导码和开始符组成。后面紧跟着一个
    的头像 发表于 04-02 16:26 1573次阅读
    FPGA学习-<b class='flag-5'>以太网</b>的原理<b class='flag-5'>介绍</b>

    以太网MAC怪异

    MAC引脚没有活动,EthFrMTxOK保持在零。如果我在每个缓冲区填充一个合成的SA、DA和长度,它仍然不传输。我已经阅读了以太网数据表6000,1155D,我找不到任何解释。它似乎是足够简单的,它应该
    发表于 11-12 11:16

    以太网控制器(MAC)的基本框架怎么搭建

    以太网控制器(MAC)实现了以太网标准的第二层协议——MAC(媒体访问控制)协议,完全符合 IEEE 802.3 和 IEEE 802.3u 规范所规定的 10Mbit/s 和 100
    发表于 12-28 17:30

    基于FPGA的以太网MAC控制器的设计与实现

    介绍了基于FPGA的以太网MAC控制器的设计,主要实现了半双工模式下CSMA/CD协议、全双工模式下Pause的收发,以及对物理层芯片中寄
    发表于 11-15 11:38 280次下载
    基于FPGA的<b class='flag-5'>以太网</b><b class='flag-5'>MAC</b>控制器的设计与实现

    以太网结构

    以太网结构
    发表于 01-21 12:00 4次下载

    以太网基础介绍MAC地址,FIFO, DMA

    介绍了STM32中以太网外设的特性:MAC地址,FIFO, DMA
    的头像 发表于 07-03 05:04 7697次阅读

    基于FPGA的千兆以太网ARP和UDP的实现

    1 以太网原理介绍 1.1 以太网以太网链路上的数据包称作以太网
    的头像 发表于 02-16 16:35 2449次阅读

    工业以太网协议的历史及其优势

    用户不能使用标准以太网介质访问控制(MAC)来实现大多数工业以太网标准;相反,需要专用的应用特定型集成电路(ASIC)或现场可编程门阵列(FPGA),因为以太网
    发表于 03-20 09:54 578次阅读
    工业<b class='flag-5'>以太网</b>协议的历史及其优势

    设置AMD以太网IP核的Pause处理

    目前 AMD 的以太网 IP 核,如软核 10G/25G,40G/50G 或者硬核 CMAC,MRMAC,DCMAC 等等,都采用的是同一种 Pause 处理方式。
    的头像 发表于 10-18 09:15 928次阅读
    设置AMD<b class='flag-5'>以太网</b>IP核的<b class='flag-5'>Pause</b><b class='flag-5'>帧</b>处理

    深入探究以太网PAUSE处理流程及长距离链路控制阈值

    在产生PAUSE时,典型的实现不会尝试猜测PAUSE的特定持续时间,而是依赖于X-ON和X-OFF的行为,这种方法必须将PAUSE中Ti
    发表于 03-11 11:32 1949次阅读
    深入探究<b class='flag-5'>以太网</b><b class='flag-5'>PAUSE</b><b class='flag-5'>帧</b>处理流程及长距离链路控制阈值

    以太网结构是怎样的

    以太网(Ethernet Frame)是以太网(Ethernet)协议用于在局域(LAN)中传输数据的基本单位。理解以太网
    的头像 发表于 10-08 10:00 694次阅读

    以太网格式和功能详解

    以太网(Ethernet Frame)是以太网(Ethernet)协议用于在局域(LAN)中传输数据的基本单位。理解以太网
    的头像 发表于 10-08 10:03 1126次阅读