UART、I2C与SPI通信协议的比较

简介: UART、I2C与SPI通信协议的比较

1.引言

UART、I2C(IIC)与SPI可以说是在嵌入式操作系统中最常见的三种通信协议,那么,这三种通信协议孰优孰劣呢?

正所谓:“梅须逊雪三分白,雪却输梅一段香”。在信息迅速迭代的今天,这三种通信协议仍然能在嵌入式开发中占有绝对的优势,肯定都有着各自的看家本领,很多时候这三种通信协议的选择,是出于主控芯片(有可能是单片机)本身的接口数量和从机芯片本身具有的通信协议出发的。

关于这几个通信协议的具体介绍请参考下面链接:

UART串口通信

IIC(I2C)通信协议详解

SPI通信协议详解

2.协议对比

具体可以从一下几个方面进行对比:

  • 从传输速度来看,UART是比较慢的,不过有很多个波特率可以设置,因在UART中,波特率=比特率,因而可以很方便地与其他二者进行比较。UART有很多种波特率可以设置,最常见的是9600115200;IIC有两种模式,标准模式和快速模式,标准模式下可达100Kb/S,快速模式下最快400Kb/S;SPI最快可达上百MHz,直接碾压前面两种。
  • 从传输线来看表面上SPI是最浪费传输线的,但其实有个问题,就是一般情况下UART只支持一对一传输,而其他两种传输协议则支持一主多从数据传输,所以综合来看,传输线的数量应该是UART最少。
  • 数据可靠性是个很重要的指标。一般在很多系统中,快和准一直是一对矛盾。传输协议也不例外。虽然SPI传输速度非常快,但这也意味着数据的准确性得不到保证。UART有奇偶校验,而I2C有应答机制,都以一种优雅的方式解决了这个问题,但这点在SPI上缺并未体现。
  • 最后便是同步和异步的问题,UART支持异步传输,而I2C和SPI只支持同步传输。

特别地:

  1. UART也可以实现“一主多从”,但这个时候需要借助硬件使其进行RS485通讯,而且有个好处,就是软件部分基本不需要改什么东西(对比原来的UART),提升了开发效率,且RS485通讯距离很远,由于采用差分信号的传输方法,可以大大抑制共模干扰。最远可以传输1000多米。
  2. UART是软件开发中程序调试的重要手段,因为并不是所有的嵌入式开发都可以有工具进行debug调试。
  3. I2C传输协议需要外接上拉电阻,这个时候电阻值就显得尤为重要,有时候会因为电阻值取得不合理而导致通信失败或通信数据异常。

--------------------------------------------------------------------------------END-----------------------------------------------

相关文章
|
芯片 开发者
16 玩转STM32之SPI通信
16 玩转STM32之SPI通信
|
网络安全 芯片 内存技术
可编程 USB 转串口适配器 UART 转 SPI 应用
GD25Qxx 是四线SPI 接口的 FLASH 芯片,最大容量可达 16Mbytes。板上集成有 GD25Q64 芯片, 每页 256 字节,每扇区 16 页(4k 字节),每块区 256 页(64k),写入前必须先擦除,本芯片支持扇区擦除、块区擦除和整片擦除。
可编程 USB 转串口适配器 UART 转 SPI 应用
|
运维 监控
浅析SPI与CAN通信
SPI是一种常用的MCU与外设的通信方式,英文全称Serial Peripheral Interface。与之前介绍过的UART不同,SPI是串行,全双工,同步通信方式。SPI通常有4根物理连接线,分别是CS片选,SCK时钟,MOSI主机输出从机输入和MISO主机输入从机输出。CS片选是从机选择信号线,低电平有效。当CS为低电平时认为主机目前选中的本从机。SCK是串行时钟线,同步通信需要主从机时钟同步,主机利用SCK线与从机实现时钟同步。时钟由主机产生,决定了通讯的速率。
322 0
|
芯片
SPI通信
SPI是由Motorola公司提出的一种同步串行外围接口;它在速度要求不高,低功耗,需要保存少量参数的智能化传感系统中得到了广泛应用;   SPI是一个全双工的同步串行接口,在数据传输过程中,总线上只能是一个主机和一个从机进行通信;   通信四种模式:     1、MISO(Master In...
1230 0
|
物联网 芯片
NUCLEO-L432KC实现UART1、UART2双串口数据通信(STM32L432KC)
NUCLEO-L432KC实现UART1、UART2双串口数据通信(STM32L432KC)
NUCLEO-L432KC实现UART1、UART2双串口数据通信(STM32L432KC)
|
9月前
STM32--SPI通信与W25Q64(2)
STM32--SPI通信与W25Q64(2)
127 0
|
9月前
|
存储 传感器 芯片
STM32--SPI通信与W25Q64(1)
STM32--SPI通信与W25Q64(1)
261 0
SPI协议
SPI协议
148 0

热门文章

最新文章