RS485、RS422、RS232典型的串行通讯标准,是总线(关于总线的定义等,得润电气在前面的文章都有涉及,详见得润电气官网www.ahdre.com)的一种形式,都是由电子工业协会(EIA)制订并发布的。它们定义了电压,阻抗等,但不对软件协议给予定义。
而所谓通信协议(communications protocol)是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO\ OSI七层参考模型中的数据链路层。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。总线是通信的物理基础,只能代表通讯的物理介质层和链路层,协议是在此基础上的软件描述,是通信语言,负责解析总线上的数据。
做为一种电气标准,他们的注意区别就是逻辑如何表示。RS232使用-12V表示逻辑1,12V表示逻辑0,全双工,最少3条通信线(RX,TX,GND),因为使用绝对电压表示逻辑,由于干扰,导线电阻等原因,通讯距离不远,低速时几十米也是可以的。
RS422,在RS232后推出,使用TTL差动电平表示逻辑,就是两根的电压差表示逻辑,RS422定义为全双工的,所以最少要4根通信线(一般额外地多一根地线),一个驱动器可以驱动最多10个接收器(即接收器为1/10单位负载),通讯距离与通讯速率有关系,一般距离短时可以使用高速率进行通信,速率低时可以进行较远距离通信,一般可达数百上千米。
RS485,在RS422后推出,绝大部分继承了422,主要的差别是RS485可以是半双工的,也可以是全双工的,四线制是全双工通讯方式,两线制是半双工通讯方式。而且一个驱动器的驱动能力至少可以驱动32个接收器(即接收器为1/32单位负载),当使用阻抗更高的接收器时可以驱动更多的接收器。所以现在大多数全双工485驱动/接收器对都是标:RS422/485的,因为全双工RS485的驱动/接收器一定可以用在RS422网络。
在工业控制场合,RS485总线因其接口简单,组网方便,传输距离远等特点而得到广泛应用。RS485和RS232一样都是基于串口的通讯接口,数据收发的操作是一致的,所以使用的是同样WinCE的底层驱动程序。但是它们在实际应用中通讯模式却有着很大的区别,RS232接口为全双工数据通讯模式,而RS485接口为半双工数据通讯模式,数据的收发不能同时进行,为了保证数据收发的不冲突,硬件上是通过方向切换来实现的,相应也要求软件上必须将收发的过程严格地分开。且在协议上RS232只支持点对点通信(1:1),RS422支持点对多(1:N(10)的双向通讯,RS485支持总线形式的通讯(1:N(32))。
接口上看,他们都可以使用D型9针接口,当然只要能满足各自的接线要求,接口的具体体现可以是多样的,只是目前的D型接口最为常用。
因它们的物理定义不同,接线方式和传输距离都有各自的特点。唯一相同的都是只能具备一个主设备(master)其余的全部为从设备(slave),从设备间不可独立通讯,数据的交换必须通过主设备中转。要实现数据的双向访问,就必须自己编写通讯应用程序,但是这样的程序多数不能符合ISO/OSI的规范,只能实现单一的功能,适用于单一设备类型,且程序不具备通用性。如果要想具备完整的软件支持系统,则都必须以ISO/OSI模型为基础,这样才能解决总线控制、冲突检测、链路维护等问题。