189 8069 5689

STM32网络中MAC控制器有什么用

这篇文章给大家分享的是有关STM32网络中MAC控制器有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为越城企业提供专业的网站设计、网站建设,越城网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

STM32的MAC控制器,也就是下图区域2。

STM32网络中MAC控制器有什么用

01、STM32的MAC概述

STM32的MAC控制器全称是:MediaAccess Control。

STM32F207的MAC控制器支持的模式

  • 符合IEEE 802.3 MAC

  • 10/100Mbps网络

  • 全双工和半双工通信

  • 和外部PHY的MII接口和RMII接口

  • 支持前导码和帧起始数据(SFD)插入或删除

  • 支持IPv4的头部checksum校验和检查

  • 支持以太网唤醒

  • 有效载荷检查

STM32网络中MAC控制器有什么用

其实ST在设计MAC控制器时,设计了其他功能,PTP(IEEE1588)精确时间协议,MMC网络统计功能,这些功能并不常用,本人也没有接触,就不再讲解。

对于上面说到的:支持前导码和帧起始数据(SFD)插入或删除。

之前的推文《以太网数据首部》中并没有说到前导码和帧起始数据(SFD)。一个以太网数据结构如下:

STM32网络中MAC控制器有什么用

大多数网络设备都是支持前导码和帧起始数据(SFD)插入或删除。所以可以说,这是网络硬件设备在以太网帧前打包的数据。个人认为并不属于TCP/IP协议簇的内容。

02、MAC地址过滤

STM32的MAC控制器支持MAC地址过滤的。

目的地址过滤:

  • 单播过滤

  • 组播过滤

  • 广播过滤

注意:广播过滤会导致ARP广播也收不到,具体请看《TCP/IP协议簇中ARP协议》。

源地址过滤:

  • 单播过滤

STM32的MAC控制器还支持:规则翻转,比如,原来只允许单播过滤接收,翻转之后,只有单播不接收。

在STM32实际项目开发中,只需要调用ST的库文件即可

ETH_InitStructure.ETH_BroadcastFramesReception =ETH_BroadcastFramesReception_Enable;//允许接收所有广播帧

关于MAC地址相关信息,什么是广播,MAC地址表示方法,请看之前的推文《以太网数据首部》。

03、有效载荷检查

有效载荷检查其实是IP协议要求长度必须大于46个字节,不足时填充pad字节,具体细节请看《5000字“肝”了这篇IP协议》。

当从应用程序接收的字节数低于60时(DA+SA+LT+Data),零被附加到发送帧以使数据长度正好为46字节,以满足最小数据字段的要求IEEE802.3要求。

STM32网络中MAC控制器有什么用

04、Checksum校验和

首先明确,STM32的MAC控制器并不能对TCP/IP协议中所有的Checksum自动校验。STM32实现了IPv4,ICMP,TCP和UDP协议的Checksum校验和。

发送的时候,STM32会自动计算Checksum校验和并自动插入。

接收的时候,STM32会自动校验Checksum校验和是否正确。

上述功能可以通过以下操作开启:

通过在ETH_MACCR寄存器中设置IPCO位来启用接收校验和卸载。

通过在TDES1寄存器中设置CIC位,在传输时启用校验和计算和插入。

但实际代码开发中,并不需要操作寄存器,使用ST的库接口如下

ETH_InitStructure.ETH_ChecksumOffload = ETH_ChecksumOffload_Enable;           //开启ipv4和TCP/UDP/ICMP的帧校验和卸载

感谢各位的阅读!关于“STM32网络中MAC控制器有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


新闻标题:STM32网络中MAC控制器有什么用
本文链接:http://cdxtjz.com/article/ppohoh.html

其他资讯