通信总线-串口/IIC/SPI

news2024/11/28 11:36:55

基本概念

1.串行:只有一个数据线,bit(位)一个一个传输(本质传输的是电信号,高低电平代表0或1)

更常用(UART,IIC,SPI)
在这里插入图片描述

2.并行:多个数据线,bit(位)同时传输

优点:速度快
缺点:并行总线条数多,浪费资源,布线难度大,不同数据线在传输数据时数据之间存在干扰
以char数据类型为例

3.单工通信:发送器和接收器之间的传递是单向的

在这里插入图片描述

4.双工:发送器和接收器可以互相传送数据
5.半双工:接受和发送不能同时进行,只有1根数据传输总线(例如IIC)

在这里插入图片描述

6.全双工:接受和发送可以同时传输,有2根数据传输总线(UART,SPI)

在这里插入图片描述

7.波特率(描述串口通信速度,单位bps(bit per second),即为每秒钟传输的二进制位数)

常见总线

1.串口-UART(同用异步收发器)

通用的串行、异步(发送和接受的时钟不一样)通信总线,该总线有两条数据线,可以实现全双工的发送和接收在嵌入式系统中常用于主机与辅助设备之间的通信。

串口通信原理

起始位:一次通信的开始(一个位的开始,那怕你要连续发8位,每次都要有起始位)
数据位:通过串口的数据内容
校验位:校验发送的数据的正确性(串口中常用奇偶校验)
停止位:此次通信的结束(是高电平)
(通信协议中指出:若总线不传输数据,应该把电平信号置为高电平;先发低位数据再发高位数据;串口最多发8位,避免累计误差)
如何区分1个1还是2个1(因为他们都是高电平):根据波特率判断时间。
在这里插入图片描述

2.IIC总线

串行、半双工总线。主要用于近距离、低速的芯片之间的通信。IIC总线有两根双向的信号线。一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步。IIC总线硬件结构简单,成本较低,因此在各个领域得到了广泛的应用。
在这里插入图片描述
IIC总线是一种多主机总线,连接在IIC总线上的器件分为主机和从机。主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总线时,IIC也具备冲突检测和仲裁的功能来防止错误产生;每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能有一个主机),总线上的器件增加和删除不影响其他器件正常工作;IIC总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器。
在这里插入图片描述

IIC通信过程

**1.**主机发送起始信号启用总线
**2.**主机发送一个字节数据指明从机地址和后续字节的传送方向(一个字节中包含7bit的从机地址和数据传输方向(0表示主机发送,1表示主机接受),在未停止之前,这个传输方向不能更改)
**3.**被寻址的从机发送应答信号回应主机(将自己的地址和主机发送的地址做比较,判断是否是自己需要作为从机应答)
**4.**发送器发送一个字节数据
**5.**接收器发送应答信号回应发送器
(循环步骤4、5)
**n.**通信完成后主机发送停止信号释放总线

2.SPI总线

SPI (Serial Per ipheral Interface) 是串行外设接口的缩写,SPI是一种
高速的、全双工、同步的串行通信总线;SPI采 用主从方式工作,一般有一个
主设备和一个或多个从设备; SPI需要至少4根线, 分别是MISO (主设备输入
从设备输出)、MOSI ( 主设备输出从设备输入)、SCLK (时钟)、CS (片选,用于寻址)
SPI使用引脚较少且布线方便,所以越来越多的芯片集成了这种通信协议;
在这里插入图片描述

寻址方式

当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选
线上发送使能信号(高电平或者低电平,根据从机而定)表示选中该从设备。
在这里插入图片描述

通信过程

SPI总线在进行数据传送时,先传送高位,后传送低位;数据线为高
电平表示逻辑‘1’,低电平表示逻辑‘0’ ;一个字节传送完成后无需
应答
即可开始下一个字节的传送;SPI总线采 用同步方式工作,时钟线
在上升沿或下降沿时发送器向数据线上发送数据(MSB,最高位;LSB,最低为位),在紧接着的下降沿或
上升沿时接收器从数据线.上读取数据,完成一位数据传送,八个时钟周
期即可完成一个字节数据的传送;
在这里插入图片描述

极性和相位

