第二章:通信芯片基础——物理层与协议栈的关系、芯片内部架构、关键性能指标

各位工程师朋友,大家好。今天我们来聊聊通信芯片的底子。说实话,很多刚入行的朋友,甚至一些做了两三年的硬件工程师,对芯片内部到底怎么工作的,还是有点模糊。我当年刚接触工业通信时,也踩过不少坑。这一章,我就把物理层、协议栈、芯片内部架构这些核心概念,掰开了揉碎了讲清楚。

2.1 物理层与协议栈:它们到底是什么关系?

先问大家一个问题:你发一条数据,从应用层到物理层,中间经历了什么?

很多人觉得,协议栈就是软件,物理层就是硬件。其实没那么简单。我个人的理解是:协议栈是“规矩”,物理层是“干活”的

举个例子。你想想看,两个人打电话。你说“喂”,对方听到了。这个“喂”就是数据。但要让这个“喂”从你嘴里传到对方耳朵里,中间需要声带振动、空气传播、耳膜接收。这个物理过程,就是物理层干的活。而你们约定好说中文、语速不要太快、不要同时说话,这些就是协议栈的规矩。

在工业通信里,物理层负责把0和1变成电信号、光信号或者无线信号,发出去。协议栈则负责这些0和1怎么打包、怎么排序、错了怎么办。

核心观点:物理层和协议栈是“上下级”关系。协议栈告诉物理层“你要发什么”,物理层负责“怎么发出去”。两者缺一不可。

我在项目中遇到过一件事。有一次调试一个RS485的通信系统,数据总是丢包。我查了半天,发现是物理层的电平转换芯片选型不对,导致信号边沿不够陡。但协议栈那边,CRC校验一直报错。你说这是物理层的问题还是协议栈的问题?其实都有。物理层信号质量差,协议栈再努力也救不回来。

2.2 芯片内部架构:MAC、PHY、CPU子系统

好,接下来我们看看通信芯片内部到底长什么样。说白了,一颗工业通信芯片,通常由三个核心部分组成:MAC层、PHY层、CPU子系统

2.2.1 MAC层(媒体访问控制层)

MAC层是协议栈和物理层之间的“翻译官”。它负责把协议栈发下来的数据帧,加上帧头、帧尾、地址信息,然后交给PHY层发送。反过来,从PHY层收到的数据,它也要检查地址对不对、有没有错误,再交给协议栈。

我建议大家在选型时,重点关注MAC层是否支持你需要的协议。比如,你要做EtherCAT,那MAC层必须支持EtherCAT的帧处理。有些芯片的MAC层是硬核实现的,速度快但灵活性差;有些是软核,灵活但占用CPU资源。

个人经验:如果你做的是实时性要求高的工业控制,尽量选硬核MAC。我吃过亏,用软核MAC跑EtherCAT,结果抖动太大,被客户投诉了。

2.2.2 PHY层(物理层)

PHY层就是干“苦力活”的。它把MAC层送来的数字信号,转换成适合在物理介质上传输的模拟信号。比如,以太网的PHY会把数字信号变成差分电压信号,通过网线发出去。

PHY层的选型,我个人习惯先看几个关键参数:

  • 速率:10M、100M、1G?根据你的需求来。
  • 接口类型:MII、RMII、RGMII?这个要和MAC层匹配。
  • 功耗:工业现场很多是总线供电,功耗高了不行。
  • 温度范围:工业级至少-40°C到85°C。

我记得有一次选型,客户要求用百兆以太网,我选了一颗很便宜的PHY芯片。结果到了现场,温度一高就掉线。后来换了工业级的PHY,问题才解决。嗯,这里要注意,便宜没好货,在工业通信里尤其如此。

2.2.3 CPU子系统

CPU子系统是芯片的“大脑”。它运行协议栈软件,处理各种中断,管理数据流。有些芯片的CPU是ARM Cortex-M系列,有些是RISC-V,还有些是自研内核。

