总线、UART、IIC、SPI

news2025/3/10 15:02:20

一图流

总线

概念

        连接多个部件的信息传输线,是各部件共享的传输介质

类型

  • 片内总线:连接处理器内核和外设的总线,在芯片内部

  • 片外总线:连接芯片和其他芯片或者模块的总线

总线的通信

总线通信的方式

串行通信

  • 数据按位顺序传输,同一时刻只能收或发1bit位信息,因此只用1根信号线

  • 优点:占用引脚资源少

  • 缺点:速度相对较慢

并行通信

  • 数据各个位同时传输,同一时刻可以收或发多个bit位的信息,因此需要多根信号线

  • 优点:速度快

  • 缺点:占用引脚资源多

通信的类型

  • 单工:只能收或者只能发,只有一条单向管道

  • 半双工:可以收,也可以发,但不能同时收发,只有一条双向管道

  • 全双工:同一时刻既接收,又发送,有两条相反的管道

同步通信和异步通信

  • 同步通信

    • 一般情况下,同步通信指的是通信双方根据同步信号进行通信的方式。比如通信双方会存在一个时钟线用于传输时钟信号,大家根据时钟信号的变化进行通信

  • 异步通信

    • 指数据传输速度匹配依赖于通信双方自己独立的系统 时钟,大家约定好通信的速度。异步通信不需要同步信号,但是并不是说通信的过程不同步

不同种类的串口有不同的通信类型

  • UART属于串行全双工异步通信

  • IIC串行半双工同步通信

  • SPI串行全双工同步通信

UART

概念

  • UART(Universal asynchronous receiver/transmitter):通用异步接收发送器

  • 串口用于两个模块之间进行异步全双工串行通信

特点

  • 两个芯片各有一个RXD、一个TXD、一个GND接口,一个芯片的RXD连接另一个芯片的TXD

    • RXD:数据接收引脚

    • TXD:数据发送引脚

    • GND:接地引脚

  • 这抗干扰能力弱,旁边有干扰源就会对收发的电平数据造成干扰,进而导致数据失真

  • 一般适用于一块板子上面的两个芯片之间进行数据传输

由于数异步通信,所以需要再发送数据前先约定传输速度——波特率(bit/s)

串口数据帧格式

        由于双方时钟不一样,就算提前约定好了波特率,随着传输数据量的增加,双方数据收发就会累计一定的误差,为了规避这个误差,我们需要对传输收发的数据进行约定,规范好收发的格式来消除误差

数据帧

  • 空闲位:当不进行数据收发时,数据线处于高电平状态

  • 起始位:1bit 低电平 一帧数据传输的开始

  • 数据位:5-8位数据位,进行传输的数据

  • 校验位:1bit 可有可无

    • 奇校验:一帧数据传输后保证数据位和校验位1的个数是一个奇数

      • X51->0101 0001 此时校验位为0

      • 0X53->0101 0011 此时校验位为1

    • 偶校验:一帧数据传输后保证数据位和校验位1的个数是一个偶数

      • 0X51->0101 0001 此时校验位为1

      • 0X53->0101 0011 此时校验位为0

  • 停止位:1-2bit 高电平,一帧数据传输结束的标志,在停止位器件重新校准时钟,清除累计的误差

  • 一般数据格式常设置为8N1:8bit数据位,没有校验位,1bit停止位

IIC

概念

  • I2C总线是PHLIPS公司在八十年代初推出的一种串行的半双工总线,主要用于连接整体电路

  • I2C总线为两线制,只有两根双向信号线。一根是数据线SDA,另一根是 时钟线SCL

  • IIC支持多主机多从机通信和一主机多从机通信

硬件连线

  • SCL:时钟线,用于传输时钟信号

  • SDA:数据线,用于传输数据

寻找从机

  • 每一个设备都会有一个自己的从机地址,这个从机地址就是设备的ID号

  • 主机在起始信号后必须传送一个从机的地址(7位),第8位是数据的传送方向位(R/W),用“0”表示主机发送数据(W),“1”表示主机接收数据(R)

  • 总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己被主机寻址,根据R/W位将自己定为发送器或接收器

信号

概念

        iic总线是一种同步通信总线,也就表示通信双方的通信过程要在各种时钟信号的作用下实现:起始信号、终止信号、应答信号、非应答信号、数据接收和发送信号

起始信号

时钟线为高电平时,数据线由高电平变成低电平

终止信号

时钟线为高电平时,数据线由低电平变成高电平

数据接收和发送

  • 时钟信号为高电平期间,数据线上的数据必须保持稳定

  • 只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化

  • 一个时钟周期,接收方和发送发完成了一位数据的接收和发送

应答和非应答

  • 发送方在发送完数据,接收方都会反馈一个反馈信号,这个信号就是应答信号和非应答信号

  • 应答信号:接收方收到数据,继续进行下一个8bit数据的接收

  • 非应答信号:接收方接收到数据,不进行下一次数据的接收

IIC主机和从机通信过程

