2、电气特性详解:RS232电平标准(±12V)、RS485差分信号(±5V)、共模电压范围
好,咱们直接进入正题。电气特性这东西,说白了就是「信号长什么样」。你搞不清电平,示波器一挂上去就懵了。我见过不少工程师,拿着RS232的板子去接RS485的设备,结果冒烟了还一脸无辜。嗯,咱们今天就把这事彻底捋清楚。
2.1 RS232电平标准:±12V的「大嗓门」
RS232是早期串口的老大哥。它的电平标准,我习惯叫它「大摆幅」——逻辑1是-3V到-15V,逻辑0是+3V到+15V。实际应用中,大多数设备用±12V或±5V。为什么搞这么大?说白了就是为了抗干扰。早期工业环境里,电锯一开,干扰满天飞,信号幅度小了根本传不远。
关键参数速查:
- 逻辑1(MARK):-3V ~ -15V(典型-12V)
- 逻辑0(SPACE):+3V ~ +15V(典型+12V)
- 噪声容限:2V(接收端门槛为±3V)
- 最大传输距离:约15米(@9600bps)
我在项目中遇到过一件事。有个老设备,RS232口输出只有±5V,接了个长线跑到20米外,数据全乱。后来一查,线缆寄生电容太大,信号衰减到接收端已经低于±3V的门槛了。你想想看,接收器看到的是啥?全是毛刺。解决办法很简单——换成了±12V的驱动芯片,或者加个中继器。
我的个人习惯:设计RS232电路时,我会在TX和RX线上各串一个100Ω电阻。不是为了限流,而是为了匹配阻抗、抑制过冲。尤其是走线超过10厘米时,这个电阻能救你一命。
2.2 RS485差分信号:±5V的「平衡大师」
RS485跟RS232完全是两码事。它用的是差分信号——两根线(A和B)之间的电压差来决定逻辑状态。逻辑1:A-B > +200mV;逻辑0:A-B < -200mV。典型驱动电压是±5V,但实际在总线上测到的差模电压通常只有1.5V到5V之间。
为什么会这样?因为RS485是「电流型」驱动。驱动器输出的是电流,接收端看到的是经过终端电阻后的电压。我记得有一次调试一个485总线,示波器一看,A-B电压差只有0.8V,但通信完全正常。新手可能会慌,其实只要超过200mV的门槛,就没问题。
RS485差分信号核心参数:
- 差模电压范围:±1.5V ~ ±6V(典型±5V)
- 接收器输入灵敏度:±200mV
- 共模电压范围:-7V ~ +12V(标准RS485)
- 最大传输距离:约1200米(@100kbps)
这里有个坑,我踩过。RS485的A/B线如果接反了,通信会完全失败。但有些芯片有「极性自适应」功能,比如MAX13487E。不过我个人建议——别依赖这个。设计时老老实实在PCB上标清楚A和B,线缆也用颜色区分(我习惯A用绿、B用黄)。
注意:RS485的终端电阻不是随便加的。只有在总线两端才需要加120Ω电阻。中间节点加了反而会降低信号质量。我曾经见过一个项目,每个节点都焊了120Ω电阻,结果总线负载太重,驱动芯片直接过热保护。
2.3 共模电压范围:被忽视的「隐形杀手」
共模电压,说白了就是两根信号线相对于「地」的平均电压。RS232是单端信号,共模问题不明显。但RS485是差分信号,共模电压范围直接决定了系统的可靠性。
标准RS485的共模电压范围是-7V到+12V。什么意思?就是A线和B线对地的电压,不能超出这个范围。如果超出,接收器可能饱和,甚至烧毁。
我遇到过最典型的情况:两个设备距离200米,地电位差达到8V。结果RS485芯片虽然没烧,但通信时好时坏。示波器一看,A线对地电压已经到15V了,超出了12V的上限。解决办法?加隔离!用ADM2483这样的隔离型RS485芯片,或者用光耦+DC-DC隔离电源。
避坑指南:我曾经在一个项目中,为了省成本没加隔离,结果雷雨季节烧了3块主板的RS485芯片。从那以后,只要距离超过50米,或者两个设备用不同电源供电,我必加隔离。成本多20块钱,但省心一万倍。
2.4 RS232 vs RS485:一张表说清楚
| 参数 | RS232 | RS485 |
|---|---|---|
| 信号类型 | 单端(对地) | 差分(A-B) |
| 逻辑电平 | ±3V ~ ±15V | 差模±200mV ~ ±6V |
| 共模范围 | 无明确要求 | -7V ~ +12V |
| 最大速率 | 115200bps(典型) | 10Mbps(典型) |
| 最大距离 | 15米 | 1200米 |
| 节点数 | 点对点(1收1发) | 最多256节点(半双工) |
| 抗干扰能力 | 弱 | 强(共模抑制) |
你想想看,RS232就像两个人面对面喊话,声音大但传不远。RS485就像两个人用对讲机,声音小但能传几公里。选哪个,看你的应用场景。
2.5 实际设计中的电平转换
现在很多MCU的UART口是3.3V或1.8V的TTL电平。要接RS232或RS485,必须加电平转换芯片。我常用的方案:
- RS232:MAX3232(3.3V供电,自带电荷泵产生±5V)
- RS485:MAX3485(3.3V供电,差模输出约±2V)
这里有个细节。MAX3232的电荷泵需要4个外部电容,我习惯用0.1μF的陶瓷电容。但有些廉价板子用10μF电解电容,也能工作,只是纹波大一点。嗯,能用,但不推荐。
电平转换电路设计要点:
- RS232的电荷泵电容尽量靠近芯片引脚,走线越短越好
- RS485的A/B线要加TVS管(比如SMBJ6.0A)防浪涌
- RS485的使能脚(RE/DE)不要悬空,否则芯片会进入不确定状态
- 如果总线有多个节点,建议在最后一个节点加偏置电阻(上拉A、下拉B)
好了,电气特性这块就讲这么多。记住一句话:RS232看幅度,RS485看差分,共模范围别忽视。下一节咱们聊硬件电路设计,到时候我会拿实际原理图出来拆解。