RS485(半)全双工实现

时间:2024-05-19 11:46:42
我们经常使用RS485的半双工方式,但是真实的情况是RS485、RS422、RS232都是可以实现全双工的。
在实际使用过程中我们一直是把RS485设计成半双工使用。其实RS485类似RS422,只不过在个别参数上比RS422更加灵活,也就是说RS485可以兼容RS422,但反过来就不一定了。RS485如果接成四线就是全双工,如果把输入和输出并接,并且只接两条线那么就是半双工的了。因为实际使用半双工的比较多。另外好多芯片内部就把输入和输出并接了。

RS232,RS422,RS485是电气标准,规定信号的逻辑高和逻辑低是如何表示的;

RS232:全双工,最少3条通信线(RX,TX,GND);

RS422:全双工,在RS232之后推出,使用TLL差动电平表示逻辑,就是用两根信号的电压差表示逻辑高和逻辑低,最少要4根通信线(一般要还要多拉一根地线);一个驱动器可以驱动(最多)10个接收器,通讯距离与通讯速率有关系,一般距离短时可以使用高速率进行通信,速率低时可以进行较远距离通信,一般可达数百上千米。
RS485:全双工/半双工,在RS422之后推出,绝大部分继承了422,主要的差别是RS485可以是半双工的,而且一个驱动器的驱动能力至少可以驱动32个接收器,当使用阻抗更高的接收器时可以驱动更多的接收器。所以现在大多数全双工485驱动/接收器对都是标:RS422/48;因为全双工RS485的驱动/接收器一定可以用在RS422网络。

为什么RS485很少用全双工方式呢?主要是哪种方式更有优势的问题,使用全双工要多一倍左右的导线,而相对芯片而言传输导线的成本要高很多(当两点距离数十数百米时);另一方面,全双工通信最有效的模式是一主多从,除非是2个节点,否则要接成对等网是不可能的;而半双工模式就可以,只要使用合适的协议,网络上一个节点可以呼叫任意其他一节点,同时,全双工模式在网络上也要用协议实现,通讯速率优势也不大,甚至半双工可以使用MCU的多机通讯模式来简化寻址,协议也复杂不了多少,所以半双工485比全双工485流行。不过全双工485也不是一无是处,当你的网络是一主多从模式(例如使用机房的PC做设备监控时),从机部署又比较密集,并且节点数量成百上千,你就要考虑使用中继把网络按某种规划分开,这时的全双工485网络很容易中继;而半双工485的中继就比较麻烦,往往需要使用MCU做转换,否则联一个大网是不现实的。

MAX485只是一种实现RS485半双工工作模式的芯片,而RS485是一种串口通信标准,另外还有可以实现RS485全双工工作模式的芯片。MAX485并不是RS485的全部,可以说大多数人接触RS485时都被 MAX485给蒙骗了。切记:不是理论上RS485可以做到全双工,而是RS485本来就有全双工和半双工2种工作模式,RS485向下完全兼容RS422,但两者亦有区别。很多人看了MAX485手册只实现了半双工的功能就认为RS485通信是半双工的,MAX1482可以实现RS485全双工,电路如下图,相信读者现在已经很透彻了:

                            RS485(半)全双工实现

http://blog.163.com/hardware_engineer/blog/static/25836606620172711153655/

亦可采用SN65HVD3083E芯片,可查看其datesheet,

RS485(半)全双工实现

RS485(半)全双工实现

RS485(半)全双工实现RS485(半)全双工实现