【文末送书】典型IO接口与总线 | SPI、IIC、UART、GPIO

news2025/1/20 3:54:03

在这里插入图片描述

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关注公粽号 《机器和智能》 回复关键词 “python项目实战” 即可获取美哆商城视频资源!


博主介绍:
CSDN优质创作者,CSDN实力新星,CSDN内容合伙人;
阿里云社区专家博主;
华为云社区云享专家;
51CTO社区入驻博主,掘金社区入驻博主,支付宝社区入驻博主,博客园博主。


典型IO接口与总线 | SPI、IIC、UART、GPIO

    • 1. SPI串行总线
    • 2. IIC总线
    • 3. UART总线和USART接口
    • 4. GPIO与GPIB
    • 图书推荐


专栏:《嵌入式软硬件》


1. SPI串行总线

serial peripheral interface,串行外设接口,由Motorala公司提出的,处理器与外设之间的简单串行通信接口。SPI串行总线的特点主要有:

  • 全双工,一主多从式通信。有一个主设备控制通信,数据在主从之间可以同时双向传播,这也意味着至少需要两条通信线路。
  • 两条数据线用于收发数据,时钟线用于同步。
  • 通信速度可达数十MB。

SPI的应用主要有,连接嵌入式处理器与Flash、SD卡、LCD、ADC、传感器、WiFi、蓝色模块等I/O设备。

通过端口中的四个引脚实现数据传送。

  • 串行时钟SPSCK/PD3;
  • 主接收从发送MISO/PD1,若为主就是输入,从则为输出,Master Input Slave Output;
  • 主发送从接收MOSI/PD0;
  • 不用SPI时,这些引脚都被设置成通用IO;

主设备通过寄存器移位(首尾互连的主从寄存器)来实现数据传输,主设备通过片选引脚选定和哪个从设备交互(一主多从),一主一从时,从设备片选端接地。SPI无寻址能力,通过片选选中从设备,几个从设备就几个片选。

SPI接口操作:基本规范定义了映射到存储模块的一组8位寄存器。

  • SPI控制寄存器SPICR1和SPICR2;
  • 可读写的波特率寄存器SPIBR,控制速度;
  • 只读的SPI状态寄存器SPISR;
  • 可读写的数据寄存器SPIDR;

SPI是近距离连接嵌入式处理器与外设的主从式、全双工、同步串行总线。

2. IIC总线

Inter-Integrated Circuit Bus,集成电路总线,Philips公司研制。是一种主从式、可寻址、2线制(SDA+SCL)、近距离串行通信总线,连接微控制器和外围器件的主从式串行通信总线。

两条双向线:

  • serial data line,SDA,双向数据线,只有一条数据线,在同一时刻只有一个方向可以发送数据,即半双工。
  • serial clock line,SCL,时钟线,上升沿和下降沿传输数据,即边沿触发。

两条线均是OD门,开漏要么输出为0,要么输出浮动。

通信速度:

- 100kbps普通模式;
- 400kbps快速模式;
- 1kbps增强快速模式;
- 3.4kbps高速模式;
- 5Mbps单工传输超高速模式UFM;

总体速度低于SPI,一般情况下,通信距离为几米到几十米,低传输速率时,通信距离为数十米到数百米。

IIC总线是多主的主从式通信总线,2线制,所有的外围器件都具有一个7位或10位的”从器件专用地址码“,主控制器通过地址码来建立多机通信的机制,无需片选线,基于总线仲裁机制,同一时刻只能有一个主端。

基本通信过程如下:

- 主机发出开始信号;
- 主机接着送出1字节的从机地址信息,其中最低位为读写控制码,1为读0为写,高7位为从机器件地址代码;
- 从机发出应答信号;
- 主机开始发送数据,每发完1字节后,从机发应答信号给主机;
- 主机发出停止信号,通信结束;

