第二章:物理层与传输介质

各位同学,咱们今天聊聊Modbus的“地基”——物理层。说白了,就是信号怎么在线上跑起来。我见过不少新手,一上来就盯着协议栈看,结果现场调试时线都接不对,那叫一个尴尬。所以,这一章咱们把底层的硬功夫练扎实。

2.1 RS-232:老当益壮的短距离选手

RS-232,这玩意儿年纪比我还大。它用的是单端信号传输,一根信号线对地,电压差来代表逻辑0和1。逻辑1是-3V到-15V,逻辑0是+3V到+15V。嗯,这里要注意,它的电压范围跟现在主流的3.3V或5V系统不兼容,所以需要电平转换芯片,比如MAX232。

避坑指南:我曾经在一个老旧设备上调试,死活连不上。查了半天,发现是RS-232的DB9接口第5脚(地线)没接好。记住,RS-232的“地”是信号回流的路径,不接它,信号就飘在天上。

RS-232的最大缺点就是传输距离短,一般也就15米左右。而且它只能点对点通信,一个串口只能连一个设备。你想想看,要是工厂里几百个传感器都用RS-232,那线缆得绕成蜘蛛网。

2.2 RS-485:工业现场的主力军

RS-485就不一样了。它用的是差分信号传输,两根线(A和B)之间的电压差来决定逻辑。逻辑1是A比B高,逻辑0是B比A高。这种差分结构抗干扰能力极强,传输距离能到1200米以上。

我个人习惯,在项目选型时,只要距离超过50米或者现场有电机、变频器这类强干扰源,二话不说就上RS-485。它支持多点通信,一条总线上最多能挂32个节点(标准负载),如果用高阻抗的芯片,甚至可以挂到256个。

小技巧:RS-485的A、B线千万别接反。我见过一个哥们儿,A和B接反了,数据全乱码。其实有个土办法:用万用表量一下,A线对地电压通常是正的,B线是负的。

2.3 RS-422:全双工的“老大哥”

RS-422跟RS-485很像,也是差分信号。但它多了一对线,实现了全双工通信——可以同时发送和接收。而RS-485是半双工,同一时间只能发或收。

RS-422一般用在需要高速、长距离、全双工的场合,比如一些老式的PLC编程口。不过现在RS-485用得更多,因为半双工对大多数应用来说已经够用了,而且布线更简单。

2.4 双绞线与终端电阻

说到传输介质,双绞线是RS-485/RS-422的标配。为什么用双绞线?因为两根线绞在一起,外部干扰在两根线上产生的噪声大小相等、方向相反,差分接收器一减,噪声就抵消了。说白了,这就是物理层的“共模抑制”。

终端电阻,这是个容易忽略的细节。在RS-485总线的两端,各需要接一个120欧姆的电阻。为什么是120欧姆?因为双绞线的特性阻抗就是120欧姆。接上它,信号到了线缆末端就不会反射回来,避免数据出错。

我的经验:有一次在一条300米长的RS-485总线上,没接终端电阻,数据偶尔会丢包。接上之后,稳如老狗。记住:短距离(比如几米内)可以不接,但超过100米,必须接。

2.5 串口参数:波特率、数据位、校验位、停止位

这些参数是Modbus通信的“握手协议”。两边必须设置一致,否则鸡同鸭讲。

参数 说明 常见值
波特率 每秒传输的符号数,单位bps 9600、19200、38400、115200
数据位 每个字节的数据位数 7位(ASCII模式)、8位(RTU模式)
校验位 用于检错 无校验、奇校验、偶校验
停止位 表示一个字节传输结束 1位、2位

我个人习惯,Modbus RTU模式用8位数据位、无校验、1位停止位,波特率根据距离和干扰情况选。9600是万金油,115200速度快但容易受干扰。

注意:波特率不是越高越好。我曾经在一个强电磁干扰的车间里,用115200的波特率,数据错误率高达30%。降到9600后,错误率几乎为零。速度慢一点,但可靠。

2.6 TCP/IP物理层

Modbus TCP/IP的物理层就简单多了。它直接跑在以太网上,用的是标准的RJ45接口和网线。物理层由IEEE 802.3标准定义,我们只需要关心网线类型和连接方式。

常用的网线有超五类(Cat5e)和六类(Cat6)。Cat5e支持100Mbps,Cat6支持1000Mbps。对于Modbus TCP来说,100Mbps已经绰绰有余了。

连接方式有两种:直连线和交叉线。现在大部分设备都支持自动翻转(Auto MDI/MDI-X),所以随便用哪种线都行。但老设备可能不支持,我建议手边常备一根交叉线,以防万一。

小提示:Modbus TCP的物理层虽然简单,但别忘了IP地址和端口号。默认端口是502,这个别搞错了。

知识体系总览

下面这张图,把本章的核心逻辑串起来了。你看一眼,心里就有数了。

Modbus物理层知识体系 串行通信 网络通信 RS-232 RS-485 RS-422 以太网 Wi-Fi 传输介质:双绞线、同轴电缆、光纤、网线 关键器件:终端电阻(120Ω)、电平转换芯片、隔离器 串口参数:波特率、数据位、校验位、停止位

好了,物理层这块就聊到这儿。记住一句话:物理层是基础,基础不牢,地动山摇。下一章咱们进入数据链路层,看看Modbus的帧结构是怎么组织的。


公众号:蓝海资料掘金营,微信deep3321