I2C总线协议详解
i2c协议详解

i2c协议详解
I2C(Inter-Integrated Circuit)协议是一种双向串行总线,也称作IIC、TWI(Two-Wire Interface)或SMBus(System Management Bus),由Philips公司于1982年开发,用来连接多个微处理器和其它通信芯片。
I2C协议有两根线,分别是SCL(时钟线)和SDA(数据线),使用双线的好处就是只要两根线就可以完成数据传输,而不需要增加额外的线路,能够大大减少系统所需要的线路,减少系统的复杂度和成本。
I2C协议需要一个主控制器来控制整个系统,主控制器通过SCL线来发送时钟,并通过SDA线来发送和接收数据,从控制器则只负责接收数据。
I2C协议有7个基本信号,START、STOP、ACK、NACK、READ、WRITE和REPEAT START,START在传输数据前发出,STOP则在传输结束后发出,ACK和NACK则用来表示接收方是否正确接收到数据,READ和WRITE则用来指示当前传输的数据是读数据还是写数据,REPEAT START则用来重新开始新一轮的传输。
I2C协议的最大优点是简单、易用,而且可以支持多个从控制器,不过它的缺点也是显而易见的,它的传输速度相对较慢,而且它的传输距离也有限,约在50cm左右。
IIC总线协议

IIC总线协议一、协议简介IIC总线协议是一种用于串行通信的标准协议,也被称为I2C(Inter-Integrated Circuit)协议。
该协议由飞利浦(Philips)公司于1982年推出,旨在实现多个设备之间的通信和数据传输。
IIC总线协议以其简单、灵活和可靠的特性,在各种应用领域得到广泛应用,如电子设备、工业自动化、汽车电子等。
二、协议特性1. 串行通信:IIC总线协议采用串行通信方式,通过两条线路(SDA和SCL)进行数据传输。
其中,SDA(Serial Data Line)用于传输数据,SCL(Serial Clock Line)用于传输时钟信号。
2. 主从结构:IIC总线协议采用主从结构,主设备(Master)负责发起和控制通信过程,从设备(Slave)负责接收和响应主设备的指令。
3. 多设备连接:IIC总线协议支持多个从设备连接到同一条总线上,通过每个从设备的唯一地址进行区分。
4. 双向通信:IIC总线协议支持主设备和从设备之间的双向通信,主设备可以向从设备发送指令,同时从设备也可以向主设备发送响应或数据。
5. 时钟同步:IIC总线协议通过SCL线上的时钟信号实现设备之间的时钟同步,确保数据传输的准确性和可靠性。
6. 数据传输速率:IIC总线协议的数据传输速率可以根据需求进行调整,常见的速率有100Kbps、400Kbps和1Mbps等。
三、协议通信流程1. 初始化:主设备通过发送起始信号(Start)开始通信过程。
起始信号由低电平到高电平的跳变表示。
2. 地址传输:主设备发送从设备的地址和读/写位。
地址由7位或10位组成,其中7位地址是最常用的。
读/写位用于指示主设备是要读取从设备的数据还是向从设备发送数据。
3. 响应确认:从设备接收到地址后,如果地址匹配,则发送应答信号(ACK)给主设备。
应答信号由从设备在SCL线上拉低表示。
如果从设备没有准备好或地址不匹配,则不发送应答信号。
i2c协议参数

i2c协议参数I2C协议参数I2C总线是一种串行通信协议,由飞利浦公司(现在的恩智浦半导体公司)开发。
它被广泛应用于各种电子设备中,例如传感器、存储器、数字转换器等。
本文将详细介绍I2C协议的各种参数。
一、物理层参数1. 电压:I2C总线标准电平为5V,但也有3.3V和1.8V版本。
不同版本的电压对应着不同的速率和距离限制。
2. 速率:I2C总线有多种速率可供选择,最高达到400kHz。
速率越高,数据传输越快,但同时也会增加误差和干扰。
3. 距离限制:I2C总线的距离限制取决于电压和速率。
在5V电平下,最大距离约为10米;在3.3V电平下,最大距离约为5米。
二、数据帧格式1. 起始位:一个高电平到低电平的转换表示开始一个传输周期。
2. 地址位:7位或10位地址码表示要访问的设备地址。
3. 读写位:一个读写位指示主机是要读取还是写入数据。
4. 应答位:设备在接收到地址位后需要发送一个应答位,表示它已经准备好接收数据。
5. 数据位:8位数据表示要传输的数据。
6. 停止位:一个低电平到高电平的转换表示传输周期结束。
三、时序参数1. SCL时钟频率:SCL时钟频率是I2C总线的主要参数之一,它决定了数据传输速率。
标准模式下,SCL频率为100kHz;快速模式下,SCL频率为400kHz;高速模式下,SCL频率可达到3.4MHz。
2. 数据保持时间(tHD;DAT):数据保持时间是指从SCL时钟的最后一个上升沿到SDA线上数据变化的最小时间间隔。
标准模式下,tHD;DAT为0.1μs;快速模式下,tHD;DAT为0.9μs;高速模式下,tHD;DAT为0.45μs。
3. 数据建立时间(tSU;DAT):数据建立时间是指从SCL时钟的第一个上升沿到SDA线上数据变化的最小时间间隔。
标准模式下,tSU;DAT为0.1μs;快速模式下,tSU;DAT为0.6μs;高速模式下,tSU;DAT为0.25μs。
4. 停止条件保持时间(tSP):停止条件保持时间是指从SCL时钟的最后一个下降沿到SDA线上数据变化的最小时间间隔。
IIC总线协议

