MAC帧结构:
前导码 | 7byte |
定界符 | 1byte |
目的地址 | 6byte |
源地址 | 6byte |
长度/类型 | 2byte |
数据 | 0---1500byte |
填充 | 0---46byte |
帧校验序列 | 4byte |
MAC分为3个模块:
发送模块、接收模块、管理模块、CPU(SOPC)接口模块
CPU接口部分:
1. 与Avalon总线的接口包括:clk,reset,data,addr,cs,wr,rd,intr
发送数据缓冲区,寄存器,接收数据缓冲区
发送数据缓冲区:CPU数据发送到发送数据缓冲区,经发送模块处理后发送到PHY
接收数据缓冲区:MAC的数据发送到发送数据缓冲区,供CPU读取
寄存器:功能参数设置状态信息的存储
总线接口是否还需要其他?参考Avalon总线协议
2. 发送模块:主要实现CSMA/CD协议
构成:重发计数器,帧间隙计数器,冲突窗计数器,退避计数器,CRC生成电路,延时计数器,发送控制状态机
重发计数器:存贮当前成功传输时的发送次数
帧间隙计数器:保证两个帧之间保持一定的传输时间间隔
冲突窗计数器:判断当前所发生的冲突是否为后冲突
退避计数器:实现二进制指数退避算法包括一个伪随机数生成器
CRC生成电路:数据帧的校验码序列
延时计数器:存贮启动传输后等待总线空闲的时间,当超过一定时间后放弃当前帧的传输
发送状态机:实现发送的核心功能(安装发送器的时序实现,最好采用状态机的方式) 主要包括跨时钟域信号的处理
问题:状态机:采用哪种类型的状态机比较合适?
跨时钟域信号处理的方法?
3. 管理接口:MDC,MDIO参考相关MAC与PHY的接口协议
4. 接收模块:
MAC与PHY接口类型:
MII.RMII、SMII、GMII、RGMII