【一看就懂】UART、IIC、SPI、CAN四种通讯协议对比介绍

UART、IIC、SPI、CAN四种通信协议对比

通信方式传输线通讯方式标准传输速度使用场景
UARTTX(发送数据线)、RX(接收数据线)串行、异步、全双工115.2 kbit/s(常用)计算机和外部设备通信(打印机)
IICSCL(时钟线)、SDA(数据线)串行、同步、半双工100 kbit/s(标准模式)低速设备(传感器)
SPICS(片选)、MOSI(主发从收)、 MISO(从发主收)、CLK(时钟)串行、同步、全双工无官方标准(50Mbps)高速数据传输(显示器)
CANCAN_High、CAN_Low串行、异步、半双工4kbit/s~1mbit/s汽车、工业控制

个人理解,简单说一下这四种通讯方式的区别

  1. UART:简单方便,只需要TX、RX线两两相连,即可通讯。缺点是只能供两个设备之间通讯,假如想实现三个设备之间的通讯,UART就不能用了。
  2. IIC:多设备通讯,相较于UART两个设备之间的通讯,IIC可以实现多个设备之间的通信,通讯时一般是一个主设备,多个从设备,主设备用来控制通讯的开始和中断,需要发送地址位来确定与哪个设备建立通讯,同时为了保证通信正确传输到从机,每次需要从机应答,才会继续传输,这导致通讯速率较低。
  3. SPI:速度快,使用四根线完成通信,使用CS片选线选择通讯的对象。相较于IIC,无需发送通讯地址,也不需要从机发送应答信号,这就能大大提升通讯效率,但是缺点是占用4条线,消耗的资源比IIC多。
  4. CAN:安全第一,为了保证传输的安全性,相较于前面三种方法,使用了大量的手段保证数据及时、准确的传输。同时使用识别码,解决总线冲突的问题。这保证的优先级高的设备,先通讯。这也是为什么CAN能够用于工业、汽车等需要安全性高的领域。

一. UART

简介:Universal Asynchronous Receiver Transmitter 即通用异步收发器,是一种通用的串行、异步通信总线该总线有两条数据线,可以实现全双工的发送。在嵌入式系统中常用于主机与辅助设备之间的通信。
硬件连接:
UART只能是两个设备之间的通信,两个设备的发送器和接收器的TX和RX两两相连即可。
在这里插入图片描述

帧格式:

  1. 起始位:用一位逻辑0表示帧的开始
  2. 数据位:可以有5~8位
  3. 校验位:采用奇校验或偶校验的方式,用来检错,如果检测出错误,可以让发送设备重发
  4. 停止位,用1~2位的逻辑1表示帧的结束

值得一提的是,UART只是一种通信协议,需要发送器和接收器提前约定好帧格式和通信速率、奇偶校验、每帧数据位数,才能正常通讯。其电器属性,UART并没有规定,为了完善通讯协议,后面又对UART做了完善,现在普遍使用RS232和RS485两种协议。

  1. RS232:
    电器特性:逻辑“1”为-5V ~-15V,逻辑“0”为+5V~+15V。
    传输距离:传送距离一般可达15m。
  2. RS485:
    电器特性:采用差分信号做数据传输,逻辑“1”为+2V ~+6V,逻辑“0”为-2V~-6V。
    传输距离:0传送距离一般可达1500m。
    在这里插入图片描述

二、IIC

简介:IIC(Inter-Integrated Circuit)是一种常用的串行通信总线协议,也被称为I2C(Inter-IC)总线。它由飞利浦(Philips)公司在20世纪80年代开发,并成为一种广泛应用于数字集成电路之间的通信标准,相较于UART,IIC可以组成一个网络,实现多个设备之间的通讯。
硬件链接
每个通讯设备分别使用两根线,SCL(时钟线)、SDA(信号线)挂载在IIC总线上,挂载方式如下。
在这里插入图片描述

帧格式

  1. 起始信号:SCL为高电平时,SDA从高电平到低电平的变化表示帧起始。
  2. 设备地址:用7位逻辑信号,表示从设备的地址码,每个从设备的地址码唯一。
  3. 读写数据位:写数据置为0,读数据置为1。
  4. 应答信号:从机发给主机的应答信号,如果从机成功接收到主机发送的信号,发送0。没有收到发送1。
  5. 传输数据:传输数据8个时钟周期为一组,也就是一个字节,每发送一个字节,需要接受方发送一次应答信号,表示数据成功接收或失败。
  6. 终止信号:SCL为高电平时,SDA从低电平到高电平的变化表示帧起始。

