I2C总线原理介绍,AT24C02内部原理介绍

I2C总线原理介绍,AT24C02内部原理介绍
I2C总线原理介绍,AT24C02内部原理介绍

I2C总线原理介绍,AT24C02内部原理介绍

编写“读写AT24C02 EEPROM”程式,讲解几种常见的读写方式

“读写AT24C02 EEPROM”程式调试

第一部分I2C总线原理

串行扩展总线技术是新一代单片机技术发展的一个显著特点。其中PHILIPS公司推出的 I2C总线(INTEL IC BUS)最为著名。与并行扩展总线相比,串行扩展总线有突出的优点:电路结构简单,程序编写方便,易于实现用户系统软硬件的模块比、标准化等。目前I2C总线技术已为许多著名公司所采用,并广泛应用于视频音像系统中。

一、I2C总线特点

I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。

其主要特点如下:

●只要求两条总线线路一条串行数据线SDA 一条串行时钟线SCL

●每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机从机关系软件设定地址主

机可以作为主机发送器或主机接收器

●它是一个真正的多主机总线如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防

止数据被破坏

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

模式下可达3.4Mbit/s

●片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整

●连接到相同总线的IC 数量只受到总线的最大电容400pF 限制

●极低的电流消耗

●抗高噪声干扰

●电源电压范围宽

●工作的温度范围广

I2C总线图示

二、I2C总线工作原理

1.总线的电气结构

I2C为双向同步串行总线,总线接口内部结构如下图所示。总线端口输出为开漏结构,故总线上必须有上拉电阻R P,上拉电阻与电源V DD、SDA/SCL有关,通常可选5~10K欧姆。

I2C总线接

口的电气结构

2.总线的构成及信号类型

I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主机(或从机),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为

地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。

⑴.器件地址

器件地址由7位组成,最低位(D0)是数据方向位(R/W)。其格式如下所示:

其中,DA3~DA0是I2C总线器件固有的地址编码,器件出厂时就被固化。例如A T24CXX器件的器件地址为1010,SAA1064的器件地址为0111。

A2~A0是I2C总线器件的外部管脚地址,由用户设定。

R/W用于说明数据的传送方向;即为1时,接收从器件的数据;为0时,则将数据写到从器件。

⑵.数据的有效

SDA上的数据仅在SCL为高电平时有效,在低电平时允许数据变化(见下图)

有效时序图

开始和停止的定义

⑶.开始信号、停止信号和应答信号

数据

变化

停止

开始

I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。

当SCL为高电平时,数据的变化表示“开始”或“停止”两种状态。

开始信号(S):SCL处于高电平时,SDA从高电平转向低电平表示一种操作的开始,所以该状态应在其它命令之前执行。见上图。

停止信号(P):SCL处于高电平时,SDA从低电平转向高电平表示一种操作的结束,将停止所有通讯。在一个读时序后,停止命令置EEPROM于等待状态。

应答信号(A):接收数据的器件在接收到8bit数据后,向发送数据的器件发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。

应答信号

三、I2C总线时序

器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主机和从机都可以工作于接收和发送状态。通常主机产生开始信号、时钟信号和停止信号。

I2C总线上数据传送时序如下图所示。总线上传送的每一帧数据均为一个字节,启动I2C总线后,传送的字节数没有限制,只要求每传送一个字节后,接收器必须回应一个应答位。在发送时,首先发送的是数据的最高位。每次传送开始时有起始信号,结束时有停止信号。

在总线传送完一个字节后,可以通过对SCL的控制,使传送暂停。例如,当接收器接收N个字节数据后,需要暂停作其它的处理(例如内部一个中断服务程序),这时可在应答信号后,使SCL变低电平,控制总线暂停。

I2C总线的数据传送时序

1.主器件发送数据的操作(写操作)

在这种方式下,主器件作为发送器,从器件作为接收器。

其操作顺序如下图所示,主器件首先发出开始信号(S),再发出地址和写操作数据,然后等待从器件的应答信号(A);主器件收到应答后,再发出数据,发完数据后等待应答信号;直到所有数据完全发送完

成,再发出停止信号(P)。

需要注意的是:发送器在发送完数据后,等待应答信号时,应释放SDA线(使SDA为高电平),这样才能接收接收器发出的应答信号。

2.主器件接收数据的操作(读操作)

在这种方式下,主器件先作为发送器,然后作为接收器;从器件先作为接收器,然后作为发送器。

其操作顺序如下图所示,主器件首先发出开始信号(S),接着发出地址和读操作数据,然后等待从器件的应答信号(A);从器件在发出应答后,接着输出数据;主器件在接收到数据后,发出应答信号(A);从器件在收到应答后,再传送下一个,直到发送最后一个数据;当主器件收到最后一个数据后,不再发出应答信号,而是非应答信号(A),以通知从器件不需要再发送数据。非应答信号(A)即正脉冲。主器件最后发出停止信号(P)。

四、相关操作例程

80C51的系统时钟为6MHZ,单周期指令为2us。

1.开始信号(STA)

STA:SETB SDA

SETB SCL

NOP

NOP

CLR SDA

NOP

NOP

CLR SCL

RET

2.停止信号(STOP)

STOP:CLR SDA

SETB SCL

NOP

NOP

SETB SDA

NOP

NOP

CLR SDA

CLR SCL

RET

3.应答信号(ACK)

ACK:CLR SDA

SETB SCL

NOP

NOP

CLR SCL

SETB SDA

RET

4.非应答信号(NACK)

NACK:SETB SDA

SETB SCL

NOP

NOP

CLR SCL

CLR SDA

RET

5.应答判断(CACK)

CACK:SETB SDA ;置SDA为输入方式

SETB SCL

CLR F0

MOV C,SDA ;输入SDA管脚状态

JNC CEND ;检查SDA状态,正常应答转CEND

SETB F0

CEND:CLR SCL

RET

6.发送一个字节数据(WDA TA)

WDATA:MOV R0,#08H

WLP:RLC A

JC WR1

AJMP WR0

WLP1:DJNZ R0,WLP

RET

WR1:SETB SDA

SETB SCL

NOP

NOP

CLR SCL

CLR SDA

AJMP WLP1

WR0:CLR SDA

SETB SCL

NOP

NOP

CLR SCL

AJMP WLP1

7.接收一个字节数据(RDA TA)

