# 03-串口通信

串口通信(Serial Communication), 是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输。

要实现串口通讯很简单,直接在两个芯片之间用数据线进行连接就可以实现信号的传输,进行串口通讯时,首先要约定好帧格式和波特率。

波特率就是发送或接收数据的速度。波特=每秒钟发送的数据的位(bit)数,若1/115200秒发送一位数据,那么每秒可发送115200位数据,则其波特率=115200。这时的时钟频率为115200Hz。一般我们常见的波特率有:1200、2400、4800、9600、19200、38400、57600、115200等。

一般我们常见的帧格式有10位,一般是以起始位开始(低电平),停止位结束(高电平),中间的8位依次为数据为,并且数据的内容是由我们用户定义的。8位为一个字节。校验位就是用来校验数据为传输的准确性。

值得注意的是,串口通讯还有一种是属于异步通讯的方式。特点:①不要求收发双方时钟的严格一致,容易实现,设备开销较小,但每个字符要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高。

串口通讯采用的是TTL逻辑,其高电平范围为2.4V~5V,低电平最大为0.4V,其抗干扰能力非常弱,随便给一个静电就有可能将原来的低电平变高,导致通讯出现异常。

# RS-232通讯

RS-232是EIA(美国电子工业协会)1969年修订RS-232C标准。RS-232定义了数据终端端设备(DTE)与数据通信设备(DCE)之间的物理接口标准。

RS-232总线标准受电容允许值的约束,使用时传输距离一般不要超过15米。最高传输速率为20Kbps。同时RS-232总线标准要求收发双方共地。当通信距离比较大时,其地电位差别较大,在信号地上将有比较大的地电流并产生压降。RS-232的抗干扰能力较普通的串口通讯有所增强。

通常我们的串口通讯是全双工通讯,即可以同时进行收发工作。在原来串口通讯的基础上加一个电平转换芯片,如MAX232,就可以把TTL电平转换为RS232电平了,如图。232的高电平范围为3~15V,低电平范围为-3~15V。该芯片只改变电平大小,不改变传输数据,并且采用的是全双工通讯。

可以参考文章 RS-485 与 RS-232的区别 (opens new window)

# RS-485通讯

RS485也是美国电子工业协会(Electronic Industries Association,EIA)于1983年发布的串行通信接口标准,经通讯工业协会(TIA)修订后命名为 TIA/EIA-485-A。 RS485 是一种工业控制环境中常用的通讯协议,其中RS是 Recommended Standard的缩写。 RS485 是 半双工异步 串行通信。

特点

  • 支持多节点:一般最大支持 32 个节点。
  • 传输距离远:最远通讯距离可达1200米。
  • 抗干扰能力强:差分信号传输。
  • 连接简单:只需要两根信号线(A+和B-)就可以进行正常的通信。

# 差分信号传输

RS485 通信采用差分信号传输,通常情况下只需要两根信号线就可以进行正常的通信。 在差分信号中,逻辑0和逻辑1是用两根信号线(A+和B-)的电压差来表示。

逻辑 1:两根信号线(A+和B-)的电压差在 +2V~+6V 之间。 逻辑 0:两根信号线(A+和B-)的电压差在 -2V~-6V 之间。

详细参考:

  1. 终于讲透了,史上最详细的RS485串口通讯! (opens new window)
  2. 什么是 RS-485? (opens new window)
Last Updated: 3/27/2023, 10:49:18 PM
Apache License 2.0 | Copyright © 2022 by xueliang.wu 苏ICP备15016087号