在这里插入图片描述

三、SPI

简介:SPI(Serial Peripheral Interface,串行外设接口) 是串行外设接口的缩写,SPI是一种高速、全双工、同步的串行通信总线;采用主从方式工作,一般一个主设备,多个从设备;SPI需要四根线,分别是MISO(主输入从输出)、MOSI(主输出从输入)、SCLK(时钟)、CS(片选)。
硬件连接在这里插入图片描述

帧格式

SPI与其他通信方式不同,因为有片选线,所以并不需要有地址位,起始位、结束位等,没有一帧这个概念。只需要数据线和时钟线配合,即可完成通讯。
一个字节传送完成后,无需应答,即可开始下一个字节的传送;采用同步方式工作,时钟线在上升沿或下降沿时,发送器向数据线上发送数据,在紧接的下降沿会上升沿读取数据,八个时钟即可完成一个字节的数据传送。无需接收方应答。
在这里插入图片描述

四、CAN

CAN(Controller Area Network Bus)控制器局域网总线,最主要应用与汽车和工业控制领域,实现多个ECU之间的相互通信,使用差分信号进行通讯。两条线压差为0V表示逻辑1,压差2V表示逻辑0

在这里插入图片描述
帧格式

  1. 起始位:用1位逻辑0表示帧的开始
  2. 识别码:每一个设备都有属于自己的11位识别码,用于确认发送设备的身份。识别码不光用来确认身份,还可以用来决定发送的优先级,举个例字:如果两个信号同时占用总线,那么会产生冲突,这时,识别码就起作用了,识别码位数高的,会优先发送,识别码低的停止发送信号
  3. 控制码:第一位是IDE位,用来决定是否使用扩展帧,后四位是DLC位,用四位二进制来表示数据码的长度,比如DLC为“0001”,表示数据码长度为1个字节;DLC为“0011”,则表示数据码长度为3个字节。所以数据码的长度为1~8个字节
  4. 数据码:用来传输数据,数据码的范围为长度为1~8个字节
  5. CRC位:15位CRC循环冗余码,用来纠错,如果错了,从新发送数据
  6. ACK确认槽,接收端发送信号,表示接收到数据了
  7. 结束位,用7位逻辑1表示帧的结束
    在这里插入图片描述

资料来源:
1.爱上半导体
2.SPI、UART、RS232、RS485、IIC 5种嵌入式经典通信总线协议精讲

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3017679.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

ASP.NET MVC企业级程序设计 (入住退房,删除)