多个设备都是主设备,如果同时发送数据,总线上就会产生冲突,这时就需要仲裁,谁先不一致,谁就退出竞争。完成读写操作或总线收发异常时,主设备发送重启信号,重新设定从设备地址和读写信号,继续如上所述的应答式数据通信过程。当SCL被某些未知因素或事件限定在低电平后,需要触发硬件复位信号,如果IIC设备没有硬件复位输入,那么就需要关闭总线电源进行上电复位。

SPI与IIC不是同一种总线,不能直接互连,需要桥接设备连接。

总结,IIC是一种近距离、可寻址、主从式、半双工、同步串行总线。

3. UART总线和USART接口

UART通用异步收发器

UART通用异步通信收发器,SCI串行通讯接口。用于异步通信,可实现全双工收发,通信双方同时收发。两个器件无需共享同一个时钟信号就能进行通信,即异步,数据收发单位用帧来表示,工作模式有中断方式和DMA工作方式。

UART双方要设定相同的数据格式,收数据的格式和发数据的格式要完全一样。

1个起始位+数据位+1个校验位+1~2个停止位

UART双方要设定相同的数据速率,因为异步通信要求接收方与发送方的波特率必须一致来匹配输出速度。

UART规范主要定义了TTL电平的可配置通信数据格式以及通信速率、异步采样机制。

差分传输

EIA/TIA-422使用差分传输,实现了距离远速度快的特点。差分传输是一种信号传输的技术,在两根线上都传输同一信号,这两个信号的振幅相同、相位相反,也叫做平衡传输方式,在这两根线上的传输的信号就是差分信号。在信号接收端比较这两个电压的差值来判断发送端发送的是逻辑0还是逻辑1,设计电路时,差分走线必须是等长等宽,紧密靠近且在同一层面的两根线。

USART通用同步/异步收发器

在UART基础上增加了同步机制的,一种可被设置为同步、异步模式的全双工串行通信接口。同步模式下,发送器时钟引脚SCLK输出与SPI主模式相似的数据传输时钟,相位和极性可通过寄存器来设置。

UART和USART区别

  • 位流同步机制不同,同步与异步的区别;
  • 可支持的协议数量不同,USART更为复杂,不但兼容UART,还可以传输多种不同协议的数据,比如IrDA、LIN总线、智能卡、Modbus等;
  • 支持的外设能力不同,USART常用于系统正常运行高功耗时的串行数据通信,当系统进入休眠等低功耗模式时则采用基于UART的低速通信接口;

4. GPIO与GPIB

GPIO,general purpose input output,通用IO。SPI、IIC、UART都是通用IO。

嵌入式处理器除采集、传输、处理数据外,还需要进行大量开关型外部组件的控制,比如LED、继电器开关,专用IO可以满足要求,但限制了处理器的功能和使用范围,灵活性差且接口多时芯片引脚增加。应该尽量增强IO接口的通用性,GPIO区别于其它专用IO,可适用于多种输入输出要求的IO接口,可配置为不同类型的接口或者设置为不同的电气特性。允许用户根据不同的功能需求,通过寄存器组,进行IO功能和特性的动态配置和管理。

就输入输出特性而言,GPIO的引脚可以有浮空、上拉输入、下拉输入、模拟输入、以及开漏输出,可配置的上拉下拉、推挽输出等模式可供选择。

接口至少会提供GPIO控制器和GPIO数据寄存器,控制寄存器用以控制数据寄存器中各位为输入还是输出或者其它功能状态。功能强大的嵌入式处理器一般还会提供置位和复位寄存器,上拉下拉电阻配置寄存器、以及锁存寄存器等,使电路设计更灵活(外部的灵活性一定来源于内部设计的复杂性)。

如果处理器提供的GPIO不够,可以采用它的IIC接口等器件进行扩展,不同处理器或同一处理器不同组的GPIO可能实现的特性存在差异,不能一概而论。

GPIB,general purpose interface bus,通用接口总线。GPIO是接口,GPIB是总线。

图书推荐