CPU子系统的性能,直接决定了芯片能跑多复杂的协议栈。比如,你要跑完整的TCP/IP协议栈,那CPU主频至少得100MHz以上,还得有足够的RAM和Flash。

避坑指南:我曾经选了一颗号称“工业级”的芯片,结果CPU只有64MHz,跑Modbus TCP还行,一跑Profinet就卡死。后来才发现,它的RAM只有64KB,根本不够用。所以,选型时一定要看CPU子系统的资源够不够。

2.3 关键性能指标:吞吐量、延迟、抖动、功耗

好了,芯片内部架构搞清楚了。那怎么评价一颗芯片好不好?看四个指标:吞吐量、延迟、抖动、功耗

2.3.1 吞吐量

吞吐量,说白了就是芯片“能跑多快”。单位是bps(比特每秒)或者pps(包每秒)。

举个例子,一颗百兆以太网芯片,理论吞吐量是100Mbps。但实际应用中,因为协议开销、CPU处理能力限制,实际吞吐量可能只有70-80Mbps。

我建议大家在选型时,不要只看理论值。要看芯片在典型应用场景下的实际吞吐量。有些芯片标称千兆,但实际跑起来,小包吞吐量惨不忍睹。

2.3.2 延迟

延迟,就是数据从发出去到收到,花了多少时间。单位是微秒(μs)或毫秒(ms)。

在工业通信里,延迟是硬指标。比如,运动控制要求延迟小于1ms。如果芯片延迟太大,机器就会抖动,甚至出事故。

延迟的来源主要有三个:

  • PHY层延迟:信号转换和传输的时间。
  • MAC层延迟:帧处理和排队的时间。
  • CPU处理延迟:协议栈处理的时间。

关键点:选型时,要关注芯片的“最差情况延迟”,而不是平均延迟。工业现场,最差情况才是决定系统稳定性的关键。

2.3.3 抖动

抖动,就是延迟的变化量。单位也是微秒或毫秒。

为什么抖动重要?你想想看,如果每次通信的延迟都不一样,那控制系统的时序就会乱。比如,一个PLC每隔10ms发一次指令,结果有时候延迟5ms,有时候延迟15ms,那执行机构就不知道什么时候该动作了。

我个人的经验是,抖动比延迟更难处理。延迟大,你可以通过软件补偿。但抖动大,补偿起来非常麻烦。所以,选芯片时,一定要看它的抖动指标。尤其是做实时以太网(如EtherCAT、Profinet IRT)时,抖动必须控制在微秒级甚至纳秒级。

2.3.4 功耗

功耗,就是芯片“吃多少电”。单位是瓦特(W)或毫瓦(mW)。

工业现场,很多设备是总线供电的,比如PoE(Power over Ethernet)或者两线制供电。功耗高了,供电端扛不住,或者线缆压降太大,设备就启动不了。

我建议大家在选型时,先算一下总功耗。包括芯片本身、外围电路(如变压器、电阻、电容)的功耗。有些芯片标称功耗很低,但加上外围电路后,总功耗翻了一倍。

小技巧:选型时,可以看看芯片有没有“节能模式”。比如,空闲时自动降频,或者关闭不用的PHY通道。我在一个项目中,就是靠这个功能,把整机功耗从5W降到了2W。

2.4 总结一下

这一章,我们讲了物理层和协议栈的关系,芯片内部的MAC、PHY、CPU子系统,以及四个关键性能指标。说白了,选通信芯片,就是在这几个维度之间找平衡。

吞吐量要高,延迟要低,抖动要小,功耗要低。但现实是,没有一颗芯片能同时做到最好。你需要根据你的应用场景,做出取舍。

比如,做运动控制,优先看延迟和抖动;做数据采集,优先看吞吐量;做总线供电设备,优先看功耗。

下一章,我们会深入讲具体的芯片选型流程,包括怎么读数据手册、怎么对比不同芯片、怎么做测试验证。到时候,我会拿几个实际案例出来,跟大家分享我踩过的坑和总结的经验。

好,今天就到这里。有什么问题,欢迎在评论区留言,我们一起讨论。