接收过滤器框图-docker部署python爬虫项目的方法步骤
接收过滤器框图
- 单播、广播和多播
基于帧类型(单播、多播或广播)的普通过滤可以使用RxFilterCtrl寄存器中的AcceptUnicastEn、AcceptMulticastEn、或AcceptBroadcastEn位来设置。将AcceptUnicast、AcceptMulticast、或AcceptBroadcast置位可以分别接收单播类型、多播类型和广播类型的所有帧,而忽略帧信息中的以太网目标地址。如果想设置为混合模式(promiscuous mode),即接收所有帧,可以将这3个位都设置为1。
- 完全地址匹配
当接收到带有单播目标地址的一帧信息时,完全过滤器会将目标地址与自身MAC地址寄存器SA0、SA1、SA2中设置的6字节站地址进行比较。如果RxFilterCtrl寄存器中的AcceptPerfectEn位设置为1并且地址匹配,则接受该帧信息。
- 不完全Hash过滤
我们可以根据Hash机制使用不完全过滤器。该过滤器将Hash函数应用到目标地址上并使用Hash来访问一个表格,指示是否应该接收帧信息。这种类型过滤器的优点是用一个小规模的表格来覆盖所有可能的地址。缺点是不能完全过滤,有时也接受了一些应该丢弃的帧。
Hash函数:
-
标准以太网循环冗余校验(CRC)函数是从以太网帧的6字节目标地址中计算得来的(不管怎样,这个CRC计算是作为整个帧的CRC计算的一部分),然后从这32位CRC结果中取出位[28:23]来构建作为Hash。我们使用6位Hash来访问Hash表:将这6位Hash用作已经设置好接受值的64位HashFilter寄存器中的索引。如果所选的接受值为1,则接受该帧信息;
-
设备驱动程序通过对寄存器HashFilterL和HashFilterH执行写操作来初始化Hash过滤表。HashFilterL包含该表的位0~31,HashFilterH包含该表的位32~63。