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
  • 相关阅读:
    POJ 3468 A Simple Problem with Integers
    BZOJ 4430 Guessing Camels
    POJ 2309 BST
    POJ 1990 MooFest
    cf 822B Crossword solving
    cf B. Black Square
    cf 828 A. Restaurant Tables
    Codefroces 822C Hacker, pack your bags!
    [HDU 2255] 奔小康赚大钱
    [BZOJ 1735] Muddy Fields
  • 原文地址:https://www.cnblogs.com/hiramlee0534/p/3438551.html
Copyright © 2011-2022 走看看