RDATA:MOV R0,#08H

RLP:SETB SDA

SETB SCL

MOV C,SDA

MOV A,R2

RLC A

MOV R2,A

CLR SCL

DJNZ R0,RLP

RET

第二部分AT24C02内部原理

1.芯片说明

AT24C01/02/04/08/16提供1024/2048/4096/8192/16384位串行EEPROM,EEPROM组态为128/256/512/1024/2048×8位。A T24C01为低功耗CMOS工艺制造,可单电压工作。

2.芯片特点

⑴低电压

5.0V(V CC=4.5~

6.0V)

3.0V(V CC=2.7~6.0V)

2.5V(V CC=2.25~6.0V)

2.0V(V CC=1.8~6.0V)

⑵内部组态

AT24C01的容量为128×8(1KB),A T24C02的容量为256×8(2KB),A T24C04的容量为512×8(4KB),A T24C08的容量为1024×8(8KB),AT24C16的容量为2048×8(16KB)。

·双线串行接口(双线为:时钟线SCL,串行数据线SDA);

·双线数据传送协议;

·支持ISO/IEC7816-3同步协议;

·8字节页面(1KB,2KB)、16字节页面(4KB,8KB,16KB)写入方式;

·允许部分页面写入;

·自定时写入周期(最大10ms);

·高可靠性,擦写次数可达10万个周期,数据保存期达100年;

·以晶片、模块及标准封装等形式提供。标准封装有8个引脚的双列直插(PDIP)、8个引脚的表面封装和14个引脚的饿表面封装(SOIC);

·晶片和芯片厚度为(6~12)mil;

·提供测试卡中芯片的测试程序;

·芯片体积较小,增加了可靠性,降低了成本。

3.封装形式及管脚

AT24C01芯片封装如下图所示:

管脚功能说明

4.芯片最大额定值

工作温度:-55~+125℃

储存温度:-65~+150℃

任一管脚对地电压:-1.0~+0.7V

最大工作电压:6.6V

DC输出电流:50mA

5.芯片内部功能逻辑

AT24C01芯片逻辑图如图F3-2所示。下面对该芯片引脚作一简要说明。

⑴引脚说明

SCL(串行时钟):SCL上升沿将数据输入到EEPROM芯片,下降沿将EEPROM中的数据输出。其数据传送的最高速率为100Kbit/s(位/秒)。

SDA(串行数据):双向串行数据传送引脚,该引脚采用漏极开路驱动,可以与其它任何数量的漏极开路或集极开路器件进行“线或”。

A0、A1、A2(器件/页地址):器件地址输入端,应用于标准封装中。

WP:写保护。接高电平时,写保护;接地时,可进行读写操作。

⑵逻辑图组成

开始/停止逻辑:控制一次读/写操作的开始和停止。

串行控制逻辑:在IC卡中,SCL为同步时钟,地址、数据和读写控制命令从SDA输入,由串行控制逻辑区分。

地址/计数器:形成访问EEPROM的地址,分别送X译码器进行字选,送Y译码器进行位选。

A T24C01芯片逻辑图

升压/定时线路:EEPROM的写入操作需要高电压,所以芯片内有升压线路,将标准电压提升至12~20V。

数据输入/应答逻辑:控制数据的输入/输出和确认应答信号。

⑶器件操作

时钟和数据传送:SCL和SDA通常各自通过一个电阻上拉到高电平,SDA上的数据仅在SCL为高电平时有效,在低电平时允许数据变化。当SCL为高电平时,数据的变化表示“开始”或“停止”两种状

4K

16K 态。

有效时序图

开始态和停止态的定义

开始态:SCL 处于高电平时,SDA 从高电平转向低电平表示一种操作的开始,所以该状态应在其它命令之前执行。见图F3-4。

停止态:SCL 处于高电平时,SDA 从低电平转向高电平表示一种操作的结束,将停止所有通讯。在一个读时序后,停止命令置EEPROM 于等待状态。

图F3-5 数据接收和确认

(当与EEPROM 通讯时)必须将SDA 总线置于低电平,以确认它成功的接收到了每一个字,该确认必须在每个字及其它所有设备脱离SDA 总线之后,即第九个时钟周期发生,见图F3-5。EEPROM 也通过在收到的每个地址或数据之后,置SDA 于低电平的方式确认。

6.器件寻址

1KB 、2KB 、4KB 、8KB 和16KB EEPROM 在开始状态后均需要一个8字节器件地址作为设备寻址码,使器件能进行读/写操作。图F3-6为设备寻址码。

MSB LSB 1K/2K

8K

设备寻址码

从图中可以看出,设备寻址码的前四位为1010,这在所有EEPROM 设备中都是一样的。

对于1KB/2KB EEPROM 来说,接下来的3位器件寻址码是A 2、A 1、A 0,这3位必须和它们相应的硬件连线即输入管脚相对应。

4KB EEPROM 仅用A 2和A 1器件寻址位,第三位是存储器页面寻址位P0。这两个器件寻址位必须和

数据变化

停止

开始

它们相对应的硬件连线即输入管脚相应,A0管脚不连接。

8KB EEPROM仅用A2器件寻址位,下两位存储器页面寻址位P1和P0。A2必须和它相对应的硬件连线即输入管脚相应,A1和A0管脚不连接。

16KB EEPROM没有任何设备寻址位,但有三位P2、P1、P0用于存储器页面寻址位。4KB和16KB 上的页面寻址位应被视为随后数据寻址的最高位,A2、A1和A0管脚不连接。

器件寻址的最低位是读/写操作选择位R/W,该位处于高电平时激发读操作;该位处于低电平时激发写操作。

设备寻址一经比较,EEPROM将在SDA总线上输出一个确认,如果没有作比较,芯片将回到待机状态。

7、写操作

⑴.写字节:写操作需要在给出开始态、器件地址和确认之后,紧跟着给出一个8位数据地址。

一经收到该地址,EEPROM通过SDA发出确认信号,并随时钟输入8位数据。在收到8位

数据之后,EEPROM将向SDA确认,数据传送设备必须用停止状态来终止写操作,这时,

EEPROM进入一个内计时固定存储器写入周期。在该写周期时,所有输入被禁止,EEPROM

直到写完后才对通讯应答,见图F3-7。

(ACK:确认MSB:最高位LSB:最低位﹡:对1K芯片无用)

