STM32 中 MAC 控制器的功能

  • 具备 MII/RMII 接口,外接高速 PHY。
  • 在发送时插入前导码和帧开始数据(SFD),在接受时去掉这些域。
  • 以帧为单位,自动计算 CRC 和产生可控制的填充位。
  • 在接收帧时,自动去除填充位和 CRC。
  • 支持多种灵活的地址过滤模式
    • 4 个 48 位完美的目的地址(DA)过滤器,可在比较时屏蔽任意字节。
    • 3 个 48 位源地址(SA)比较器,可在比较时屏蔽任意字节。
    • 64 位 Hash 过滤器,用于多播和单播(目的)地址。
    • 可选的令所有的多播地址帧通过。
    • 混杂模式,支持在做网络监测时不过滤,允许所有的帧直接通过。
    • 允许所有接收到的数据包通过,并附带其通过每个过滤器的结果报告。
  • 对于发送和接受的数据包,返回独立的 32 位状态信息。
  • 支持检测接收到帧的 IEEE 802.1Q VLAN 标签。
  • 应用程序有独立的发送、接收和控制接口。
  • 支持使用 RMON/MIB 计数器(RFC2819/RFC2665)进行强制性的网络统计。
  • 使用 MDIO 接口对 PHY 进行配置和管理。
  • 检测 LAN 唤醒帧和 AMD 的 Magic Packet帧。
  • 对 IPv4 和由以太网帧封装的 TCP 数据包的接收校验和卸载分流功能。
  • 对 IPv4 报头校验和以及对 IPv4 或 IPv6 数据格式封装的 TCP、UDP 或 ICMP 的校验和进行检查的高级接收功能。
  • 支持由 IEEE 1588-2002 标准定义的以太网帧时间戳,在每个帧的接收或发送状态中加上 64 位的时间戳。
  • 两套 FIFO:一个 2K 字节的传输 FIFO,带可编程的发送阈值;一个 2K 字节的接收 FIFO,带可编程的接收阈值(默认值是 64 字节)。
  • 在接收 FIFO 的 EOF 后插入接收状态信息,使得多个帧可以存储在同一个接收 FIFO 中,而不需要开辟另一个 FIFO 来存储这些帧的接收状态信息。
  • 可以过滤掉接收到的错误帧,并在存储-转发模式下,不向应用程序转发错误的帧。
  • 可以转发“好”的短帧给应用程序。
  • 支持产生脉冲来统计在接收 FIFO 中丢失和破坏(由于溢出)的帧数目。
  • 对于 MAC 控制器的数据传输,支持存储-转发机制。
  • 在发送时,如果遇到冲突可以自动重发。
  • 在迟到冲突、冲突过多、顺延过多和欠载情况下丢弃帧。
  • 软件控制清空发送 FIFO。
  • 在存储-转发模式下,在要发送的帧内,计算并插入 IPv4 的报头校验和及 TCP、UDP 或 ICMP 的校验和。
  • 支持 MII 接口的内循环,可用于调试。