2. 物理层(一):信号与介质、RS-232/RS-485 电气特性、编码方式

各位同学,咱们今天正式进入物理层。说实话,很多做上层协议开发的工程师,一听到“物理层”就头大,觉得不就是一堆电平、线缆、噪声嘛,跟软件没啥关系。但我在实际项目中踩过的坑告诉我——物理层不稳,上层全是白搭。你想想看,TCP 重传再牛,底下的比特流都歪了,那还传个啥?

2.1 信号与传输介质:比特到底怎么“跑”起来的?

物理层的核心任务就一个:把 0 和 1 变成能在介质上传播的物理信号。说白了,就是给数字找个“肉身”。

信号分两种:

  • 模拟信号:连续变化,像老式电话线上的语音。抗干扰差,但带宽利用率高。
  • 数字信号:离散跳变,方波。我们嵌入式通信里用的基本都是这个。

传输介质呢?我按项目经验排个序:

介质类型 典型场景 我踩过的坑
双绞线 RS-485、以太网 绞距不够,共模干扰直接干翻通信
同轴电缆 视频、射频 阻抗不匹配,信号反射导致误码
光纤 长距离、高速 接头脏了,光功率衰减,丢包查了一周
无线(2.4G) Wi-Fi、ZigBee 同频干扰,重传率飙升到 30%
我的习惯: 做硬件选型时,先看传输距离和速率,再看环境噪声。别光看 datasheet 上的理想值,那都是实验室数据。

2.2 RS-232 与 RS-485:老当益壮的串行接口

这两个标准,做嵌入式的没人不知道。但你真的吃透它们的电气特性了吗?

2.2.1 RS-232:点对点的“老大哥”

RS-232 是早期 PC 串口的标配。它的电气特性很“暴力”:

  • 逻辑 1:-3V ~ -15V(负电压)
  • 逻辑 0:+3V ~ +15V(正电压)
  • 传输距离:约 15 米(再远就悬了)
  • 速率:通常 115200 bps 以内

为什么用负电压?为了抗干扰。信号摆幅大,噪声容限就高。但代价是功耗大,而且只能点对点。

我曾经踩过的坑: 有个项目用 RS-232 连 20 米外的设备,结果数据全是乱码。查了半天,发现线缆太长,信号衰减到 ±2V 以下,接收器直接不认了。后来换成 RS-485,问题解决。

2.2.2 RS-485:差分信号的“多面手”

RS-485 是我个人最喜欢的接口之一。它用差分信号传输:

  • 逻辑 1:A 线比 B 线高 200mV 以上
  • 逻辑 0:B 线比 A 线高 200mV 以上
  • 共模电压范围:-7V ~ +12V
  • 传输距离:可达 1200 米
  • 支持多点:最多 32 个节点(标准)

差分信号的好处很明显——共模噪声被抵消了。你想想看,两根线受到的干扰几乎一样,一减就没了。这也是为什么 RS-485 能在工业现场活得好好的。

特性 RS-232 RS-485
信号方式 单端 差分
最大节点数 2(点对点) 32(标准,可扩展)
最大距离 ~15 米 ~1200 米
抗干扰能力 弱 强
典型速率 115200 bps 10 Mbps(短距离)
避坑指南: RS-485 一定要加终端电阻(120Ω),否则信号反射会让你怀疑人生。我见过有人省了这颗电阻,结果 100 米外数据全错。

2.3 编码方式:NRZ 与曼彻斯特编码

信号有了,介质有了,接下来怎么把比特流变成波形?这就是编码干的事。

2.3.1 NRZ(不归零编码)

NRZ 是最简单的编码:

  • 高电平 = 1,低电平 = 0
  • 没有中间状态,电平在整个位周期内不变

优点:带宽利用率高。缺点:没有时钟同步。如果连续发一串 1 或 0,接收端就不知道每个 bit 的边界在哪了。

我记得有个项目用 NRZ 传长串 0x00,结果接收端时钟漂移,数据全错。后来加了曼彻斯特编码才搞定。

2.3.2 曼彻斯特编码

曼彻斯特编码在每个 bit 中间都有跳变:

  • 从高到低 = 1
  • 从低到高 = 0

这个跳变既是数据,也是时钟。接收端可以从跳变中恢复时钟,不需要额外的时钟线。以太网(10BASE-T)和 RFID 都在用。

代价呢?带宽翻倍。原来传 1 个 bit 的时间,现在只能传半个 bit 的信息。但换来的是可靠的同步,值不值?看场景。

编码方式 带宽效率 时钟同步 典型应用
NRZ 高(1 bit/Hz) 无 UART、RS-232
曼彻斯特 低(0.5 bit/Hz) 有 以太网、RFID
我的建议: 短距离、低速率用 NRZ 就够了。长距离或高速场景,优先考虑曼彻斯特或差分曼彻斯特。别为了省带宽牺牲可靠性。

2.4 本章知识结构图

下面这张图把物理层核心要素串起来了,方便你理解整体脉络:

物理层知识结构图 物理层(一)核心知识结构 物理层 信号与介质 RS-232 / RS-485 编码方式 模拟/数字 双绞线/光纤 单端/差分 点对点/多点 NRZ 曼彻斯特 核心要点 • 物理层是通信的基石,信号质量决定上层可靠性 • RS-485 差分信号抗干扰强,适合工业现场 • 曼彻斯特编码自带时钟,但带宽效率减半