近年来国家大力支持半导体行业,鼓励自主创新,中国SSD技术和产业良性发展,产业链在不断完善,与国际厂商的差距逐渐缩小。但从行业发展趋势来看,SSD相关技术仍有大幅进步的空间,SSD相关技术也确实在不断前进。随着闪存芯片制程工艺的进步、堆叠层数的增加等,SSD面临闪存大页问题、写放大导致的性能问题、3D堆叠导致的可靠性问题等,因此,我们仍需不断攻克核心技术,通过软硬件协同等多种方法提升SSD的性能和寿命,从而满足日益增长的应用需求。
中国在SSD技术方面只有面向国际前沿,加强企业研发和自主创新,才能逐步建立起核心竞争力,并在市场中占据更高份额。
《深入浅出SSD》第1版在2018年上市,随即成为SSD从业者,包括研究者、设计者、生产者和应用者,了解SSD工作原理和技术的畅销书。快5年过去了,SSD技术在不断发展,标准也在不断更新,出现了系列新技术或新标准,如可计算存储、ZNS、NVMe协议标准、NVMe over Fabrics、NAND新协议标准等,于是,本书诞生了。本书在第1版的基础上增加了大量新内容,覆盖面更广。本书的作者团队依然来自固态存储行业的技术精英,他们有多年经验,秉持专业、通俗和易懂风格著书,相信本书将继续给读者以良好的体验,助力SSD技术和产业发展。

书名:《深入浅出SSD:固态存储核心技术、原理与实战》
作者:SSDFans 胡波 石亮 岑彪
出版社:机械工业出版社
在这里插入图片描述

🔥图书介绍

在评论区留下任意评论,并关注博主即可参与抽奖,博主将通过私信联系中奖人。


在这里插入图片描述
在这里插入图片描述


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

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

相关文章

Three.js实现模型,模型材质可拖拽效果 DragControls

Three.js提供了一个拖拽的API DragControls 用于实现模型材质拖拽效果 DragControls:是一个用于在Three.js中实现拖拽控制的辅助类。它简化了在Three.js中实现拖拽物体的过程。 DragControls的构造函数接受三个参数: objects:一个包含需要…

(AS笔记)上传aar包到Maven中央仓库

目录 一、SonaType账户注册与登录 (1)注册 (2)登录 二、创建工单 (1)Github子域名验证 (2)自定义域名验证 三、登录Nexus Repository Manager 四、GPG签名生成和发布 五、Andr…

PHP8内置函数中的数学函数-PHP8知识详解

php8中提供了大量的内置函数,以便程序员直接使用常见的内置函数包括数学函数、变量函数、字符串函数、时间和日期函数等。今天介绍内置函数中的数学函数。 本文讲到了数学函数中的随机数函数rand()、舍去法取整函数floor()、向上取整函数 ceil()、对浮点数进行四舍…

【LeetCode每日一题】——1365.有多少小于当前数字的数字

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 排序 二【题目难度】 简单 三【题目编号】 1365.有多少小于当前数字的数字 四【题目描述】 …

RHCE——十一、NFS服务器

NFS服务器 一、简介1、NFS背景介绍2、生产应用场景 二、NFS工作原理1、示例图2、流程 三、NFS的使用1、安装2、配置文件3、主配置文件分析3.1 实验1 4、NFS账户映射4.1 实验24.2 实验3 四、autofs自动挂载服务1、产生原因2、安装3、配置文件分析4、实验45、实验5 一、简介 1、…

【c++】VC编译出的版本,发布版本如何使用

目录 使用release类型进行发布 应用程序无法正常启动 0xc000007b 版本对应 vcruntime140d 应用版本 参考文章 使用release类型进行发布 应用程序无法正常启动 0xc000007b "应用程序无法正常启动 0xc000007b" 错误通常是一个 Windows 应用程序错误&#xf…

手机拍摄的视频太大怎么压缩?快来学视频压缩

随着手机的普及和视频拍摄的简单化,我们经常会在手机上一不小心就拍摄出大量的视频内容。但这些视频文件往往会占用大量的存储空间,给我们的日常生活带来不便。那么,如何压缩这些过大的视频文件呢? 视频压缩的主要原理是利用视频序…

易云维®FMCS厂务系统创造工厂全新的“数字低碳智能”应用场景

