I2C总线
I2C总线接口详解
应用领域拓展
智能家居
i2c总线接口在智能家居领域的应用不断拓展,如智能照明、智 能安防等。
工业控制
i2c总线接口在工业控制领域的应用也越来越广泛,如传感器数 据采集、电机控制等。
医疗设备
随着医疗技术的进步,i2c总线接口在医疗设备领域的应用也在 逐步增加,如医疗监测设备、医疗机器人等。
未来展望
标准化
i2c总线接口详解
• i2c总线接口概述 • i2c总线接口工作原理 • i2c总线接口硬件设计 • i2c总线接口软件编程 • i2c总线接口常见问题及解决方案 • i2c总线接口发展趋势与展望
01
i2c总线接口概述
i2c总线接口定义
I2C总线是一种串行总线,用于连接微控制器和各种外围设 备。它由两条线组成:一条是数据线(SDA),另一条是 时钟线(SCL)。
I2C总线允许多个主设备 同时工作,提高了系统
的灵活性。
I2C总线具有强大的寻址 能力,可以连接多个外
围设备。
i2c总线接口应用场景
传感器接口
I2C总线可以方便地连接各种传 感器,如温度传感器、光传感 器等。
存储器接口
I2C总线可以连接各种类型的存 储器,如EEPROM、RAM等。
实时时钟
I2C总线的实时时钟(RTC)外 围设备可以用于提供系统时间。
根据设备地址的寻址方式,选择合适的寻址模式, 以实现正确的设备寻址。
寻址操作
发送设备地址
在开始数据传输之前,主设备需要发送目标设备的地址,以标识 要与之通信的设备。
接收应答信号
主设备发送地址后,等待从设备返回的应答信号,以确认从设备已 准备好进行数据传输。
发送操作指令
主设备根据需要发送相应的操作指令,如读或写,以指示接下来的 数据传输方向。
I2C串行总线的组成及工作原理
I2C串行总线的组成及工作原理I2C是一种常用的串行通信协议,用于在电子设备之间进行数据传输。
它的全称是Inter-Integrated Circuit,即片间串行总线。
1. 主设备(Master Device):负责发起通信请求并控制整个传输过程的设备。
主设备通常是微控制器、处理器或其他智能设备。
2. 从设备(Slave Device):被主设备控制的设备。
从设备可以是各种外围设备,如传感器、存储器、显示器等。
3. SDA(Serial Data Line):用于数据传输的双向串行数据线。
主设备和从设备都可以发送和接收数据。
4. SCL(Serial Clock Line):用于同步数据传输的时钟线。
主设备产生时钟信号来同步数据传输。
5. VCC(Supply Voltage):提供电源电压给I2C总线上的设备。
6. GND(Ground):提供共地连接。
I2C总线的工作原理如下:1.初始化:主设备发起一次总线初始化,在I2C总线上产生一个启动信号。
启动信号表示I2C总线上有新的数据传输将开始。
2.寻址:主设备发送一个7位的设备地址到总线上指定要与之通信的从设备。
I2C总线上可以存在多个从设备,每个设备都有唯一的地址。
3.数据传输:主设备发送数据或者命令到从设备,或者从设备向主设备发送数据回复。
数据通过SDA线传输,时钟通过SCL线提供。
4.确认(ACK):数据传输完成后,每个接收设备都会回复一个确认信号,表示它已经成功接收数据。
主设备和从设备都可以发送确认信号。
5.停止:主设备发送一个停止信号来结束一次数据传输过程。
停止信号表示I2C总线上没有更多的数据传输。
I2C总线的工作原理是基于主从结构的,主设备控制数据传输的流程。
主设备通过发送启动信号来开始一个数据传输过程,并通过发送设备地址和数据来与特定的从设备进行通信。
通过SCL线的时钟同步,主设备和从设备可以准确地进行数据传输,避免了数据丢失和冲突。
I2C总线工作原理
I2C总线工作原理I2C是一种串行通信总线,常用于连接主控制器和外设设备之间。
I2C总线通过低速的串行数据传输,可同时连接多个设备,使用双线(SDA和SCL)来进行通信。
本文将详细介绍I2C总线的工作原理。
1.物理层:I2C总线包含两条线路:数据线(SDA)和时钟线(SCL)。
SDA线用于数据传输,而SCL线用于同步数据传输的时钟信号。
这两条线都由一个上拉电阻连接到正电源,以保持高电平状态。
当总线上的设备需要发送数据时,它将拉低SDA线上的电平。
在同一时间,SCL线上的电平将控制数据的传输速率。
2.起始信号和停止信号:I2C总线使用起始信号和停止信号来定义数据传输的开始和结束。
起始信号是由主控制器发送的,通常在主控制器要发送数据之前。
停止信号也是由主控制器发送的,在数据传输完成后。
起始信号由将SCL线保持高电平,SDA线从高电平跳变到低电平。
停止信号是在SCL线保持高电平,SDA线从低电平跳变到高电平。
3.地址和数据传输:在I2C总线上,每个设备都有一个唯一的7位地址,用于寻址特定的设备。
主控制器在发送数据之前,必须先向设备发送一个地址字节。
地址字节由起始信号之后的8个位组成(其中最高位为0用于读操作,1用于写操作)。
设备在成功接收到其地址之后,将向主控制器发送一个应答位。
4.字节传输:一旦设备的地址被成功接收,主控制器可以开始发送数据字节。
数据字节的传输遵循以下步骤:-主控制器发送一个数据字节-设备接收到数据字节并发送一个应答位-主控制器发送下一个数据字节-设备接收到数据字节并发送一个应答位-重复以上步骤,直到所有数据字节都被传输完成5.应答信号:每当主控制器发送一个应答请求时,设备都应该发送一个应答位来确认数据的接收情况。
应答位是一个低电平脉冲,由设备在接收到数据字节后发送。
如果设备成功接收到数据字节,则发送一个低电平的应答位。
若设备遇到错误或无法接收数据,则发送一个高电平的非应答位。
6.时钟同步:I2C总线的数据传输是由SCL线上的时钟信号进行同步的。
什么是I2C 总线
I2C总线原理♦什么是I2C总线?I2C即Inter IC,由Philips公司开发,是当今电子设计中应用非常广泛的串行总线之一,主要用于电压、温度监控,EEPROM数据的读写,光模块的管理等。
I2C总线只有两根线,SCL和SDA,SCL即Serial Clock,串行参考时钟,SDA即Serial Data,串行数据。
♦I2C总线的速率能达到多少?标准模式下:100Kbps快速模式下:400Kbps高速模式下:3.4MbpsI2C总线结构如下图所示:<SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman"> 如上图所示,I2C是OC或OD输出结构,使用时必须在芯片外部进行上拉,上拉电阻R的取值根据I2C总线上所挂器件数量及I2C总线的速率有关,一般是标准模式下R选择10kohm,快速模式下R选取1kohm,I2C总线上挂的I2C器件越多,就要求I2C的驱动能力越强,R的取值就要越小,实际设计中,一般是先选取4.7kohm上拉电阻,然后在调试的时候根据实测的I2C波形再调整R的值。
<SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'TimesNew Roman'; mso-hansi-font-family: 'Times New Roman'">♦I2C总线上最多能挂多少个I2C器件?<SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">I2C总线上允许挂接I2C器件的数量由两个条件决定:1).I2C从设备的地址位数。
I2C总线
双向二线制同步串行总线
01 工作原理
03 数据传输
目录
02 特征 04 模式
基本信息
I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上 的器件之间传送信息。
主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器 件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件, 则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据, 首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下.主机负 责产生定时时钟和终止数据传送。
6、连接到总线的外部上拉器件必须调整以适应快速模式I2C总线更短的最大允许上升时间。对于负载最大是 200pF的总线,每条总线的上拉器件可以是一个电阻,对于负载在200pF~400pF之间的总线,上拉器件可以是一个 电流源(最大值3mA)或者是一个开关电阻电路。
高速模式
高速模式(Hs模式)器件对I2C总线的传输速度有巨大的突破。Hs模式器件可以在高达3.4Mbit/s的位速率 下传输信息,而且保持完全向下兼容快速模式或标准模式(F/S模式)器件,它们可以在一个速度混合的总线系 统中双向通讯。
Hs模式传输除了不执行仲裁和时钟同步外,与F/S模式系统有相同的串行总线协议和数据格式。
高速模式下I2C总线规范如下:
1、Hs模式主机器件有一个SDAH信号的开漏输出缓冲器和一个在SCLH输出的开漏极下拉和电流源上拉电路。 这个电流源电路缩短了SCLH信号的上升时间,任何时候在Hs模式,只有一个主机的电流源有效;
I2C总线
地址唯一
I2C总线上所有的外围器件都需要 唯一的地址由器件地址和引脚地址两部 分构成。
地址唯一
器件地址是I2C器件固有的地 址编码,器件出厂时就已经给定, 不可更改。
地址唯一
引脚地址由I2C总线外围器件的地 址引脚(A2,A1,AO)决定,根据其 在电路中接电源正极,接地或悬空的 不同,形成不同的地址代码。引脚地 址数决定了同一种器件可接入总线的 最大数目。
地址唯一
R/W ̄是方向位,R/W ̄=0表示主器 件向从器件发送数据,R/W ̄=1表示主器 件读取从器件数据。
地址唯一
位序 D7 定义 D6 D5 D4 D3 D2 D1 D0 方向 位 _ R/W
器件地址
引脚地址
DA3
I2C规程运用主/从双向通讯。I2C总线的运 行(数据传输)由主机控制。所谓主机即启动数 据的传送时(发出启动信号)发出时钟信号,传 送结束时发出停止信号的设备,通常主机是微处 理器。被主机寻访的设备都称为从机。主机和从 机的数据传送,可以由主机发送数据到从机,凡 是发送数据到总线的设备称为发送器,也可以是 从机发到主机。从总线上接收数据的设备被称为 接受器。
什么是I2C总线?
I2C是一种串行总线的外设接口,它采 用同步方式串行接收或发送信息,两个设备 在同一个时钟下工作。 信息的发送和接收只能分时进行。 传输速率最高可达400Kbit/s
I2C总线
IC卡技术及其应用
速率
标准模式下,100kb/s 高速模式下,400kb/s
I2C总线
I2C总线上的数据位传送
SCL高电平时,SDA上必须保持有稳定的逻辑电平状态
高电平为数据1,低电平为数据0
SCL低电平时,允许SDA的电平状态变化
I2C总线
I2C总线上的数据位传送
I2C总线
三种类型信号
起始信号
SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据
从器件
接收控制字节的器件则被称为从器件
任一器件都可以作为主器件或从器件
I2C总线
I2C总线的基本操作——控制字节
在起始信号之后 bit7~bit4,器件的类型识别符 bit3~bit1,片选 bit0,读、写选择位
1为读操作,0为写操作
I2C总线
I2C总线的基本操作——写操作
写字节、写页 操作时序
I2C总线
I2C总线的基本操作——读操作
随机读
读取指定地址的数据
当前地址读
读取当前地址的数据
顺序读
读取连续的数据
I2C总线
I2C总线的基本操作——读操作
操作时序
I2C总线
与MCS-51系列单片机接口
P1和)上拉至5V电源 或者用P0或P2口按位控方式
停止信号
SCL为高电平时,SDA由低电平向高电平跳变,终止传送数据
I2C总线
三种类型信号
应答信号
接收数据的器件在接收到8bit数据后,向发送数据的器件发出特 定的低电平脉冲,表示已收到数据
I2C总线
串行总线上的数据通信
I2C总线
I2C总线的基本操作——器件概念
主器件
i2c的工作流程
i2c的工作流程
I2C(Inter-Integrated Circuit)是一种串行通信总线,它主要由两条线路组成:一条是串行数据线(SDA),另一条是串行时钟线(SCL)。
I2C总线具有以下特点:
1. 只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;
2. 每个连接到总线的器件都可以通过唯一的地址寻址;
3. 传送数据必须以8位字节方式传送;
4. I2C设备发送数据高位在前;
5. SCL时钟线始终由主设备控制。
I2C总线的工作流程如下:
1. 开始命令:在SCL线处于高电平期间,SDA线由高电平跳变为低电平,这被称为负
跳变。
2. 停止命令:在SCL线处于低电平期间,SDA线由低电平跳变为高电平,这被称为正
跳变。
3. 数据传输:I2C设备之间的数据传输是在SCL线为高电平时完成的。
只有在SCL线
处于低电平时,发送方才能改变所发送的数据。
4. 写应答:主设备每向从设备写完一次数据(一字节8位)后,都需要等待从设备的应答信号。
从设备的应答信号是在SCL的第九个脉冲时将SDA线置为低电平。
5. 读应答:主设备在读完一次数据(一字节8位)后,需要给从设备一个应答信号。
读应答实际上是从设备在接收完一个字节后,在SCL的第九个脉冲时将SDA线置为高电平。
6. 重复上述步骤:在完成一次数据传输后,I2C总线可以进行下一次数据传输。
整个I2C通信过程由主设备发起和控制,从设备根据主设备的指令进行响应。
通过I2C总线,主设备可以与多个从设备进行通信,实现系统的监控和控制功能。
I2C总线
I2C总线组成及工作原理I2C总线是PHILIPS公司的一个创举,它只由两根线组成(时钟信号线SCL,数据信号线SDA),却可以轻而易举地实现多主机系统与多从机之间的协调配合。
可谓“简约而不简单”。
I2C实现这些功能有赖与其独特的设计。
总线仲裁可以解决多主机同时发信号而引起的数据混乱问题;各器件之间都是线与的关系,可以有效协调高低速器件的运行速度不同的问题;采用串行总线技术可使硬件设计大大简化、系统体积减小、可靠性提高。
同时,系统的更改和扩充极为容易。
一、I2C总线概述I2C总线只有两根双向信号线。
一根是数据线SDA,另一根是时钟线SCL。
I2C总线通过上拉电阻接正电源。
当总线空闲时,两根线均为高电平。
连到总线上班的任一个设备输出低电平,都将使总线信号变低,即各器件的SDA及SCL都是线与的关系。
每个接到I2C总线上的器件都有唯一的地址。
主机与其他器件间的数据传送可以是由主机发送数据到其他器件,这时主机即为发送器。
接收数据的器件为接收器。
器件也可发送数据到主机。
在多主机系统中,可能同时有几个主机企图启动总线传送数据。
为了避免混乱,I2C总线要通过总线仲裁,以决定由哪一台主机控制总线。
二、I2C总线的数据传输格式1)字节传输与应答每一个字节必须为八位长度,后接一个应答信号。
数据传送时,先送最高位(MSB),每一个字节后都必须跟一个应答位,即一帧有九位。
由于某种原因从机不对主机寻址信号应答时(如从机在处理数据时),它必须将数据线置于高电平,而由主机产生一个终止信号来终止传输。
如果从机对主机进行了应答,数据传输一段时间后无法继续接收更多的数据,从机可以通过对无法接收的第一个字节的“非应答”通知主机。
主机则发出终止信号终止传输。
2)数据帧格式在起始信号后必须传送一个从机的地址(7位),第8位是数据的传送方向位(R/T),用“0”表示主机发送数据(T),“1”表示主机接收数据(R)。
每次数据传输都是主机产生终止信号结束。
i2c总线工作原理
i2c总线工作原理I2C总线是一种用于连接微控制器和外部设备的串行通信协议。
它采用两根信号线,分别是时钟线(SCL)和数据线(SDA),通过这两根线实现数据的传输和通信。
I2C总线的工作原理如下:1. 总线结构:I2C总线由一个主设备和多个从设备组成。
主设备负责发起通信并控制总线,从设备则接受主设备的指令并返回数据。
2. 起始信号和结束信号:通信开始时,主设备发出起始信号。
起始信号由将SCL线拉低,然后再将SDA线由高电平拉低构成,表示通信即将开始。
通信结束时,主设备发出结束信号,由将SCL线保持高电平的同时将SDA线由低电平拉高构成,表示通信结束。
3. 数据传输:数据传输通过时钟线(SCL)和数据线(SDA)进行。
时钟线由主设备控制,用于驱动数据传输。
数据线上的数据必须在时钟线为低电平时才能改变,而在时钟线为高电平时必须保持稳定。
4. 主设备和从设备地址:主设备发送数据时,首先发送从设备的地址。
地址由7位或10位构成,前7位是从设备的地址,最高位是读/写位。
读/写位为0表示写操作,为1表示读操作。
从设备接收到自己的地址后,确认信号应答ACK返回给主设备。
5. 数据传输确认:数据传输时,每传输一个字节后,接收方需要发送一个应答信号ACK给发送方,表示已成功接收。
如果接收方不能接收数据或者接收错误,会发送应答信号NAK给发送方。
6. 时钟速率:I2C总线的时钟速率可以根据需求设定,其中标准模式下的时钟速率为100 kbit/s,快速模式为400 kbit/s,高速模式可达到3.4 Mbit/s。
总的来说,I2C总线通过起始和结束信号进行通信的开始和结束,通过时钟线和数据线实现数据的传输和控制。
主设备发送地址和数据,从设备接收并返回数据。
通过应答信号确认数据是否成功传输。
I2C总线
I2C总线百科名片I2C总线I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。
例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。
可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。
目录[隐藏]详细说明I2C 总线的发展高速模式详细说明I2C 总线的发展高速模式[编辑本段]详细说明1 I2C总线特点I2C总线最主要的优点是其简单性和有效性。
由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。
总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。
I2C总线的另一个优点是,它支持多主控(multimast ering),其中任何能够进行发送和接收的设备都可以成为主总线。
一个主控能够控制信号的传输和时钟频率。
当然,在任何时间点上只能有一个主控。
2 I2C总线工作原理2.1 总线的构成及信号类型I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率1 00kbps。
各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。
CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。
这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
i2c总线起始条件
I2C总线起始条件1. 什么是I2C总线?I2C(Inter-Integrated Circuit)是一种串行通信协议,用于在集成电路(IC)之间进行数据传输。
它由飞利浦(Philips)公司在1980年代开发,并广泛应用于各种电子设备中。
I2C总线采用了两根信号线:SDA(Serial Data Line)和SCL(Serial Clock Line)。
SDA负责数据传输,而SCL负责时钟同步。
这种双线结构使得多个设备可以在同一条总线上进行通信。
2. I2C总线起始条件为了确保正常的数据传输,使用I2C总线进行通信时需要满足一定的起始条件。
这些起始条件包括:2.1 SDA和SCL处于高电平状态在I2C总线上,SDA和SCL都是由外部上拉电阻拉高的。
因此,在开始通信之前,需要确保SDA和SCL都处于高电平状态。
2.2 SDA下降沿时钟同步当SDA处于高电平状态时,SCL才能产生下降沿来同步数据传输。
因此,在开始通信之前,需要先产生一个下降沿来确保时钟同步。
2.3 SDA在SCL下降沿之前保持稳定在SCL产生下降沿之前,SDA必须保持稳定。
这是为了确保SDA上的数据能够被正确读取。
2.4 SDA下降沿后,SCL恢复到高电平当SDA产生下降沿后,SCL需要恢复到高电平。
这是为了准备接收或发送数据。
2.5 SDA上升沿时钟同步在SCL恢复到高电平后,可以产生一个上升沿来同步数据传输。
这样就完成了I2C 总线的起始条件。
3. I2C总线起始条件示意图下面是一个示意图,展示了I2C总线起始条件的过程:+--------+ +--------+SDA | | | |--------| |------| |------| | | |SCL +--------+------+--------+1.起始条件前:SDA和SCL都处于高电平状态。
2.下降沿时钟同步:产生一个下降沿来同步数据传输。
3.SDA稳定:在SCL产生下降沿之前,SDA必须保持稳定。
I2C总线接口详解
3、三种工作模式
写模式
写字地址;读数据
读模式
二、I2C应用举例
三、PCF8563实时日历时钟
PCF8563 是低功耗的CMOS 实时时钟/日历芯片,它提供一 个可编程时钟输出,一个中断输出和掉电检测器,所有的地址
和数据通过I2C 总线接口串行传递。最大总线速度为400Kbits/s,
前两个寄存器(内存地址00H,01H)用于控制寄存器和状态寄存器, 内存地址02H~08H 用于时钟计数器(秒~年计数器),地址09H~0CH 用 于报警寄存器(定义报警条件),地址0DH 控制CLKOUT 管脚的输出频率, 地址0EH 和0FH 分别用于定时器控制寄存器和定时器寄存器。 秒、分钟、小时、日、月、年、分钟报警、小时报警、日报警寄存 器,编码格式为BCD,星期和星期报警寄存器不以BCD 格式编码。当一 个RTC 寄存器被读时,所有计数器的内容被锁存,因此,在传送条件下, 可以禁止对时钟/日历芯片的错读。
8563内部结构
8563内部寄存器
PCF8563 有16 个8位寄存器:一个可自动增量的地址寄存器,一个内 置32.768KHz 的振荡器(带有一个内部集成的电容),一个分频器(用于 给实时时钟RTC 提供源时钟),一个可编程时钟输出,一个定时器,一 个报警器,一个掉电检测器和一个400KHz I2C所有16 个寄存器设计成可寻 址的8 位并行寄存器,但不是所有位都有用。
四.24C02 串行E2PROM
256B*8位 芯片地址: 写:0A0H 读:0A1H
24C02时序
24C256时序
应用
X1 3 27 68 Hz C7 1 2P 1 2 3 4 U4 OSCI OSCO /INT VSS PCF8 56 3 VDD CL KOUT SCL SDA 8 7 6 5
I2C总线协议介绍(易懂)
I2C总线协议介绍(易懂)目录CONTENTS•I2C总线协议产生背景•I2C总线协议内容介绍•I2C总线协议总结一、I2C总线协议产生背景1电视机内IC 之间相互连接,IC 芯片体积增大功耗增大 成本增加 IC 芯片应用不便飞利浦公司为了硬件电路最简化,效益最大化,给芯片设计制造者和芯片应用者带来极大益处。
2 I2C 总线Logo3飞利浦公司将这种集成电路互连通信电路命名为Inter-Integrated Circuit,简称为Inter-IC,或I2C(数字“2”为上标)。
因为I2C中的两根导线(SDA和SCL)构成了两根Bus,实现了Bus的功能;由于I2C电路能实现Bus的功能,故把I2C 电路称为 I2C-Bus,中文叫I2C总线(I2C总线是一个两线总线)。
4在正式的书面场合,全称写作Inter-Integrated Circuit,简写Inter-IC(IIC)或者I2C(数字“2”书写为上标,,英文读作“I squared C”,中文读作“I平方C”)5I2C总线术语及定义,如表(1)所示:表(1) I2C总线术语及定义6最初,I2C总线的运行速度被限制在100 Kbit /s。
随着技术的发展,对该规范进行了多次补充与更新,现在有五种运行速度模式,如表(2)所示:表(2)I2C总线传输速度模式二、I2C总线协议内容1I2C Bus 只要求两条双向线路:串行数据线(serial data SDA)与串行时钟线SCL(serialclock SCL),两条线都是双向传输的。
每个连接到总线的器件都有唯一的地址,主控制器发出的控制信息分为地址码和控制量两部分,地址码用来选择需要控制的I2C设备,控制量包含类别(写与读)2I2C总线是一种多控制器总线,总线上可以连接多个控制器和多个从机,这些控制器都可以发起对总线的控制,通过仲裁机制,同一个时刻,只能有一个控制器获得控制权,其他控制器轮流获取总线的控制权。
IIC总线协议教学课件PPT
每个接到I2C总线上的器件都有唯一的地址.主 机与其它器件间的数据传送可以是由主机发送数 据到其它器件,这时主机即为发送器.由总线上接收 数据的器件则为接收器.
在80C51单片机应用系统的串行总线扩展 中,我们经常遇到的是以80C51单片机为主 机,其它接口器件为从机的单主机情况.
8.1.2 I2C总线的数据传送
❖主机发送地址时,总线上的每个从机都将这7 位地址码与自己的地址进行比较,如果相同,则 认为自己正被主机寻址,根据R/T位将自己确定 为发送器或接收器.
❖从机的地址由固定部分和可编程部分组成.在 一个系统中可能希望接入多个相同的从机,从 机地址中可编程部分决定了可接入总线该类器 件的最大数目.如一个从机的7位寻址位有4位
二、典型信号模拟子程序
〔1〕起始信号 Void T2CStart<void> {
SDA = 1; SomeNop< >; SCL = 1; SomeNop< >; SDA = 0; SomeNop< >;
}
〔2〕终止信号 void I2cStop<void> {
SDA = 0; SomeNop< >; SCL = 1; SomeNop< >; SDA = 1; SomeNop< >; }
起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被 占用的状态;在终止信号产生后,总线就处于空闲状态.
连接到I2C总线上的器件,若具有I2C总线的硬件 接口,则很容易检测到起始和终止信号.
接收器件收到一个完整的数据字节后,有可能需要完成一些 其它工作,如处理内部中断服务等,可能无法立刻接收下一个字 节,这时接收器件可以将SCL线拉成低电平,从而使主机处于等 待状态.直到接收器件准备好接收下一个字节时,再释放SCL线 使之为高电平,从而使数据传送可以继续进行.
i2c线长计算
i2c线长计算
I2C(Inter-Integrated Circuit)是一种双线串行总线,广泛应用于微控制器和各种外围设备之间的通信。
I2C总线的线长计算涉及多个因素,包括信号衰减、噪声、传输速度以及使用的电缆类型等。
下面我们将详细讨论如何计算I2C线长。
首先,I2C总线的线长受到信号衰减的限制。
信号在电缆中传输时,由于电阻、电容和电感等电气特性的影响,信号强度会逐渐减弱。
因此,为了确保信号的稳定性和可靠性,I2C 总线的线长通常受到限制。
一般来说,推荐的I2C线长不应超过几米,具体取决于所使用的电缆类型和信号传输速率。
其次,噪声也是影响I2C线长的重要因素。
环境中的电磁干扰和电缆自身的电磁辐射都可能导致信号失真或误码。
为了减少噪声的影响,可以采取一些措施,如使用屏蔽电缆、增加地线、降低传输速率等。
这些措施可以在一定程度上延长I2C线长。
此外,传输速度也会对I2C线长产生影响。
较高的传输速率可能导致信号衰减更快,从而降低通信的可靠性。
因此,在设计I2C总线时,需要根据实际需求选择合适的传输速率,并在保证通信可靠性的前提下尽量缩短线长。
最后,使用的电缆类型也会对I2C线长产生影响。
不同类型的电缆具有不同的电气特性,如电阻、电容和电感等。
因此,在选择电缆时,需要综合考虑其电气特性、成本以及实际应用场景等因素。
综上所述,计算I2C线长时需要考虑多个因素,包括信号衰减、噪声、传输速度以及使用的电缆类型等。
在实际应用中,需要根据具体需求选择合适的线长,并采取相应的措施来确保通信的稳定性和可靠性。
IIC总线简介
▪ 从机(Slave):被主机寻址的器件
I2C 总线上数据的有效性
起始条件和停止条件
从机地址
▪ I2C 总线不需要额外的地址译码器和片选信号。
多个具有I2C 总线接口的器件都可以连接到同一
条I2C 总线上,它们之间通过器件地址来区分。
主机是主控器件,它不需要器件地址,其它器件
都属于从机,要有器件地址。必须保证同一条
I2C 总线上所有从机的地址都是唯一确定的,不
能有重复,否则I2C 总线将不能正常工作。一般
从机地址由7 位地址位和一位读写标志R/W 组
成,7 位地址占据高7 位,读写位在最后。读写
位是0,表示主机将要向从机写入数据;读写位
是1,则表示主机将要从从机读取数据
D:数据(Data),每个数据都必须是8 位
P:停止位(STOP)
阴影:主机产生的信号
无阴影:从机产生的信号
基本的数据传输格式示意图
传输一个字节数据的时序图
I2C总线模式
▪
▪
▪
▪
▪
主发送器模式
主接收器模式
从接收器模式
从发送器模式
I2C主复合模式
I2C总线扩展
数据结构图符号定义
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
S:起始位(START)
SA:从机地址(Slave Address),7 位从机地址
W:写标志位(Write),1 位写标志
R:读标志位(Read),1 位读标志
A:应答位(Acknowledge),1 位应答
第6章 I2C串行总线
(2) 数据帧格式 I2C总线上传送的数据信号,既包括地址信号,又包括真正 的数据信号,都必须是整数字节。 起始信号后必须传送一个从机地址(7bit)+数据传送方向位 (1bit),其中"0"表示主机发、"1"表示主机收。每次数据传送 总是由主机产生的终止信号结束。 若主机希望继续占用总线进行新的数据传送,可以不产生 终止信号,马上再次发出起始信号+地址信号,对另一从机进 行寻址。
请求访问总线的主机发出起始信号后,发送起始字
节(0000 0001),另一个单片机可以用一个比较低 的速率采样SDA线,直到检测到起始字节中的7个 “0”中的一个为止。在检测到SDA线上的高电平后, 单片机就可以用较高的采样速率,以便寻找作为同 步信号使用的第二个起始信号Sr。 在起始信号后的应答时钟脉冲仅仅是为了和总线所 使用的格式一致,并不要求器件在这个脉冲期间作 应答。
(2) 数据帧格式
a、主机向从机发送数据,数据传送方向在整个传送 过程中不变:
注: 有阴影部分表示数据方向主机->从机, 无阴影部分表示数据方向主机<-从机 A: 应答,A: 非应答(高电平) S: 起始信号,P: 终止信号
(2) 数据帧格式
b、主机在第一个字节后立即从从机读数据
c、在传送过程中,当需要改变传送方向时,起始信 号和从机地址都被重复产生一次,但两次读写方向 正好相反。
P1.0 P1.1
I2C器件
SCL
80C51
发送起始信号
SDA BIT P1.0 SCL BIT P1.1 BSTART: SETB SDA ;Make sure data is high SETB SCL ;Set clock high NOP NOP CLR SDA;Down edge occurs on SDA during high clock for START NOP NOP CLR SCL ;Start data transmission RET
第11章 I2C总线
控制总线。当SCL为高电平时,SDA由高变到低为开始条件,当SCL为高电平时,SDA由低变到高 为结束条件。
01
2.器件寻址
I2C 总线上可以挂载多个器件,主器件通过
发送一个起始信号启动发送过程,数据发送时序
见图11-3所示。从器件启动后发送它所要寻址的
从器件的编号8位地址,从器件地址格式如下表。
CONTNTS
01
I2C总线(Inter IC Bus)由PHILIPS公司推出,是近年来微电子通信控制领域广泛采 用的一种新型总线标准,它是同步通信的一种特殊形式,具有接口线少、控制简单、器件 封装形式小、通信速率较高等优点。在主从通信中,可以有多个I2C总线器件同时接到I2C 总线上,所有与I2C兼容的器件都具有标准的接口,通过地址来识别通信对象,使它们可以 经由I2C总线互相直接通信。
4.传输应答 所有数据都是按字节发送的,每次发送的字节数不限,但每发完每一个字节要释放SDA线(呈高
电平),然后由接收器下拉SDA线(呈低电平)产生应答位,表示传输成功,此时主控器必须产生一个与 此位相应的额外时钟脉冲。I2C 总线数据传送时,每成功地传送一个字节数据后接收器都必须产生一 个应答信号,应答的器件在第9 个时钟周期时将SDA 线拉低,表示其已收到一个8 位数,24C04在接 收到起始信号和从器件地址之后响应一个应答信号,如果器件已选择了写操作,则在每接收一个8 位 字节之后响应一个应答信号。当24C04 工作于读模式时,在发送一个8 位数据后释放SDA 线,并监 视一个应答信号,一旦接收到应答信号24C04继续发送数据,如果单片机没有发送应答信号,器件停 止传送数据且等待一个停止信号。应答时序如图11-4所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
I2C总线
百科名片
I2C总线连线图
I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
是微电子通信控制领域广泛采用的一种总线标准。
它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。
目录
编辑本段
4、串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s;
5、连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。
编辑本段I2C总线术语
发送器:发送数据到总线的器件;
接收器:从总线接收数据的器件;
主机:初始化发送产生时钟信号和终止发送的器件;
从机:被主机寻址的器件;
多主机:同时有多于一个主机尝试控制总线但不破坏传输;
仲裁:是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使传输不被破坏
的过程;
同步:两个或多个器件同步时钟信号的过程。
编辑本段I2C总线位传输
由于连接到I2C 总线的器件有不同种类的工艺(CMOS、NMOS、双极性),逻辑0(低)和逻辑1(高)的电平不是固定的,它由电源VDD的相关电平决定,每传输一个数据位就产生一个时钟脉冲。
数据的有效性
SDA 线上的数据必须在时钟的高电平周期保持稳定。
数据线的高或低电平状态只
I2C位传输数据有效性
有在SCL 线的时钟信号是低电平时才能改变。
起始和停止条件
SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况表示起始条件;
SCL 线是高电平时,SDA 线由低电平向高电平切换,这个情况表示停止条件。
起始和停止条件一般由主机产生,总线在起始条件后被认为处于忙的状态
起始和停止条件
,在停止条件的某段时间后总线被认为再次处于空闲状态。
如果产生重复起始条件而不产生停止条件,总线会一直处于忙的状态,此时的起始条件(S)和重复起始条件(Sr)在功能上是一样的。
编辑本段I2C总线数据传输
字节格式
发送到SDA 线上的每个字节必须为8 位,每次传输可以发送的字节数量不受限制。
每个字节后必须跟一个响应位。
首先传输的是数据的最高位(MSB),如果从机要完成一些其他功能后(例如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,可以使时钟线SCL 保持低电平,迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL 后数据传输继续。
应答响应
数据传输必须带响应,相关的响应时钟脉冲由主机产生。
在响应的时钟脉冲期间发送器释放SDA 线(高)。
在响应的时钟脉冲期间,接收器必须将SDA 线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。
通常被寻址的接收器在接收到的每个字节后,除了用CBUS 地址开头的数
I2C总线数据传输和应答
据,必须产生一个响应。
当从机不能响应从机地址时(例如它正在执行一些实时函数不能接收或发送),从机必须使数据线保持高电平,主机然后产生一个停止条件终止传输或者产生重复起始条件开始新的传输。
如果从机接收器响应了从机地址,但是在传输了一段时间后不能接收更多数据字节,主机必须再一次终止传输。
这个情况用从机在第一个字节
后没有产生响应来表示。
从机使数据线保持高电平,主机产生一个停止或重复起始条件。
如果传输中有主机接收器,它必须通过在从机不产生时钟的最后一个字节不产生一个响应,向从机发送器通知数据结束。
从机发送器必须释放数据线,允许主机产生一个停止或重复起始条件。
编辑本段寻址方式
7位寻址
第一个字节的头7 位组成了从机地址,最低位(LSB)是第8 位,它决定了传输的
普通的和带重复开始条件的7位地址格式
方向。
第一个字节的最低位是“0”,表示主机会写信息到被选中的从机;“1”表示主机会向从机读信息,当发送了一个地址后,系统中的每个器件都在起始条件后将头7 位与它自己的地址比较,如果一样,器件会判定它被主机寻址,至于是从机接收器还是从机发送器,都由R/W 位决定。
10位寻址
10位寻址和7 位寻址兼容,而且可以结合使用。
10位寻址采用了保留的1111XXX 作为起始条件(S),或重复起始条件(Sr )的后第一个字节的头7 位。
10 位寻址不会影响已有的7 位寻址,有7 位和10 位地址的器件可以连接
I2C总线10位地址格式
到相同的I2C 总线。
它们都能用于标准模式(F/S)和高速模式(Hs)系统。
保留地址位1111XXX 有8 个组合,但是只有4 个组合11110XX 用于10 位寻址,剩下的4个组合11111XX 保留给后续增强的I2C 总线。
10 位从机地址是由在起始条件(S)或重复起始条件(Sr )后的头两个字节组成。
第一个字节的头7 位是11110XX 的组合,其中最后两位(XX)是10 位地址的两个最高位(MSB)。
第一个字节的第8 位是R/W 位,决定了传输的方向,第一个字节的最低位是“0”表示主机将写信息到选中的从机,“1”表示主机将向从机读信息。
如果R/W 位是“0 ”,则第二个字节是10 位从机地址剩下的8 位;如果R/W 位是“1” 则下一个字节是从机发送给主机的数据。
编辑本段快速和高速模式
快速模式
快速模式器件可以在400kbit/s 下接收和发送。
最小要求是:它们可以和400kbit/s 传输同步,可以延长SCL 信号的低电平周期来减慢传输。
快速模式器件都向下兼容,可以和标准模式器件在0~100kbit/s 的I2C 总线系统通讯。
但是,由于标准模式器件不向上兼容,所以不能在快速模式I2C 总线系统中工作。
快速模式I2C 总线规范与标准模式相比有以下额外的特征:
1、最大位速率增加到400kbit/s;
2、调整了串行数据(SDA)和串行时钟(SCL )信号的时序;
3、快速模式器件的输入有抑制毛刺的功能,SDA 和SCL输入有施密特触发器;
4、快速模式器件的输出缓冲器对SDA 和SCL 信号的下降沿有斜率控制功能;
5、如果快速模式器件的电源电压被关断,SDA 和SCL 的I/O 管脚必须悬空,不能阻塞总线;
6、连接到总线的外部上拉器件必须调整以适应快速模式I2C 总线更短的最大允许上升时间。
对于负载最大是200pF 的总线,每条总线的上拉器件可以是一个电阻,对于负载在200pF~400pF 之间的总线,上拉器件可以是一个电流源(最大值3mA )或者是一个开关电阻电路。
高速模式
高速模式(Hs 模式)器件对I2C 总线的传输速度有具大的突破。
Hs 模式器件可以在高达3.4Mbit/s 的位速率下传输信息,而且保持完全向下兼容快速模式或标准模式(F/S 模式)器件,它们可以在一个速度混合的总线系统中双向通讯。
Hs 模式传输除了不执行仲裁和时钟同步外,与F/S 模式系统有相同的串行总线协议和数据格式。
高速模式下I2C 总线规范如下:
1、Hs 模式主机器件有一个SDAH 信号的开漏输出缓冲器和一个在SCLH 输出的开漏极下拉和电流源上拉电路。
这个电流源电路缩短了SCLH 信号的上升时间,任何时侯在Hs 模式,只有一个主机的电流源有效;
2、在多主机系统的Hs 模式中,不执行仲裁和时钟同步,以加速位处理能力。
仲裁过程一般在前面用F/S 模式传输主机码后结束;
3、Hs 模式主机器件以高电平和低电平是1:2 的比率产生一个串行时钟信号。
解除了建立和保持时间的时序要求;
4、可以选择Hs 模式器件有内建的电桥。
在Hs 模式传输中,Hs 模式器件的高速数据(SDAH)和高速串行时钟(SCLH )线通过这个电桥与F/S 模式器件的SDA 和SCL 线分隔开来。
减轻了SDAH 和SCLH 线的电容负载,使上升和下降时间更快;
5、Hs 模式从机器件与F/S 从机器件的唯一差别是它们工作的速度。
Hs 模式从机在SCLH 和SDAH输出有开漏输出的缓冲器。
SCLH 管脚可选的下拉晶体管可以用于拉长SCLH 信号的低电平,但只允许在Hs 模式传输的响应位后进行;
6、Hs 模式器件的输出可以抑制毛刺,而且SDAH 和SCLH 输出有一个施密特触发器;
7、Hs 模式器件的输出缓冲器对SDAH 和SCLH 信号的下降沿有斜率控制功能。
[1]。