主机给从机发送多个字节的数据

  • 主机发送起始信号

  • 主机发送7bit从机地址+1bit写标志

  • 从机回应应答

  • 主机发送8bit从机寄存器地址

  • 从机回应应答

  • 主机发送8bit数据

  • 从机应答

  • 主机再次发送8bit数据

  • 从机应答

  • 。。。。

  • 主机发送终止信号

主机读取从机多个字节的数据

  • 主机发送起始信号

  • 主机发送7bit从机地址+1bit写标志

  • 从机回应应答

  • 主机发送8bit从机寄存器地址

  • 从机回应应答

  • 主机发起重复起始信号

  • 主机发送7bit从机地址+1bit读标志

  • 从机回应应答信号

  • 从机发送8bit数据

  • 主机回应应答信号

  • 从机发送8bit数据

  • 主机回应应答

  • 。。。。

  • 主机回应非应答信号

  • 主机发起终止信号

iic总线通信的速率

  • 100K

  • 400K

  • 1M

  • 3.4M

SPI

概念

  • SPI(Serial Peripheral interface)串行外围设备接口

  • 是一种高速的,全双工,同步的通信总线

  • 在芯片的管脚上只占用四根线,节约了芯片的管脚,为PCB的布局上节省空间,提供方便

  • SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间,OLED 数码管、LCD

  • SPI总线支持一主机多从机通信

接线方式

基本接线方式

  • MISO:数据输入/输出引脚,用于从模式发送数据,主模式接收数据

  • MOSI:数据输入/输出引脚,用于主模式发送数据,从模式接收数据

  • SCK:串口时钟,作为主设备的输出,从设备的输入

  • CSN:从设备选择,用来选择主/从设备

四线制

  • 一主机多从机时会使用CSN来选择从机

三线制

  • 一主机一从机时可以去掉CSN

时序分析

时钟极性

  • 时钟极性为1:空闲状态下时钟线保持高电平

  • 时钟极性为0:空闲状态下时钟线保持低电平

时钟相位

  • 以时钟极性为起始标记的每一个周期内,在第一次变化的为0,第二次变化的为1

  • 时钟相位为1:在时钟后沿进行数据采样,时钟前沿进行数据输出

  • 时钟相位为0:在时钟前沿进行数据采样,时钟后沿进行数据输出

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

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

相关文章

大型齿轮箱健康监测与智能维护系列套件:测试台+故障诊断算法工具箱+齿轮箱智能维护系统平台+案例分析

大型齿轮箱健康监测与智能维护系列套件:测试台故障诊断算法工具箱齿轮箱智能维护系统平台案例分析 大型齿轮箱健康监测与智能维护系列套件:测试台定制、数据测试服务、算法工具箱与算法模型的定制研制服务,以及各类设备故障诊断与健康预诊系…

Yearning开源MySQL SQL审核平台

一款MYSQL SQL语句/查询审计工具,为DBA与开发人员使用. 本地部署,注重隐私,简单高效的MYSQL审计平台。 它可以通过流程审批,实现真实线上环境sql的审核和执行,还可以回滚执行,能够确保线上SQL更新的可靠性…

【MySQL — 数据库增删改查操作】深入解析MySQL的create insert 操作

数据库CRUD操作 1 CRUD简介 CURD是对数据库中的记录进行基本的增删改查操作: 2. Create 新增 语法 INSERT [INTO] table_name[(column [,column] ...)] VALUES(value_list)[,(value_list)] ... # value 后面的列的个数和类型,要和表结构匹配…

推箱子游戏

java小游戏2 一游戏介绍 二图像准备 墙、箱子、人、箱子目的地,人左边、人右边、人上边、人下边 三结构准备 地图是什么,我们把地图想象成一个网格,每个格子就是工人每次移动的步长,也是箱子移动的距离,设置一个二维数…

【Uniapp-Vue3】动态设置页面导航条的样式

1. 动态修改导航条标题 uni.setNavigationBarTitle({ title:"标题名称" }) 点击修改以后顶部导航栏的标题会从“主页”变为“动态标题” 2. 动态修改导航条颜色 uni.setNavigationBarColor({ backgroundColor:"颜色" }) 3. 动态添加导航加载动画 // 添加加…

pytest执行报错:found no collectors

今天在尝试使用pytest运行用例的时候出现报错:found no collectors;从两个方向进行排查,一是看文件名和函数名是不是符合规范,命名要是"test_*"格式;二是是否存在修改文件名的情况,如果修改过文件…

QT6 + CMAKE编译OPENCV3.9

参考文档 [1] https://blog.csdn.net/rjkf_css/article/details/135676077 前提条件 配置好相关运行环境:QT6、OPENCV3.9的sources文件 OPENCV下载网页:https://opencv.org/releases/ QT6下载教程:https://blog.csdn.net/caoshangpa/article…

pycharm踩坑(1)

由于我重装系统,导致我的pycharm需要进行重装,因此我觉得需要记录一下,pycharm的正确使用方法 汉化 汉化很重要,除非你从小就双语教学,不然你看着那些英文就是会消耗大量的精力 我使用的pycharm版本是pycharm-commun…

