查看: 1240|回复: 0

[原创] IMX RT10xx 以太网MAC地址Hash过滤

[复制链接]

该用户从未签到

31

主题

62

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1009
最后登录
2025-9-5
发表于 2024-12-3 19:27:33 | 显示全部楼层 |阅读模式
IMX RT10xx 以太网MAC地址Hash过滤


    MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address)。网络数据包通过PHY进入MCU的MAC控制器,MAC对目的地址/源地址检查并过滤掉没用的数据帧。一般情况下,MCU检查每个以太网包的目的MAC地址,与自身的MAC地址一致,或者是广播包、多播包,就接收;否则就丢弃。如果用户应用需要接收多个目的MAC地址的数据帧,可以使用RT10xx的以太网MAC地址Hash过滤功能。

ENET MAC判断是否接收单播以太网帧,通过下面方式
1.  Exact match匹配,必须匹配PALR/PAUR寄存器配置的本机MAC地址。
2.  Hash Table的匹配模式,Hash table for unicastaddress filtering。

HashTable算法不是直接比较目标 MAC地址,Hash地址过滤方式将48位的 目标MAC地址,映射到 6位的 Hash值,来判断是否接收该数据帧。MAC接收到以太网帧后,会自动计算目标 MAC地址的 CRC32值,然后用该CRC32值的高 6位,作为索引号去检查 Hash表寄存器IAUR/IALR 对应位,如果该位的值是 1,则收到的以太网帧通过,否则就丢掉。例如,计算出MAC地址的CRC32是0x2C(二进制101100B),第6位是 1,则对应 IAUR的 第12位,如果该位是 1,则通过。
max.png

HashTable CRC32的计算公式可以参考附件的源代码,如下面mimxrt1050EthCalcCrc函数。
imxrt1050_eth_driver.rar (6.69 KB, 下载次数: 0)
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-9-5 08:36 , Processed in 0.090912 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表