其他分享
首页 > 其他分享> > 嵌入式常见的通信接口/协议

嵌入式常见的通信接口/协议

作者:互联网

0 引言

  嵌入式开发中,常见的通信接口/协议有SPI,I2C,UART三种,本文先分三个部分对SPI,I2C,UART进行介绍,最后对这三种协议进行比较。

1 SPI

1.1 SPI的简介

  SPI(Serial Peripheral Interface):串行外围设备接口。SPI是一种高速的,全双工的,同步的通信总线。SPI没有定义速度限制,一般的实现通常能达到甚至超过10 Mbps,已知的有的器件SPI已达到50Mbps。

1.2 SPI接口的引脚

1.3 SPI的工作原理

1.4 SPI的四种工作方式

  为了和外设进行数据交换,需要根据外设工作要求,设置SPI的时钟极性(CPOL)和时钟相位(CPHA)。CPOL和CPHA决定数据发送和接收的时序(注意:数据总是先发送后接收的)。

下表为SPI的四种工作模式选择

工作模式 CPOL = 0 CPOL = 1
CPHA = 0 上升沿发送数据,下降沿接收数据 下降沿发送数据,上升沿接收数据
CPHA = 1 下降沿发送数据,上升沿接收数据 上升沿发送数据,下降沿接收数据

下图为四种工作模式的时序图

2 I2C

2.1 I2C的简介

  I2C(Inter Integrated Circuit):内部集成电路。I2C是一种低速的,半双工的,同步的通信总线。IIC 数据传输速率有标准模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4 Mbps)。

2.2 I2C接口的引脚

2.3 I2C的工作原理

2.4 I2C的通信过程

3 UART

3.1 UART的简介

  UART(Universal Asynchronous Receiver/Transmitter):通用异步收发传输器。UART是一种低速的,全双工的,异步的通信总线。UART的数据传输速率有9600bps,115200bps等等。

3.2 UART接口的引脚

3.3 UART的传输格式

  1. 空闲位:当总线处于空闲状态时信号线的状态为高电平
  2. 起始位:发送一个低电平信号,表示开始传输数据
  3. 数据位:可以是5~8位的数据,一般都是8位。先发送最低位,最后发送最高位。(I2C和SPI先发送最高位,最后发送最低位)
  4. 奇偶校验位:数据位传送完成后,要进行奇偶校验。分为无校验,奇校验,偶校验
     - 无校验(no parity)
     - 奇校验(odd parity):如果数据位中’1’的数目是偶数,则校验位为’1’,如果’1’的数目是奇数,校验位为’0’
     - 偶校验(even parity):如果数据为中’1’的数目是偶数,则校验位为’0’,如果为奇数,校验位为’1’。
  5. 停止位:数据的结束标志。可以是1位、1.5位、2位的高电平。

下图为UART数据传输格式
在这里插入图片描述

4 SPI、I2C、UART的区别与联系

  SPI、I2C、UART都是常见的通信接口/协议,目前主流的芯片都内置了这些通讯协议的控制器。同样,各种传感器、蓝牙模块、WIFI模块也都兼容这三种通信方式的一种或几种。我们可以根据外设拥有的通信方式和几种通信方式的特点选择合适的通信方式。

4.1 使用场景

4.2 传输速度

4.3 硬件开销



标签:接收数据,UART,常见,嵌入式,SPI,发送数据,I2C,设备,通信接口
来源: https://blog.csdn.net/Zhupeizhao/article/details/105566068