24_游戏启动逻辑梳理总结

首先这个项目从游戏根入口GameRoot.cs的初始化开始 分为 服务层初始化Svc.cs 与 业务系统层初始化Sys.cs 而服务层 分为 资源加载服务层ResSvc.cs 与 音乐播放服务层AudioSvc.cs 而在 资源加载服务层ResSvc.cs中 初始化了 名字的 配置文件 而音乐播放服务层AudioSvc.cs 暂时没…

Datawhale组队学习笔记task2——leetcode面试题

文章目录 写在前面Day5题目1.0112.路径总和解答2.0113路径总和II解答3.0101.对称二叉树解答 Day6题目1.0124.二叉树中的最大路径和解答2.0199.二叉树的右视图解答3.0226.翻转二叉树解答 Day7题目1.0105.从前序与中序遍历序列构造二叉树解答2.0098.验证二叉搜索树解答3.0110.平衡…

2024年博客之星主题创作|2024年蓝桥杯与数学建模年度总结与心得

引言 2024年,我在蓝桥杯编程竞赛和数学建模竞赛中投入了大量时间和精力,这两项活动不仅加深了我对算法、数据结构、数学建模方法的理解,还提升了我的解决实际问题的能力。从蓝桥杯的算法挑战到数学建模的复杂应用,我在这些竞赛中…

【前端】CSS实战之音乐播放器

目录 播放器背景旋转音乐封面按钮进度条音量调节音乐信息按钮的效果JavaScript部分播放和暂停音乐切换音乐信息进度条 音量调节避免拖拽时的杂音音量调节条静音和解除静音 自动下一首实现一个小效果最终效果 播放器背景 <div class"play_box"></div>设置…

VS C++ 配置OPENCV环境

VS C 配置OPENCV环境 1.下载opencv2.安装环境3.opencv环境4.VS配置opencv环境5.EXE执行文件路径的环境lib和dll需要根据是debug还是release环境来区分使用哪个 6.Windows环境 1.下载opencv 链接: link 2.安装环境 双击运行即可 3.opencv环境 include文件路径:opencv\build\…

Windows电脑安装USB Redirector并实现内外网跨网USB共享通信访问

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 我们每天都在与各种智能设备打交道&#xff0c;从手机到电脑&#xff0c;再到各种外设&#xff0c;它们已经…

计算机网络 (54)系统安全:防火墙与入侵检测

前言 计算机网络系统安全是确保网络通信和数据不受未经授权访问、泄露、破坏或篡改的关键。防火墙和入侵检测系统&#xff08;IDS&#xff09;是维护网络系统安全的两大核心组件。 一、防火墙 定义与功能 防火墙是一种用来加强网络之间访问控制的特殊网络互联设备&#xff0c;它…

利用 SAM2 模型探测卫星图像中的农田边界

将 Segment Anything Model Version 2 应用于卫星图像以检测和导出农业地区田地边界的分步教程 &#x1f31f; 简介 手动绘制田地边界是最耗时的任务之一&#xff0c;其准确性取决于绘制者的表现。然而&#xff0c;精确的边界检测在很多领域都有应用。例如&#xff0c;假设您…

高效沟通驱动LabVIEW项目成功

在LabVIEW项目开发中&#xff0c;由于涉及软件、硬件及多方协作&#xff0c;项目沟通效率的高低直接影响开发进度与最终质量。不明确的需求、信息传递中的误解以及跨部门协作的阻碍&#xff0c;常导致项目延误甚至失败。因此&#xff0c;建立高效的沟通机制&#xff0c;确保信息…

CCF开源发展委员会开源供应链安全工作组2025年第1期技术研讨会顺利举行

点击蓝字 关注我们 CCF Opensource Development Committee 2025年1月17日&#xff0c;CCF开源发展委员会供应链安全工作组&#xff08;CCF-ODC-OSS&#xff09;2025年第一期技术研讨会——“大模型时代的开源供应链安全风控技术”于北京黄大年茶思屋顺利举行。本次研讨会邀请了…

智能化加速标准和协议的更新并推动验证IP(VIP)在芯片设计中的更广泛应用

作者&#xff1a;Karthik Gopal, SmartDV Technologies亚洲区总经理 智权半导体科技&#xff08;厦门&#xff09;有限公司总经理 随着AI技术向边缘和端侧设备广泛渗透&#xff0c;芯片设计师不仅需要考虑在其设计中引入加速器&#xff0c;也在考虑采用速度更快和带宽更高的总…

基于ESP32-IDF驱动GPIO输出控制LED

基于ESP32-IDF驱动GPIO输出控制LED 文章目录 基于ESP32-IDF驱动GPIO输出控制LED一、点亮LED3.1 LED电路3.2 配置GPIO函数gpio_config()原型和头文件3.3 设置GPIO引脚电平状态函数gpio_set_level()原型和头文件3.4 代码实现并编译烧录 一、点亮LED 3.1 LED电路 可以看到&#x…