a、主机向从机发送数据,数据传送方向在整个 传送过程中不变:
注:有阴影部分表示数据由主机向从机传送,无阴影部分则表示数据 由从机向主机传送。
A表示应答, A非表示非应答(高电平)。S表示起始信号,P表示 终止信号。。
b、主机在第一个字节后,立即从从机读数据
本课仅讨论I2C串行总线。
I2C总线通过上拉电阻接正电源。当总线空闲时,两 根线均为高电平。连到总线上的任一器件输出的低电平, 都将使总线的信号变低,即各器件的SDA及SCL都是 线“与”关系。
I2C总线的数据传送
一、数据位的有效性规定
I2C总线进行数据传送时,时钟信号为高电平期间, 数据线上的数据必须保持稳定,只有在时钟线上的信 号为低电平期间,数据线上的高电平或低电平状态才 允许变化。
I2C总线的寻址
主机发送地址时,总线上的每个从机都将这7位地址码 与自己的地址进行比较,如果相同,则认为自己正被主 机寻址,根据R/位将自己确定为发送器或接收器。
从机的地址由固定部分和可编程部分组成。在一个系 统中可能希望接入多个相同的从机,从机地址中可编程 部分决定了可接入总线该类器件的最大数目。如一个从 机的7位寻址位有4位是固定位,3位是可编程位,这时 仅能寻址8个同样的器件,即可以有8个同样的器件接 入到该I2C总线系统中。
应答时序图
I2C总线的数据传送格式
(2)数据帧格式 在总线的一次数据传送过程中,可以有以下几种组合 方式: a、主机向从机发送数据,数据传送方向在整个传送过 程中不变:
注:有阴影部分表示数据由主机向从机传送,无阴影部分则表 示数据由从机向主机传送。
A表示应答, 表示非应答(高电平)。S表示起始信号,P 表示终止信号。。
IIC总线协议

IIC总线协议协议名称:IIC总线协议一、引言IIC总线协议是一种串行通信协议,用于在集成电路之间进行数据传输。
本协议旨在规定IIC总线的物理层和数据链路层的规范,以确保不同设备之间的互操作性和数据传输的可靠性。
二、术语和定义1. IIC总线:Inter-Integrated Circuit总线的简称,也被称为I2C总线,是一种用于短距离通信的串行总线。
2. 主设备:在IIC总线上发起通信的设备。
3. 从设备:响应主设备通信的设备。
4. 数据帧:在IIC总线上传输的数据单元,包括起始位、地址位、数据位和校验位。
三、物理层规范1. 电气特性1.1 电压:IIC总线使用双向开漏或双向三态的器件进行通信,通信线上的电平为0V或高阻态。
1.2 电流:通信线上的电流应在设备规格范围内,以保证通信的可靠性。
1.3 电阻:总线上的上拉电阻和下拉电阻应根据总线长度和设备数量进行合理选择,以确保信号的稳定性。
2. 时序要求2.1 起始条件:主设备发送起始信号,即将总线上的数据线(SDA)从高电平拉低,时钟线(SCL)保持高电平。
2.2 结束条件:主设备发送结束信号,即将总线上的数据线从低电平拉高,时钟线保持高电平。
2.3 数据传输时序:数据传输的时钟由主设备提供,每个数据位在时钟的下降沿进行传输,数据线上的数据保持稳定直到下一个时钟周期的下降沿。
四、数据链路层规范1. 寻址方式1.1 主设备发送起始信号后,发送从设备地址和读写位。
地址由7位或10位组成,用于唯一标识从设备。
1.2 读写位为0表示主设备向从设备发送数据,为1表示主设备从从设备读取数据。
2. 数据传输2.1 数据帧格式:数据帧由起始位、地址位、数据位和校验位组成。
2.2 起始位:数据线上的高电平信号,表示数据传输的开始。
2.3 地址位:由主设备发送,用于指定通信的从设备。
2.4 数据位:数据线上的数据传输,每个数据位在时钟的下降沿进行传输。
2.5 校验位:用于验证数据的完整性和正确性,由主设备发送。
I2C通讯协议介绍

