stm32 IIC协议

news2025/1/29 14:03:39

该文章为大家介绍了 IIC协议 的基础知识。

文章目录

  • 前言
  • 一、IIC 概念
  • 二、IIC 信号
  • 三、IIC 数据传输格式
          • 3.1 写操作
          • 3.2 读操作
  • 四、UART/IIC总线区别
  • 总结


前言


一、IIC 概念

  1. IIC协议是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据,是一个多主机的半双工通信方式 每个挂接在总线上的器件都有个唯一的地址。位速在标准模式下可达 100kbit/s,在快速模式下可达 400kbit/s,在高速模式下可待3.4Mbit/s。
  • 数据线:完成收据的收发。
  • 时钟线:在时钟的作用下,数据按位完成传输。
  1. IC总线外接两个上拉电阻的作用:在总线处于空闲状态,总线为高电平的状态
  • 问 :为何SCL也要使用上拉电阻?

  • 答 :在第9个时钟之后,如果有某一方需要更多的时间来处理数据,它可以一直驱动三极管把SCL拉低。当SCL为低电平时候,大家都不应该使用IIC总线,只有当SCL从低电平变为高电平的时候,IIC总线才能被使用。当它就绪后,就可以不再驱动三极管,这是上拉电阻把SCL变为高电平,其他设备就可以继续使用I2C总线了。

在这里插入图片描述

  1. I2C总线系统结构,如下所示 :
  • 在一个芯片(SoC)内部,有一个或多个I2C控制器

  • 在一个I2C控制器上,可以连接一个或多个I2C设备

  • I2C总线只需要2条线:时钟线SCL、数据线SDA

  • 在I2C总线的SCL、SDA线上,都有上拉电阻

  • 时钟线只能由主机产生,作用给从机,完成数据收发同步

  • 主机:主动向数据线上发起数据/结束(起始信号/停止信号) 。从机:只能被接收数据

    在这里插入图片描述

二、IIC 信号

I2C协议中数据传输的单位是字节,也就是8位。但是要用到9个时钟:前面8个时钟用来传输8数据,第9个时钟用来传输回应信号。传输时,先传输最高位(MSB)。

  • 空闲状态 当总线上的SDA和SCL两条信号线同时处于高电平,便是空闲状态,如上面的硬件图所示,当我们不传输数据 时, SDA和SCL被上拉电阻拉高,即进入空闲状态。

  • 开始信号(S):当SCL为高期间,SDA由高到低的跳变;便是总线的启动信号,只能由主机发起,且在空闲状态下才能启动 该信号,如下图所示:

在这里插入图片描述

  • 结束信号(P):当SCL为高期间,SDA由低到高的跳变;便是总线的停止信号,表示数据已传输完成,如下图所示:

在这里插入图片描述

  • 响应信号(ACK):接收器在接收到8位数据后,在第9个时钟周期,拉低SDA。当接收方接收该字节成功,便会输出一个ACK应答信号,当SDA为高电平,表示为非应答信 号NACK,当SDA为低电平,表示为有效应答信号ACK。

    ( PS :当主机为接收方时,收到最后一个字节后,主机可以不发送ACK,直接发送停止信号来结束传输。)

在这里插入图片描述

  • SDA上传输的数据必须在SCL为高电平期间保持稳定,SDA上的数据只能在SCL为低电平期间变化

    在这里插入图片描述

I2C协议信号如下:

在这里插入图片描述

三、IIC 数据传输格式

3.1 写操作

流程如下:

  • 主芯片要发出一个start信号

  • 然后发出一个设备地址(用来确定是往哪一个芯片写数据),方向(读/写,0表示写,1表示读)

  • 从设备回应(用来确定这个设备是否存在),然后就可以传输数据

  • 主设备发送一个字节数据给从设备,并等待回应

  • 每传输一字节数据,接收方要有一个回应信号(确定数据是否接受完成),然后再传输下一个数据。

  • 数据发送完之后,主芯片就会发送一个停止信号。

下图:白色背景表示"主→从",灰色背景表示"从→主"

在这里插入图片描述

3.2 读操作

流程如下:

  • 主芯片要发出一个start信号

  • 然后发出一个设备地址(用来确定是往哪一个芯片写数据),方向(读/写,0表示写,1表示读)

  • 从设备回应(用来确定这个设备是否存在),然后就可以传输数据

  • 从设备发送一个字节数据给主设备,并等待回应

  • 每传输一字节数据,接收方要有一个回应信号(确定数据是否接受完成),然后再传输下一个数据。

  • 数据发送完之后,主芯片就会发送一个停止信号。

