【通信接口】UART、IIC、SPI

目录

一、预备知识

1、串行与并行

2、单工与双工

3、波特率

二、UART 

三、IIC

四、SPI (一对一、一对多)

五、IIC、SPI异同点


参考文章:这些单片机接口,一定要熟悉:UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB、SD卡


 

一、预备知识

1、串行与并行

根据每次发送的二进制位数,可以分为串行、并行。串行只有一根总线,而并行一般有多根总线。总线数目的不同直接影响到每次传递的数据量。以传递一个字节为例。

串行每次只能传递 1 bit,所以要传输 8 次才能传递一个字节。

并行有 8 根总线,所以一次就可以传递一个字节(8 bit)。

2、单工与双工

根据数据传输的方向可以分为单工、双工通信,而双工通信又可以根据总线数目分为半双工、全双工通信。

  • 单工通信:数据的传输是单向的,发送器只负责发送,接收器只负责接收
  • 双工通信:
    • 半双工:一根总线,双方的发送和接收用的同一根总线
    • 全双工:两根总线,双方的发送和接收各有一根总线

3、波特率

用于描述串口的通信速度,单位bps(bit per second),即每秒传输的比特数

二、UART 

1、概念

UART 是一种通用的串行异步通信总线,该总线有两条数据线,TXD 用于发送数据,RXD用于接收数据,可以实现全双工的发送和接收,在嵌入式系统中常用于主机与辅助设备之间的通信。

2、帧格式

UART帧格式如下:

空闲时刻:默认维持在高电平

起始位:表示要开始发送数据了,此时会变为低电平

数据位:一般有8位,代表一个字节。

校验位:方便接收方核对数据是否被篡改(可有可无)

停止位:表示一帧数据的结束。相当于告知对方数据发送完毕,重新回到高电平(空闲状态)

三、IIC

1、概念

I2C总线是一种同步半双工双向的两线式串口总线。它由两条总线组成:串行时钟线SCL和串行数据线SDA。

  • SCL:负责产生时钟脉冲。一方可以在时钟脉冲的上升沿发送数据;另一方在下降沿接收数据
  • SDA:负责数据的传输

2、通信过程

主设备和从设备都可以作为发送设备或接收设备。无论主设备是作为发送设备还是接收设备,同步时钟信号都只能由主设备产生,主设备控制通信的开始与结束

主从设备建立连接

(1) 主设备发送一个起始信号启用总线

(2)主设备发送一个字节的数据指明要和哪个从设备通信,以及数据的传递方向(即主设备给从设备发数据,还是从设备给主设备发数据)

(3)被指名的从设备发送应答信号回应主设备

主从设备开始通信

建立连接以后,主从设备之外的设备,不可以发送数据。接下来就是主从设备的通信时间了。

(4)发送器发送一个字节的数据

(5)接收器收到数据以后发送应答信号,回应发送器

(6)... ...  循环步骤4、5

主从设备结束通信

(7)主设备发送停止信号中止本次通信

四、SPI (一对一、一对多)

1、概念

SPI总线是同步全双工双向的4线式串行接口总线。SPI采用主从的方式工作,可以一个主设备对应一个从设备,也可以一个主设备对应多个从设备。虽然是一个主设备对多个从设备的关系,但是每次通信依然是一个主设备和一个从设备通信。

  • MOSI(Master Out Slave In):主设备 ==》从设备(主设备发送,从设备接收)
  • MISO(Master In Slave Out):从设备 ==》主设备(主设备接收,从设备发送)
  • SCLK(Serial Clock):传输时钟信号,用于主从设备的同步
  • CS(chip select):选择从设备。

2、通信过程

主设备选择从设备

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

数据传输

SPI 总线在进行数据传输的时候,先传送高位,后传送低位。比如要传送数字3,转换成二进制就是 0000 0011,因为是串行通信,每次只能传 1bit,所以需要决定先传送高位还是低位。

