1. 网络通信的“翻译官”与“交通警”:初识PHY与MAC
如果你拆开过家里的路由器或者一块网络开发板,大概率会看到两颗紧挨着的芯片,一颗可能标着“88E1111”之类的型号,另一颗则集成在主处理器里。它们就是网络通信世界里最核心的一对搭档:PHY芯片和MAC芯片。简单来说,它们俩一个负责“说方言”,一个负责“管交通”,共同把你在电脑上敲下的“你好”变成一串电信号,穿过网线,准确无误地送到千里之外朋友的屏幕上。
让我用个更生活的比喻。假设你要给国外的朋友寄一封实体信。MAC(Media Access Control,媒体访问控制) 就像是你公司里那位严谨的收发室管理员。他负责检查你这封信的格式对不对(有没有写对收件人、寄件人地址),决定现在是不是可以把它送出去(避免和公司里其他人的信件在门口挤成一团),并且给这封信套上一个公司标准的信封,贴上内部流程单。而PHY(Physical Layer,物理层) 芯片,则是公司楼下邮局的那位工作人员。他不管信封里具体写了啥,他只关心一件事:如何把那个套着标准信封的邮件,变成邮车能运输、飞机能装载的形态。比如,把信件分拣到正确的国际航线包裹里,贴上航空标签,处理成符合目的地国家邮政法规的格式。
在网络硬件里,这个分工同样明确。MAC芯片工作在数据链路层,它处理的是数字世界的“规则”。它把上层交下来的数据打包成标准的“以太网帧”,这个帧就像那个标准信封,里面包含了目标MAC地址(收件人)、源MAC地址(寄件人)、类型字段以及最后的CRC校验码(防拆封标签)。它还要用CSMA/CD(载波侦听多路访问/冲突检测)等协议来决定何时把数据帧发到物理线路上,避免数据“撞车”。而PHY芯片则工作在物理层,它处理的是模拟世界的“信号”。它的任务是把MAC给它的并行数字数据(就是那串0和1),转换成能在网线里传输的模拟差分信号,或者把从网线里接收到的微弱模拟信号,还原成干净整齐的数字信号交给MAC。这个过程涉及到复杂的编码(如曼彻斯特编码、4B/5B编码)、时钟恢复、信号整形和驱动。
所以,当你点击“发送”的那一刻,数据流是这样的:应用层数据 -> TCP/IP协议栈 -> MAC芯片(打包成帧,管理发送时机)-> PHY芯片(数字转模拟,送上线路)-> 网线。反过来接收数据时,流程则倒过来。理解这对搭档,是理解一切有线网络设备(从你的电脑网卡到数据中心交换机)工作原理的基石。
2. MAC芯片:数据链路层的“智能调度中心”
MAC芯片,通常被称为以太网控制器,是数字逻辑世界的秩序维护者。它不一定总是一颗独立的芯片,现在很多MCU(微控制器)和MPU(微处理器)都内置了MAC控制器,这也就是常说的“内置MAC”。这种集成方式大大简化了硬件设计。那么,这个内置的“调度中心”具体干些什么呢?
2.1 发送侧:打包与仲裁
当处理器(CPU)想要发送网络数据时,它并不会直接操作PHY。CPU会把要发送的数据包(通常已经带上了IP头等信息)写入MAC芯片内部或外部指定的一块内存区域,我们称之为发送缓冲区(TX Buffer)。然后,MAC芯片的“发送引擎”开始工作。
首先,帧封装。MAC芯片会自动为这个数据包加上以太网帧头和帧尾。帧头包括前导码(用于时钟同步)、帧起始定界符、最重要的目的MAC地址和源MAC地址。帧尾则是一个4字节的CRC(循环冗余校验) 码,这个码是根据整个帧内容计算出来的,用于接收方校验数据是否在传输中出错。这个过程完全由硬件完成,速度极快,不占用CPU资源。
其次,


246

被折叠的 条评论
为什么被折叠?



