zoukankan      html  css  js  c++  java
  • MAC 源代码分析---(一)概述

         近来一个项目中用到MAC层实现大数据量高速传输,移植使用了MAC IP核,并分析学习。MAC 位于数据链路层,向下将帧数据发送给物理层,MAC实现802.3标准。

        以太网和802.3 标准都 使用了CSMA/CD的技术,可以随时接入网络。在发送前,对网络进行监听确定是否被占用。如果在占用则等待一段时间后重新监听,否则立即发送数据。当两个发送方同时监听一个网络的空闲状态时会产生冲突,这时双方的传输都会受影响,backoff算法再等待一段时间还发送。   以太网和802.3都是广播形式的,数据虽然有目的地址,但会经常每一个节点,收到数据后根据目的地址选择丢弃还是处理后送上一层处理。

    帧格式:

    帧开始是1和0交替的前缀,长度是7个字节,收到前缀即告诉我们要收到一帧数据了。接下来是SOF分隔符,再就是各6个字节的目的地址和源地址。Ethernet接下来是帧类型,802.3中是数据长度,数据最小长度是64字节,最后有4个字节的循环检校。

         这个以太网MAC IP核包括7个主要模块:WISHBONE接口、发送、接收、控制、MII、状态和寄存器模块,其中各部分还有子模块。Wishbone接口模块包括主从两个接口连接IP核到Wishbone总线上。主部分把接收到的数据帧储存到内存中,把内存中发送的数送到ip核发送出去。发送模块包括前缀生成、padding、CRC等。接收部分去前缀、CRC检校。控制模块执行双工发收的相关操作。MII模块连接到物理层芯片,完成配置和数据收发。状态模块把记录下的状态信息写进相关的buffer中,寄存器模块包括一些寄存器。模块和文件关系框架如图:

    OPTIMISM, PASSION & HARDWORK
  • 相关阅读:
    人生应该接受的教育
    【转】俞军给淘宝产品经理的分享
    【转】伪O2O已死?2016年实体零售将迎来真正的O2O
    【转】一个测试工程师的2015总结和2016年小展望
    【转】移动App测试中的最佳做法
    Net作业调度(一) -Quartz.Net入门
    Quartz学习
    Newtonsoft.Json.dll
    用C#实现Base64处理,加密解密,编码解码
    mysql 连接数的最大数
  • 原文地址:https://www.cnblogs.com/hiramlee0534/p/3438551.html
Copyright © 2011-2022 走看看