SPI总线有四种不同的工作模式,取决于极性(CPOL)和相位(CPHL)这两个因素
CPOL表示SCLK空闲时的状态
CPOL=0,空闲时SCLK为低电平
CPOL=1,空闲时SCLK为高电平
CPHA表示采样时刻
CPHA=0,每个周期的第一个时钟沿采样
CPHA=1,每个周期的第二个时钟沿采样
需要说明的是,对于一个特定的从设备来说,一般在出厂时就会将
其设计为某种特定的工作模式:我们在使用该设备时就必须保证主设备
的工作模式和该从设备保持一致,否则是无法进行通信的;所以一般我
们需要对主设备的CPOL和CPHA进行配置;

IIC和SPI的对比

相同点
1.均采用串行人同步的方式
2.均采用TTL电平(0,1这种高低电平,导致其传输距离较短),传输距离和应用场景类似
3.均采用主从方式工作
■不同点

  1. IIC为半双工,SPI为全双工
  2. 1IC有应答机制,SPI无 应答机制
  3. 1IC通过向总线广播从机地址来寻址(优点:节省引脚,节省资源;缺点:慢),SPI通过向对应从机发送使能电平连接从机(优点:相较于IIC快;缺点:占了引脚)
  4. 1IC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可以自己设置

参考资料: https://www.bilibili.com/video/BV1q44y1d7dT/?p=15&share_source=copy_web&vd_source=3b4b6a7691b65142fba064b15503f0d6

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

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

相关文章

企业文件防泄密怎么做?10款透明加密软件排行榜

在信息时代,企业的核心竞争力往往体现在其拥有的知识和信息上,而企业文件的安全性直接关系到这些信息的保护。文件防泄密已成为企业管理中的重要议题,透明加密技术因其无缝集成和高效保护的特性,成为企业防泄密的首选方案。2024年…

RabbitMQ与ElasticSearch面试

目录 RabbitMQ 1、你们项目中哪里用到了RabbitMQ 2、为什么会选择使用RabbitMQ 3、使用RabbitMQ如何保证消息不丢失 4、消息的重复消费问题如何解决的 5、如何解决消息堆积在MQ的问题 6、RabbitMQ如何保证消费的顺序性 7、RabbitMQ的延迟队列有了解过嘛 8、RabbitMQ如…

