碧波液压网 欢迎你,游客。 登录 注册

以太网控制器芯片的设计及实现

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  网络控制器芯片的功能与设计实现

  IEEE 802.3协议是针对以太网CSMA/CD标准的传输介质物理层(PHY)和介质访问控制协议(MAC、Media Access Control)来定义的。芯片由PHY、发送模块、接收模块、FIFO、控制模块组成,其中控制模块包括寄存器堆、DMA(Direct Memory Access)模块、流量控制模块、接收缓冲区和发送缓冲区组成。网络控制器芯片的功能框图如图1所示。

  

图1 以太网控制器芯片的功能框图

  1 IEEE 802.3以太网MAC数据帧结构

  在发送数据时,发送模块自动在待传数据前加上7字节的前导码和1字节的帧起始定界符,紧随的是6字节的目的地址和6字节的源地址,然后长度/类型为2字节,接着是数据区,然后是46~1500字节的数据。若发送时,数据长度小于最短长度46字节,发送模块自动填补,以达到最小长度,最后是4个字节的循环冗余校验码。

  2 发送模块

  发送模块的作用就是按照CSMA/CD协议发送数据包。发送模块状态机控制协调各个发送子模块的时序,发送模块状态机如图2所示。

  

图2 发送模块状态转换图

  S_defer状态表示网络忙,若网络空闲了,经过最小的帧间隙时间,进入网络空闲状态S_idle。若需要发送数据包,经过S_pre,S_data,S_pad,S_crc等状态发送,在这当中若检测到冲突信号,就进入S_jam状态。在S_jam状态判断是local collision还是late collision,若是local collision就进入S_back状态,按照退避算法重发当前数据帧,否则直接进入网络忙状态,放弃该帧的发送。

  3 接收模块

  接收模块的任务就是接收数据帧。物理接口收发器PHY将收到的网络数据变成二进制数据送给接收模块,接收模块再把正确的数据经过接收FIFO和DMA的控制送给接收缓冲区。接收模块的功能还包括移除接收到帧的前导码/帧分隔符;比较目的地址,判断是否丢弃当前数据帧;对接收到的数据包做CRC校验,判断传输过程中数据是否出错。接收模块状态机是接收模块的核心,控制协调接收模块的各个子模块的工作与时序。接收模块状态机如图3所示。

  

图3 接收模块状态转换图

  复位后,状态机进入S_idle状态,若数据是无效的,就停留在S_idle状态,否则进入S_pre状态。S_pre状态和S_sdf状态的作用就是去掉前导码和帧间隔符。当帧间隔符全部检测到,进入S_data状态,在S_data状态使用字节计数器,记录所收到数据的字节个数,用于比较目的地址。若目的地址匹配则将接收到的数据写入到接收FIFO,否则丢弃该帧,不写入到FIFO。字节计数器的作用还有判断接收到的数据包是否超过帧的最大长度。若在S_pre状态、S_sdf状态或S_data状态出现数据有效信号无效的情况,都进入到S_drop状态。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论