图F3-7 写字节时序

⑵.写页面:1KB/2KB EEPROM能进行8字节页面写入,4KB、8KB和16KB设备能进行16字节页面写入。激发写页面与激发写字节相同,只是数据传送设备无需在第一个字节随时钟输入之后,发出一个停止状态。在EEPROM确认收到第一个数据之后,数据传送设备能再传送7个(1KB、2KB)或15个(4KB、8KB、16KB)数据,每一个数据收到之后,EEPROM都将通过SDA回送一个确认信号,最后数据传送设备必须通过停止状态终止页面写序列。如图F3-8所示。

图F3-8 写页面时序

数据字地址的低3位(1KB、2KB)或低4位(4KB、8KB、16KB)在收到每个数据字后,内部自动加1,数据字地址的高位字节保持不变,以保持存储器页地址不变。如果传送到EEPROM中的数据字超过8(1KB、2KB)或16(4KB、8KB、16KB)字节,数据字地址将“重复滚动”,以前的数据将被覆盖。

⑶.确认询问:一旦内计时固定存储器写入周期开始,EEPROM输入禁止,只有在内写循环完成时,EEPROM才通过SDA总线上的确认应答,允许读或写过程继续进行。

8、读操作

除了器件地址码中读/写选择位置1以外,激发读操作与写操作是一样的。有三种读操作:立即地址读取、随机地址读取、顺序读取。

⑴.立即地址读取:内部数据字地址指针保持在读写操作中最后访问的地址,按“1”递增。只要芯片保持上电,该地址在两个操作之间一直有效,如果最后一个操作是在地址n处读取,则立即地址是n+1;

SDA LINE 如果最后操作是在地址n 处写入,则立即地址也是n+1。

图F3-9 立即地址读

有一种情况例外,如果地址n 是存储列中的第8个(1KB 、2KB )或第16个(4KB 、8KB 、16KB )字节地址,用增加的地址n+1将“滚”置同一列的第一个字节地址。一旦读/写选择位置1,器件地址随时钟输入,并被EEPROM 确认,立即寻址数据随时钟串行输出。读数据的器件不是通过确认(使总线处于高电平)来应答,而是随后产生一个停止状态。见图F3-9所示。

⑵.随机地址读取:随机读取需要一个“空”字节写序列来载入数据地址,一旦器件地址码和数据码地址码时钟输入,并被EEPROM 确认,数据传送设备就必须产生另一个开始条件。读/写选择位处于高电平时,通过送出一个器件地址,数据传送设备激发出一个立即寻址读取,EEPROM 确认器件地址,并随时钟串行输出数据。器件读数据不通过确认(使SDA 总线处于高电平)应答,而通过产生一个停止条件应答。如图F3-10所示。

⑵. 顺序读取:顺序读取由立即地址读取或随机地址读取激发,在读数据器件收到一数据码之后,

通过“确认”应答,只要EEPROM 收到确认之后,便会继续增加数据码地址及串行输出数据码。当达到存储器地址极限时,数据码地址将重复“滚动”,顺序读取将继续。当读数据器件不通过确认(使SDA 总线处于高电平)应答,而通过产生一个停止条件应答时,顺序读取操作被终止。如图F3-11所示。

⑶.

9、操作例程

SCL EQU P1.1

SDA EQU P1.0

开始信号:

STAR:CLR SCL

SETB SDA

ACALL DELAY

SETB SCL

ACALL DELAY

CLR SDA

ACALL DELAY

CLR SCL

ACALL DELAY1

RET

停止信号:

STOP:CLR SDA

SETB SCL

ACALL DELAY

SETB SDA

ACALL DELAY

CLR SDA

CLR SCL

ACALL DELAY1

RET

发送一个字节:

SEND:MOV R0,#08H

SEND0:RLC A

MOV SDA,C

SETB SCL

ACALL DELAY

CLR SCL

ACALL DELAY1

DJNZ R0,SEND0

RET

接收一个字节:

REV:MOV R0,#08H

SETB SDA

REV0:SETB SCL

ACALL DELAY1

MOV C,SDA

RLC A

ACALL DELAY1

CLR SCL

ACALL DELAY

DJNZ R0,REV0

RET

接收一个应答位:

ACKI:SETB SDA

SETB SCL

ACALL DELAY

MOV C,SDA

CLR SCL

ACALL DELAY1

RET

发送一个应答位:

ACKO:CLR SDA

SETB SCL

ACALL DELAY

CLR SCL

SETB SDA

ACALL DELAY1

RET

发送一个非应答位(NO ACK):

NACKO:SETB SDA

SETB SCL

ACALL DELAY

CLR SCL

ACALL DELAY1

RET

延时子程序:AT24C02 SCL低电平>4.7us;高电平>4.0us(工作于100KHZ)

DELAY:NOP

NOP

NOP

NOP

NOP

NOP

RET

DELAY1:NOP

NOP

NOP

RET

实验题目:

将数据00~07H写入AT24C02中首地址为00H的单元;然后将A T24C02中00H~07H单元中的数据读出,保存至8051片内50~57H单元;之后将这些数据依次读出送P1口,P1口接发光二极管(读出一个数据后,调用延时程序以便该数据在发光二极管上显示一段时间)。

写数据至AT24C02的例程:

将数据00~07H写入AT24C02中首地址为00H的单元。

程序如下:

OUT:ACALL START ;开始信号

MOV A,#0A0H ;器件地址+写操作,准备发送

ACALL SEND ;发送器件地址和写操作

ACALL ACKI ;接收应答

JC ENDW ;从器件不响应,转结束

MOV A,#00H ;设置从器件片内地址

ACALL SEND ;发送片内地址

ACALL ACKI

JC ENDW

MOV R1,#08H ;设置发送字节数

MOV A,#00H

OUT1:ACALL SEND ;发送数据

ACALL ACKI

JC ENDW

INC A

DJNZ R1,OUT1 ;发送未结束,继续发送

ENDW:ACALLL STOP ;停止信号

RET ;结束程序

将A T24C02地址00~07H的数据读出送片内50H~57H保存。

程序如下:

INOUT:ACALL START ;开始信号

MOV A,#0A0H ;准备发送

ACALL SEND ;发送控制字

ACALL ACKI ;接收应答

JC ENDR ;不响应,转结束

