当前位置: 首页 > news >正文

常说的I2C协议是干啥的(电子硬件)

I2C(Inter-Integrated circuit)协议是电子传输信号中常用的一种协议。

它是一种两线式串行双向总线,用于连接微控制器和外部设备,也因为它所需的引脚数只需要两条(CLK和DATA),硬件实现简单,可扩展性强,所以被广泛应用于系统内多个集成电路IC间的通信。

图片

在硬件连接上,I2C协议的实现有分主设备和从设备,并且在主从上比SPI协议更好的一点是支持多个主设备或多个从设备(SPI仅支持单主多从)。

图片

在总线中,SCL和SDA都会接上拉电阻,通常情况下,3.3V系统上拉电阻取3.3KΩ,5V系统上拉电阻取4.7KΩ。所以当I2C设备空闲时,会输出高阻态,当所有设备都空闲,上拉电阻会把总线拉成高电平。

它的多主机多从机的实现原理主要有两点:

a, 每个连接到总线上的从设备都有一个独立的地址,主设备通过这个独立的地址访问到从设备。

b, 当有多个主设备同时使用同一条总线时,为了 防止数据产生冲突,就会利用仲裁的方式决定让哪个主设备先占用总线(同一时间段只能有一个主设备占用I2C总线)。

I2C工作中的整个流程:

1,Master(主设备)发送起始信号

2,Master发送7bit address地址加1bit Write信号

3,找到符合地址的Slaver(从设备)响应ACK

4,然后就可以正式发送数据了,Master发送8bit数据(数据帧大小为8位)

5,Slaver响应ACK

6,最后Master发送停止信号(若Master仅发送一个字节的数据)

图片

起始信号:SCL处于高电平,SDA从高电平向低电平转换。

停止信号:SCL处于高电平,SDA由低电平向高电平转换(与起始信号相反)。

帧地址:每个从属设备有唯一的7位或10位地址,用于主从设备之间的地址识别。一般地址的位长是7或10位,7位用的更广泛。

读/写位:1bit,一般会伴随着地址帧发送。如果主机是向从机发送数据(写)则为低电平,请求数据(读)则为高电平。

ACK/NACK:响应数据,确保数据有被正常发送且接受到。I2C的数据和地址传输都带有响应(先响应地址,后响应数据)。响应包括“应答(ACK)”和“非应答(NACK)”两种信号。ACK时DATA为低电平,NACK时DATA为高电平。

数据有效:数据的传输有分有效和无效,只有在SCL为高电平时,SDA的数据才有效,此时SDA高电平表示数据“1”,低电平表示数据“0”.当SCL为低电平时,数据无效,此时通常需要对SDA进行电平切换。

图片

I2C具有三种传输模式,对应的速率也会不同。

标志模式:100kbit/s

快速模式:400kbit/s

高速模式:3.4Mbit/s

http://www.lryc.cn/news/180335.html

相关文章:

  • C/C++进程超详细详解【中部分】(系统性学习day07)
  • S型速度曲线轨迹规划(约束条件为速度和位移)
  • 从零手搓一个【消息队列】实现数据的硬盘管理和内存管理(线程安全)
  • 自动驾驶中的感知模型:实现安全与智能驾驶的关键
  • 【CVPR 2023】DSVT: Dynamic Sparse Voxel Transformer with Rotated Sets
  • MySQL超入门(1)__迅速上手掌握MySQL
  • 四、浏览器渲染过程,DOM,CSSDOM,渲染,布局,绘制详细介绍
  • 2021-06-10 51单片机设计一个蜂鸣器报警电路每秒
  • D‘Agostino-Pearson正态检验|偏度skewness和峰度kurtosis
  • 基于树莓派CM4制作img系统镜像批量制作TF卡
  • 【中秋国庆不断更】OpenHarmony组件内状态变量使用:@State装饰器
  • 【Java 进阶篇】MySQL多表关系详解
  • 【开发篇】十、Spring缓存:手机验证码的生成与校验
  • 【Aurora 8B/10B IP(1)--初步了解】
  • C++ vector容器的介绍与使用
  • openstack的组成
  • [React] React高阶组件(HOC)
  • 【逐步剖C++】-第二章-C++类和对象(中)
  • PL/SQL动态SQL
  • Python绘图系统24:添加辅助坐标轴
  • Java自学网站--十几个网站的分析与评测
  • java接口怎么写
  • 第8章 Spring(二)
  • 从0开始python学习-24.selenium 浏览器常见的操作
  • Canal实现数据同步
  • 数据库学习笔记——DDL
  • MATLAB算法实战应用案例精讲-【人工智能】边缘计算(附python代码实现)
  • 精彩回顾 | 迪捷软件亮相2023世界智能网联汽车大会
  • 【ShaderLab PBR 嗜血边缘角色_美式朋克风格_“Niohoggr“_角色渲染(第一篇)】
  • python经典百题之围圈报数