首页 > 其他分享 >I2C总线 | I2C总线介绍

I2C总线 | I2C总线介绍

时间:2024-01-04 12:07:46浏览次数:27  
标签:字节 主机 总线 介绍 从机 寻址 I2C


I2C总线 | I2C总线介绍



文章目录

  • `I2C`总线 | `I2C`总线介绍
  • `I2C`总线介绍
  • I2C有如下特点:
  • `I2C`总线术语
  • `I2C`总线位传输
  • IIC总线数据传输
  • **1.字节格式**
  • **2.应答响应**
  • `IIC`总线寻址方式
  • 1.7位寻址
  • 2.10位寻址
  • 快速和高速模式
  • 1.快速模式
  • 2.高速模式


I2C总线介绍

I2C_百度搜索 (baidu.com)

i2c - 搜索 (bing.com)

I2CInter - Intergrated Circuit)总线(也称IICI2C)是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备,是微电子通行控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口少控制方式简单器件封装形式少通信速率高等优点。

I2C总线 | I2C总线介绍_linux

I2C有如下特点:

(1)两条总线线路:一条串行数据线SDA),一条串行时钟线SCL:控制时序);

(2)每个连接到总线的器件都可以通过唯一的地址联系主机,同时主机可以作为主机发送器或者主机发送器主机接收器

(3)是一个真正的多主机总线,如果两个或更多的主机同时初始化,数据传输可以通过冲突检测仲裁防止数据被破坏;

(4)串行的8位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s

(5)连接到相同总线的I2C数量只受到总线的最大电容400pF限制。

I2C总线术语

发送器:发送数据到总线的器件。

接收器:从总线接收数据的器件。

主机:初始化发送产生的时钟信号和终止发送的器件。

多主机:同时有多于一个主机尝试控制总线但不破坏传输。

仲裁:是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使传输不被破坏的过程。

同步:两个或多个器件同步时钟信号的过程。

I2C总线位传输

由于连接到I2C总线的器件有不同种类的工艺(CMOSNMOS、双极性),逻辑0)和逻辑1)的电平是不固定的,它是电源VCC的相关电平决定,每传输一个数据位就产生一个时钟脉冲,数据的有效形如下所示:


I2C总线 | I2C总线介绍_寻址_02

SDA线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态IIC位传输数据的有效性在SCL线的时钟信号是低电平时才能改变起始停止条件如下图所示:

I2C总线 | I2C总线介绍_寻址_03

起始条件SCL线是电平时,SDA线从高电平向低电平切换。

停止条件SCL线是电平时,SDA线从低电平向高电平切换。

起始和停止条件一般都是由主机产生,总线在起始条件后被认为是处于忙碌状态,在停止条件的某段时间后总线被认为处于空闲状态。

IIC总线数据传输

1.字节格式

发送到SDA线上的每个字节必须为8位,每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。首先传输的是数据的最高位(MSB),如果从机要完成一些其他的功能后(如一个内部中断服务程序)才能接受或者发送下一个完整的数据字节,可以使时钟线SCL保持低电平,迫使主机进入等待状态,当主机准备好接收下一个数据字节并释放时钟SCL后,数据继续传输。

2.应答响应

I2C总线 | I2C总线介绍_寻址_04

数据传输必须带响应位,相关的响应时钟脉冲由主机产生。在响应的时钟脉冲期间发送器释放SDA线(高)。在响应的时钟脉冲期间,接收器必须将SDA线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。通常被寻址的接收器在接收到每个字节后,会产生一个响应。当从机不能响应从机地址时(如它正在执行一些实时函数不能接收或发送),从机必须使数据线保持高电平,主机然后产生一个停止条件终止传输或者产生重复起始条件开始新的传输。

如果从机接收器响应了从机地址,但是在传输了一段时间后不能接收更多字节,主机必须再一次终止传输。这个情况用从机在第一个字节后没有产生响应来表示。从机使数据线保持高电平,主机产生一个停止或重复起始条件。

如果传输中有主机接收器,它必须在从机不产生时钟的最后一个字节不产生响应,向从机发送器通知数据结束。

从机接收器必须释放数据线,允许主机产生一个停止或重复起始条件。

IIC总线寻址方式

1.7位寻址

第一个字节的头七位组成了从机地址,最低位(LSB)是第8位,它决定了普通的和带重复开始条件的7位地址格式方向。第一个字节的最低位是“0”,表示主机会写信息到被选中的从机;“1”表示主机会向从机读信息。当发送一个地址后,系统中的每个器件都在起始条件后将头7位与它的自己的地址进行比较,如果一样,器件会判定它被主机寻址,至于是从机接收器还是从机发送器,都有R/W位决定。

2.10位寻址

10位寻址与7位寻址兼容,而且可以结合使用。

10位寻址采用了保留的1111XXX作为起始条件,或重复起始条件的后第一个字节的头7位。10位寻址不会影响已有的7位寻址,有7位和10位地址的器件都可以连接IIC总线的10位地址格式到相同的IIC总线。它们都能用于标准模式和高速模式系统。

10位从机地址由起始条件或重复起始条件后的头两个字节组成。

第一个字节的头7位是11110XX的组合,其中最后两位XX是10位地址的两个最高位(MSB)。第一个字节的第8位是R/W,决定传输的方向。第一个字节的最低位是“0”,表示主机将写信息到选中的从机,“1”表示主机将向从机读信息。如果R/W位是“0”,则第二字节是10位从机地址剩下的8位;如果R/W位是“1”,则下一个字节是从机发给主机的数据。

快速和高速模式

1.快速模式

快速模式器件可以在400kbit/s下接收和发送。

快速模式可以向下兼容,可以和标准模式器件在0~100kbit/sIIC总线系统通讯。

2.高速模式

高速模式Hs模式)可以在高达3.4Mbit/s的位速率下传输信息。

向下兼容快速模式和标准模式器件。

高速模式传输除了不执行仲裁和时钟同步外,与快速模式系统有相同的串行总线协议和数据格式


标签:字节,主机,总线,介绍,从机,寻址,I2C
From: https://blog.51cto.com/u_13472468/9098223

相关文章

  • Spring 七种事务传播性介绍
    作者:vivo互联网服务器团队-ZhouShaobin本文主要介绍了Spring事务传播性的相关知识。Spring中定义了7种事务传播性:PROPAGATION_REQUIREDPROPAGATION_SUPPORTSPROPAGATION_MANDATORYPROPAGATION_REQUIRES_NEWPROPAGATION_NOT_SUPPORTEDPROPAGATION_NEVERPROPAGATION_NESTED在Spri......
  • 《PySpark大数据分析实战》-05.PySpark库介绍
    ......
  • github短视频去除水印项目Douyin_TikTok_Download_API介绍
    当下正值短视频盛行的时代。在我们浏览短视频的同时,经常能发现一些精美的图片、引人入胜的文案以及吸引眼球的视频,想要将它们保存到本地。然而,保存下来的图片或视频通常伴随着不太愉悦的水印,这显著降低了使用体验。因此,我时常思考是否存在途径能够下载一些无水印的图片。虽然有许多......
  • Spring Boot 自动配置功能介绍
    SpringBoot自动配置功能介绍SpringBoot是一个流行的Java开发框架,它提供了许多便利的功能和工具,帮助开发者快速构建应用程序。其中一个最引人注目的特性是其强大的自动配置功能。什么是自动配置?在传统的Java开发中,我们通常需要手动配置应用程序的各个组件和依赖项。这可......
  • 通过IP路由实现网络通信工作流程介绍
    IP协议是为计算机网络相互连接进行通信而设计的协议,在互联网当中它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的条例。任何一台设备要接入网络,都要由链路层真正的连接进网络中,以个人PC为例,一定要使用有线或无线的方式接入到......
  • 【JDK新特性】JDK和Springboot各版本新特性介绍
    目录参考资料以下是一些较新版本的JDK的主要新特性介绍:JDK8:Lambda表达式:引入了函数式编程的概念,使得代码更简洁、可读性更强。StreamAPI:提供了一种高效处理集合数据的方式,支持并行处理。默认方法(DefaultMethods):接口可以包含具有默认实现的方法。方法引用(MethodReferences):通过......
  • 【数据库】基础概念以及主流的DBMS介绍
    最近看了一些数据库的基础知识,这里主要涉及三个问题:DB、DBS和DBMS都是什么意思?主流的DBMS都有哪些,各自都有哪些特点?SQL语言都有哪些分类DB、DBS和DBMSDB(DataBase):就是数据库。数据库表示存储数据的集合,可以理解为多个数据表DBMS(DataBaseManagementSystem):数据库管理系统,可以对......
  • Linux系统目录结构介绍
    Linux与Windows目录结构对比相信很多读者已经熟悉了Linux的目录结构,图6-1可以进一步帮助读者对比Windows和Linux这两个系统的结构,不太了解Linux系统目录结构的读者,通过图6-1也可快速理解。Windows的目录形式为c:\windows\,路径分隔符是“\”(撬棍,反斜线),D、E等盘的目录结构与之类似。Li......
  • KubeEdge介绍和设计原理
    http://bingerambo.com/posts/2021/05/kubeedge%E4%BB%8B%E7%BB%8D%E5%92%8C%E8%AE%BE%E8%AE%A1%E5%8E%9F%E7%90%86/#edgecore  KubeEdge介绍和设计原理Binge 收录于K8S 2021-05-26  约9884字  预计阅读20分钟  本文总阅读量6183次 KubeEdge架构和组......
  • 部署Python Flask应用到服务器上,你可以选择多种方式,这里我将介绍使用Gunicorn和Nginx
    部署PythonFlask应用到服务器上,你可以选择多种方式,这里我将介绍使用Gunicorn和Nginx的方法。以下是部署步骤:安装Gunicorn:Gunicorn是一个PythonWSGIHTTP服务器,你可以使用pip进行安装:pipinstallgunicorn运行你的应用:使用Gunicorn运行你的Flask应用:gunicorn-w4app:app这里,-w4......