MOV A,ADDR ;设置要AT24C02的地址

ACALL SEND

ACALL ACKI

JC ENDR

ACALL STOP ;停止信号

ACALL DELAY ;延时

IN :ACALL START ;开始信号

MOV A,#0A1H ;设置控制字,准备接收

ACALL SEND ;发送控制字

ACALL ACKI

JC ENDR

MOV R2,#08H

MOV R1,#50H

IN0:ACALL REV ;接收一个字节

MOV @R1,A ;把接收到的数据送到P1口

INC R1

CJNZ R2,#01,IN1 ;判断是否为最后一个接收字节

ACALL NACK ;数据接收完毕,发非应答信号

SJMP ENDR

IN1:ACALL ACKO ;发应答信号

DJNZ R2,IN0 ;发送未结束,继续转上

ENDR:ACALL STOP ;停止信号RET ;结束程序

I2C原理简介及那些坑

一般情况下, i2c 设备焊接没什么问题,按照设备手册一步步来,基本上就顺风顺水能够用起来。如果这么一个简单的东西,有时候想要的结果死活不出来,反复的检查问题的原因,查询解决办法,核查设备的数据手册,甚至发送和接收的每一条命令与数据都知道是什么意思,仍然无法解决问题,那该怎么办呢? 本文主要针对 i2c 设备,讲解如何解决 i2c 设备主机与从机直接无法正常数据交互的问题,侧重点是针对硬件设计不太合理、i2c 设备设计不标准导致总线故障的情况,并且通过分析现象,提出解决方案。对于在设备初始化中,没有设置相应的寄存器或者发送命令,而导致的无法获取想要的数据情况,不作详细介绍。 1 i2c 基本用法 i2c 总线是一种简单、双向二线制同步串行总线。所有主机在 SCL 线上产生它们自己的时钟来传输总线上的报文,SDA 线传输每个字节必 须为 8 位,每次传输可以发送的字节数量不受限制,每个字节后必须跟 一个响应位。在空闲状态时,SCL 与 SDA 均为高电平。 通常一些低功耗 i2c 设备,芯片引脚使用上拉输出即可满足与其正 常数据交互,还有一些 i2c 设备,则需要在总线上外加一个上拉电阻, 此时相应的 I/O 配置成开漏输出,其他的按照芯片手册进行标准配置。 2 硬件问题汇总 2.1 无法正常拉高拉低引脚 首先确定 SDA 与SCL 引脚能够被拉高、拉低,检测方式直接软件控 制 I/O 口输出引脚低电平/高电平,测量引脚电压是否能够随着芯片引 脚的设置输出相应的状态。 如果不能被拉低,检测虚焊、上拉电阻断开、i2c 设备是否正常、 芯片引脚是否损坏等问题,确保能够正常被拉高或者拉低。 2.2 电气特性无法满足 如果正常拉高、拉低的情况下,依然无法正常读取数据。通常建 议,根据负载电流更换小阻值的电阻。 如果需要详细知道原因,就具体查询 i2c 设备电气特性。大多数 i2c 设备电气特性,大致下图所示

I2C总线的结构与工作原理

I2C总线的结构与工作原理 2.1概述 2.1.1 I2C总线在单片机应用系统设计中的意义 现代消费类产品、通讯类产品、仪器仪表、工业测控系统中,逐渐形成了以一个或 多个单片机组成的智能系统,这些系统硬件结构都有相似之处: 1.单片机电路已日趋简单化和标准化。通常是由单片机(MICROCONTROLLER)、程序存储器(EPROM)、数据存储器(SRAM)构成的三片体系,或采用有在片程序存储器的单片机与数据存储器构成的二片体系,以及单片机与通用外围接口器件(PSD)构成的最简单体系。 2. 都有一些外围通用电路,如EEPROM、I/O口、A/D、D/A、日历时钟等外围器件和键盘、LED/LCD显示器、打印机接口等外围设备模块等。 3.面对系统特殊应用的一些电路,如无线电、电视、音像系统中的数字协调、编码、解码、图象处理、频率合成、音调控制、立体声处理等。 在上述的一些电路中,除与单片机直接相关的程序存储器、并行扩展的数据存储器外,单片机对许多外围电路之间主要是实现控制功能,而且许多外设并不要求很高的数据传送速度。为了简化系统,提高系统的可靠性,缩短产品开发周期,增加硬件结构的灵活性,Philips公司推出了一种高效、可靠、方便的串行扩展总线I2C总线。 在单片机应用系统中推广I2C总线后将会大大改变单片机应用系统结构性能、对单片机的应用开发带来以下好处: 可最大限度地简化结构。二线制的I2C串行总线使得各电路单元之间只需最简单的连接,而且总线接口都集成在器件中,不需另加总线接口电路。电路的简化省去了电路板上大量走线,减少电路板面积,提高了可靠性,降低了成本。 可实现电路系统的模块化、标准化设计。在I2C总线上各单元电路除了个别中断引线外,相互之间没有其他连线,用户常用的单元电路基本上与系统电路无关,故极易形成用户自己的标准化、模块化设计。 标准I2C总线模块的组合开发方式大缩短了新品的开发周期。 I2C总线各节点具有独立的电器特性,各节点单元电路能在相互不受影响的情况下,甚至在系统供电情况下,接入或撤除。I2C总线系统构成具有最大的灵活性。系统该型设计、或对已加工好的电路板需扩展功能时,对原有设计及电路板系统影响最小。 I2C总线系统可方便地对某一接点电路进行故障诊断与跟踪,有极好的可维护性 目前Philips及I2C总线器件,除带有I2C总线单片机、常用的通用外围器件外,在家电产品、电讯、电视、音像产品中已发展成套I2C总线器件,在这些部门中I2C总线系统已得到了广泛的应用。 2.1.2 I2C总线的一般应用特性 I2C总线系统中,带有I2C总线的单片机,其I2C总线输入输出口的电器结构、相关的特殊功能寄存器(SFR)设置以及所提供的标准程序模块,为用户掌握I2C总线的系统设计和应用软件的编制带来极大的方便。 I2C总线的串行数据传送与一般UART的串行数据传送无论从借口电器特性、传送状态管理以及程序编制特点都有很大的不同,了解这些特点十分重要。 1.二线传输。I2C总线上所有的节点,如主器件(单片机,微处理器)、外围器件、借口模块等都连到同名端的SDA、SCL上。 2.系统中有多个主器件时,这些器件都可作总线的主控制器(无中心主机),I2C总线工作时任何一个主件都可成为主控制器,多机竞争时的时钟同步与总线仲裁都由硬件与标准软件模块自动完成,无须用户介入。 3.I2C总线传输时,采用状态码的管理方法。对应于总线数据传输时的任何一种状态,在状态寄存器中会出现相应的状态码,并且会自动进入响应的状态处理程序中进行自动处理,无须用户介入,用户只须将Philips公司提供的标准状态处理器一定的空间即可。 4.系统中所有外围器件及模块采用器件地址及引脚地址的编码方法。系统中主控制器对任何节点的寻址采用纯软件寻址方法,避免了片选线的先连方法。系统中若有地址编码冲突可通过改变地址引脚的电平设置来解决。 5.所有带I2C接口的外围器件都具有应答功能。片有多少单元地址时,读数据、写时都有地址自动加1功能。这样,在I2C 总线对某一器件读写多个字节时很容易实现自动操作,即准备好读、写入口条件后,只须启动I2C总线就可自动完成n个字节的读、写操作。 6.I2C总线电器接口为开漏晶体管组成,开路输出没有找到电源的钳位二级管,而连到I2C总线的每个器件上,其自身

