第二讲:物理层与电气特性
各位同学,咱们今天聊聊物理层。说白了,就是信号在线上怎么跑、怎么保证它不跑偏。我做了十几年工业通讯,发现很多现场问题,追根溯源都是物理层没搞明白。你协议栈写得再漂亮,物理层一塌糊涂,照样通讯不上。
RS-232:老当益壮的点对点通讯
RS-232,这玩意儿年纪比我都大。但它现在还在用,为什么?简单、可靠。我记得刚入行那会儿,调试一台老式PLC,用的就是RS-232。一根串口线,三根线(发送、接收、地线)就能干活。
它的电气特性是这样的:用-3V到-15V表示逻辑"1",用+3V到+15V表示逻辑"0"。你想想看,电压摆幅这么大,抗干扰能力自然不错。但代价是什么?传输距离短,一般不超过15米。速率也上不去,通常也就115.2kbps到头了。
我个人习惯,RS-232只用在设备间距离近、速率要求不高的场合。比如配置交换机、调试嵌入式设备,用RS-232最顺手。
关键参数速查:
- 信号方式:单端(非平衡)
- 传输距离:≤15米(典型)
- 最高速率:115.2kbps(常用)
- 连接方式:点对点(1对1)
- 电平范围:±3V ~ ±15V
RS-485:工业现场的主力军
RS-485就不一样了。它用的是差分信号传输,说白了就是两根线(A和B)拧在一起,信号靠两根线的电压差来传递。为什么工业现场都用它?抗干扰能力强啊!
我在一个化工厂项目里遇到过,现场电机一启动,RS-232通讯就乱码。换成RS-485之后,问题迎刃而解。差分信号的好处就在这里——干扰信号同时作用在两根线上,电压差基本不变,信号自然就保住了。
RS-485的电气特性:A线比B线高200mV以上,表示逻辑"1";A线比B线低200mV以上,表示逻辑"0"。注意,这个电压差很小,但足够可靠。
RS-422:全双工的RS-485
RS-422和RS-485很像,但有个关键区别:RS-422是4线制(两对差分线),支持全双工。RS-485是2线制(一对差分线),半双工。
什么时候用RS-422?你需要同时收发数据的时候。比如某些高速数据采集系统,上位机要不停地发指令,设备要不停地回数据。用RS-485你得来回切换方向,麻烦。RS-422就省心多了。
| 特性 | RS-232 | RS-485 | RS-422 |
|---|---|---|---|
| 信号方式 | 单端 | 差分 | 差分 |
| 传输距离 | 15米 | 1200米 | 1200米 |
| 最大节点数 | 1发1收 | 32个(标准) | 1发10收 |
| 工作模式 | 全双工 | 半双工 | 全双工 |
| 常用速率 | 115.2kbps | 10Mbps | 10Mbps |
差分信号原理:为什么它这么强?
咱们来拆解一下差分信号。你想想看,两根线走在一起,外界干扰来了,两根线上同时感应出同样的噪声。接收端看的是两根线的电压差,噪声一减,等于没影响。这就是共模抑制。
我曾经在一个变频器旁边测信号,用示波器看单端信号,波形上全是毛刺。换成差分探头看A-B的差值,波形干净得像教科书一样。嗯,这就是差分信号的魅力。
小技巧:现场排查干扰问题时,可以用示波器分别看A线和B线对地的波形。如果两根线的噪声波形几乎一样,说明共模干扰严重,但差分信号大概率没问题。如果两根线噪声不一样,那就要查接地了。
终端电阻匹配:别小看这120欧姆
终端电阻,说白了就是在线路两端各并一个120欧姆的电阻。为什么?为了消除信号反射。
信号在线上跑,遇到阻抗不连续的地方就会反射。反射回来的信号和原来的信号叠加,波形就变形了。我见过一个现场,RS-485通讯时好时坏,查了半天,就是终端电阻没加。加上之后,稳如老狗。
怎么算终端电阻?特性阻抗。对于常用的双绞线,特性阻抗大约是120欧姆。所以终端电阻就用120欧姆。注意,只在最远的两端加,中间节点不要加。
警告:终端电阻不是随便加的!
- 只在总线两端各加一个
- 中间节点加电阻会拉低信号幅值
- 短距离(<50米)低速(<9600bps)可以不加
- 长距离高速必须加
常见接线错误:我踩过的坑
做工业通讯这些年,接线错误见得太多了。我给大家列几个最常见的:
- A/B线接反:这是最基础的错误。RS-485的A和B接反了,通讯肯定不通。解决办法?用万用表量一下,或者看设备上的标识。有些设备标的是D+和D-,对应A和B。
- 忘记接GND:很多人觉得RS-485是差分信号,不用共地。错!虽然差分信号对共模电压有容忍度,但共模电压超出范围(-7V到+12V)就会烧芯片。我建议,不管什么情况,都把GND接上。
- 星型拓扑:RS-485要求手拉手接线,不能搞星型。星型接法会导致信号反射,通讯不稳定。我曾经在一个项目里,施工队图省事,把设备都接到一个接线盒里。结果通讯乱得一塌糊涂。后来改成手拉手,问题解决。
- 终端电阻加在中间:这个错误也很常见。终端电阻要加在总线两端,不是中间。加在中间等于白加,还会影响信号质量。
- 线缆类型不对:RS-485要用双绞线,不能用平行线。双绞线能有效抑制共模干扰。我见过有人用电话线走RS-485,距离一长就出问题。
避坑指南:
我曾经在一个风电项目里,RS-485通讯总是丢包。现场排查了三天,最后发现是屏蔽层接地问题。屏蔽层要单端接地,不能两端都接。两端都接会形成地环路,引入干扰。从那以后,我每次做项目都会专门检查屏蔽层接地方式。
好了,物理层和电气特性就讲这么多。记住一句话:物理层搞不定,上层协议再牛也白搭。下一讲咱们聊聊数据链路层,看看数据帧是怎么组装和解析的。