近年来,新一代信息技术的高速发展为传统工业与制造业领域带来了新的机遇。信息技术加持下的制造技术发展出了新的生产方式、产业形态与管理模式。通过搭建FMCS厂务系统进行数字化转型来实现数据互联互通与业务高效协同,助力企业向安全、绿色、节能、高效…

软件测试全生命周期全流程解析

一、软件测试的基本概念 1.测试是软件生存周期中十分重要的一个过程,是产品发布、提交给最终用户前的稳定化阶段。 2.软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序内部结构而精心设计的一批 二、软…

winrar代码执行漏洞CVE-2023-38831复现

工具下载: winrar5.50:https://www.rarlab.com/rar/winrar-x64-550.exe 7-z:https://www.7-zip.org/ 创建文件夹目录如下 测试- image(文件夹,此命名随意)- xingkong.png(一张图片&#xff0c…

【Unity3D赛车游戏】【七】如何在Unity中为汽车添加自动变速箱自动换挡?

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

智能工单系统哪家好?如何提升企业维修效率与管理效能?

在互联网信息时代,许多行业已经完成了电子信息化的转变,并从中受益。对于公司而言,SaaS云产品系列提供了更低的成本、更强大的功能以及更好的客户体验。那么,与传统报修工单相比,智能工单有哪些优势呢? 首先…

9个至少提升50%效率的VSCODE插件

在开始编码之前,您首先需要让您的工作流程适合您。让它更高效、更漂亮、更可定制。它会节省您大量的时间和精力,因此您将有更多的能力进行编码。 无论您是前端还是后端开发人员还是高级 Java 程序员,都没关系。这篇文章对你们大多数人来说仍然…

问道管理:融资融券门槛?

融资融券是股票出资中的一种买卖方式,也是现代股市正常运作的重要机制之一。但是,由于融资融券具有利润高、危险大的特色,为了保护大多数出资者的利益,也为了确保股市的安稳运转,国家对融资融券的门槛做出了一系列规则…

一个国产存储一致性及稳定性测试工具介绍

项目地址:https://github.com/zhangyoujia/hd_write_verify 序言 hd_write_verify & hd_write_verify_dump 是测试磁盘稳定性和验证数据一致性的工具。可以测试 物理磁盘、虚拟机磁盘 等。相对于fio和vdbench等工具,此工具更加专注于数据对丢失、数…

lab9 fs

文章目录 Large filestaskhints思路 Symbolic linkstaskhints思路sys_symlinksys_open Large files 目标:11256256*256个block inode的格式在fs.h的struct dinode中被定义,你需要特别注意以下几点 NDIRECTNINDIRECTMAXFILEaddrs[] 在磁盘上找一个文件…

OpenGL手册

基础知识 图元类型 内置变量 GLSL 中文手册 基本类型: 类型说明void空类型,即不返回任何值bool布尔类型 true,falseint带符号的整数 signed integerfloat带符号的浮点数 floating scalarvec2, vec3, vec4n维浮点数向量 n-component floating point vectorbvec2, bvec3, b…

Midjourney学习(三)6个高级应用

使用Remix Mode在原图片的基础上进行二次创作 通过prompt得到大图之后,点击Make Variations按钮,输入Remix Prompt,即可得到意想不到的效果! 局部内容重绘 通过局部重绘可以实现对画面内容更加精细化的控制,同样也是需…

【数学建模】清风数模正课7 多元线性回归模型

多元线性回归分析 回归分析就是,通过研究自变量X和因变量Y的相关关系,来解释Y的形成机制,从而达到通过X去预测Y的目的。 所以回归分析需要完成三个使命,首先是识别重要变量,其次是判断正负相关,最后是估计…

PCB电路板电压电流监测软件

PCB电路板电流监测软件详细设计说明书是一个详细描述软件系统设计和实现的文档,它提供了软件系统的架构、功能模块、接口设计、数据存储和处理、界面设计、数据库设计、系统测试、部署和维护计划等方面的详细信息。模拟量采集/老化房采集软件 该文档的目的是为了确保…