发送端发送信号:当时钟脉冲达到下降沿的时候,这段时间是发送数据的时间。

接收端接收信号:当时钟脉冲到达上升沿的时候,这段时间是接收数据的时间。

因此,SPI 可以在一个时钟周期内就完成数据的收发,可以无限制的连续发送和接收数据。

传输完毕或者继续传输

一个字节传输完成后无需应答,可以直接开始下一个字节的传递,也可以就此中止传输。SPI总线没有起始或者结束信号。

3、极性和相位

极性(CPOL)指的是时钟脉冲在空闲时刻的状态。

相位(CPHA)指的是采样时刻。比如是选择下降沿发送数据,还是上升沿发送数据。

对于特定的从设备来说,出厂时的工作模式就已经决定了,即极性和相位就已经决定好了。主设备的 CPOL 和 CPHA是可以手动配置的。在使用设备时,必须保证主设备的工作模式和从设备保持一致。

五、IIC、SPI异同点

相同点

1、都使用了时钟线

2、采用了TTL电平,这就限制了应用场景,传输距离不会很长,一般用于同一板卡上芯片之间的通信

3、都采用主从方式工作,主机可以管理和控制总线,从机只能被呼叫。

不同点

1、IIC有应答机制,SPI无需应答机制

2、IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来选择从机

3、IIC的时钟极性和相位固定,SPI的时钟极性和相位可调

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Java EE初阶】计算机简介及多线程之创建线程

目录 1.计算机发展史 2.冯诺依曼体系 3.操作系统 操作系统的作用: 4.进程 1.PID(进程编号) 2.内存指针 应用程序申请到的内存中的首地址 3.文件描述符表 问:什么是并发?什么是并行? 4.进程的优先级&a…

卡尔曼滤波原理及代码

目录 一.简介 二.原理 1.先验估计原理 2.后验估计原理 3.总结 三.示例 一.简介 卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法,它可以在任意…

StarRocks 3.0 集群安装手册

本文介绍如何以二进制安装包方式手动部署最新版 StarRocks 3.0集群。 什么是 StarRocks StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏捷。用户无需经过复杂的预处理,就可以…

同步辐射X射线断层扫描成像在各行业的应用

同步辐射X射线断层扫描成像在各行业的应用 同步辐射X射线断层扫描成像(synchrotron radiation X-ray computed tomography,SRCT)是一种非侵入式、高分辨率的成像技术,利用同步辐射光束产生的高强度、高亮度、单色性和相干性的X射线…

【面试】MySQL事务的12连问

文章目录 前言1. 什么是数据库事务?2. 事务的四大特性3. 事务的隔离级别有哪些?MySQL的默认隔离级别是什么?4. Mysql为什么选择RR作为默认隔离级别?5. 很多大厂为什么选择RC数据库隔离级别?6. 并发场景,数据…

Qt连接MySql数据库(本地和远程数据库均可)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 三种方法方法一 略方法二 使用ODBC设置mysql为数据源库1. 添加ODBC数据源,在控制面板中找到管理工具,其中有ODBC数据源 64位的,打…

数字孪生与元宇宙:数字化科技的双向融合之路

概念 (1)元宇宙(Metaverse)是一个虚拟的三维世界,由数字内容和物理世界中的现实空间相互交织而成,能够提供各种虚拟体验,例如虚拟现实、增强现实、虚拟社交、虚拟经济等。在元宇宙中&#xff0…

8种不同类型的防火墙

什么是防火墙? 防火墙是一种监视网络流量并检测潜在威胁的安全设备或程序,作为一道保护屏障,它只允许非威胁性流量进入,阻止危险流量进入。 防火墙是client-server模型中网络安全的基础之一,但它们容易受到以下方面的…

连ChatGPT都不懂的五一调休,到底怎么来的?

今天是周几? 你上了几天班了? 还要上几天班放假? 五一啥安排? 出行的票抢到了吗? 调休到底是谁发明的?! 五一劳动节是要劳动吗? 为什么昨天是周一,今天还是周一&a…