I2C总线中文讲解,详尽通俗

一. I2C总线简介 I2C管理总线:(Intel-Integrated Circuit bus)I2C总线是一种由飞利浦Philip公司开发的串行总线,产生于80年代,最初为音频和视频设备开发,现主要在服务器管理中使用。是两条串行的总线,它由一根数据线(SDA)和一根时钟线(SDL)组成。 ◆I2C总线的数据传输过程基本过程为: ●主机发出开始信号。 ●主机接着送出1字节的从机地址信息,其中最低位为读写控制码(1为读、0为写), 高7位为从机器件地址代码。 ●从机发出认可信号。 ●主机开始发送信息,每发完一字节后,从机发出认可信号给主机。 ●主机发出停止信号。 I2C数据传输图 ◆I2C总线上各信号的具体说明: ●开始信号:在时钟线(SCL)为高电平其间,数据线(SDA)由高变低,将产生一 个开始信号。 ●停止信号:在时钟线(SCL)为高电平其间,数据线(SDA)由低变高,将产生一 个停止信号。 ●应答信号:既认可信号,主机写从机时每写完一字节,如果正确从机将在下一个时钟 周期将数据线(SDA)拉低,以告诉主机操作有效。在主机读从机时正确读完一字节后,主机在下一个时钟周期同样也要将数据线(S DA)拉低,发出认可信号,告诉从机所发数据已经收妥。(注:读从机时主机在最后1字节数据接收完以后不发应答,直接发停止信号)。 注意:在I2C通信过程中,所有的数据改变都必须在时钟线SCL为低电平时改变,在时钟线SCL为高电平时必须保持数据SDA信号的稳定,任何在时钟线为高电平时数据线上的电平改变都被认为是起始或停止信号。 ◆I2C总线数据格式:

I2C数据格式图 I2C支持两种数据格式: _ 7-bit/10-bit 寻址数据格式 _ 7-bit/10-bit 寻址和重复开始信号的数据格式 ?S ―I2C 开始标识 ?Slava address ―从设备地址。 有两种从地址类型: 1)固定的从地址,I2C总线只能接一个同类型的固定的从地址设备。 2)半固定的从地址,前半部分地址是固定的,后半部分地址是可编程的,I2C总线只能接多个同类型的半固定的从地址设备。 如7bit半固定从地址通常7-bit 中四个较重要的位(MSB) 为固定的,并依器件本身性质的分类区分,如1010 即代表串行EEPROM,而其他三个较不重要的位(LSB),即A2、A1 与A0 则可以通过硬件电子引脚设定,并取得高达8 个不同的I2C 地址组合,因此在同一个I2C 总线上可以有8 个相同形式的器件运作,这些引脚固定在VCC 高电压代表逻辑1,固定在接地低电压则代表逻辑0,7-bit 的定址方式可以带来总线上128 个器件的组合,但由于部份地址设定保留给特殊指令应用,因此实际上最高器件数大约为120 个。 ?R/W ―读写操作表示位,0 表示写,1表示读。 ?ACK ―读写完一个byte的地址数据的应答信号 ?Data ―数据,紧跟设备地址传输的第一个byte数据(Data)可以是子地址(sub-address) 表示设备的寄存器。 ?S ―I2C结束标识 ◆关于从地址的分配 I2C器件的从地址是由I2C总线协会实行统一分配的,飞利浦作为标准I2C总线标准的维护者,负责所有I2C从地址的注册程序以确保能够适当协助授权厂商或其他公司进行从地址的分配。为了避免I2C器件的从地址的冲突必须依赖现有从地址的完整性和可靠的申请注册资料才能达成,所以I2C器件厂家必须向philip公司提交I2C从地址申请并提交一定的费用。 从地址的申请有两种: 第一种是为某一特定的I2C器件设备申请从地址;

i2c总线原理

I2C总线原理 ?什么是I2C总线? I2C即Inter IC,由Philips公司开发,是当今电子设计中应用非常广泛的串行总线之一,主要用于电压、温度监控,EEPROM数据的读写,光模块的管理等。 I2C总线只有两根线,SCL和SDA,SCL即Serial Clock,串行参考时钟,SDA即Serial Data,串行数据。 ?I2C总线的速率能达到多少? 标准模式下:100Kbps 快速模式下:400Kbps 高速模式下:3.4Mbps I2C总线结构如下图所示: 如上图所示,I2C是OC或OD输出结构,使用时必须在芯片外部进行上拉,上拉电阻R的取值根据I2C总线上所挂器件数量及I2C总线的速率有关,一般是标准模式下R选择10kohm,快速模式下R选取1kohm,I2C总线上挂的I2C器件越多,就要求I2C的驱动能力越强,R的取值就要越小,实际设计中,一般是先选取4.7kohm上拉