目录 效果图 实现过程 控制器代码 DAL BLL Index 效果图 实现过程 控制器代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc;namespace MvcApplication1.Controllers {public class HomeController …

最新游戏陪玩语音聊天系统3.0商业升级独立版本源码+搭建教程

首发价值29800元的最新商业版游戏陪玩语音聊天系统3.0商业升级独立版本源码。 下 载 地 址 : runruncode.com/php/19748.html 1. 新增人气店员轮播功能。 2. UI界面优化,包括游戏图标展示和分类展示的改进。 3. 增加动态礼物打赏功能。 4. 新增礼…

CANdela/Diva系列2--CANdela Studio的工作树介绍1

本系列的第一篇文章(CANdela/Diva系列1--CANdela Studio的基本介绍)主要介绍了CANdela这个工具,本篇文章将对CANdela Studio的工作树的每个模块进行详细介绍,不啰嗦,直接开始! 目录 1. ECU Information的…

【ARM Cortex-M3指南】8:中断行为

文章目录 八、中断行为8.1 中断/异常流程8.1.1 压栈8.1.2 取向量8.1.3 寄存器更新 8.2 异常退出8.3 嵌套中断8.4 末尾连锁中断8.5 延迟到达8.6 进一步了解异常返回值8.7 中断等待8.8 中断相关的错误8.8.1 压栈8.8.2 出栈8.8.3 取向量8.8.4 非法返回 八、中断行为 8.1 中断/异常…

机器学习第二天(监督学习,无监督学习,强化学习,混合学习)

1.是什么 基于数据寻找规律从而建立关系,进行升级,如果是以前的固定算式那就是符号学习了 2.基本框架 3.监督学习和无监督式学习: 监督学习:根据正确结果进行数据的训练; 在监督式学习中,训练数据包括输…

【数据结构与算法】力扣 239. 滑动窗口最大值

题干描述 给你一个整数数组 nums,有一个大小为 k **的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入: nums [1,3,-1,-3,5,3…

HP Z620 服务器打开VTx虚拟技术

在使用Virtual Box的时候,虚拟主机启动报错:提示需要VTx。于是到bios里面去设置VTx。 这里有个小坑,就是HP 的bios配置里面,VTx不在常规的“System Configuration”、“Advanced”等地方,而是在“Security”菜单里&…

[C++基础学习-04]----C++数组详解

前言 在C中,数组是一种用来存储相同类型元素的数据结构。一维数组是最简单的数组形式,它由一系列按顺序存储的元素组成。二维数组则是由一维数组构成的数组,可以看作是一堆一维数组堆叠在一起形成的矩阵。 正文 01-数组简介 一维数组和二维…

uni-app安卓本地打包个推图标配置

如果什么都不配置,默认的就是个推小鲸鱼图标 默认效果 配置成功效果 个推图标配置 新建目录 drawable-hdpi、drawable-ldpi、drawable-mdpi、drawable-xhdpi、drawable-xxhdpi、drawable-xxxhdpi 目录中存放图标 每个目录中存放对应大小的图标,大图…

react引入阿里矢量库图标

react引入阿里矢量库图标 登录阿里矢量库,将项目所需的图标放一起 react项目中新建文件夹MyIcon.js 3. 在页面中引入,其中type为图标名称

C++之类与对象

1、类声明 2、共有、私有、保护成员。(就比如说你一个变量是private的,然后在main函数中,就调用不了,只能在这个类.cpp中调用) 3、数据抽象和封装 4、内联函数 内存体积会增大,以空间换时间:编…

php使用服务器端和客户端加密狗环境部署及使用记录(服务器端windows环境下部署、linux环境宝塔面板部署、客户端部署加密狗)

php使用服务器端和客户端加密狗环境部署及使用记录 ViKey加密狗环境部署1.windows环境下部署开发文档验证代码提示Fatal error: Class COM not found in 2.linux环境下部署(宝塔面板)开发文档验证代码提示Fatal error: Uncaught Error: Call to undefine…

什么是HTTP/2?

HTTP/2(原名HTTP 2.0)即超文本传输协议第二版,使用于万维网。HTTP/2主要基于SPDY协议,通过对HTTP头字段进行数据压缩、对数据传输采用多路复用和增加服务端推送等举措,来减少网络延迟,提高客户端的页面加载…

机器人码垛机的主体结构及技术特点

在现代物流和生产线上,机器人码垛机以其高效、准确的特点,成为了不可或缺的重要设备。那么,这个神奇的机器人究竟由哪些部分组成?它的内部结构又有哪些奥秘呢?接下来,就让我们一起揭开它的神秘面纱! 一、机器人码垛机的主体结构…

QT-TCP通信

网上的资料太过于书面化,所以看起来有的让人云里雾里,看不懂C-tcpsockt和S-tcpsocket的关系 所以我稍微画了一下草图帮助大家理解两个套接字之间的关系。字迹有的飘逸勉强看看 下面是代码 服务端: MainWindow::MainWindow(QWidget *parent) …

动态规划算法:简单多状态问题

例题一 解法(动态规划): 算法思路: 1. 状态表⽰: 对于简单的线性 dp ,我们可以⽤「经验 题⽬要求」来定义状态表⽰: i. 以某个位置为结尾,巴拉巴拉; ii. 以某个位置为起…

语音识别--使用YAMNet识别环境音

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号&#xf…

HG-KN73J-S100 三菱伺服电机(750W型)

HG-KN73J-S100属于三菱MR-JE系列伺服系统,可以与伺服驱动器MR-JE-70A、MR-JE-70B、MR-JE-70C配套使用。HG-KN73J-S100完全替换HF-KN73J-S100。HG-KN73J-S100规格、HG-KN73J-S100参数。 HG-KN73J-S100参数说明:MR-JE低惯性/小容量、0.75Kw三菱伺服电机HG-…

【管理咨询宝藏94】某国际咨询公司供应链财务数字化转型方案

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏94】某国际咨询公司供应链&财务数字化转型方案 【格式】PDF版本 【关键词】国际咨询公司、制造型企业转型、数字化转型 【核心观点】 - 172…

SAP PP学习笔记12 - 评估MRP的运行结果

上一章讲了MRP的概念,参数,配置等内容。 SAP PP学习笔记11 - PP中的MRP相关概念,参数,配置-CSDN博客 本章来讲 MRP跑完之后呢,要怎么评估这个MRP的运行结果。 1,Stock/Requirements List and MRP List 在…