先阅读《Sylixos下的UART基础知识》了解串口的基本概念和特性。
串口有4种电气标准,分别是TTL、 RS232 、RS422 和 RS485。这4种串口只在电气信号上有差别,在帧格式,传输逻辑和软件操作上基本都是一样的。在实际项目应用中会有些差别,本文详细描述这些差别和应用特点。
需要说明一下,很多人经常把RS-232、RS-422、RS-485 误称为通讯协议,这是很不应该的,其实它们仅是关于UART通讯的一个机械和电气接口标准,顶多是网络协议中的物理层面。
串口的4种电气标准比较表
比较项 | TTL | RS232 | RS422 | RS485 |
---|---|---|---|---|
信号类型 | 电平信号 | 电平信号,负逻辑 | 差分信号 | 差分信号 |
电压范围 | 0~3.3v/5.0v | +/-15V | -0.25V~+6V | -7V~+12V |
抗干扰性 | 弱 | 交强 | 强 | 强 |
传输距离 | 1m | 10m | 1.2Km | 1.2Km |
传输带宽 | 100Kb/s | 100Kb/s | 10Mb/s | 10Mb/s |
负载个数 | 1 | 1 | 10 | 32 |
传输模式 | 全双工,点对点 | 全双工,点对点 | 全双工,点对点 | 半双工,多对多 |
导线 根数 | 3 | 3 | 4 | 2 |
这种是板上通信最常用的方式,SOC或独立的串口控制器芯片直接就提供该接口。TTL为正逻辑电平信号,电压值也较低,一般就是芯片电源电压3.3V或5V,抗干扰能力较差,所以也只是在板上短距离连接。
RS-232是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号。RS-232是对电气特性以及物理特性的规定,只作用于数据的传输通路上,它并不内含对数据的处理方式。
该标准规定采用一个25 个脚的DB-25 连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。后来IBM的PC 机将RS-232 简化成了DB-9 连接器,从而成为今天的事实标准。而工业控制的RS-232 口一般只使用RXD(2)、TXD(3)、GND(5) 三条线。
RS232接口任何一条信号线的电压均为负逻辑关系。即:逻辑“1”为-3—-15V;逻辑“0”:+3—+15V,噪声容限为2V。即要求接收器能识别高于+3V的信号作为逻辑“0”,低于-3V的信号作为逻辑“1”,TTL电平为5V为逻辑正,0为逻辑负。与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
早期由于PC都带有RS-232接口,所以我们需要使用UART时,都选择RS-232。但是现在个人电脑,不光是笔记本,包括台式机都不再带有RS-232的接口,大家看到电脑主板上面没有DB9的接口。所以现在开发板都选择TTL的UART,或者直接UART转USB做在开发板上。
由于RS-232 接口标准出现较早,难免有不足之处,主要有以下四点:
(1) 接口的信号电平值较高,易损坏接口电路芯片,又因为232电平与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接;
(2) 传输速率较低,在异步传输时,波特率为20Kbps。现在由于采用了新的UART芯片,波特率达到115.2Kbps(1.832M/16);
(3) 接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱;
(4) 传输距离有限,最大传输距离标准值为50 米,实际上也只能用在15 米左右;
(5) RS-232 只容许一对一的通信,没有考虑构成串行总线。(这点很重要,在很多控制场景,是一控多,如果主设备都需要跟从设备点对点通信,那现场布线成蜘蛛网了)
RS-422(EIA RS-422-A Standard)标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。
在要求通信距离为几十米到上千米时,广泛采用平衡发送和差分接收,这种方式具有很强的共模干扰抑制能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压差,故传输信号能在千米以外得到恢复。
RS-422接口是采用平衡发送和差分接收方式。RS-422 有5 根信号线:两根发送、两根接收还有一根信号地线。
由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。一个主设备(Master),其余为从设备(Slave),从设备之间不能通信,所以RS-422支持点对多的双向通信。
RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在短距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输电缆的最远端。
由于RS-422 的收与发是分开的所以可以同时收和发(全双工),也正因为全双工要求收发要有单独的信道,所以RS-422适用于两个站之间通信,星型网、环网,不可用于总线网。
RS-485是美国电子工业协会(EIA)在1983年批准了一个新的平衡传输标准(balanced transmission standard),EIA一开始将RS(Recommended Standard)做为标准的前缀,不过后来为了便于识别标准的来源,已将RS改为EIA/TIA。目前标准名称为TIA-485,但工程师及应用指南仍继续使用RS-485来称呼此标准。
RS-485仅是一个电气标准,描述了接口的物理层,像协议、时序、串行或并行数据以及链路全部由设计者或更高层协议定义。 RS-485定义的是使用平衡(也称作差分)多点传输线的驱动器(driver)和接收器(receiver)的电气特性。
RS-232接口可以实现点对点的通信方式,但这种方式不能实现联网功能。于是,为了解决这个问题,一个新的标准RS-485产生了。RS-485的数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。
通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。
RS-485 只有2 根信号线,所以只能工作在半双工模式,常用于总线网。
RS-485的电气特性:逻辑“1”以两线间的电压差为+(2 ~ 6)V表示;逻辑“0”以两线间的电压差为-(2 ~ 6)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL 电路连接。
传输速率与传输距离成反比,在100Kb/S的传输速率下,才可以达到最大的通信距离1219M,如果需传输更长的距离,需要加485中继器。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。
RS-232与RS-485对比
RS-422与RS-485对比
RS-485的电气性能与RS-422完全一样。主要的区别在于: