(南京观海微电子)——I3C协议介绍

特点

  1. 两线制总线:I2C仅使用两条线——串行数据线(SDA)和串行时钟线(SCL)进行通信,有效降低了连接复杂性。
  2. 多主多从设备支持:I2C支持多个主设备和多个从设备连接到同一总线上。每个设备都有唯一的地址。
  3. 可变的时钟速率:I2C总线支持不同的速率模式,如标准模式(100kbps)、快速模式(400kbps)和高速模式(3.4Mbps)。
  4. 同步通信:I2C是一种同步通信协议,数据传输由时钟信号(SCL)来控制。
  5. 简单的连接:I2C通信对硬件的要求比较低,很容易在微控制器和外围设备间实现连接。
  6. 地址分配:每个I2C设备都通过一个7位或10位的地址来识别,这使得总线上可以连接多个设备。
  7. 阻塞传输:I2C支持阻塞传输机制,即主设备可以在传输过程中控制总线,防止其他设备发送数据。
  8. 应用广泛:由于其简单和灵活性,I2C被广泛应用于各种电子产品中,如传感器、LCD显示器、EEPROM等。
  9. 总线仲裁和冲突检测:在多主模式下,I2C能够处理多个主设备同时尝试控制总线的情况。
  10. 低功耗:I2C总线的设计使其成为低功耗的通信方式,适用于电池供电的设备。

5种速率

I2C协议可以工作在以下5种速率模式下,不同的器件可能支持不同的速率。

  • 标准模式(Standard):100kbps
  • 快速模式(Fast):400kbps
  • 快速模式+(Fast-Plus):1Mbps
  • 高速模式(High-speed):3.4Mbps
  • 超快模式(Ultra-Fast):5Mbps(单向传输)

【bps:bit/s,即SCL的频率】

其中超快模式是单向数据传输,通常用于LED、LCD等不需要应答的器件,和正常的I2C操作时序类似,但是只进行写数据,不需要考虑ACK应答信号。

在I2C协议的官方文档NXP_UM10204_I2C-bus specification and user manual_Rev.6,超快模式和其他模式在3.2和3.1章节分别进行介绍。

4种信号

I2C协议最基础的几种信号:起始、停止、应答和非应答信号

起始信号

I2C协议规定,SCL处于高电平时,SDA由高到低变化,这种信号是起始信号。

停止信号

I2C协议规定,SCL处于高电平,SDA由低到高变化,这种信号是停止信号。

数据有效性

I2C协议对数据的采样发生在SCL高电平期间,除了起始和停止信号,在数据传输期间,SCL为高电平时,SDA必须保持稳定,不允许改变,在SCL低电平时才可以进行变化。

应答信号

I2C最大的一个特点就是有完善的应答机制,从机接收到主机的数据时,会回复一个应答信号来通知主机表示“我收到了”。

应答信号出现在1个字节传输完成之后,即第9个SCL时钟周期内,此时主机需要释放SDA总线,把总线控制权交给从机,由于上拉电阻的作用,此时总线为高电平,如果从机正确的收到了主机发来的数据,会把SDA拉低,表示应答响应。

使用MCU、FPGA等控制器实现时,需要在第9个SCL时钟周期把SDA设置为高阻输入状态,如果读取到SDA为低电平,则表示数据被成功接收到,可以进行下一步操作。

非应答信号

当第9个SCL时钟周期时,SDA保持高电平,表示非应答信号。

非应答信号可能是主机产生也可能是从机产生,产生非应答信号的情况主要有以下几种:

  1. I2C总线上没有主机所指定地址的从机设备
  2. 从机正在执行一些操作,处于忙状态,还没有准备好与主机通讯
  3. 主机发送的一些控制命令,从机不支持
  4. 主机接收从机数据时,主机产生非应答信号,通知从机数据传输结束,不要再发数据了

读写时序

向指定寄存器地址写入指定数据操作时序:

从指定寄存器地址读取数据操作时序:

注意,读数据时有两次起始信号。

7位和10位地址

大多数I2C器件支持7位地址模式,有一些器件还支持10位地址,而且两种类型的器件可以连接在同一个I2C总线上,目前10位地址的器件还没有被广泛使用

主机发送,从机接收。使用10位地址进行写时序:

主机接收,从机发送。使用10位地址进行读时序:

I2C保留字节

I2C读写时起始位之后的第一个字节,除了厂商指定的设备地址外,还有一些保留字节,主要有两组0000 xxx和1111 xxx,保留字节的含义:

上述的10位地址模式,就是使用到了最后一种保留字节

第一种广播模式,可以通过写入第二个字节06h来复位I2C总线上所有的从机器件。具体操作时序可以查看文档NXP_UM10204_I2C-bus specification and user manual_Rev.6:3.1.12 Reserved addresses章节有详细介绍。其中device ID控制字(1111 1xx1),可以读取I2C器件内部的24位器件ID,通过对照NXP I2C协议器件列表可以查询到器件所属的厂商和型号

SDA应该在第9个SCL时钟周期设置为输入状态:

下图的波形是使用Xilinx FPGA对AT24C1024的驱动,使用片上逻辑分析仪ChipScope抓取的实际波形,AT24C1024B存储空间为1024K Bit = 131072 Byte,存储单元地址位宽为17位。

AT24C1024B写时序:

AT24C1024B读时序:

SPI和I2C的对比

  • I2C是半双工,SPI是全双工。
  • I2C支持多主多从模式,而SPI只能有一个主机。
  • 从GPIO占用上来看,I2C占用更少的GPIO,更节省资源。
  • I2C有应答响应机制,数据可靠性更高,SPI没有应答机制。
  • I2C速率不会太高,最高速率3.4Mbps,SPI可以达到很高的速率。
  • I2C通过器件地址来选择从机,从机数量的增加不会导致GPIO的增加,而SPI通过CS选择从机,每增加一个从机就要多占用一个GPIO。
  • SPI协议在SCLK边沿进行数据采样,I2C在SCL高电平器件进行数据采样。
  • 两者大多都应用于板内器件短距离通讯。

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

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

相关文章

靶场:sql-less-18(HTTP头注入)

本文操作环境:Kali-Linux 靶场链接:Less-18 Header Injection- Error Based- string 输入用户名和密码以后,我们发现屏幕上回显了我们的IP地址和我们的User Agent 用hackbar抓取POST包,在用户名和密码的位置判断注入点&#xff0…

【设计模式】(四)设计模式之工厂模式

1. 工厂模式介绍 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 工厂模式有三种实现方式: 简单工厂模式工厂方法模式抽象工厂模式 2. 工厂方…

自动创建word文档的exe文件,自定义文件名、保存路径

目录 一、exe 二、使用方法 三、代码 四、Python打包exe 一、exe 百度网盘: 链接:https://pan.baidu.com/s/1dyCo_iVv7fb369BHbwGjHg 提取码:2333 夸克网盘: 链接:https://pan.quark.cn/s/36b14a53cccd 二、使用方法 1. 下载完成后双…

排序(7)——非递归快排

前面我们已经写了快排用递归的方法实现,在数据量大的时候,有可能会栈溢出。这里我们尝试一下改为非递归。 区分: 数据结构的栈——利用的是内存中的堆空间内存的栈——利用就是内存中的栈空间——函数创建函数栈帧堆的空间是远远大于栈的空…

突破编程_前端_JS编程实例(目录导航)

1 开发目标 目录导航组件旨在提供一个滚动目录导航功能,使得用户可以方便地通过点击目录条目快速定位到对应的内容标题位置,同时也能够随着滚动条的移动动态显示当前位置在目录中的位置: 2 详细需求 2.1 标题提取与目录生成 组件需要能够自…

Transformer之多角度解读

Transformer 文章目录 Transformer  👉引言💎 一、 自注意力机制 : 主要用于 长距离依赖捕捉和转换序列二、 Encoder:2.1 多头注意力机制:2.2 残差连接: 三、 Decoder:3.1 Decoder 多头注意力…

SMART PLC自适应低通滤波器(收放卷线速度滤波)

一阶低通滤波器更多内容请参考信号处理专栏相关文章,常用链接如下: 1、SMART PLC 低通滤波器和模拟量采集应用 https://rxxw-control.blog.csdn.net/article/details/136595982https://rxxw-control.blog.csdn.net/article/details/1365959822、SMART PLC双线性变换和后向差…

腾讯云服务器99元一年购买链接来了,续费也是99元

良心腾讯云推出99元一年服务器,新用户和老用户均可以购买,续费不涨价,续费也是99元,配置为轻量2核2G4M、50GB SSD盘、300GB月流量、4M带宽:优惠价格99元一年,续费99元,官方活动页面 txybk.com/g…

【STM32】STM32F4中USART的使用方法和Printf的重定义(基于CubeMX和Keil)