I2C通讯协议介绍I2C(Inter-Integrated Circuit)是一种串行通信协议,由意法半导体(ST Microelectronics)于1980年代提出,用于连接集成电路(IC)之间的通信。
它采用两根线(SDA和SCL)进行数据传输,支持多个设备在同一总线上通信,并且可以实现主从设备之间的通信。
I2C通信协议的特点有以下几个方面:1. 硬件简单:I2C只需要两根信号线,即SDA(数据线)和SCL(时钟线)。
这两根线采用开漏输出(open-drain)方式,可以通过外部上拉电阻连接到正电压,也可以通过外部器件连接到负电压,使得总线上的多个设备可以共享,减少硬件的复杂性。
2.通信方式灵活:I2C支持两种通信方式,即主机模式和从机模式。
在主机模式下,I2C总线由一个主设备进行控制,负责发起通信并传输数据。
从机模式下,I2C总线上的设备可以作为从设备等待主设备的数据传输请求。
这种灵活的通信方式使得I2C协议适用于各种应用场景。
3.多设备共享总线:I2C总线上可以连接多个设备,并且每个设备都有一个唯一的7位地址。
主设备通过发送地址来选择要和之通信的从设备,其他设备会忽略该通信。
这种多设备共享总线的特性使得系统扩展性更强,可以方便地增加更多的设备。
4. 传输速率适中:I2C协议可以支持多种传输速率,包括标准模式(100 kbit/s),快速模式(400 kbit/s),高速模式(3.4 Mbit/s)和超高速模式(5 Mbit/s)。
根据具体应用需求,可以选择合适的传输速率,既能满足通信需求,又能保持传输可靠性。
I2C通信协议的基本传输过程如下:1. 主设备发送起始信号(start):主设备通过将SCL线保持高电平,然后将SDA线从高电平切换到低电平,发送起始信号。
2.主设备发送地址和读/写位:主设备在发送起始信号后,紧接着发送7位从设备地址,最高位指示读还是写操作。
从设备接收到地址后,会进行地址匹配,如果地址匹配成功则进入相应的读或写操作状态。
(完整版)I2C总线协议及工作原理

I2C 总线协议及工作原理一、概括1、 I2C 总线只有两根双向信号线。
一根是数据线SDA ,另一根是时钟线SCL 。
SCL :上涨沿将数据输入到每个 EEPROM 器件中;降落沿驱动 EEPROM 器件输出数据。
(边缘触发 )SDA :双向数据线,为OD 门,与其余随意数目的OD 与 OC 门成 " 线与 " 关系。
I2C 总线经过上拉电阻接正电源。
当总线安闲时,两根线均为高电平(SDL=1;SCL=1 )。
连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的 SDA 及 SCL 都是线“与”关系。
2、主设施与从设施系统中的全部外头器件都拥有一个 7 位的 "从器件专用地点码 " ,此中高 4 位为器件种类,由生产厂家拟订,低 3 位为器件引脚定义地点,由使用者定义。
主控器件经过地点码成立多机通讯的体制,所以 I2C 总线省去了外头器件的片选线,这样不论总线上挂接多少个器件,其系统仍旧为简洁的二线构造。
终端挂载在总线上,有主端和从端之分,主端一定是带有CPU 的逻辑模块,在同一总线上同一时辰使能有一个主端,能够有多个从端,从端的数目受地点空间和总线的最大电容400pF 的限制。
主端主要用来驱动SCL line ;从设施对主设施产生响应;两者都能够传输数据,可是从设施不可以倡始传输,且传输是遇到主设施控制的。
二、协议1.安闲状态I2C 总线总线的SDA 和 SCL 两条信号线同时处于高电平常,规定为总线的安闲状态。
此时各个器件的输出级场效应管均处在截止状态,即开释总线,由两条信号线各自的上拉电阻把电平拉高。
2.开端位与停止位的定义:开端信号:当 SCL 为高时期, SDA 由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。
停止信号:当 SCL 为高时期, SDA 由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。
I2C总线协议详解