<数据集>流水线物件识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:8643张 标注数量(xml文件个数):8643 标注数量(txt文件个数):8643 标注类别数:26 标注类别名称:[Crankshaft, Centrifugal_body, Washer_container, Circlip_containe…

FTP协议-匿名用户登录 从0到1

前言 日常大家可能接触web漏洞比较多而对其他端口及协议不那么了解,其实其他协议漏洞在渗透中也同样重要只是平时可能接触得不多。本文将介绍FTP协议、FTP匿名用户登录及其具体流程分析和自动化利用demo。 FTP简介 FTP是File Transfer Protocol(文件传…

利用Aspose.BarCode 在 C# 中创建微型二维码

Aspose.BarCode提供多种编程语言的 API,例如Java、Python、C等。它提供了强大的解决方案,可以通过编程创建和处理条形码和二维码,我们将实现如何使用Aspose.BarCode for .NET在 C# 中创建微型二维码。接下来,我们还将演示如何以编…

软件测试工程师是做什么的?

软件测试工程师扮演着软件开发过程中的关键角色,他们的主要职责是对软件进行全面的测试,确保其质量和稳定性。 随着软件行业的迅猛发展,对这类专业人才的需求也在不断增长。 本文将深入探讨软件测试工程师的职责及其所需的技能。 一、软件测…

新技术能够区分真实照片和 AI 伪造图片,但为何平台没有使用?|TodayAI

随着生成式 AI 图像工具的快速发展,网络上越来越多的图像真假难辨。尽管已有技术能够区分真实照片和 AI 伪造图片,但大多数在线平台尚未充分利用这一技术。随着美国总统大选临近,网络上充斥着关于候选人唐纳德特朗普和卡玛拉哈里斯的各种照片…

组合模式 详解

组合模式 简介: 将对象组合成树形结构以表示"部分-整体"的层次结构, 使得用户对单个对象和组合对象的使用具有一致性. 组合模式也是一种结构类型的模式.看简介比较容易理解, 毕竟树形结构是数据结构必修的, 我们仍然举个例子方便理解 以公司的组织架构为例 公司 - …

Web大学生网页作业成品——明星EXO介绍网页设计与实现(HTML+CSS)(10个页面)(TABLE布局)

🎉🎉🎉 常见网页设计作业题材有**汽车、环保、明星、文化、国家、抗疫、景点、人物、体育、植物、公益、图书、节日、游戏、商城、旅游、家乡、学校、电影、动漫、非遗、动物、个人、企业、美食、婚纱、其他**等网页设计题目, 可满足大学生网…

LED 数码显示管的结构

LED 数码显示管是一种常用的字符显示器件,能与 CMOS、TTL 等集成电路直接配合,作静态、动态扫描显示之用。图12-33(a)是LED数码显示管的实物图,图 12-33(b)是LED数码显示管的内部结构。它实际上是由8个发光二极管构成的,其中7个发光二极管排列成“8”字形…

【线性表】内容总结

1.单链表,循环链表,双向链表的循环效率 2.顺序表和链表的比较 1.什么是存储密度 1.定义: 存储密度是指结点数据本身所占的存储量和整个结点结构中所占的存储量 之比,即: 2.实例 比如在32位系统上,一个12字节的结…

保姆级Python与PyCharm安装教程

本文演示所用的所用的所有工具包都已经打包好了,【点击这里】即可获得 一、简介 Python是一种广泛使用的高级编程语言,因其简洁的语法和丰富的库支持,在数据科学、Web开发、人工智能等领域广受欢迎。PyCharm是由JetBrains开发的一款针对Pyt…

一篇文章带你了解归并排序-分治法

文章目录 两个有序数组排序一个局部有序数组排序分治法归并排序 两个有序数组排序 先来一个场景假设,先有两个有序数组{1,3,5,9}、{2,4,6,8},要求合并成一个有序数组。 我们先上一段简单的处理代码 public static int[] merge(int[] leftArr, int[] righ…

Redis后台线程之非阻塞删除

当Redis执行删除命令的时候,如果被删除的对象是列表、集合、散列类型,因为这些数据类型包含的元素存放在不同的内存块中,redis需要遍历所有元素来释放其对应的内存块空间,这个耗时操作可能导致redis阻塞,redis4提供的U…

[数据集][目标检测]agvs仓储机器人检测数据集VOC+YOLO格式967张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):967 标注数量(xml文件个数):967 标注数量(txt文件个数):967 标注类别…

API接口安全101:基础概念与最佳实践

文章目录 API定义协议架构风格描述语言 Webservicewsdl介绍复现 SOAPswagger介绍指纹查找利用存在目录复现 HTTPWebpack介绍复现 在当今数字化时代,API接口已成为现代软件架构中不可或缺的组成部分。它们连接着各种应用程序和服务,促进了数据交换和功能集成。然而,随着API的普及…

【PyTorch】神经网络的基本骨架-nn.Module的使用以及convolution-layers卷积层介绍

前提文章目录 【PyTorch】深度学习PyTorch环境配置及安装【详细清晰】 【PyTorch】深度学习PyTorch加载数据 【PyTorch】关于Tensorboard的简单使用 【PyTorch】关于Transforms的简单使用 【PyTorch】关于torchvision中的数据集以及dataloader的使用 文章目录 前提文章目录nn.…

从易车“超级818冠军之夜” 看如何借势体育营销点燃汽车消费热潮

编辑 | 魏力 发布 | 大力财经 导语:这个8月,是属于奥运的8月。 巴黎奥运会虽圆满落幕,但属于奥运健儿们的热度还在持续。在这股奥运热潮的带动下,全民运动热情持续释放,同时也激发出巨大的消费潜力。 赛场外&#…

Go 1.23中值得关注的几个变化

距离上一次Go 1.22版本发布[1]又过去六个月了,我们如期迎来了Go 1.23版本的发布](https://mp.weixin.qq.com/s/IpDUOe0AUDKW2PYCWmvLYw)。 对于Go项目乃至整个Go社区而言,这个版本还有一点额外的意义,那就是这是Russ Cox[2]作为Tech lead&…

nginx 日志格式化,每日分割文件(已亲测)

首先nginx版本是1.23.4,在安装目录的conf文件夹下,配置nginx.conf。配置如下: logformat 代表日志格式设置 frmain 代表日志配置别名 map 行代表设置每日切割文件格式 需要在配置文件location指定访问的路径下,配置日志输出路径…