在 MCU(Micro Controller Unit,多点控制单元)之间中长距离通信的诸多方案中,RS-485 因硬件设计简单、控制方便、成本低廉等优点广泛应用于工厂自动化、工业控制等领域。但 RS-485 总线在抗干扰、自适应、通信效率等方面仍存在缺陷,一些细节处理不当常导致通信失败甚至系统瘫痪等故障,故提高 RS-485 总线运行可靠性至关重要。
总线匹配:总线匹配有两种方法,终端匹配采用终端电阻方法(如图4-14):位于总线两端的差分端口 VA 与 VB 之间应跨接 120 Ω 匹配电阻、相当于电缆特性阻抗的电阻。大多数双绞线电缆特性阻抗大约 100~120 Ω,可减少因不匹配引起的反射及吸收噪声。这种方法简单有效、但匹配电阻要消耗较大电流、不适用于功耗限制严格的系统。
图4-14 总线匹配电阻
另有一种较省电的匹配方案是 RC 匹配(图4-15(a)):利用一只电容 C 隔断直流成分、可节省大部分功率,但电容 C 取值是难点、需在功耗与匹配质量间折衷。除上述两种外还有采用二极管的匹配方案(图4-15(b)):虽未实现真正匹配、但可利用二极管钳位作用迅速削弱反射信号、改善信号质量、节能效果显著。
图4-15 RC、二极管的匹配
异步通信数据以字节方式传送,每个字节传送前先通过一个低电平起始位实现握手。为防止干扰信号误触发 RO(接收器输出)产生负跳变、使接收端 MCU 进入接收状态,RO 需外接 10 kΩ 上拉电阻。为保证系统上电时 RS-485 芯片处于接收输入状态,对收发控制端 TC 采用 MCU 引脚通过反相器控制、不宜直接用 MCU 引脚控制、防止上电时对总线干扰。RS-485 总线为并接式二线制接口,一旦一只芯片出现故障就可能将总线“拉死”、故对其二线口 VA、VB 与总线之间应加以隔离,通常 VA、VB 与总线间各串接一只 4~10 Ω PTC 电阻、同时与地之间各跨接 5 V TVS 二极管、消除线路浪涌干扰。
网络节点数:网络节点数与所选 RS-485 芯片驱动能力和接收器输入阻抗有关,例如 75LBC184 标称最大值为 64 点、SP485R 标称最大值为 400 点。RS-485 相对 RS-232 等全双工总线效率低了许多,因此选用合适通信协议及控制方式非常重要。应用时可选择在数据发送前 1 ms 将收发控制端 TC 置成高电平、使总线进入稳定发送状态后才发送数据;数据发送完毕再延迟 1 ms 后置 TC 端低电平、使可靠发送完毕后才转入接收状态;使用 TC 端延时 4 个机器周期已满足要求。为保证数据传输质量,对每个字节校验的同时应尽量减少特征字与校验字。