串口通信简介——发展历史与基本概念

前言

关于数据通信一些基本概念的介绍请参考我的另一篇博文:数据通信的基本概念_徐大康的博客-CSDN博客


一. 串口的出现与RS232标准

串行接口_百度百科 (baidu.com)

串行接口 - 维基百科,自由的百科全书 (wikipedia.org)

RS232接口_百度百科 (baidu.com)

RS-232 - 维基百科,自由的百科全书 (wikipedia.org)

1962年,体积较小的个人计算机还没有出现,那时电传打字机和计算机视频终端都需要与调制解调器进行通信,为规范此通信过程,美国电子工业协会(EIA)联合各个厂商发布了EIA-RS-232A标准,其中,RS英文全称是Recommended Standard,是推荐标准的意思;232是标识号;A表示首次发布。

经过几年的实际应用和改进,1970年,EIA对RS232标准进行了第三次修订,发布了RS-232C标准。其中C表示是第三次修订(第二次修订是B)。

EIA-RS-232简称232或RS232,目前最新的标准是1997年发布的EIA-RS232F,但RS232C是应用最广泛,最为人所知的232标准,所以一般人们说到RS232,指的都是RS232C

RS232是一种串行通信标准,被简称为串口,最初它有22根线,采用DB25接插件,支持同步和异步串口,它的物理接口如下图(左)所示:

DB25接口最初被广泛应用于个人计算机,因为其非常流行,人们还喜欢称它为COM口,意为communication口即通信口,在有多个通信口时,人们用COM1,COM2来称呼它们。

随着技术的发展,设备制造商倾向于体积更小,成本更低的接口,因此,DB25中未使用的和支持同步模式的引脚被去掉了,形成了现在的DB9接口,如上图(右)所示。

这种DB9接口连接可靠,还带屏蔽,曾作为计算机与外设间的通信接口红极一时,虽然现在个人计算机早已淘汰了这种接口,主要原因还是它太大了,不符合计算机小型化、轻量化的需求,但在对连接可靠性要求更高的工业控制领域,DB9接口仍然被广泛使用着,有时还并不是作为RS232的物理接口,而是作为其它通信协议例如CAN通信的接口。

所以,发展到现在,RS232C及其对应的物理接口DB9在个人计算机上已经没有应用了,在工业控制板卡上RS232也应用的较少了,且一般也只用到TX、RX 和 GND这三根线而省略其它控制线,但DB9接口还在广泛使用。


二. RS422的发展

RS-422_百度百科 (baidu.com)

EIA-422 - 维基百科,自由的百科全书 (wikipedia.org)

RS232应用很广泛,但也有其局限性,传输距离短、速度较慢、不支持组网这三个缺点使得RS232C在长距离传输、较大数据量和需要组网的应用环境下变得不再适用。为了解决这一问题,1977年,EIA发布了RS422A标准。

RS422的全称是“平衡电压数字接口电路的电气特性”,最新版标准是RS422B。

RS422的比特率可达100kps~10Mbps(取决于数据线长度),最大传输距离可达1200米,也支持一主多从(单个发送端最多10个接收端)的组网方式,这些是RS422相对RS232的主要改进。

为支持长距离传输,RS422采用差分传输,共五根线,TX+、TX-、RX+、RX- 和 GND,它并没有规定特定的物理接口,但实际使用时一般沿用RS232的DB9接口。

虽然RS422能轻松连接一个发送端与10个接收端,但这时接收端只能接收而不能反过来发送数据,这相当于一种广播形式的连接,还没有实现多点间可互相收发的通信,所以,RS422标准实际应用的并不多,一般是作为RS232的扩展,等到它的改进版标准RS485推出之后,RS422基本销声匿迹了,成了串口通信历史的一个过客。


三. RS485的发展与应用

RS-485_百度百科 (baidu.com)

EIA-485 - 维基百科,自由的百科全书 (wikipedia.org)

为弥补RS422无法实现多点互收发通信的不足,1983年,EIA在RS422的基础上制定了RS485A标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上。

RS485是一个异步半双工的串行通信协议。在硬件构成上,RS422相当于两组RS485,即两个半双工RS485构成了RS422,所以有时RS422又被称为全双工RS485。

因为是半双工通信,RS485将RS422的五根线缩减为三根,分别是A+、B- 和 GND,+表示差分的正端,-表示差分的负端。

同RS422一样,RS485也没有规定物理接口。

RS485标准因为线数少、抗干扰性强、可灵活组网等优点在工业控制领域有着较广泛的应用。