文章目录 一、前言二、STM32CubeMX生成代码2.1 选择芯片2.2 配置相关模式2.3 生成代码 三、Keil重定义Printf3.1 勾选“UseMicroLIB”3.2 添加头文件和修改fputc和fgetc 四、测试Printf的效果4.1 字符串测试4.2 格式化输出测试 五、存在问题的解决方法5.1 检查串口号是否一致5.…

由于找不到vcruntime140.dll无法继续执行的多种解决方法

最近,我在安装Adobe Premiere Pro(以下简称PR)时遇到了一个问题,即无法找到vcruntime140.dll文件。这可能导致某些应用程序无法正常启动或运行,因为vcruntime140.dll是许多基于Microsoft Visual C编译的应用程序所必需…

【中医】康复科治疗与中医养生(针灸、理疗、足浴)

程序员生活指南之 【中医】康复治疗与中医养生(针灸、理疗、足浴) 文章目录 1、康复科室2、中医与养生3、中医康复技术 1、康复科室 什么是康复科? 大部分医院都有康复科,但很多人都不知其具体是干什么的。其实,康复…

考研常识 | 专业硕士与学术硕士的11个区别

专业硕士与学术硕士的11个区别 对于考研学子而言,了解专业学位与学术学位的区别,是报考的第一步。学术学位研究生一般都是全日制的,而专业学位研究生的学习方式还分为即全日制与非全日制两种。这篇文章将带大家认识全日制专业学位与全日制学术…

LCR 131. 砍竹子 I

解题思路:(与砍竹子II的区别是,这里的竹子长度数量级较小) 数学推导或贪心 切分规则: 等长,且尽量为3 b0时,pow(3,a) b1时,pow(3,a-1)*4 少一段3,并入b生成一…

【数据结构】Map的常用方法

文章目录 一、搜索1.概念 二、Map的使用1.概念&#xff1a;2.Map的常用方法&#xff1a;1.V put(K Key ,V Value )2.V get(Object key)3.V getOrDefault(Object key, V defaultValue)4.V remove(Object key)5.Set<K> keySet()6.Collection<V> values()7.Set<Map…

连锁门店终端如何高效IT运维?向日葵助力服装行业数字化升级

服装行业作为典型的传统行业&#xff0c;因供应逐渐饱和、产能相对过剩以及消费结构升级&#xff0c;其销售端的数字化转型需求是最为迫切的。 为此&#xff0c;某知名时装品牌紧抓数字化转型机遇&#xff0c;在2016年起就开始了数字化变革&#xff0c;并在两年多的时间里完成…

配置与管理DNS服务器

配置与管理DNS服务器 **1&#xff0c;什么是DNS&#xff1f;**负责将域名转换成实际想对应的ip地址&#xff0c;这个过程交域名解析。 **2&#xff0c;域名解析的方法&#xff1a;**分布式&#xff0c;层次结构的数据库系统。根域&#xff0c;顶级域&#xff0c;二级域&#…

MyBatis是纸老虎吗?(二)

从二月二十六号开始&#xff0c;我就要求自己出一期与MyBatis有关的文章&#xff0c;直到三月三号那天才发表第一篇文章。这速度&#xff0c;这质量&#xff0c;着实堪忧。经过这件事&#xff0c;我也深刻认识到自己性格上的缺陷——懒惰。为了克服这个坏毛病&#xff0c;我决定…

使用Julia语言和R语言实现K-均值

K-均值算法基础 K-均值聚类算法属于一种无监督学习的方法&#xff0c;通过迭代的方式将数据划分为K个不重叠的子集&#xff08;簇&#xff09;&#xff0c;每个子集由其内部数据点的平均值来表示。计算方法大体如下&#xff1a; 1.初始化簇中心 选择K个数据点作为初始的簇中心…

LLM RAG系统中消除数据幻觉的几个绝招-OPENAI公司内称的“大招”

前言-什么是数据幻觉&#xff1f;它到底有什么危害呢 我们直接来举例&#xff1a; 我是金银花一区的&#xff0c;附近有什么小学&#xff1f; 此时RAG带出如下信息&#xff1a; 金银花小区一区、二区、三区附近教育资源有&#xff1a;银树大学、建设小学金银花校区、金树高…

IMX8MM -- Yocto构建遇见的错误及解决方法:

IMX8MM Yocto构建遇见的错误及解决方法&#xff1a; 1 bison-3.0.4 error2 Opencv BB_NO_NETWORK Error &#xff1a;3 Yocto构建时出现U-boot 问题4 Yocto构建时出现Linux kernel编译问题5 wayland-native6 cross-localedef-native7 wayland-protocols8 mesa 硬件&#xff1a;…