CH579 网络接收过滤匹配问题

接收过滤设置寄存器(R8_ETH_ERXFCON) 这个寄存器的说明看得有点难理解:

7 RB_ETH_ERXFCON_UCEN RW  目标地址匹配过滤设置: 0:不使用该过滤条件; 1:RB_ETH_ERXFCON_ANDOR=0 目标地址 匹配将被接收,RB_ETH_ERXFCON_ANDOR  =1 目标地址不匹配将被过滤。

6 RB_ETH_ERXFCON_ANDOR RW  过滤条件 AND 和 OR 设置: 0:任一过滤条件满足包均被接收; 1:所有过滤条件都满足包才被接收。 0  

5 RB_ETH_ERXFCON_CRCEN RW  CRC 校验过滤设置: 0:不使用该过滤条件; 1:RB_ETH_ERXFCON_ANDOR=0 CRC 校验 正确将被接收,RB_ETH_ERXFCON_ANDOR  =1 CRC 校验错将被过滤。 0  

4 Reserved RO 保留。 0  

3 RB_ETH_ERXFCON_MPEN RW  魔法包过滤设置: 0:不使用该过滤条件; 1:RB_ETH_ERXFCON_ANDOR=0 魔法包将 被接收,RB_ETH_ERXFCON_ANDOR=1 非魔 法包将被过滤。 0  

2 RB_ETH_ERXFCON_HTEN RW  hash 表匹配过滤设置: 0:不使用该过滤条件; 1:RB_ETH_ERXFCON_ANDOR=0 hash 表匹 配将被接收,RB_ETH_ERXFCON_ANDOR =1  hash 表不匹配将被过滤。 0  

1 RB_ETH_ERXFCON_MCEN RW  组播包匹配过滤设置: 0:不使用该过滤条件; 1:RB_ETH_ERXFCON_ANDOR=0 组播包匹 配将被接收,RB_ETH_ERXFCON_ANDOR=1 组播包不匹配将被过滤。 0  

0 RB_ETH_ERXFCON_BCEN RW  广播包匹配过滤设置: 0:不使用该过滤条件; 1:RB_ETH_ERXFCON_ANDOR=0 广播包将 被接收,RB_ETH_ERXFCON_ANDOR=1 非广 播包将被过滤。

这里第7位的目标地址是指哪个地址?

然后如果我要过滤掉组播包应该怎么配置呢?

RB_ETH_ERXFCON_ANDOR    RB_ETH_ERXFCON_MCEN

       0                 1                  组播包匹配将被接收

       1                 1                  组播包不匹配将被过滤 (组播包匹配也将被接收?)

这两个不正是同一个意思吗?

接收过滤设置寄存器(R8_ETH_ERXFCON)使用的时候RB_ETH_ERXFCON_ANDOR需要设置为0。

在此种状态下:

(1)广播包一定能被接收。

(2)其他位设置为1时,对应的过滤模式将会收到对应的包。


RB_ETH_ERXFCON_ANDOR = 0,R8_ETH_ERXFCON的其他位置1时会受到对应的包,置0时,不使用过滤条件。这个怎么设,还是会受到对应的数据包啊。

无论是R8_ETH_ERXFCON = RB_ETH_ERXFCON_UCEN | RB_ETH_ERXFCON_BCEN | RB_ETH_ERXFCON_MCEN;

还是R8_ETH_ERXFCON = RB_ETH_ERXFCON_UCEN | RB_ETH_ERXFCON_BCEN;

组播包还是会收到啊,想要的过滤效果还是没有啊


您好,之前理解有误,以为您需要接收到组播包,那么按默认配置即可。过滤掉组播包功能暂不支持。


意思是接收过滤设置寄存器(R8_ETH_ERXFCON)这个过滤功能还暂不支持吗?

第7位的目标地址是指哪个地址?

还有hash表是怎么用的呢?


是的,暂不支持,也就不用关注下面两个功能了,也用不了。


只有登录才能回复,可以选择微信账号登录