四. UART及其与RS232、RS422 和 RS485的关系

UART_百度百科 (baidu.com)

UART - 维基百科,自由的百科全书 (wikipedia.org)

TTL电平_百度百科 (baidu.com)

UART,Universal Asynchronous Receiver/Transmitter,通用异步收发器,是一种通信协议,它规定了数据的开始位、停止位、校验位等数据如何组织的规则。

RS232、RS422 和 RS485这些标准只规定了通信的电气规则,像RS485规定二进制0的电平是+1.5 ~ +6V,二进制1的电平是-6 ~ -1.5V,它们并没有指定用什么方式组织数据。理论上,用除UART协议外的协议来组织发送数据,再通过RS232等接口规定的电平标准来完成数据收发是可行的,但一般没人这么干,因为UART足够简单且能满足要求了,所以上述三种标准采用UART协议组织数据已成为了一种事实标准,这一点我们从UART名字中的通用两字就可以看出端倪。

因为UART都是由CPU、MCU等控制器或专用芯片产生的,所以UART的原始电平一般为TTL电平即低电平0V、高电平3.3V或5V。所以,单独说UART指的就是TTL电平的异步串行通信协议。它有三根线,TX、RX 和 GND,没有规定物理接口,一般直接用几根插针或者几个圆孔作为接口。

因为TTL电平传输距离非常短,所以UART总是需要转换成其它电平标准,而向RS232、RS485 和 USB这三种转换是最多的。大名鼎鼎的MAXIM(美信)就起家于一个TTL电平转±15V的RS232电平的一个芯片——MAX232。同样著名的还有该公司的MAX485,该芯片的功能是将TTL电平转为RS485电平。UART转USB的需求也非常庞大,最著名的芯片是FTDI公司的FT232RL,国产的CH340G也不错。下图展示了一块使用FT232芯片的UART转micro-USB的板卡。


五. 串口概念的总结

从串口的发展历史我们知道,串口的说法最初指的是最流行的串行通信标准RS232。又因为RS422 和 RS485是在RS232基础上发展而来的,所以串口也可以指代它们。而UART是这几个标准均采用UART通讯协议,所以串口也包含了UART。

总结一下,串口指的就是RS232、RS422、RS485 和 UART 这几种通信标准/协议。因为RS422基本很少见到了,所以我们日常说的串口,指的就是RS232、RS485 和 UART这三种。它们的一些特征如下表所示:

串口类别RS232RS485UART
通信类别异步串行通信异步串行通信异步串行通信
通信协议UARTUARTUART
物理接口DB9未规定未规定
半/全双工全双工半双工全双工
信号线数量标准9根,一般使用时简化为3根,
Tx,Rx,GND
3根
A+,B-,GND
3根
Tx,Rx,GND
逻辑电平RS232电平
逻辑1:-15V ~ -5V
逻辑0:+3V ~ +15V
RS485电平
逻辑1:+2V ~ +6V
逻辑0:-6V ~ -2V
TTL电平
逻辑1:+2.4V ~ +5V
逻辑0:0V ~ +0.5V
传输距离较短,<15米较长,<1200米最短,<5米
传输速度较慢,与距离有关,
一般<20kbps
较快,与距离有关
一般100kbps~10Mbps
较慢,与距离有关
一般采用固定速度,
如9600bps、115200bps等
最快一般不超过921600bps
应用场景工业上PCB板间通信,
应用越来越少
工业上PCB板间通信,
相对RS232应用多一些
主要用作调试接口,
通过UART转USB后与电脑通信

串口是一种习惯性的叫法,它并不特指哪一种具体的标准/协议,一般我们在描述的时候会说RS232串口、RS485串口、UART串口,以此来说明我们说的到底是哪一种串口。

三种串口可以通过专用芯片实现互转也可以转为USB连接电脑,在电脑侧安装好对应的驱动,再借助各种串口调试工具即可实现在电脑上收发串口数据,甚至能看到波形。这是一种常用的代码调试手段。目前市面上已经有了多种串口转USB的工具,其中一种如下图所示:


六. 参考书目

1.《串行通信接口规范与标准》 [美] Louis E. Frenzel Jr 编著,林赐 翻译(第25章,第26章,第28章)

2.《串行通信技术 面向嵌入式系统开发》 周云波 编著(第一章)


徐晓康的博客持续分享高质量硬件、FPGA与嵌入式知识,软件,工具等内容,欢迎大家关注。

  • 3
    点赞
  • 15
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:精致技术 设计师:CSDN官方博客 返回首页
评论

打赏作者

徐晓康的博客

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值