I2C总线协议详解简介:I2C(Inter-Integrated Circuit)是一种由PHILIPS公司开发的两线式串行总线,用于衔接微控制器及其外围设备。
I2C总线产生于在80年月,最初为音频和视频设备开发,如今主要在服务器管理中用法,其中包括单个组件状态的通信可随时监控内存、硬盘、网络、系统温度等多个参数,增强了系统的平安性,便利了管理。
I2C总线特点I2C总线最主要的优点是其容易性和有效性。
因为接口挺直在组件之上,因此I2C总线占用的空间十分小,削减了板的空间和芯片管脚的数量,降低了互联成本。
总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。
I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够举行发送和接收的设备都可以成为主总线。
一个主控能够控制信号的传输和时钟频率。
固然,在任何时光点上只能有一个主控。
I2C总线工作原理总线的构成及信号类型I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
在CPU与被控IC之间、IC与IC之间举行双向传送,最高传送速率100kbps。
各种被控制电路均并联在这条总线上,但就像电话机一样惟独拨通各自的号码才干工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。
CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量打算该调节的类别(如对照度、亮度等)及需要调节的量。
这样,各控制电路虽然挂在同一条总线上,却彼此自立,互不相关。
I2C总线在传送数据过程*有三种类型信号,它们分离是:开头信号、第1页共4页。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
I2C总线协议详解
I2C总线定义
--------------------------------------------------------------------------------
I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。
例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。
可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。
I2C总线特点
--------------------------------------------------------------------------------
I2C总线最主要的优点是其简单性和有效性。
由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。
总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。
I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。
一个主控能够控制信号的传输和时钟频率。
当然,在任何时间点上只能有一个主控。
I2C总线工作原理
--------------------------------------------------------------------------------
总线的构成及信号类型
--------------------------------------------------------------------------------
I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。
各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。
CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。
这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。
CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。
若未收到应答信号,由判断为受控单元出现故障。
这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。
目前有很多半导体集成电路上都集成了I2C接口。
带有I2C接口的单片机有:CYGNAL 的C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。
很多外围器件如存储器、监控芯片等也提供I2C接口
I2C 总线是一种用于IC器件之间连接的双向二线制总线,所谓总线它上面可以挂多个器件,并且通过两根线连接,占用空间非常的小,总线的长度可长达25英尺,并且能够以10Kbps的最大传输速率支持4个组件。
它的另一优点是多主控,只要能够进行接收和发送的设备都可以成为主控制器,当然多个主控不能同一时间工作。
I2C总线有两根信号线,一根为SDA(数据线),一根为SCL(时钟线)。
任何时候时钟信号都是由主控器件产生。
I2C总线操作
--------------------------------------------------------------------------------
I2C规程运用主/从双向通讯。
器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。
主器件和从器件都可以工作于接收和发送状态。
总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。
SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。
控制字节
在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。
写操作
写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。
读操作
读操作有三种基本操作:当前地址读、随机读和顺序读。
图4给出的是顺序读的时序图。
应当注意的是:最后一个读操作的第9个时钟周期不是“不关心”。
为了结束读操作,主机必须在第9个周期间发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。
I2C总线应用
--------------------------------------------------------------------------------
目前有很多半导体集成电路上都集成了I2C接口。
带有I2C接口的单片机有:CYGNAL 的C8051F0XX系列,三星的S3C24XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。
很多外围器件如存储器、监控芯片等也提供I2C接口。
举常I2C器件/I2C Device
--------------------------------------------------------------------------------
1、存储器类:ATMEL公司的A T24CXX系列EEPROM;
2、I2C总线8位并行IO口扩展芯片PCF8574/JLC1562;
3、I2C接口实时时钟芯片DS1307/PCF8563/SD2000D/M41T80/ME901/ISL1208/;
4、I2C数据采集ADC芯片MCP3221(12bitADC)/ADS1100(16bitADC)/ADS1112(16bitADC)/MAX1238(12bitADC)/MAX1239(12bitADC);
5、I2C接口数模转换DAC芯片DAC5574(8bitDAC)/DAC6573(10bitDAC)/DAC8571(16bitDAC)/;
6、I2C接口温度传感器TMP101/TMP275/DS1621/MAX6625
USB转I2C专用芯片:USB2I2C
--------------------------------------------------------------------------------
USB2I2C是一个USB总线转I2C总线I2C/IIC/TWI/SMBUS的接口芯片,通过USB2I2C 芯片可以非常方便地实现PC机USB总线和下位机端I2C接口(即IIC或TWI总线:SCL 线、SDA 线)之间的通信。
USB2I2C芯片上位机PC端提供简单易用的USBIOX.DLL动态库调用,可以方便地被VB,VC,Delphi,Labview,BCB等上位机开发工具调用。
相关例程在USBIO公司网站可以找到。
USB2I2C功能特点:
●全速USB设备接口,兼容USB V2.0。
●外围元件简单,只需1个12M晶体和2个电容。
●低成本,可以通过I2C总线直接实现上位机与下位机之间的连接,无需辅助MCU。
●上位机软件能够实现灵活实现I2C/IIC/TWI总线协议的各种操作。
●作为I2C总线Host/Master 主机端。
●I2C接口提供SCL和SDA信号线,支持SCL时钟4种不同传输速度:100KHz/400KHz/750KHz。
●采用SSOP-20小型封装。
本文来自CSDN博客,转载请标明出处:/subkiller/archive/2009/09/01/4508441.aspx。