MAC 源代码分析---(一)概述

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

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

帧格式:

MAC 源代码分析---(一)概述_第1张图片

MAC 源代码分析---(一)概述_第2张图片

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

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

MAC 源代码分析---(一)概述_第3张图片

你可能感兴趣的:(mac)