通信协议基础

串行和并行

  • 串行通信: 数据的传输是用一条传输线将数据一位接一位顺序传送。
  • 并行通信: 数据的传输是用多条传输线将数据的各个位同时传送。

串行通信按时钟的同步方式分为:

  • 同步通信: 带时钟信号传输, 如I2C, SPI
  • 异步通信: 不带时钟信号传输, 如UART

串行通信按数据的传输方向分为:

  • 单工通信: 数据传输只支持数据在一个方向上传输

  • 双工通信: 二台设备间进行双向数据传输

    • 全双工通信: 同时进行双向数据传输

    • 半双工通信: 双向数据传输,但不能同时进行

UART定义

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。

UART是一种通用的串行, 异步通信总线, 有两条数据线, 可以实现全双工的发送和接收。

UART帧格式

image-uart

其中各位的含义如下:

  • 起始位:发送1位逻辑0(低电平),开始传输数据。
  • 数据位:可以是5~8位的数据,先发低位,再发高位,一般常见的就是8位(1个字节),其他的如7位的ASCII码。
  • 校验位:奇偶校验,将数据位加上校验位,1的位数为偶数(偶校验),1的位数4为奇数(奇校验)。
  • 停止位:停止位是数据传输结束的标志,可以是1/1.5/2位的逻辑1(高电平)。
  • 空闲位:空闲时数据线为高电平状态,代表无数据传输。