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

news2024/10/7 12:27:36

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://www.coloradmin.cn/o/1649049.html

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

相关文章

HNU-人工智能-实验4-基于Resnet的分类器

前言 本实验是自选实验,可以在给定范围内选择。 我刚刚提交了实验报告,暂时不准备放出我自己的实验报告,大概在截止提交之后我再放。 之所以这么着急写blog,是想便利还没做实验的同学。 如果选择的也是这个“毒蘑菇识别”的分类器…

安卓手机录屏在哪里?教给你3种方法

随着智能手机的普及,录屏功能在日常生活和工作中的需求日益增加。那么安卓手机录屏功能在哪里? 本文将详细介绍3个安卓手机的录屏方法,并分享一些实用技巧,帮助您更好地利用这一功能。 方法一:使用安卓手机自带的录屏…

武汉星起航:自运营团队—亚马逊平台运营典范,优势凸显业绩斐然

武汉星起航电子商务有限公司,作为跨境电商领域的佼佼者,凭借自运营团队多年的深耕经验与对亚马逊市场规则的深刻理解,成功在亚马逊平台开设多家自营店铺,并取得显著成绩。公司月流水达到几百万的辉煌业绩,不仅彰显了其…

基于 OpenHarmony compress 三方件使用指南~

关于 提供了一个轻量级的图像压缩库。将允许您将大照片压缩成小 尺寸的照片,图像质量损失或可以忽略不计 compress 的依赖添加 为你的应用添加 compress-debug.har。将 compress-debug.har 复制到 entry\libs 目录下即可(由于 build.gradle 中已经依赖…

笔记---DFS,深度优先搜索

深度优先搜索乃是注重深度,会把一条路径优先全部搜完然后再去回溯,再去搜其他路径 连通性模型 与BFS中的Flood Fill相似 AcWing.1112.迷宫 一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由 n∗n 的格点组成&#xff…

Java:内存模型

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、Java内存模型出现的背景 二、什么是Java内存模型 三、Java内存模型的底层实现 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一…

基于C语言的贪吃蛇小游戏(简易版)

这篇博客会是对学习C语言成果的检测,为了实现贪吃蛇小游戏,我们用到的“工具”有:C语言函数、枚举、结构体、动态内存管理、预处理指令、链表、Win32 API等。 目录 1.简易版游戏效果 1.1欢迎界面 1.2游戏规则提示页面 1.3游戏进行页面 …

STM32F407VET6 学习笔记1:GPIO引脚认识分类与开发板原理图

今日学习STM32F407VET6 ,首先从基本原理图、引脚方面开始做个初步理解并整理: 这里使用的学习开发板是在嘉立创购买的 立创梁山派天空星,芯片是 STM32F407VET6 主要对这个芯片的引脚做一些归纳认识、对开发学习板原理图设计进行认识理解:最…

恭喜发财!东方第一 MEME 拥抱符文

第 431 号符文 HOPE•YOU•GET•RICH 🧧,是 Omnity 首个支持的跨链 Runes 资产,也是TG群里红包小程序支持的第一个 Runes 资产。 大家可以在 Omnity 的 TG 群和 RunesCC 的 TG 群里,不定时的抢到符文红包。 Omnity TG:…

智慧监测IN!计讯物联筑牢高速滑坡预警“安全锁”

在现代社会,高速公路以其高速、便捷的特性,早已成为连接城市与地区之间的重要纽带,承载着日益增长的车流和人流。然而,随着车流量的激增,高速公路面临的运营压力和安全挑战也随之加大,其中滑坡风险尤为突出…

ArrayList线程安全问题解决方案

jdk8 Stream API的出现大大简化了我们对于集合元素的处理代码,对于串行流来说,无需考虑线程安全问题;但是,对于并行流来说,由于它是以多线程的方式并行处理同一个集合中的数据元素的,因此,存在着…

智慧交通系统:未来出行,从这里开始

随着城市化进程的加快,交通拥堵、事故频发、停车难等问题日益凸显,传统交通管理模式已难以满足现代社会的需求。智慧交通系统作为解决这些问题的关键,通过集成创新技术,实现交通管理的智能化、信息化,提高交通系统的运…

Unity射击游戏开发教程:(10)创建主界面

主界面开发 玩游戏时,主菜单是事后才想到要做的。实际上几乎每个游戏都有一个主界面。如果你点击打开游戏并立即开始游戏,你会感到非常惊讶。本文将讨论如何创建带有启动新游戏的交互式按钮的主界面/主菜单。 主菜单将是一个全新的场景。我们将添加一个 UI 图像元素,并在图像…

洗地机什么牌子最好?618高性价比家用洗地机品牌

随着科技的发展,智能智能清洁家电越来越受到消费者的欢迎。洗地机作为其中的佼佼者,已经成为许多家庭清洁的好帮手。然而,面对满目琳琅的洗地机品牌型号,究竟哪一款机型适合家用呢,正好618也临近了,又有哪些…

C++笔记之调用PCL库显示PCD文件的点云

C++笔记之调用PCL库显示PCD文件的点云 —— 2024-05-05 杭州 code review! 文章目录 C++笔记之调用PCL库显示PCD文件的点云1.运行2.点云pcd文件github下载地址2.main.cpp3.CMakeLists.txt1.运行 2.点云pcd文件github下载地址 https://github.com/luolaihua/point-cloud-data-…

5.7代码

1.环境治理 分析:最开始进入了一个误区,觉得都有通路了直接算通路就可以,后来才发现居然是最小路径的总和,所以大概是每减一次都要算一次各点之间的最小路径了,然后是循环,到需要的条件为止 总的来说思路不…

通过颜色学习css

文章目录 1.生成html2.添加css链接3.将h1标签text-align元素4.添加div标签4.1、为类marker添加元素4.2、添加两个新的div标签4.3、修改div标签的类型并修改css元素4.4、为类container添加元素4.5、以数字形式添加颜色4.5、container添加padding属性4.6、组合css中的颜色属性4.7…

SG-8018CE晶体振荡器可编程规格书

SG-8018CE系列晶体振荡器是一个高性能、多功能且具有高度集成性的解决方案,它满足了现代电子系统的严格要求。其广泛的频率范围0.67 MHz到170 MHz,且频率调节精度达到1ppm,1.62 V至3.63V的宽广电源电压,使能(OE&#x…

【notepad++】使用

1 notepad 下载路径 https://notepad-plus.en.softonic.com/download 2 设置护眼模式 . 设置——语言格式设置——前景色——黑色 . 背景色——RGB :199 237 204 . 勾选“使用全局背景色”、“使用全局前景色” . 保存并关闭

一致性评价政策加速行业仿制药洗牌,惯爱为代表的新锐品牌崭露头角

从印度神油到以形补形,男人的问题,从古至今一直困扰着很多人,大多人都羞于启齿。然而,沉默的背后,隐藏着令人震惊的数据:据统计显示,ED(勃起功能障碍)是男性生殖系统发病…