差分优化算法——DE

🍎道阻且长,行则将至。🍓 目录 一、DE1.步骤2.特点 二、DE Optimiza1.函数最小值问题2.差分进化算法求解2.Java 实现与结果绘图 一、DE 差分进化算法是一种基于群体智能的优化算法,由Storn和Price于1995年提出,最早用…

基于DSP+FPGA+ADS1282支持32Bit高精度数据采集方案(三)系统性能测试

系统性能分析与测试 本章将首先对系统电路的噪声和温漂进行分析,而后对采集系统的性能进行 测试,并对测试数据进行分析。 5.1 高精度 AD 转换电路噪声和温漂分析 5.1.1 电阻噪声与温漂 1 、电阻的噪声 电阻是一种噪声源,其严重程度取…

嵌入式就业怎么样?

嵌入式就业怎么样? 现在的IT行业,嵌入式是大热门,下面也要来给大家介绍下学习嵌入式之后的发展以及就业怎么样。 首先是好找工作。嵌入式人才目前是处于供不应求的状态中,据权威统计机构统计在所有软件开发类人才的需求中,对嵌入式工程师的…

matlab 点云滤波(中值、均值、高斯滤波)代码

点云中值、均值、高斯滤波 介绍一下滤波函数 smoothdata: 对含噪数据进行平滑处理 B smoothdata(___,method) 为上述任一语法指定平滑处理方法。例如,B smoothdata(A,sgolay) 使用 Savitzky-golay 滤波器对 A 中的数据进行平滑处理。Method-平滑处理方法 "…

Springboot获取jar包中resources资源目录下的文件

阿萨斯多问题现象: 今天在项目中遇到一个业务场景,需要用到resources资源目录下的文件,然后就在思考一个问题: 当项目打成jar后,Springboot要如何获取resources资源目录下的文件呢? 问题分析: 如…

GitLABJenkins

GitLAB & Jenkins 目录 实践:基于Jenkins提交流水线(测试成功)-2023.4.25 目的:掌握通过触发器将GitLab和Jenkins集成,实现提交流水线。 1、触发Jenkins构建 安装Generic Webhook Trigger插件 重启后,进入一个Pipeline项目设…

用Java创建可扩展的OpenAI GPT应用程序

ChatGPT 值得深入使用的方面之一是它的引擎,它不仅为基于Web的聊天机器人提供动力,还可以集成到Java应用程序中。 ▌Budget Journey App 想象一下,你想去一个城市旅行并且设置好了预算,你应该如何分配你的钱并让你的旅行难忘&am…

实例分割算法BlendMask

实例分割算法BlendMask 论文地址:https://arxiv.org/abs/2001.00309 github代码:https://github.com/aim-uofa/AdelaiDet 我的个人空间:我的个人空间 密集实例分割 ​ 密集实例分割主要分为自上而下top-down与自下而上bottom-up两类方法…

一种用于地灾边坡大坝安全深度位移监测测斜仪

1用途 固定测斜仪广泛适用于测量土石坝、面板坝、岩土边坡、路堤、基坑、岩石边坡等结构物的水平位移、垂直沉降及滑坡,固定测斜仪配合测斜管可反复使用,并方便实现测量数据的自动采集。 固定测斜仪采用的是耐冲击型倾斜传感器,可靠性好&am…

15天学习MySQL计划-锁(进阶篇)-第十天

15天学习MySQL计划-锁(进阶篇)-第十天 锁 1.概述 1.介绍 ​ 锁是计算机协调多个进程或线程并发访问某个资源的机制。数据库中,除传统的计算资源(cpu,ram,i/o)的争用以外,数据也是…

对数据结构的初步认识

前言: 牛牛开始更新数据结构的知识了.本专栏后续会分享用c语言实现顺序表,链表,二叉树,栈和队列,排序算法等相关知识,欢迎友友们互相学习,可以私信互相讨论哦! 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟&a…