RS485作为常见的总线之一,几乎每个工控设备都在用,我们也对其熟悉不过了。我们都知道RS485双半双工通信,其CPU内部的根源是串口通信,串口通信是区分发送TX和接收RX的,在同一对差分信号线上同时传输TX、RX,就是进行方向的控制,方向的控制时机不对,数据传送是要出问题的。例如下图1、图2中,CPU端的TX信号发送完毕后约100uS后方向引脚 拉低,切换到接收状态,但是在TX信号发送完毕后60uS从机就回复了的RX信号,由于此时还是处于RS485芯片还是处于发送状态,此时的接收数据将会被忽略,在系统层面就是体现为数据接收丢包。
有些读者会可能会想,只要从机回复数据晚一些,不要这么快速回复,就不存在这个问题了。但是从机一般都是客户的机器,我们几乎不可能要求别人更改回复时间。例如三菱的Fx3U PLC作为从机时,从主机发送数据结束到从机回复数据,只用了60uS,部分控制板,甚至回复时间在10uS以内。研究RS485的方向切换的目标就是:RS485总线空闲时要处于接收状态,如果有主机发送数据,则置高方向引脚,发送完成及时切换到接收状态。
一、RS485方向切换的方案
1