下图:白色背景表示"主→从",灰色背景表示"从→主"
在这里插入图片描述

四、UART/IIC总线区别

  1. UART总线有三根线:TXD/RXD/GND
  2. IIC总线有两根线:SCL / SDA
  3. UART总线属于异步通信方式,IIC总线有SCL时钟线,所有IIC总线为同步通信方式
  4. UART有接收数据线和发送数据线,所有UART属于全双工通信方式
  5. IIC总线只有一根双向的数据信号线,所以IIC属于半双工通信方式
  6. UART总线处于空闲状态时,总线默认为高电平状态
  7. IIC总线因为外接两根上拉电阻,总线处于空闲状态时,也是默认为高电平状态

总结

下一篇文章为大家介绍 SPI 通信协议。

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

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

相关文章

服务器主机安全受到危害的严重性

为了让小伙伴们了解到服务器主机安全受到危害的严重性,以下详细说明一下:1. 数据泄露:如果服务器主机遭受攻击,攻击者可能会窃取敏感数据,如用户数据、商业秘密、机密文件等,导致数据泄露和商业机密的泄漏。…

C++的List类(一):List类的基本概念

目录 前言 List类的基本概念 List的构造函数 List类迭代器的使用 List的功能 List的元素访问 List与vector比较 前言 vector的insert和erase都会导致迭代器失效list的insert不会导致迭代器失效,erase会导致迭代器失效 insert导致失效的原因是开辟了新空间后…

Collection与数据结构 Stack与Queue(二):队列与Queue

1. 队列 1.1 概念 只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作…

css实现扫码循环扫描特效

摘要&#xff1a; 需求中需要模拟扫描的效果来实现户型的生成&#xff01;由于接口ai生成的图片户型时间比较长&#xff0c;所以需要模拟特效&#xff01; <!DOCTYPE html> <html><head><mate charset"UTF-8" /><title>扫描</title…

【全套源码教程】基于SpringBoot+MyBatis+Vue的流浪动物救助网站的设计与实现

目录 前言 需求分析 可行性分析 技术实现 后端框架&#xff1a;Spring Boot 持久层框架&#xff1a;MyBatis 前端框架&#xff1a;Vue.js 数据库&#xff1a;MySQL 功能介绍 前台界面功能介绍 动物领养及捐赠 宠物论坛 公告信息 商品页面 寻宠服务 个人中心 购…

Word一打开背景色全黑了,如何解决~

三天假期&#xff0c;大家应该没学习的吧&#xff01;哈哈哈&#xff0c;可是 office Word 趁大家玩的时候&#xff0c;偷偷加了个夜间模式&#xff0c;而且还是默认模式。一打开就是乌漆嘛黑一片黑底白字的 Word&#xff0c;这丑的样子让我无能为力&#xff0c;看的我头大。 …

深入浅出 -- 系统架构之负载均衡Nginx实现高可用

一、Nginx的高可用 线上如果采用单个节点的方式部署Nginx&#xff0c;难免会出现天灾人祸&#xff0c;比如系统异常、程序宕机、服务器断电、机房爆炸、地球毁灭....哈哈哈&#xff0c;夸张了。但实际生产环境中确实存在隐患问题&#xff0c;由于Nginx作为整个系统的网关层接入…

基于R语言BIOMOD2模型的物种分布模拟

随着生物多样性全球大会的举办&#xff0c;不论是管理机构及科研单位、高校都在积极准备&#xff0c;根据国家林草局最新工作指示&#xff0c;我国将积极整合、优化自然保护地&#xff0c;加快推进国家公园体制试点&#xff0c;构建以国家公园为主体的自然保护地体系。针对我国…

Visual Studio 配置代码风格审查工具cpplint

文章目录 一、Visual Studio 配置代码风格审查工具cpplint1、安装2、运行3、集成到Visual Studio4、集成到Git 前言 cpplint是一个用于检查C代码风格的工具&#xff0c;它可以帮助我们发现潜在的编码问题&#xff0c;提高代码质量。cpplint遵循Google的C编码规范&#xff0c;通…

机器学习——模型融合:平均法

