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-----------------------------------------------

相关文章
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
861 1
|
10月前
|
人工智能 前端开发 Java
一文彻底明白三极管
三极管,全称半导体三极管,是电子电路的核心元件,具有电流放大和开关功能。它由三个区域组成:基区、发射区和集电区,分为PNP和NPN两种类型。三极管的关键特性包括电流放大倍数(β)、输入和输出特性曲线。根据用途可分为小功率、大功率和高频三极管。其主要应用包括信号放大、开关控制和振荡电路。关注我,一起学习更多电子知识!
1316 0
一文彻底明白三极管
|
安全 数据挖掘 定位技术
工厂内部导航系统:高精度定位与智能路径规划的技术实现
工厂内部导航系统其核心功能包括实时定位、智能路径规划、车辆警告及数据分析,显著提升了物流效率和管理水平。系统具备高精度定位、灵活部署及跨平台兼容等技术优势,并已在实际项目中取得显著成效。
526 11
工厂内部导航系统:高精度定位与智能路径规划的技术实现
|
芯片
stm32f407探索者开发板(十二)——Systick滴答定时器-延时函数讲解
stm32f407探索者开发板(十二)——Systick滴答定时器-延时函数讲解
1454 0
|
监控 前端开发 安全
如何开发一个网站:全面解析与实战指南
在数字化时代,网站是企业和个人展示形象、传播信息的关键平台。本文提供从规划、设计、开发、上线到后期维护的全方位网站开发指南,涵盖明确目标、分析用户、设定功能需求、设计风格、技术选型、测试部署及优化升级等内容,帮助你打造既美观又实用的网站。
936 4
|
beidou 定位技术 芯片
Hi1102A和Hi1105模块在远距离无线图传领域的选型浅析
Hi1102A和Hi1105模块在远距离无线图传领域应用广泛,其中选型浅析是前期保障
|
安全 物联网 数据安全/隐私保护
ensp中PPPOE (点对点协议)原理和配置命令
ensp中PPPOE (点对点协议)原理和配置命令
755 0
|
编解码 API 开发工具
FFmpeg获取音视频流信息
FFmpeg获取音视频流信息
399 1
FFmpeg获取音视频流信息