电阻,然后在调试的时候根据实测的I2C波形再调整R的值。 ?I2C总线上最多能挂多少个I2C器件? I2C总线上允许挂接I2C器件的数量由两个条件决定: 1).I2C从设备的地址位数。I2C标准中有7位地址和10位地址两种。如果是7位地址,允许挂接的I2C器件数量为:27=128,如果是10位地址,允许挂接的I2C 器件数量为:210=1024,一般I2C总线上挂接的I2C器件不会太多,所以现在几乎所有的I2C器件都使用7位地址。 2).挂在I2C总线上所有I2C器件的管脚寄生电容之和。I2C总线规范要求,I2C 总线容性负载最大不能超过470pF。 ?I2C总线是如何工作的? 1).I2C总线传输的特点。 I2C总线按字节传输,即每次传输8bits二进制数据,传输完毕后等待接收端的应答信号ACK,收到应答信号后再传输下一字节。等不到ACK信号后,传输终止。空闲情况下,SCL和SDA都处于高电平状态。 2).如何判断一次传输的开始? 如上图所示,I2C总线传输开始的标志是:SCL信号处于高电平期间,SDA信号出现一个由高电平向低电平的跳变。 3).如何判断一次传输的结束? 如上图所示,I2C总线传输结束的标志是:SCL信号处于高电平期间,SDA信号出现一个由低电平向高电平的跳变。跟开始标识正好相反。 4).什么样的I2C数据才是有效的。

I2C总线原理及应用实例

I2C总线 原理及应 用实例 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为 音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的 通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能 状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数, 增加了系统的安全性,方便了管理。 1 I2C总线特点 I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互 联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持 40个组件。I2C总线的另一个优点是,它支持多主控(multimastering),其中 任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传 输和时钟频率。当然,在任何时间点上只能有一个主控。 2 I2C总线工作原理 2.1 总线的构成及信号类型 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接口。 3 总线基本操作 I2C规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。总

I2C串行接口介绍

I2C串行总线通信原理

采用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充极为容易。 常用的串行扩展总线有:I2C (Inter IC BUS)总线、单总线(1-WIRE BUS)、SPI(Serial Peripheral Interface)总线等。本章仅讨论I2C串行总线。

一、IIC概述 IIC(Inter-Integrated Circuit)总线,许多文献写作I2C,主要用于同一电路板内各集成电路模块(IC)之间的连接。IIC采用双向2线制串行数据传输方式,简化IC之间的通信连接。IIC协议是PHILIPS公司于二十世纪八十年代初提出,其后,PHILIPS和其他厂商提供了种类丰富的IIC兼容芯片。目前,IIC总线标准已经成为世界性的工业标准。各大半导体公司推出了大量的带有IIC接口的芯片,如RAM、EEPROM、Flash ROM、A/D、D/A转换、 LED/LCD驱动、I/O接口、实时时钟等。

二、IIC总线特点 在硬件结构上,它采用数据(SDA)和时钟(SCL)两根线来完成数据的传输及外围器件的扩展,任何一个具有IIC总线接口的外围器件,不论其功能差别有多大,都具有相同的电气接口,因 此都可以挂接在总线上,使其连接方式变得十分 简单。 对各器件的寻址是软寻址方式,因此节点上没有必须的片选线,器件地址给定完全取决于器件 类型与单元结构,这也简化了IIC系统的硬件连接。

另外IIC总线能在总线竞争过程中进行总线控制权的仲裁和时钟同步,并且不会造成数据丢失,因此由IIC总线连接的多机系统可以是一个多主机系统,支持多主控。 串行的8位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。

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 IC,由Philips公司开发,是当今电子设计中应用非常广泛的串行总线之一,主要用于电压、温度监控,EEPROM数据的读写,光模块的管理等。 I2C总线只有两根线,SCL和SDA,SCL即Serial Clock,串行参考时钟,SDA 即Serial Data,串行数据。 ?I2C总线的速率能达到多少? 标准模式下:100Kbps 快速模式下:400Kbps 高速模式下:3.4Mbps I2C总线结构如下图所示: 如上图所示,I2C是OC或OD输出结构,使用时必须在芯片外部进行上拉,上拉电阻R的取值根据I2C总线上所挂器件数量及I2C总线的速率有关,一般是标准模式下R选择10kohm,快速模式下R选取1kohm,I2C总线上挂的I2C 器件越多,就要求I2C的驱动能力越强,R的取值就要越小,实际设计中,一般是先选取4.7kohm上拉电阻,然后在调试的时候根据实测的I2C波形再调整R 的值。?I2C总线上最多能挂多少个I2C器件? I2C总线上允许挂接I2C器件的数量由两个条件决定:

1).I2C从设备的地址位数。I2C标准中有7位地址和10位地址两种。如果是7位地址,允许挂接的I2C器件数量为:27=128,如果是10位地址,允许挂接的I2C器件数量为:210=1024,一般I2C总线上挂接的I2C器件不会太多,所以现在几乎所有的I2C器件都使用7位地址。 2).挂在I2C总线上所有I2C器件的管脚寄生电容之和。I2C总线规范要求,I2C总线容性负载最大不能超过470pF。 ?I2C总线是如何工作的? 1).I2C总线传输的特点。 I2C总线按字节传输,即每次传输8bits二进制数据,传输完毕后等待接收端的应答信号ACK,收到应答信号后再传输下一字节。等不到ACK信号后,传输终止。空闲情况下,SCL和SDA都处于高电平状态。 2).如何判断一次传输的开始? 如上图所示,I2C总线传输开始的标志是:SCL信号处于高电平期间,SDA 信号出现一个由高电平向低电平的跳变。 3).如何判断一次传输的结束? 如上图所示,I2C总线传输结束的标志是:SCL信号处于高电平期间,SDA 信号出现一个由低电平向高电平的跳变。跟开始标识正好相反。 4).什么样的I2C数据才是有效的。

I2C通信原理

