一、串行通讯基础:为什么我们还在用RS232/RS485?
大家好,我是老张。做硬件这行二十年了,每次带新人,我都要先问一个问题:你知道串口和并口的区别吗?很多人觉得串口慢,并口快。但现实是——串口活到了今天,并口早就进博物馆了。
串行通讯,说白了就是一根线传数据,一次传一个bit。就像单车道,车一辆一辆过。并行通讯呢?八车道,一次传八个bit。听起来并行更快对吧?但实际工程中,并行线之间会有串扰,信号会歪歪扭扭,距离一长就完蛋。
我记得刚入行那会儿,调试一个并口打印机接口,线长不到两米,数据就乱码了。后来换成RS232串口,十米都没问题。嗯,这就是串行的魅力——牺牲速度,换来了距离和可靠性。
串行通讯的核心三要素:
- 波特率:每秒传多少bit。9600、115200是常见值。
- 数据位:一般是8位,也有7位(老式ASCII)。
- 停止位:1位或2位,用来分隔数据帧。
你想想看,两个设备要通讯,波特率、数据位、停止位、校验位必须完全一致。否则就是鸡同鸭讲。我在项目里见过最坑的事——有人把波特率设成了9600和19200,结果数据全是乱码,查了三天才发现。
二、RS232与RS485的区别:不只是电压不同
2.1 RS232:老当益壮的短距离选手
RS232是串口的老祖宗。它的信号电平是±12V,逻辑1是-12V,逻辑0是+12V。为什么用这么高的电压?为了抗干扰。但代价是——距离短,最多15米。
我个人习惯把RS232叫做点对点通讯。一台设备只能连一台设备,不能多机通信。而且它用的是全双工,可以同时收发。这在调试设备时特别方便——你这边发命令,那边就能回数据,不用等。
我的经验:RS232最经典的场景就是调试串口。我几乎每个嵌入式项目都会留一个RS232口,用来打印log。哪怕产品量产了,这个口也不去掉。为什么?因为现场出问题,插上串口线一看log,问题就清楚了。
2.2 RS485:工业现场的王者
RS485就不一样了。它用的是差分信号,两根线(A和B)传数据。电压差在±200mV到±6V之间。你想想看,两根线绞在一起,外界干扰同时作用在两根线上,差值是稳定的。所以RS485能传1200米,甚至更远。
而且RS485是半双工,同一时间只能发或收。但它支持多机通信,一条总线上可以挂32个设备(用高阻抗芯片可以挂256个)。
| 特性 | RS232 | RS485 |
|---|---|---|
| 信号方式 | 单端(±12V) | 差分(A/B线) |
| 最大距离 | 15米 | 1200米 |
| 通信方式 | 全双工 | 半双工 |
| 节点数 | 1对1 | 1对32(典型) |
| 抗干扰 | 一般 | 强 |
| 典型应用 | 调试口、短距设备 | 工业总线、远距离 |
注意:RS485虽然抗干扰强,但终端电阻必须加。我曾经在一个项目里,现场总线长度300米,没加终端电阻,数据偶尔丢包。加了120Ω电阻后,稳如老狗。记住:长线必须加电阻,短线可以不加。
三、应用场景对比:什么时候用RS232,什么时候用RS485?
3.1 RS232的典型场景
- 设备调试口:几乎所有工控设备、嵌入式板子都带RS232。插上串口线,用SecureCRT或Putty就能看log。
- 短距设备互联:比如电脑连PLC、连条码枪。距离不超过10米,用RS232最方便。
- 老设备改造:很多老仪器只有RS232口,没办法,只能用它。
我记得有一次去现场调试一台进口设备,对方说只能走RS232。我一看距离,50米。这怎么搞?后来加了个RS232转RS485的转换器,才搞定。所以有时候不是选哪个的问题,是设备只支持哪个的问题。
3.2 RS485的典型场景
- 工业现场总线:Modbus RTU、Profibus DP这些协议,底层都是RS485。一条总线上挂几十个传感器、执行器。
- 远距离数据采集:比如水厂、油田,设备分散在几百米甚至上千米范围内。RS485是首选。
- 多设备组网:一个主站带多个从站,轮询采集数据。RS485天然支持这种模式。
我的建议:
- 距离 < 10米,设备少 → 用RS232,简单可靠
- 距离 > 100米,设备多 → 用RS485,抗干扰强
- 不确定? → 留个RS485口,加个转换器就能变RS232
四、避坑指南:我踩过的那些坑
做硬件二十年,串口上栽过的跟头不少。分享几个典型的:
坑一:RS232的DB9针脚定义搞反
我曾经自己做了一根串口线,2脚和3脚焊反了。结果怎么调都通不了。后来用万用表一量,才发现TX和RX接反了。记住:2脚是RX,3脚是TX,5脚是GND。交叉连接才能通。
坑二:RS485的A/B线接反
RS485的A和B是差分对,接反了不会烧设备,但数据全是乱码。我有个项目,现场工人把A/B线接反了,我远程指导他换了一下,立马正常。所以布线时一定要标清楚A和B。
坑三:共地问题
RS232虽然只有三根线,但GND必须接。不接GND,信号参考电位不一样,数据会飘。RS485虽然理论上不需要共地,但实际工程中,建议加一根地线。我见过太多因为地电位差导致通讯不稳定的案例了。
五、小结
好了,这一章就讲到这里。总结一下:
- 串行通讯用一根线传数据,距离远、抗干扰强
- RS232适合短距、点对点、调试场景
- RS485适合长距、多设备、工业现场
- 选型时考虑距离、节点数、抗干扰需求
下一章,我会详细讲RS232的硬件设计——从芯片选型到电路保护,都是实战经验。咱们下章见。
公众号:蓝海资料掘金营,微信deep3321