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的时序对比如下图所示:

img

图 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系列标准对比
RS-232 RS-422 RS-485
半双工/全双工 全双工 全双工 半双工
波特率
传输速率范围 300bps~100Kbps 10Mbps 10Mbps
联网支持(多设备连接) 不支持 支持 支持
电压范围
差模/共模 共模 差模 差模
最少信号线数量 3根 5根 2根
最大传输距离 15m(波特率=9600时) 3900m
控制信号(DE,Drive Enable) 可选
输入阻抗 3~7kΩ

使用RS422协议的设备间的引脚互相连接示意图:

img

UART Protocol

UART,即Universal Asynchronous Receiver/Transmitter,通用异步收发

在通信和计算机科学中,Serial communication是一个通用概念,泛指所有的串行的通信协议,如RS232、USB、I2C、SPI、1-Wire、Ethernet等。这里的串行(serial),是相对并行通信(parallel communication)来说的,如下图:

img

广义上讲,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,传输功能依次递增。

image-20210915103057209
图 DB9/COM口在各RS标准下的引脚使用和定义

但由于历史原因,IBM的PC外部接口配置为RS232,成为实际上的PC界默认标准。所以,现在PC机的COM口的物理标准均为RS232。DB9/COM口的公头和母头实际外观如下:

image-20210915093214837image-20210915104612002
图 DB9/COM口的公头(左)和母头(右)外观

端子

端子,Terminal,也称为 接线终端 / 接线端子

种类分单孔,双孔,插口,挂钩等,从材料分,铜镀银,铜镀锌,铜,铝,铁等。它们的作用主要传递电信号或导电用。

端子排型号

转换器

USB转TTL

常见的USB转TTL的芯片,如CP2101 / CP2102 / CH340 / CH341 / FT232BM / FT232RL / PL2303 / PV8651等,尤其CH340和CP2102 的转换器最为常见。

image-20210915113729086

图 USB转TTL(CH340G芯片)转换器

image-20210915114016213

图 USB转TTL(FT232芯片)转换器

USB转DB9(RS232)

image-20210915095451523

图 USB转DB9数据线

RJ45和DB9

这种转换器通常用在交换器和路由器的调试工作上,

image-20210915105657103
图 RJ45母 转 DB9公

image-20210915105821577

图 RJ45公 转 DB9母

RJ45转端子

imgimgimg
图 RJ45公 转 2/3/4引脚端子

RS-232转RS-485

目前主流的家用台式机上已经逐渐取消DB9接口,在某些旧台式电脑主机或者商用台式电脑主机上可能仍有DB9端口可以适配 RS-232(DB9公/母)/RS-485(端子) 转换器,然后再利用一根双绞线(可以用网线制作)连接转换器的 A+ / B- 端子 和 通信设备。如下图所示:

image-20210915091142748
图 DB9公(RS232)转3引脚端子(RS485)

由于该转换器为电气隔离设计,需要使用独立的VCC/GND/T/R来进行供电,因此不能只连接两根信号线。

该类转换器同样按照DB9接口的公/母来区分引脚/信号定义,下表为深圳市宇泰科技出品的UT-2201转换器说明书中的内容:

image-20210915142023932

下图为RS485和转换器之间的连接示意,转换器和单点之间的连接:

image-20210915141402305

转换器和多点的连接:

image-20210915141728889

参考

  1. 《串行通信技术 面向嵌入式系统开发》 周云波 著 中国工信出版集团 电子工业出版社
  2. 《ANALOG DEVICE-5 V Low PowerEIA RS-485 Transceiver》
  3. 《InterfaceCircuitsforTIA/EIA-485(RS-485)》
  4. 聚英JY-CON503 RS232转RS485/RS422 宽压DC7-30V供电 全隔离设计
  5. DB9针和DB25针串口的引脚定义
  6. 为什么越来越多人使用RS232接口,却还分不清DB9、DB25的引脚定义?
  7. RS-232
  8. DB9
  9. 串口、COM口、UART口, TTL、RS-232、RS-485区别详解
  10. UART、RS232、TTL关系浅析
  11. RS232、RS422、RS485、TTL电平
  12. 一文搞懂Modbus与RS485通信协议