【嵌入式系统通信协议②】EIA RS-232C串口总线标准

1.RS-232C介绍

在嵌入式系统中最常用的就是RS232C串口总线标准,RS-232C是美国电子工业协议EIA(Electronic Industry Association)于1962年公布,并于1969年修订的一种串口总线标准,其各个名词的含义如下:

  • RS:Recommend Standard,推荐标准;
  • 232:该标准的标识号;
  • C:最后一次修订;

RS-232C标准对计算机系统的串行通信接口电路中使用的接插件规格、各引脚的名称和功能、信号电平等都做了统一的规定,是异步串行通信中使用最早、应用最广泛的串口总线标准。
RS-232总线的传输距离较近,一般不超过15m。

2.RS-232C标准的物理层

2.1.电平标准

因为RS-232C标准早在TTL集成电路之前就发展起来了,所以RS-232C标准并没有采用现在大多数集成电路所使用的TTL逻辑电平标准,而是采用具有双极性、公共地的负逻辑电平——EIA电平

  • “逻辑1”:-15V~-3V
  • “逻辑0”:+15V~+3V

2.2.接插件规格

RS232-C标准规定的接插件规格为D型连接器,有25芯和9芯两种规格,9芯规格(DB9接口)被大量应用在台式电脑上,如图:

其中,接线口以针式引出的称为公头,以孔式引出的称为母头,每个引脚对应的定义如下:

序号 符号 名称
1 DCD 载波检测
2 RXD 接收数据
3 TXD 发送数据
4 DTR 数据终端就绪
5 GND 信号地
6 DSR 数据设备就绪
7 RTS 请求发送
8 CTS 允许发送
9 RI 响铃指示

3.RS-232C标准物理层在实际中的应用

RS-232C标准在嵌入式设备中被大量的应用,但是在当今这个技术飞跃进步的时代,其物理层标准所使用的电平标准和接插件规格实在是太麻烦了,而且现在大多数集成电路的I/O口非常珍贵,体积小型化是非常必要的条件,哪能直接给出来9个I/O口做串口通信使用呢?而且现在的集成电路都使用TTL电平,为什么要为了串口通信又增加额外的电路呢?所以现在的工程师根据情况进行了适当的裁剪,才得以被广泛的应用~

  • 在现在的应用中,一般只使用RXDTXDGND三条信号线直接传输数据信号,其余的线都被裁剪掉了;

3.0.(补充知识)TTL电平

大多数集成电路所采用的TTL逻辑电平如下:

  • “逻辑1”:+2.4V~+5V;
  • “逻辑0”:0V~0.8V;

同一个信号的TTL逻辑电平与EIA逻辑电平更加形象的对比图如下:

所以,两者之间的信号电平不匹配,在两者之间需要设置专门的电平转换电路,否则会导致TTL电路烧毁,一般使用的是MAX232芯片。

3.1.集成电路与集成电路之间通信

3.2.集成电路与旧式电脑(DB9接口)之间通信

3.3.集成电路与电脑(无DB9接口)之间通信

因为现在大多数电脑没有DB9接口,所以一般使用USB转串口芯片(eg. CH340)连接集成电路的串口和电脑的USB口:

4.RS-232C标准的协议层

RS-232C标准以字符为一个独立的信息单位,采用按位传送数据,字符出现在数据流中的时间可以是任意的,一个字符又称为一帧,一个数据帧的格式如下:

4.1.波特率

在通信之前,双方需要约定好波特率,波特率确定了每个码元的长度,以便对信号进行解码,图中虚线的一个就是码元长度。
常用的波特率有9600bit/s、115200bit/s。

4.2.数据帧每一位定义

数据帧从起始信号开始,直到停止信号结束:

  • 起始信号:1个逻辑0的数据位表示;
  • 数据位:有效数据位的长度可以是5、6、7、8位,通常选择8位长度,刚好是一个字节
  • 校验位可选
  • 停止位:可由0.5、1、1.5、2个逻辑1的数据位表示

4.3.校验位详解

由于数据通信相对容易受到外界干扰导致传输数据出现偏差,在有效数据之后有一个可选的校验位,用来提高传输数据的可靠性,校验位主要的校验方法有:

  • 奇校验(odd):有效数据和校验位中“1”的个数为奇数;
  • 偶校验(even):有效数据和校验位中“1”的个数为偶数;
  • 0校验(space):不管有效数据是什么,校验位总为0;
  • 1校验(mark):不管有效数据是什么,校验位总为1;
  • 无校验(noparity):不使用校验位;

现在由于电子技术的提升,一般不使用校验位,选择无校验

猜你喜欢

转载自blog.csdn.net/Mculover666/article/details/88227893