EMAC数据协议与知识.ppt

上传人:max****ui 文档编号:6341711 上传时间:2020-02-23 格式:PPT 页数:21 大小:267KB
返回 下载 相关 举报
EMAC数据协议与知识.ppt_第1页
第1页 / 共21页
EMAC数据协议与知识.ppt_第2页
第2页 / 共21页
EMAC数据协议与知识.ppt_第3页
第3页 / 共21页
点击查看更多>>
资源描述
Chapter11EthernetAccessController EMAC block 以太网基本帧结构 用于以太网的帧格式包括帧前序 PA 开始帧定界符 SFD 目的地址 DA 源地址 SA 类型 长度域 数据域 和帧校验序列 FCS PreambleandSFD preamble是56位域 由交替1和0的组成 SFD域的序列10101011 并且紧随在preamble后面 preamble和SFD用于同步 AddressFields 每个帧包含2个地址域 目的地址域和源地址域 目的地址域指定帧发往的网络节点 源地址域指定发送帧的网络节点 一个48位地址写成12个16进制数字对在2组 表示一个字节的信息 在网络上传输的字节顺序是从MSB到LSB 在字节内部的传输顺序 开始从字节的低重要字节 LSB 到MSB 举例 一个以太网地址16进制的一串是F0 4E 77 8A 35 1D等价于下面的bit序列 从左到右发送到网络上 000011110111001011101110010100011010110010111000 如果目的地址域的most significantbyte的LSB是0 地址域包含一个独立 单播 地址 如果LSB是1 地址域包含一个组 多播 地址 广播地址 它的48bit都是1 如果这个域的值等于或小于最大数据长度1500十进制 0 x05DC 这个域被用于长度域 这种情况下 域的值指示字节数目 当接收这种类型帧 比较type length域的值与接收帧的数据域的实际数目 如果不精确匹配 错误报告 如果这个域的值数字上大于或等于1536十进制 0 x0600 这个域被用于类型域 这种情况下 16进制标志符用来指示在帧的数据域被携带的协议数据的类型 当接收这种类型帧 不比较type length域的值与接收帧的数据域的实际数目 如果这个域的值在1501和1535之间 这个帧是无效的 但不能被自动丢弃 当接收这种类型帧 不比较type length域的值与接收帧的数据域的实际数目 当传输时 如果数据域长度小于帧的数据域要求的最小值 pad数据字节自动加载在数据域后面 FCS域之前 来满足数据域最小长度的要求 pad数据的内容全是0 在接收一帧时 lengthfield存在接收缓冲中 用于确定数据域的有效长度数据 任何pad数据被软件丢弃 Type LengthField DataField 这个域必须包含最小的46字节数据 可以变化到最大1500字节数据 FrameCheckSequence 这个域用CRC来计算 CRC是用目的地址 原地址 type length 和数据域的内容来进行一个多项式计算 当帧由网络节点生成 CRC值被计算 CRC值32bit放置在FCS域 当帧发送时 CRC多项式的X31系数作为第一位发送 X0系数作为最后一位 当帧读入时 CRC能被接收网络节点再一次计算 第二次计算的结果与原始网络节点发送的FCS的值作比较 该域用于校验在网络上传输过程中有没有错误发生 End of FrameDelimiter 对于在MII TXD脚的数据 end of frame EOF 定界符由MII TXEN信号的无效来指示 对于在MII RXD脚的信号 MII RXDV的无效建立end of frame EOF 定界符 RECEIVER 当EMAC开启时 只要其中的一个接收缓冲完成中断标志被清除 它就马上开始接收帧 如果RXACIF和RXBCIF都被清除了 接收缓冲器A首先被使用 如果两个标志都被设定 就没有数据被存储到接收缓冲器中 PAUSE帧除外 1 如果MII RXDV有效 接收机首先进行有效PA SFD序列的检查 如果PA SFD有效 它就会被截去 如果有效的PA SFD没有找到 帧被忽略 在帧的目的地址六个字节被接收后 EMAC对帧进行地址勘查 如果地址勘查拒绝了该帧 接收机转入空闲 接收机缓冲器停止接收数据 接收帧尾指示器无效 如果地址勘查接受了该帧 接收缓冲器继续接收数据 在帧的前14个字节被接收后 EMAC对帧进行类型 长度勘查 如果类型 长度勘查拒绝了该帧 接收机转入空闲 接收机缓冲器停止接收数据 接收帧尾指示器无效 如果类型 长度勘查接受了该帧 接收缓冲器继续接收数据 接收数据到缓冲器A或者B中 EMAC接收机自动的从接收帧中计算一个4字节长的帧检查序列 并且将它和后缀于接收帧的CRS数据比较 接收机接收的紧靠着的两个帧之间的空间至少要求96位的时间 如果帧间距离小于96位的时间 后面的帧就不能保证被接收机接受 EMAC使用接收帧的目标地址来实行过滤 将不符合给定条件帧排除 使用RXCTS接收控制和状态寄存器 PROM 1所有帧都被接收UNICASTFILTER PROM 0时 目的地址和MACAD相比较 决定是否接收 BROADCASTFILTER PROM 0BCREJ 1所有广播帧被接收BCREJ 0拒绝广播帧MULTICASTFILTER CONMC 1 PROM 0 只有符合HASH表的多播帧才被接受 CONMC 0所有的多播帧被接受PAUSEDESTINATIONADDRESS 如果EMAC处于全双工模式 并且RFCE位被设定 接收机侦测到来的PAUSE帧 一个PAUSE帧有一个48位的多播目的地址01 80 C2 00 00 01 或者是唯一的DA 一旦检测到了一个PAUSE帧 帧就会被临时接受 进行进一步的类型 长度勘查 AddressRecognition Type LengthRecognition EMAC使用接受帧的类型 长度域执行过滤功能 并拒绝不符合接受标准的帧 使用ETCTL以太网类型控制寄存器 如果ETCTL寄存器的所有位被清0 以太网类型过滤器不工作 如果FPET位被设定 符合ETYPE寄存器值的以太网类型帧被接受 如果FEMW被设定 Emware以太网类型帧被接受 如果FIPV6位被设定 IPV6以太网类型帧被接受 如果FARP位被设定 带有地址解决协议的以太网类型帧被接受 如果IPV4位被设定 IPV4以太网类型帧被接受 如果FIEEE位被设定 具有有效IEEE802 3长度的以太网类型帧被接受 接收中可能出现的错误和中断 使用RXEIF和RXEIE 如果一个接收到的帧的长度小于64字节 接收帧视为碎片并丢弃 大多数碎片是由于冲突引起的 如果一个接收帧的长度大于1518 接收帧被视为超长并是一个错误 EMAC产生接收错误中断 如果在接收过程中 MII RXER有效 则它指示一个媒质错误 EMAC产生接收错误中断 如果类型 长度域小于或等于1500 但是大于46 但是接收帧数据长度不等于类型 长度域中标注的长度 就会发生长度失配错误 如果类型 长度域小于或等于46 接收帧数据域长度不是46 也会发生长度失配错误 EMAC产生接收错误中断 EMAC接收机自动的从接收帧中计算一个4字节长的帧检查序列 并且将它和后缀于接收帧的CRS数据比较 如果发生了一个CRS错误 EMAC产生接收错误中断 在帧结束定界符后 接收帧被去尾以最接近数据边界 如果有一个额外的半字节 这个dribble半字节被丢弃 如果CRS的值不正确 同时有一个dribble半字节 就会发生调整错误 EMAC产生接收错误中断 如果一个接收帧超过了接收缓冲器的大小 相应的接收超限错误标志被设定 在超限错误的情况中 帧不被接收 而且相应的完成标志和接收错误标志都不会被设置 Transmitter 发送数据 用户必须将其写入发送缓冲器 它由目的地址 源地址 类型 长度域和数据域组成 发送机会自动发送帧所必须的帧前序 SFD和FCS 也会自动附加填充数据以扩充数据长度达到46字节的最小帧长 当帧被写入发送缓冲器 相应的发送帧尾指示器被初始化之后 EMAC发送机就准备在网络上发送该帧了 当向TCMD域写入时 START命令被执行 EMAC在MII TXEN上保持有效并且开始发送帧前序 帧起始符 然后是来自于发送缓冲器的帧信息 当网络空闲时 网络节点就会等待一个称为帧间隙 IFG 的短暂时段 然后再发送帧 这为以太网接口在帧接收之间提供了短暂的恢复时间 连续发送的最小帧间隙是96位时间 半双工模式 Deferring 在半双工模式 如果有负载 网络忙 网络节点监听直到负载停止 这就是用延迟来避免堵塞 一旦网络变成了空闲 也包括等待帧间隙 网络节点可以开始发送帧 发送机等待无载波侦听持续60位的时间 然后等待另一个36位时间之后开始发送帧 CollisionDetectionandBackoff 冲突侦测和退避特性是以太网802 3MAC协议操作的一个正常部分 它可以致使快速自动的重订发送时间表 该特性使独立的网络节点以公平礼貌的方式参与接入网络的竞争 它为网络节点提供了一种自动调整他们的行为的方法 以回应网络负载 CollisionWindow 冲突窗口时段被设置为SFD之后的64字节时间 512位时间 如果在冲突窗口时段内发生了冲突 重发进程被初始化 如果发生了一个延迟冲突 在冲突窗口时段之后发生的冲突 不会实施重发行为 LCIE位设置为1 重发计数器被清除 发送被取消 如果不被屏蔽 LCIE被设置 EMAC产生一个延迟冲突中断 JamPeriod 如果在发送过程中的任何时间检测到了冲突 EMAC发送机会继续发送32位数据 称为冲突生效拥挤信号 这样在以太网络中的其他设备 都能检测到冲突 如果在帧发送的早期冲突就被检测到了 EMAC发送机继续发送直到将帧前序发送完成 然后再发送32位拥挤信号 如果在发送FCS时检测到了冲突 直到将最后的FCS半字节数据转移完成 32位拥挤信号才被发送 BackoffGenerator 在冲突窗口时段发生了冲突之后 EMAC发送机尝试重发帧数据之前的延迟时间 被设置为512位以太网缝隙时间的倍数 总的退避延迟量用一个伪随机选择的整数乘以缝隙时间来计算 退避算法用下面的公式来确定整数r 它被用于和缝隙时间相乘 产生一个退避延迟 0 r 2k指数k是这样一个值 它是等于尝试重发的次数或者10 两者中较小的那个 系数r是一个在0和2k之间随机选择的整数 在EMISC寄存中的RANDOM域包含一个由退避逻辑随机生成器生成的10位随机数字r 如果SSB位被设定 发送机退避逻辑强制信号退避时隙为512位时间 重发计数器 EMAC发送机有一个重发计数器 RETX 它计算在尝试发送一个信号帧过程中 在冲突窗口时段发生的冲突次数 在每一次冲突过后 重发计数器加1 当帧成功发送时重置为0 当TXACT被清除时 RETX保持0 EMAC会进行多达15次的重发尝试 如果当RETX为15时又发生了冲突 过量冲突中断标志 ECIF 被置1 整个帧被丢弃 重发计数器重置为0 如果不被屏蔽 ECIE设为1 EMAC产生一个过量冲突中断 TXCTS中的TXACT位在整个重发过程中始终有效 TXACT一旦被清除 就开始进行下一次发送 RETX的值可以通过EMISC读出来 EthernetBuffers 在系统RAM中 分配有两个以太网接收缓冲器和一个以太网发送缓冲器 他们的大小和开始地址由BUFCFG寄存器的BUFMAP域配置 ReceiveEthernetBuffer 接收帧时 以太网接受缓冲器存储目的地址 DA 源地址 SA 类型 长度域 数据域和帧校验序列 FCS 如果接收机有数据要存入接受缓冲器 但接受缓冲器已满 那么该接受帧只能被丢弃 如果接受帧的长度超过了接受缓冲器 相应的接受缓冲器超限标志位被置1 如果不被屏蔽 相应的接受缓冲器超限中断使能位置1 EMAC产生一个超限中断 receiveAend of framepointer 接收器A帧结束指针 RXAEFP11位指示了被写到接收缓冲器A的最后一个字节的地址偏移量 接收缓冲器A的基址决定于BUFMAP TransmitEthernetBuffer 只有目的地址 DA 源地址 SA 类型 长度域 数据域必须被存储至以太网发送缓冲器 发送机会自动的附加帧校验序列 如果写入发送缓冲器的帧长度小于最小数据长度 它也会自动附加填充数据 以扩展数据长度到46字节 发送帧尾指示器的值必须和数据域的最后字节在缓冲器中的地址偏移量相符合 不包括填充的数据 全双工模式 IEEE802 3x标准定义了第二种操作模式 称为全双工 它越过了CAMA CD 载波侦听多址接入 冲突检测 协议 CSMA CD协议是半双工的 是指两个或多个网络节点共享一条公用的传输介质 这也意味着一个节点只能发送数据或者接收数据 但两者不能同时进行 全双工模式允许超过两个的网络节点同时通过点对点的链接交换数据 它提供独立的收发路径 因为每一个网络节点都能同时进行数据的收发 链接的总吞吐量能有效的加倍 因为在共享介质中没有竞争 冲突就不会发生 CSMA CD协议也是不需要的 MACFlowControl 全双工模式包括一个可选的针对实时控制和收发帧处理的流量控制机制 这个机制允许正拥挤的接收节点要求发送节点在一个可选的短暂时间段内停止发送数据 这是通过使用PAUSE帧实现的 如果在要求的等待时间结束之间拥挤状况得到了缓解 第二个含有0等待时间值的PAUSE帧被发送 要求重新开始发送数据 MAC控制帧通过所指定的特有的类型值0X8808被识别出来 它包含操作码 opcode 在数据域的前两个字节中 MAC控制操作码域针对PAUSE命令的值是0X0001 数据域中后面两个字节是MAC控制参数域 这个16位的值用以确定以512位时间为单位的PAUSE事件的长度 有效值从0 x0000到0 xFFFF 如果在当前暂停时间被经历前 到达一个新的PAUSE帧 那么新帧的参数将取代当前暂停时间时间 所以含有参数0的PAUSE帧允许马上恢复发送 一个42字节的保留域 全0发送 被用来填充PAUSE帧长度 以使其满足以太网帧的最小尺寸 PAUSE帧的目的地址必须被设置为全局分配的多播地址01 80 C2 00 00 01 或者是唯一的DA 这个多播地址被IEEE802 3标准保留 用于MAC控制PAUSE帧 PAUSEControlFrameTransmission 如果在进程中没有发送活动并且EMAC处于全双工模式 通过向TCMD域写入数值 就能推出一个PAUSE命令 使用PTIME域中的参数值 EMAC建立起一个PAUSE帧 然后发送该帧 DA域被设置为01 80 C2 00 00 01 虽然已接收的PAUSE帧停止了以START命令开始的帧发送 但并没有阻止发送PAUSE控制帧 要发送一个唯一DA的MAC流量控制暂停帧 用户必须在发送缓冲器中构建一个有效的暂停帧 配置TXEFP寄存器 并且发出一个START命令 然而 无论何时以这种方式发送暂停帧 当接收暂停时间计数器的值 PTIME 非零时 命令都会被暂停 在时间经历过后才被发送 PAUSEControlFrameReception 当RFCE位被设定 接收机在全双工模式下检测PAUSE帧 一旦PAUSE被检测到 IEVENT寄存器中的RFCIF位有效 在当前发送完成后 EMAC发送机在一段时间内停止发送 该时间是由接受到的帧的暂停时间参数给定的 如果不被屏蔽 RFCIE被设定 当该标志被设定时 一个接收流量控制中断被等待 MIIManagement MII管理接入到PHY通过MII MDC和MII MDIO信号 MII MDC最高时钟速率是2 5MHz MII MDIO是双向的 能连接到32外部设备或则内部PHY 当用内部PHY MII MDC和MII MDIO信号对用户不可见 MIIManagement帧结构 11 1101读 10MPADRMRADR读 Z0MRDATA写 01写 10MWDATA ReadOperation MII管理执行读操作 OP域在MCMST必须写成10 BUSYbit是清空的 在MPADR的PADDR域指示哪个PHY设备地址 在MRADR的RADDR域指示哪个16bit寄存器从PHY设备读出 MII管理创建MII管理帧和通过MII MDIO管脚连续地移向PHY 在turnaround域之后 PHY通过MII MDIO管脚从PHY到EMAC连续地移出寄存器数据 当读MII管理帧操作完成 BUSYbit清除 MRDATA寄存器更新 在IEVENT的MMCIFbit置1 如果没有屏蔽 在IMASK的MMCIE置1 产生一个MII管理传输完全的中断 WriteOperation MII管理执行写操作 OP域在MCMST必须写成01 BUSYbit是清空的 在MPADR的PADDR域指示哪个PHY设备地址 在MRADR的RADDR域指示哪个16bit寄存器从EMAC写入 MII管理创建MII管理帧和通过MII MDIO管脚连续地移向PHY 在turnaround域之后 MWDATA寄存器通过MII MDIO管脚连续地移到PHY 当读MII管理帧操作完成 BUSYbit清除 在IEVENT的MMCIFbit置1 如果没有屏蔽 在IMASK的MMCIE置1 产生一个MII管理传输完全的中断
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!