【RL-TCPnet网络教程】第5章 PHY芯片和STM32的MAC基础知识

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:19   1744   0

第5章 PHY芯片和STM32的MAC基础知识

本章节为大家讲解STM32自带的MAC和PHY芯片的基础知识,为下一章底层驱动的讲解做一个铺垫。

5.1 初学者重要提示

5.2 什么是MAC

5.3 MAC地址

5.4 STM32自带MAC基础知识

5.5 以太网PHY基础知识

5.6 总结

5.1 初学者重要提示

1、学习本章节后,务必学习STM32参考手册中MAC章节的基础知识讲解,非常重要。

2、实际项目中,关于MAC的配置问题,需要大家学习我们论坛网友发的这个帖子。

IEEE MAC地址购买价格及购买方案选择:http://bbs.armfly.com/read.php?tid=28416

5.2 什么是MAC

媒体访问控制(MAC,Media Access Control),又称作介质访问控制,简称MAC,是局域网中数据链路层的下层部分,提供地址及媒体访问的控制方式,使得不同设备或网络上的节点可以在多点的网络上通信,而不会互相冲突,上述的特性在局域网中格外重要。早期网络发展时以MAC判别各个网络接口的位置,但后来互联网发展后,才有IP的制定与使用。若只是两台设备之间全双工的通信,因为两台设备可以同时发送及接收数据,不会冲突,因此不需要用到MAC协议。

媒体访问控制MAC子层负责解决与媒体接入有关的问题,在物理层的基础上进行无差错的通信。

MAC子层是网络与设备的接口,它从网络层接收数据帧,然后通过媒体访问规则和物理层将数据帧发送到物理链路上。它也从物理层接收数据帧,再送到网络层。总的来说,MAC有三大功能:

(1)决定节点何时发送数据包。

(2)将数据帧发送到物理层,然后发送到物理链路。

(3)从物理层接收数据帧,然后送给网络层处理。

其中最重要的是第一点:决定节点何时发送数据包。对于每一种媒体访问控制技术,用来控制节点发送时机的规则叫做媒体访问规则。局域网上的节点不能想要发送数据就发送,节点只能在轮到它的时候才发送。

5.3 MAC地址

MAC地址,又称为物理地址、硬件地址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。

MAC地址长度是48bit(6字节),由16进制的数字组成,分为前24位和后24位:

(1)前24位叫做组织唯一标志符(Organizationally Unique Identifier,即OUI),是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。

(2)后24位是由厂家自己分配的,称为扩展标识符。同一个厂家生产的网卡中MAC地址后24位是不同的。

MAC地址的完整数据格式如下(来自wiki百科):

第一个字节的后两位比较重要:

b0 = 0:表示MAC单播地址。

b0 = 1 : 表示MAC组播地址。

b1 = 0:表示OUI分配的全球唯一MAC地址。

b1 = 1:表示用于本地管理的MAC地址。

为了更好地理解,举几个例子:

00:xx:xx:xx:xx:xx是MAC单播地址。

01:xx:xx:xx /* 10Base-T Status/Control Register */ #define PHY_REG_CDCTRL1 0x1B /* CD Test Control and BIST Extens. */ #define PHY_REG_EDCR 0x1D /* Energy Detect Control Register */ /* PHY Extended Registers only for DM9161 */ #define PHY_REG_DSCR 0x10 /* Specified Congfiguration Register */ #define PHY_REG_DSCSR 0x11 /* Specified Congfiguration and Status Register */ #define PHY_REG_10BTCSR 0x12 /* 10Base-T Status/Control Register */ #define PHY_REG_PWDOR 0x13 /* Power Down Control Register */ #define PHY_REG_CONGFIG 0x14 /* Specified Congfig Register */ #define PHY_REG_INTERRUPT 0x15 /* Specified interrupt Register */ #define PHY_REG_SRECR 0x16 /* Specified Receive Error Counter */ #define PHY_REG_DISCR 0x17 /* Specified Disconnect Counter Register */ #define PHY_REG_RLSR 0x18 /* Hardware reset latch state Register */ #define PHY_REG_PSCR 0x1D /* Power Saving control register */

对于初学者来说,了解这些知识点就够了,具体如何配置这些寄存器会在下个章节讲解。

5.6 总结

本章节就为大家讲解这么多,主要是为下章节的讲解做个铺垫。学习完毕本章节后,务必将STM32参考手册中MAC章节读一遍。

转载于:https://www.cnblogs.com/armfly/p/9317594.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP