[通讯协议]485通信
RS-485简介
RS-485(简称485)是一种差分信号传输标准,使用的协议就是串口协议。它具有以下通信能力:
- 传输速率:最高传输速率为10Mbps在短距离 (<100米) 时,速率可达10Mbps;在长距离(1200米)时,速率通常降至约100kbps。
- 传输距离:最大传输距离标准值为1200米,在9600bps时可达1200米,实际应用中甚至可达3000米。
- 通信方式:半双工,支持多点通信,总线上允许连接多达128个收发器,适合构建设备网络。
- 抗干扰能力:采用差分信号传输,抗干扰能力强,适合工业环境。
- 适用场景:适用于长距离、多设备的工业网络,如PLC控制系统、楼宇自动化等。
差分电压范围
- 发送端:
- 逻辑“1”:A线相对于B线的电压差为 +2V 至 +6V。
- 逻辑“0”:A线相对于B线的电压差为 -2V 至 -6V。
- 接收端:
- 逻辑“1”:差分电压大于 +200mV。
- 逻辑“0”:差分电压小于 -200mV。
空闲状态
在485电路设计中,通常会在A上加上拉电阻,B上加下拉电阻,以保证总线空闲时AB间的压差不会让接收器误收数据。在空闲状态下,AB间的压差应该尽量小于200mV。
由于电路上终端电阻和接入的负载输出电阻的影响,空闲状态的AB压差会不同,这里就大概展示一下计算方法:
通信故障的可能原因和排查方法
1. 接线错误或短路
- 常见问题:A/B线接反、A/B对地或电源短路、线间短路。
- 排查方法:用万用表测量A/B线对地电压,检查线间是否短路或接触不良。
2. 终端电阻配置错误
- 问题:未接或错误接多组终端电阻可能导致负载过重或信号反射。
- 检查:确保总线仅有两端接120Ω电阻,中间节点不接。
3. 驱动器能力不足或故障
- 供电问题:电源电压不足或驱动器芯片损坏。
- 负载过重:总线挂接过多接收器或驱动器输出电流不足。
- 解决方案:检查供电电压是否稳定,减少总线节点数量或选用驱动能力更强的芯片。
4. 通信未激活或模式配置错误
- 问题:驱动器未使能或总线处于空闲状态。
- 验证方法:确保发送数据时驱动器已使能,观察AB压差变化。
5. 信号反射或干扰
- 长线未匹配:信号反射导致压差降低。
- 电磁干扰:强干扰源耦合到总线,影响信号传输。
- 应对措施:增加终端电阻、缩短总线长度或使用屏蔽双绞线并接地。
6. 芯片或电路设计缺陷
- 芯片选型不当:选用低功耗或半双工芯片可能导致驱动能力不足。
- 偏置电阻缺失:某些设计需要在A/B线上拉/下拉电阻,确保空闲状态压差。
- 检查数据手册:确认芯片的驱动电流、负载能力、偏置电阻要求是否符合当前设计。
以上列出的故障原因和排查方法可以帮助您解决RS-485通信中可能遇到的问题。
一个数字隔离的SP385电路
RX、TX通过数字隔离器传输信号到下一级,这里是一个自动切换收发模式的电路(速度较慢115200波特率就有可能通信错误),因为单片机的UART的TX空闲时是高电平 所以Q29三极管默认是打开的,RE为低电平,485默认在接受状态,通过RO返回AB上接收的信号,这就是接收的原理,当发送时分两种情况,发0时,三极管不导通,DE被上拉为高电平,485进入发送模式,AB间电平由DI决定,DI接地所以发送的是0,发1时,三极管导通,RE被拉低,485进入接受模式,此时AB是高阻态,电压由外部上下拉觉得,由于A上拉B下拉,所以A>B 发送的是1,由此实现发1和发0的逻辑,后面的两个保护器件,AB之间的是抑制共模噪声和瞬态电压的,D15主要是防静电击穿。