UART通信
RS Serial Port
RS系列(RS-232/RS-422/RS-485)标准(RS,即Recommend Standard,推荐标准 之意 )是常用的(异步)串行通信接口标准,该系列标准由美国电子工业协会(EIA)牵头开发。
RS系列标准只对 接口 的 电气特性(Electric Specification of Interface)进行规定,并不涉及插件、电缆或协议,再次基础上,用户可以建立自己的接头、插座形状 以及 高层通信协议 。
RS-232
RS-232标准接口(又称EIA RS-232)是由美国电子工业协会(EIA)联合贝尔系统公司、调制解调器厂家及计算机终端生产厂家于1970年共同制定,其全名是“数据终端设备( DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。
RS232协议 和
TTL协议更多是电气特性(如电平标准和电压),二者在软件协议层面是一样的,如对于同样传输
0b01010101
来说,RS232 和 TTL的时序对比如下图所示:
当然,RS232和TTL/CMOS之间的转换,不仅仅是简单的电平转换,还要考虑到其他一些因素,比如 调节 和 矫正 一些电平(提高或降低对应的电平),确保可能的有害的RS232电压不会破坏微控制器的串口针脚。较为成熟的方案是通过MAX3232之类的芯片,把TTL电平转为RS232电平,或者在淘宝购买TTL转RS232电缆即可。
由于RS-232采取 不平衡传输 方式,即所谓 单端通讯。收(RX)、发(TX) 端的数据信号是相对于信号地(GND)。典型的RS-232信号在正负电平之间摆动,
- 在发送数据时,发送端驱动器输出正电平在+5+15V,负电平在-5-15V电平。
- 当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。
接收器典型的工作电平在 +3~+12V
与 -3~-12V
。由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20Kbps。RS-232是为
单节点通讯(即点对点,用一对收、发设备)而设计的,其驱动器负载为3kΩ~7kΩ。所以RS-232适合本地设备之间的通信。
RS-422
RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作 平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。通常情况下,发送驱动器A、B之间的正电平在+2+6V,是一个逻辑状态,负电平在-2V6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。
由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。RS-422的最大传输距离为4000英尺(约1219米),最大传输速率为10Mbps。其平衡双绞线的长度与传输速率成反比,在100Kbps速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为1Mbps。RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输电缆的最远端。
RS-485
RS-485 标准只对 接口 的 电气特性(Electric Specification of Interface)进行规定,并不涉及插件、电缆或协议,再次基础上,用户可以建立自己的接头、插座形状 以及 高层通信协议 。
RS-485 的 通信距离 和 通信速率 是负相关的,
RS485有 两线制 和 四线制,四线制只能实现点对点的通信方式,现很少采用。
接口(标准)对比
以下仅从RS的硬件要求进行横向对比:
RS-232 | RS-422 | RS-485 | |
---|---|---|---|
半双工/全双工 | 全双工 | 全双工 | 半双工 |
波特率 | |||
传输速率范围 | 300bps~100Kbps | 10Mbps | 10Mbps |
联网支持(多设备连接) | 不支持 | 支持 | 支持 |
电压范围 | |||
差模/共模 | 共模 | 差模 | 差模 |
最少信号线数量 | 3根 | 5根 | 2根 |
最大传输距离 | 15m(波特率=9600时) | 3900m | |
控制信号(DE,Drive Enable) | 无 | 可选 | 有 |
输入阻抗 | 3~7kΩ |
使用RS422协议的设备间的引脚互相连接示意图:
UART Protocol
UART,即Universal Asynchronous Receiver/Transmitter,通用异步收发。
在通信和计算机科学中,Serial communication是一个通用概念,泛指所有的串行的通信协议,如RS232、USB、I2C、SPI、1-Wire、Ethernet等。这里的串行(serial),是相对并行通信(parallel communication)来说的,如下图:
广义上讲,UART是指 支持RS系列(物理接口)标准和TLL电平 的 通信协议。
因为UART更多关注规定编码格式的标准,如 波特率(baud rate)、帧格式 和 波特率误差 等等,所以了解UART时,不可避免需要先在电气特性上区分几个常用的概念,如 TLL电平 和 CMOS电平。
TTL集成电路的主要型式为晶体管-晶体管逻辑门(transistor-transistor logic gate),TTL大部分都采用5V电源。
TTL电平(参考值) CMOS电平(参考值) 输入高电平 ≥ 2.4V ≈ 0.7*VCC 输入低电平 ≤ 0.4V ≈ 0.3*VCC 输出高电平 ≥ 2.0V ≈ VCC 或 <0.9*VCC 输出低电平 ≤ 0.8V ≈ GND 或 < 0.1*VCC 注:VCC的概念可以参考文章《VCC、VDD、VEE、VSS的区别》,具体输入输出的高低电平范围需要参考芯片及电路的手册。
接口
以下介绍均为UART常用的物理接口。
D型数据接口连接器,用于连接电子设备(比如:计算机与外设)的接口标准。因形状类似于英文字母D,故得名D型接口。
按照接口数量细分为A型(15针),B型(25针),C型(37针),D型(50针),E型(9针)。因此常见的计算机并口即为DB25针的连接器。而串口则应为DE9针连接器。
由于早期的计算机的串口与并口都是使用DB25针连接器,而人们则习惯把字母B与D合在一起记了下来,当作D型接口的共同名字,以至于后来计算机串口改用9针接口以后,人们更多的使用DB9而不是DE9来称呼9针的接口。这一习惯进一步推广的结果就是如今人们使用DBxx来代表D型接口,数字xx则为接口的针数。
DB9
COM口是指针对串行通信协议的一种端口,是PC上异步串行通信口的简写,大部分为9针孔D型。
因此 DB9 就和 COM口 混用了,但是COM口里又进一步区分RS232,RS422和RS485,传输功能依次递增。
但由于历史原因,IBM的PC外部接口配置为RS232,成为实际上的PC界默认标准。所以,现在PC机的COM口的物理标准均为RS232。DB9/COM口的公头和母头实际外观如下:
端子
端子,Terminal,也称为 接线终端 / 接线端子。
种类分单孔,双孔,插口,挂钩等,从材料分,铜镀银,铜镀锌,铜,铝,铁等。它们的作用主要传递电信号或导电用。
转换器
USB转TTL
常见的USB转TTL的芯片,如CP2101 / CP2102 / CH340 / CH341 / FT232BM / FT232RL / PL2303 / PV8651等,尤其CH340和CP2102 的转换器最为常见。
USB转DB9(RS232)
RJ45和DB9
这种转换器通常用在交换器和路由器的调试工作上,
RJ45转端子
RS-232转RS-485
目前主流的家用台式机上已经逐渐取消DB9接口,在某些旧台式电脑主机或者商用台式电脑主机上可能仍有DB9端口可以适配
RS-232(DB9公/母)/RS-485(端子)
转换器,然后再利用一根双绞线(可以用网线制作)连接转换器的
A+
/ B-
端子 和 通信设备。如下图所示:
由于该转换器为电气隔离设计,需要使用独立的VCC/GND/T/R来进行供电,因此不能只连接两根信号线。
该类转换器同样按照DB9接口的公/母来区分引脚/信号定义,下表为深圳市宇泰科技出品的UT-2201转换器说明书中的内容:
下图为RS485和转换器之间的连接示意,转换器和单点之间的连接:
转换器和多点的连接:
参考
- 《串行通信技术 面向嵌入式系统开发》 周云波 著 中国工信出版集团 电子工业出版社
- 《ANALOG DEVICE-5 V Low PowerEIA RS-485 Transceiver》
- 《InterfaceCircuitsforTIA/EIA-485(RS-485)》
- 聚英JY-CON503 RS232转RS485/RS422 宽压DC7-30V供电 全隔离设计
- DB9针和DB25针串口的引脚定义
- 为什么越来越多人使用RS232接口,却还分不清DB9、DB25的引脚定义?
- RS-232
- DB9
- 串口、COM口、UART口, TTL、RS-232、RS-485区别详解
- UART、RS232、TTL关系浅析
- RS232、RS422、RS485、TTL电平
- 一文搞懂Modbus与RS485通信协议