I2C通信原理 一、 I2C的时序是比较复杂的,你如果能把I2C的时序弄清,那其他器件的时序都不成问题了。 我就按照我的理解来跟你讲吧。 直接用程序来说明吧。 NOP(),一个机器周期时间的延迟,12M晶振时为1微秒 NOPS(),4个NOP()。 sbit SDA P2^0; sbit SCL P2^1; 定义数据线和时钟线接口 首先,I2C有2个重要的线,SDA数据线SCL时钟线,当总线上没有进行信息传送时,SDA 和SCL都为高电平,我们称之为释放总线。 开始传送信息时,要有一个开始信号, 开始信号:定义为在SCL为高电平的时候,SDA从高电平拉低。 start() { SDA=1; NOP(); //同你图中SDA/SCL上升/下降所用时间1US SCL=1; NOPS(); //建立开始信号(同你图中TSU起始信号建立时间一样4US) SDA=0; //SDA拉低 NOPS(); SCL=0; //SCL拉低,钳住总线,准备发送或接收数据 NOP(); } 结束信号:与开始信号相反,在SCL为高电平时,SDA从低拉高 stop() { SDA=0; NOP(); SCL=1; NOPS(); //建立信号时间 SDA=1; //拉高结束。 NOPS(); } 我晕,发现写了半天还有好多。。算了帮人帮到底了 发送/接收一个数据:数据的发送和接收都是在SCL为低电平的时候发生,因为SCL为高电平时已给了开始和结束信号。发送数据时,当数据准备读入时,将SCL线暂时拉高(SCL 为高时,SDA无法改变状态),保持一段时间然后拉低(同你图中的TDH,数据输出保持时间),这时数据则发送完毕到SDA上。接收则与之大同小异。当SDA线上有数据过来时,先将SCL拉高,建立好时间,然后拉低,数据则被读入。(关于如何被发出以及如何

C51串I2C总线共14页

I2C总线是Philips公司最先推出的一种双向数据传输总线,其仅使用两根连线便可以实现全双工同步数据传送。在I2C 总线中,一条为串行数据线(SDA),另一条为一条串行时钟线(SCL)。I2C总线占用引脚少,接口协议简单。目前多数公司均推出了I2C总线接口的各种器件,如存储器、A/D、D/A、键盘、LCD等,大大方便了用户的选择。 本章主要介绍了I2C总线的工作原理、寻址方式以及数据操作,并重点介绍了数据传输协议以及相应的C51子函数。最后通过具体的实例,介绍如何使用在没有I2C总线接口的单片机上读写具有I2C总线接口的E2PROM存储器。 1 I2C总线概述 I2C总线采用两线制,由数据线SDA和时钟线SCL构成。I2C 总线对数据通信进行了严格的定义。 1.1 I2C总线工作原理 典型的I2C总线系统结构,如图所示。I2C总线上可以挂接多个器件,其中每个器件必须都支持I2C总线通信协议。 1.2 I2C总线器件的寻址方式

由于所有器件都通过SCL和SDA连接在I2C总线上,因此,主器件在进行数据传输前需要通过寻址,选择需要通信的从器件。I2C总线上所有外围器件都需要有唯一的7位地址,由器件地址和引脚地址两部分组成。 器件地址是I2C器件固有的地址编码,器件出厂时就已经给 定,不可更改。 引脚地址是由I2C总线外围器件的地址引脚(A2,A1,A0)决定,根据其在电路中接电源正极、接地或悬空的不同,形 成不同的地址代码。 1.3 I2C总线数据操作 在I2C总线上,数据是伴随着时钟脉冲,一位一位地传送的,数据位由低到高传送,每位数据占一个时钟脉冲。I2C总线上的在时钟线SCL高电平期间,数据线SDA的状态就表示要传送的数据,高电平为数据1,低电平为数据0。在数据传送时,SDA上数据的改变在时钟线为低电平时完成,而SCL 为高电平时,SDA必须保持稳定,否则SDA上的变化会被当作起始或终止信号而致使数据传输停止。 1.写数据格式 2.读数据格式 2 I2C总线接口EEPROM存储器 目前,市场上I2C总线接口器件有多种,例如A/D转换器、

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向受控单元发出一个信号后,等待受控单元发出一个应答信

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由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。. 起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态。 接收器件收到一个完整的数据字节后,有可能需要完成一些其它工作,如处理内部中断服务等,可能无法立刻接收下一个字节,这时接收器件可以将SCL线拉成低电平,从而使主机处于等待状态。直到接收器件准备好接收下一个字节时,再释放SCL线使之为高电平,从而使数据传送可以继续进行。 3.ACK 发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。 应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。对于反馈有效应答位ACK的要求是,接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,

I2C总线原理介绍,AT24C02内部原理介绍

I2C总线原理介绍,AT24C02内部原理介绍 编写“读写AT24C02 EEPROM”程式,讲解几种常见的读写方式 “读写AT24C02 EEPROM”程式调试 第一部分I2C总线原理 串行扩展总线技术是新一代单片机技术发展的一个显著特点。其中PHILIPS公司推出的 I2C总线(INTEL IC BUS)最为著名。与并行扩展总线相比,串行扩展总线有突出的优点:电路结构简单,程序编写方便,易于实现用户系统软硬件的模块比、标准化等。目前I2C总线技术已为许多著名公司所采用,并广泛应用于视频音像系统中。 一、I2C总线特点 I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 其主要特点如下: ●只要求两条总线线路一条串行数据线SDA 一条串行时钟线SCL ●每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机从机关系软件设定地址主 机可以作为主机发送器或主机接收器 ●它是一个真正的多主机总线如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防 止数据被破坏 ●串行的8 位双向数据传输位速率在标准模式下可达100kbit/s 快速模式下可达400kbit/s 高速 模式下可达3.4Mbit/s ●片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整 ●连接到相同总线的IC 数量只受到总线的最大电容400pF 限制 ●极低的电流消耗 ●抗高噪声干扰 ●电源电压范围宽 ●工作的温度范围广 I2C总线图示 二、I2C总线工作原理 1.总线的电气结构 I2C为双向同步串行总线,总线接口内部结构如下图所示。总线端口输出为开漏结构,故总线上必须有上拉电阻R P,上拉电阻与电源V DD、SDA/SCL有关,通常可选5~10K欧姆。

I2C总线原理及应用实例

I2C总线原理及应用实例[来源https://www.360docs.net/doc/9418188105.html,]

++++++++++++++++++++++++++++++++++++++

https://www.360docs.net/doc/9418188105.html,/diagram/circuit/cid/137/cirid/19837 基于DSP与CPLD的I2C总线接口的设计与实现上传者:Lamborghini浏览次数:86 摘要:介绍了一种使用CPLD完成DSP芯片I2C总线接口的设计和实现方案,重点叙述了I2C核的设计思想。 关键词:PWM SG3524 控制器 带有I2C总线接口的器件可以十分方便地将一个或多个单片机及外围器件组成单片机系统。尽管这种总线结构没有并行总线那样大的吞吐能力,但由于连接线和连接引脚少,因此其构成的系统价格低、器件间总线连接简单、结构紧凑,而且在总线上增加器件不影响系统的正常工作,系统修改和可扩展性好。即使有不同时钟速度的器件连接到总线上,也能很方便地确定总线的时钟。 如今,为了提高系统的数据处理精度和处理速度,在家用电器、通讯设备及各类电子产品中已广泛应用DSP芯片。但大多数的尚未提供I2C总线接口,本文将介绍一种基于CPLD 的已实现的高速DSP的I2C总线接口方案。 图1 I2C总线接口电路结构点击放大 1 I2C通信协议 I2C总线是一种用于IC器件之间的二线制总线。它通过SDA(串行数据线)及SCL(串行同步时钟线)两根线在连到总线上的器件之间传送信息,通过软件寻址实现片选,减少了器件片选线的连接。CPU不仅能通过指令将某个功能单元电路挂靠或摘离总线,还可对该单元的工作状况进行检测,从而实现对硬件系统的扩展与控制。I2C总线接口电路结构如图1所示,I2C总线时序图如图2所示。 I2C总线根据器件的功能通过软件程序使其可工作于发送(主)或接收(从)方式。总线上主和从(即发送和接收)的关系不是一成不变的,而是取决于数据传送的方向。SDA和SCL均为双向I/O线,通过上拉电阻接正电源。当总线空闲时,两根线都是高电平。连接总线的器件的输出级必须是集电极或漏极开路的,以具有线“与”功能。I2C总线的数据传送速率在标准工作方式下为100kbit/s,在快速方式下,最高传送速率可达400kbit/s。

I2C总线原理及应用实例

I2C总线原理及应用实例 [日期:2006-02-18]来源:网络收集作者:未知[字体:大中 小] |2C(lnter - Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用 于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。 1I 2C总线特点 I 2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线 占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持 40个组件。I2c总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成 为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个 主控。 2I 2C总线工作原理 2.1总线的构成及信号类型 I 2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在 CPU与被 控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I 2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发岀的控制信号分为地 址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同 一条总线上,却彼此独立,互不相关。 I 2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和 应答信号。 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的叵在接收到8bit数据后,向发送数据的IC发岀特定的低电平脉冲,表示已收到数据。CPU向受控单元发岀一个信号后,等待受控单元发岀一个应答信号,CPU接收到应答信号后,根据实际情况作岀是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。 2 2 目前有很多半导体集成电路上都集成了 I C接口。带有I C接口的单片机有:CYGNAL 的 C8051F0XX 系列,PHILIPSP87LPC7XX系列,MICROChip 的 PIC16C6XX系列等。很多外围 器件如存储器、监控芯片等也提供12c接口。

i2c基本原理

I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。 简单的I2C协议理解 一. 技术性能: 工作速率有100Kbit/s、400Kbit/s和3.4Mbit/s三种; 支持多机通讯; 支持多主控模块,但同一时刻只允许有一个主控; 由数据线SDA和时钟SCL构成的串行总线; 每个电路和模块都有唯一的地址; 每个器件可以使用独立电源; 连接到总线的接口数量只由总线电容是400pF的限制决定; 二. 基本工作原理: SDA和SCL都是双向线路,都通过一个电流源或上拉电阻连接到正的电源电压。当总线空闲时,这两条线路都是高电平。连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能。 以启动信号START来掌管总线,以停止信号STOP来释放总线; 每次通讯以START开始,以STOP结束; 启动信号START后紧接着发送一个地址字节,其中7位为被控器件的地址码,一位为读/写控制位R/W,R/W位为0表示由主控向被控器件写数据,R/W为1表示由主控从被控器件读数据; 当主机发送了一个地址后,系统中的每个器件都在起始条件后将头7位与自己的地址比较,如果被控器件检测到收到的地址与自己的地址相同,在第9个时钟期间反馈应答信号; 每个数据字节在传送时都是高位(MSB)在前; 写通讯过程: 1. 主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线; 2. 发送一个地址字节(包括7位地址码和一位R/W); 3. 当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK); 4. 主控收到ACK后开始发送第一个数据字节; 5. 被控器收到数据字节后发送一个ACK表示继续传送数据,发送NACK表示传送数据结束; 6. 主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线; 读通讯过程: 1. 主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线; 2. 发送一个地址字节(包括7位地址码和一位R/W); 3. 当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK); 4. 主控收到ACK后释放数据总线,开始接收第一个数据字节; 5. 主控收到数据后发送ACK表示继续传送数据,发送NACK表示传送数据结束;

I2C总线简介

I2C总线简介 1.概述: I2 C 是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or "eye-two-cee" , 它是一种两线接口。 I2 C 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。 SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿触发) SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成"线与"关系。 2.输出级 每一个I2C总线器件内部的SDA、SCL引脚电路结构都是一样的,引脚的输出驱动与输入缓冲连在一起。其中输出为漏极开路的场效应管,输入缓冲为一只高输入阻抗的同相器,这种电路具有两个特点: 1)由于SDA、SCL为漏极开路结构(OD),因此它们必须接有上拉电阻,阻值的大小常为 1k8, 4k7 and 10k ,但1k8 时性能最好;当总线空闲时,两根线均为高电平。连到

总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线"与"关系。 2)引脚在输出信号的同时还将引脚上的电平进行检测,检测是否与刚才输出一致,为" 时钟同步"和"总线仲裁"提供了硬件基础。 3.主设备与从设备 系统中的所有外围器件都具有一个7位的"从器件专用地址码",其中高4位为器件类型,由生产厂家制定,低3位为器件引脚定义地址,由使用者定义。主控器件通过地址码建立多机通信的机制,因此I2C总线省去了外围器件的片选线,这样无论总线上挂接多少个器件,其系统仍然为简约的二线结构。终端挂载在总线上,有主端和从端之分,主端必须是带有CPU的逻辑模块,在同一总线上同一时刻使能有一个主端,可以有多个从端,从端的数量受地址空间和总线的最大电容 400pF的限制。 ? 主端主要用来驱动SCL line; 从设备对主设备产生响应; 二者都可以传输数据,但是从设备不能发起传输,且传输是受到主设备控制的。 4.速率:

相关主题
相关文档
最新文档