今天突然想起485来了,想弄个明白。现在总结一下它和另外两个兄弟的异同。
RS232
概述:RS-232是美国电子工业联盟(EIA)制定的串行数据通信的接口标准,全稱是EIA-RS-232(簡稱232,RS232)。目前很多台式电脑屁股后面还有它的接口。
接口和连线:rs232最多有25个管脚,但是目前常见的是精简的9孔(针)接口,台式机上的就是。虽然如此,常用的只有三根线:写数据线、读数据线以及一个地线。常见的rs232是异步全双工接口,同步的很少用。但是rs232却只能点对点连接(只能1对1),无法组网。
电气特性: 电气特性如下(RS-232C上传送的数字量采用负逻辑,且与地对称)。可见它的电压不和TTL兼容,因此单片机与上位机通信需要转换芯片。还有就是rs232要求接口能够承受-25~25V的电压而不损坏。
TRANSMITTED SIGNAL
VOLTAGE LEVELS:
Binary 0: +5 to +15 Vdc
(called a “space” or “on”)
Binary 1: -5 to -15 Vdc
(called a “mark” or “off”)
-------------------------------
RECEIVED SIGNAL
VOLTAGE LEVELS:
Binary 0: +3 to +13 Vdc
Binary 1: -3 to -13 Vdc
传输速度:典型的波特率是300, 1200, 2400, 9600(约为1K/s), 115200, 19200等bit/s。一般通信两端设备都要设为相同的波特率,但有些设备也可以设置为自动检测波特率。理论上的最大传输速率不超过460.8K.
传输距离:驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。
字节帧数据结构:TTL空闲时是高电平,一位起始位(1),4~8位数据位。1~2位停止位(1)。可选的一个奇偶校验位(数据之后、停止位之前)
RS485
物理接口:
RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,现在多采用的是两线制接线方式,这种接线方式为总线式拓朴结构在同一总线上最多可以挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。
电器特性:逻辑“0”以两线间的电压差为+(2—6) V表示;逻辑“1”以两线间的电压差为-(2—6)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片, 且该电平与TTL电平兼容,可方便与TTL 电路连接。
EIA-485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。EIA-485可以应用于配置便宜的广域网和采用单机发送,多机接受通信链接。它提供高速的数据通信速率。(10m 时35Mbit/s;1200m时 100kbit/s1200m)。在传输过程中可以采用增加中继的方法对信号进行放大,最多可以加八个中继,也就是说理论上RS485的最大传输距离可以达到9.6公里。如果真需要长距离传输,可以采用光纤为传播介质,收发两端各加一个光电转换器,多模光纤的传输距离是5~10公里,而采用单模光纤可达50公里的传播距离。
EIA-485推荐使用在点对点网络中,线型,总线型,不能是星型,环型网络。理想情况下EIA-485需要2个终接电阻,其阻值要求等于传输电缆的特性阻抗。没有特性阻抗的话,当所有的设备都静止或者没有能量的时候就会产生噪声,而且线移需要双端的电压差。没有终接电阻的话,会使得较快速的发送端产生多个数据信号的边缘,这其中的一些是不正确的。之所以不能使用星型或者环型的拓扑结构是由于这些结构由不必要的反映,过低或者过高的终接电阻可以产生电磁干扰。
EIA-485在使用四线时可以和EIA-422一样实现全双工。EIA-485可以实现真正的多点通信,在许多情况下并没有什么用处。在某些限制条件下EIA-485 和EIA-422可以实现相互的连接。
rs422
EIA-422(过去称为RS-422)是一系列的规定采用4线,全双工,差分传输,多点通信的数据传输协议。
和 RS-485 不同的是EIA-422不允许出现多个发送端而只能有多个接受端。
距离、长度和节点数:接口的机械特性由EIA-530或EIA-449规定,然而设备仅有在发送方和接受方成对出现时才存在。电缆的最高传输速率为 10 Mbit/s(长度 1.2 米时)或100 kbit/s(长度 1200 米时)。EIA-422不能实现象EIA-485那样的真正的多点通信,尽管只有一个发送端就可以连接10个接受端。
总结一下:
全双工:232、422. 半双工:485
组网能力:422、485.
速度和距离:422、485
多点通信:485.
规定 RS232 RS422 R485
工作方式 单端 差分 差分
节点数 1收、1发 1发10收 1发32收
最大传输电缆长度 50英尺 400英尺 400英尺
最大传输速率 20Kb/S 10Mb/s 10Mb/s
最大驱动输出电压 +/-25V -0.25V~+6V -7V~+12V
最后一问:为什么EIA/RS422不能进行多点通信呢?
rs422是四线双口(接收端口两线,发送端口两线)。只有一台主机(master),主机的发送端口和所有从机的接收端口连接,主机的接收端口和所有的从机的发送端口相连。因此从机之间不能通信,从机只能发送给主机,也只能从主机接收。这属于一点对多点的通信。
rs485采用四线制时也是只能一点对多点,但是当采用两线制时,所有的设备在拓扑结构上是对等的,任何两个设备都可以通信,成为了多点对多点的通信。
需要指出的是,485协议本身很简单,没有总线总裁机制。没有数据格式定义。这些都留给芯片厂商自己定义。
S-485与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而RS-422在-7V至+7V之间,RS-485接收器最小输入阻抗为12k,RS-422是4k;RS-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。