机器学习——模型融合&#xff1a;平均法 在机器学习领域&#xff0c;模型融合是一种通过结合多个基本模型的预测结果来提高整体模型性能的技术。模型融合技术通常能够降低预测的方差&#xff0c;提高模型的鲁棒性&#xff0c;并在一定程度上提高预测的准确性。本文将重点介绍…

安装selenium和关于chrome高版本对应的driver驱动下载安装【Win/Mac 】

目录 一、查看自己电脑上chrome的版本 二、下载 ChromeDriver 三、安装selenium 法一&#xff1a;打开pycharm&#xff0c;点击File&#xff0c;Setting进入配置页面&#xff0c;点击Project下面的Python Interpreter进入环境配置页面&#xff0c;点击。输入selenium。之后…

JavaScript逆向爬虫——无限debugger的原理与绕过

debugger 是 JavaScript 中定义的一个专门用于断点调试的关键字&#xff0c;只要遇到它&#xff0c;JavaScript 的执行便会在此处中断&#xff0c;进入调试模式。 有了 debugger 这个关键字&#xff0c;就可以非常方便地对 JavaScript 代码进行调试&#xff0c;比如使用 JavaSc…

zookeeper中的znode节点的一些功能和应用

zookeeper是一个挺好玩的东西 有着独特的选举机制&#xff0c;一般在中小型集群中&#xff0c;zookeeper一般装在三个节点 其中只有一个节点对外提供服务&#xff0c;处于leader状态&#xff0c;另外两台未follower状态 这得益于zookeeper独特的选举机制&#xff0c;可以保证le…

IP证书申请

目录 申请IP证书的基本条件&#xff1a; 申请和使用公网IP证书的过程&#xff1a; 为什么需要申请IP地址证书&#xff1f; 申请IP证书&#xff1a; IP证书又称公网IP地址证书&#xff0c;是一种特殊的SSL/TLS证书&#xff0c;其作用原理和普通的域名证书很像&#xff0c;域…

90天玩转Python—05—基础知识篇:Python基础知识扫盲,使用方法与注意事项

90天玩转Python系列文章目录 90天玩转Python—01—基础知识篇:C站最全Python标准库总结 90天玩转Python--02--基础知识篇:初识Python与PyCharm 90天玩转Python—03—基础知识篇:Python和PyCharm(语言特点、学习方法、工具安装) 90天玩转Python—04—基础知识篇:Pytho…

大规模基因检测成本降低,OceanBase助力基因测序普惠民众

本文来自OceanBase客户的分享 1990年10月&#xff0c;人类基因组计划正式拉开帷幕&#xff0c;它与曼哈顿原子弹计划和阿波罗登月计划并驾齐驱&#xff0c;被誉为二十世纪人类三大科学工程。这项宏伟的工程耗费了高达38亿美元的资金&#xff0c;历经13年&#xff0c;终于在2003…

P1123 取数游戏(dfs算法)

题目描述 一个 NM 的由非负整数构成的数字矩阵&#xff0c;你需要在其中取出若干个数字&#xff0c;使得取出的任意两个数字不相邻&#xff08;若一个数字在另外一个数字相邻 8个格子中的一个即认为这两个数字相邻&#xff09;&#xff0c;求取出数字和最大是多少。 输入格式 第…

将excel,csv中合并块中某条记录的值应用到整个块(使用多行的值,来填充新列数据)。

背景描述 在excel中使用其它列的值&#xff0c;根据某种计算规则来填充另一列&#xff08;或新列&#xff09;很容易实现。但是如果需要根据合并块中的多行来填充列时&#xff0c;就不容易实现&#xff0c;由于对excel不是太常用&#xff0c;因此这里使用的命令行工具实现的。…

全坚固笔记本丨工业笔记本丨三防笔记本相较于普通笔记本有哪些优势?

三防笔记本和普通笔记本在设计和性能方面存在显著差异&#xff0c;三防笔记本相较于普通笔记本具备以下优势&#xff1a; 三防笔记本通常采用耐磨、耐摔的材料&#xff0c;并具有坚固的外壳设计&#xff0c;能够承受恶劣环境和意外碰撞&#xff0c;有效保护内部组件不受损坏。相…

微信小程序真机无法下载文件

问题&#xff1a; 1、真机无法展示加了防盗链的图片 2、真机无法下载pdf等文件 文件服务器供应商&#xff1a;腾讯 解决&#xff1a; 1、在文件服务器控制台加上微信小程序的域名白名单&#xff1a;servicewechat.com 具体可查看&#xff1a;对象存储 设置防盗链-控制台指…