I2C总线工作原理

合集下载

I2C串行总线的组成及工作原理

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是一种串行通信总线,常用于连接主控制器和外设设备之间。

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(Inter-Integrated Circuit)是一种串行通信协议,用于在芯片之间进行数据传输。

它由飞利浦半导体(现在的恩智浦半导体)于1982年开发,并广泛应用于各种电子设备中。

I2C具有简单、高效和可靠的特点,成为众多芯片和模块之间常用的通信接口之一。

本文将详细介绍I2C的基本工作原理。

一、总线架构I2C采用了主从结构的总线架构,其中主设备(Master)负责发起数据传输请求,而从设备(Slave)则在接收到请求后进行响应。

一个I2C总线上可以连接多个从设备,每个从设备都有一个唯一的地址。

主设备通过发送起始信号(Start)来启动通信,然后选择要与之通信的从设备地址,最后发送停止信号(Stop)结束通信。

二、物理层I2C使用双线制进行数据传输,包括数据线(SDA)和时钟线(SCL)。

数据线上的信号是双向的,用于传输数据。

时钟线则由主设备控制,用于同步数据传输。

三、起始和停止信号I2C通信以起始信号(Start)和停止信号(Stop)来标识通信的开始和结束。

起始信号由主设备产生,它表示将要发起一次新的通信。

停止信号同样由主设备产生,表示一次通信的结束。

四、数据传输格式I2C采用了基于字节的数据传输格式。

每个字节都由8位二进制数据组成,包括7位数据位和1位数据方向位。

数据方向位为0表示发送数据,为1表示接收数据。

在每个字节的传输过程中,都会先发送数据方向位,然后再发送数据位。

五、时钟同步I2C使用时钟同步机制来确保通信的准确性。

时钟线由主设备产生,并控制整个数据传输过程的时序。

在每个时钟周期中,数据线上的数据必须稳定,并且只有在时钟线为低电平时才能改变。

六、地址传输在I2C通信中,每个从设备都有一个唯一的7位地址。

主设备通过发送地址来选择要与之通信的从设备。

地址由8个位组成,最高位是固定的0或1,用于表示读(1)或写(0)操作。

其余的7位用于指定从设备的地址。

七、数据传输流程I2C通信的数据传输流程如下:1. 主设备发送起始信号(Start)。

I2C总线结构及工作原理小结

I2C总线结构及工作原理小结
图 4 I2C 总线的时序定义
参数 SCL 时钟频率
表 1 I2C 总线信号定时要求
符号
标准模式 最大值 最小值
Fscl
0
100
高速模式 最大值 0
最小值 400
单位 kHz
在一个终止信号和起始信号 之间必须空闲的时间
Tbuf
4.7

1.3

us
起始信号保持时间 (此后可产生第一个时钟脉冲)
Thd;sta 4.0
:主控器接收,被控器发送
A:应答信号
A :非应答信号
S:起始信号
P:停止信号
SLAW:寻址字节(写)
DatБайду номын сангаас1~Datan:写入被控器的 n 个数据字节
2.主控器的读操作。主控器从被控器中读出 n 个字节的操作,整个传输过程中除寻址字节外,都是被控器
发送,主控器接收的过程。数据传送的格式如下:
S SLAW
数据传输中的接受/发送器
I2C 总线系统中用发送器与接收器来表明数据传输的发送方与接收方。 发送器:总线上发送数据的器件。 接收器:总线上接收数据的器件。
I2C 总线上的所有节点都可以成为发送器或接收器。
主竞争中的仲裁与同步
在 I2C 总线系统中可以有多个主器件节点。如果某些主器件节点在运行时都企图控制总线,则形成多 主竞争状态,I2C 总线系统可保证多个主器件节点企图控制总线时不会丢失信息。在总线竞争过程中进行 总线控制权的仲裁和时钟同步,仲裁结果只允许其中一个主器件继续战局总线。
I2C总线系统中的几个名词、术语
I2C 总线系统的结构十分灵活。系统中除了可以挂接带有 I2C 总线接口的单片机、外围器件外,通过 I2C 总线扩展器 PCD8584 可以挂接不带 I2C 总线接口的单片机、微处理器。通过外围器件可以扩展许多通 用外设借口模块。

I2C总线

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工作原理

文化在交流中传播高考频度:★★★★☆难易程度:★★★☆☆被誉为中芬文明交流互鉴“架桥人”的赫尔辛基大学孔子学院,作为芬兰认识中国、中国与芬兰深化友谊和合作的重要窗口,在推动汉语在芬兰的发展方面取得了丰硕的成果,已成为芬兰最大的汉语教学、汉语水平考试及中国问题研究中心,孔子学院还在芬兰多所大学的五个语言中心设立了汉语教学点。

赫尔辛基大学孔子学院的创建①扩大了中华文化的国际影响力②表明了中华优秀传统文化是中华文明的重要标志③见证了中华优秀传统文化能够推动芬兰社会发展④为中华文化的传播和中芬文化的交流作出了贡献A.①② B.①④ C.②③ D.③④1.文化交流促进世界文化的发展文化传播的意义——既促进本民族文化的繁荣,又促进世界文化的发展。

2.做传播中外文化交流的友好使者我们既要更加热情地欢迎世界各地优秀文化在中国传播,又要更加主动地推动中华文化走向世界。

做中外文化交流的友好使者,是时代赋予我们的使命。

文化传播的途径和文化传播的手段1.秦国攻灭楚国后,为了加强对南方地区的控制,派50万官兵驻扎岭南地区。

这使得相当一部分中原人留在了粤东北地区,对当地文化产生了深远的影响。

秦统一中国后,为了戍边和开发新区,组织了一系列大规模的人口迁徙。

其中最著名的北戍五原、云中,南戍五岭,人数近百万,对长城沿线和华南的开发起了重要作用。

上述材料体现的文化传播途径是A.教育是文化传播的重要途径B.人口迁徙是文化传播的重要途径C.战争是文化传播的根本途径D.古代商贸活动是文化传播的重要途径2.中央电视台“一带一路”的特别报道《数说命运共同体》,通过讲述贸易、投资、中国制造、基础设旅、饮食文化、人员往来等方面的故事,呈现出“一带一路”沿线国家“命运共同体”图景。

该节目通过最新视频技术,使主持人“走出”演播室,在不同国家之间“穿越”,和观众一起认识“一带一路”沿线国家各方面的情况。

茶叶、丝绸伴随着中国口音旅行到了世界各地,而远方的特产来到中国的同时也把海外“乡音”带进了汉语词典,阿拉伯神话传说在中国家喻户晓,中国的电影海报也张贴在外国的电影院里……这表明A.大众传媒具有文化传递、沟通、感召的强大功能B.文化既是民族的,又是世界的C.大众传媒是古今文化传播的主要途径D.文化与经济相互交融,相互影响3.2017年,中国在德国举办贯穿全年、覆盖全德的系列文化庆祝活动。

I2C总线协议及工作原理

I2C总线协议及工作原理

I2C总线协议及工作原理I2C(Inter-Integrated Circuit)是一种串行通信总线协议,由Philips公司提出,适用于在电路板上连接各种集成电路的短距离通信。

I2C总线协议的工作原理是基于主从结构的,其中一个设备作为主设备,其他设备作为从设备。

主设备负责发起通信操作,而从设备则被动响应主设备的指令。

主设备在总线上发出启动信号,然后发送器件地址。

发起通信的主设备控制总线的速度和时序,并且主设备确定读写的类型。

从设备根据地址进行匹配,并根据主设备请求的读写进行响应。

通信完成后,主设备会发送停止信号释放总线。

在I2C总线上,每个设备都有一个唯一的7位或10位地址。

主设备在传输数据之前,会发送起始信号,这个信号告诉从设备通信即将开始。

随后主设备会发送一个地址字节,包含了要通信的从设备的地址和读写控制位。

如果从设备的地址和发送的地址匹配,从设备会发送一个应答(ACK)信号,表示准备好接收数据。

主设备然后才开始发送或接收数据。

数据在I2C总线上传输是以字节为单位的,并且每个字节之后都会有一个应答信号。

主设备负责设置时钟线的电平来控制数据的传输,而从设备负责读取或发送数据位。

在读取数据时,主设备会发送应答位,如果从设备准备好读取下一个字节,会发送应答信号;反之,如果从设备不准备好,会发送非应答信号。

在I2C总线上,主设备还可以使用多主模式,允许多个主设备操作相同的总线。

当多个主设备在通信总线上发起通信时,总线的冲突可能会发生。

为了解决这个问题,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)。

每次数据传输都是主机产生终止信号结束。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三、数据传送格式 (1)字节传送与应答
每一个字节必须保证是8位长度。数据传送时,先传 送最高位(MSB),每一个被传送的字节后面都必须跟 随一位应答位(即一帧共有9位)。
由于某种原因从机不对主机寻址信号应答时(如从机 正在进行实时性的处理工作而无法接收总线上的数据), 它必须将数据线置于高电平,而由主机产生一个终止信号 以结束总线的数据传送。 如果从机对主机进行了应答,但在数据传送一段时间后 无法继续接收更多的数据时,从机可以通过对无法接收的 第一个数据字节的“非应答”通知主机,主机则应发出终 止信号以结束数据的继续传送。 当主机接收数据时,它收到最后一个数据字节后,必须 向从机发出一个结束传送的信号。这个信号是由对从机的 “非应答”来实现的。然后,从机释放SDA线,以允许主 机产生终止信号。
(7)写EEPROM
void Write_IIC(uchar add,uchar dat) { start(); Write_Byte(0xa0); ack(); Write_Byte(add); ack(); Write_Byte(dat); ack(); stop(); }
(8)读EEPROM
典型信号模拟子程序 (0)初始化IIC
void init_IIC() { SDA=1; delay(); SCL=1; delay(); }
(1)起始信号
void start() { SDA=1; delay(); SCL=1; delay(); SDA=0; delay(); }
(2)终止信号
AT24C01:128字节(128×8位) AT24C02:256字节(256×8位) AT24C04:512字节(512×8位) AT24C08:1K字节(1K×8位);
AT24C16:2K字节(2K×8位);
(2)写入过程
AT24C系列E2PROM芯片地址的固定部分为 1010,A2、A1、A0引脚接高、低电平后得到确定 的3位编码。形成的7位编码即为该器件的地址码。 单片机进行写操作时,首先发送该器件的7位地 址码和写方向位“0”(共8位,即一个字节),发 送完后释放SDA线并在SCL线上产生第9个时钟信 号。被选中的存储器器件在确认是自己的地址后, 在SDA线上产生一个应答信号作为相应,单片机收 到应答后就可以传送数据了。
(9)8uS延时
void delay() { _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); }
2.2 I2C总线器件的扩展
一、扩展电路
二、串行E2PROM的扩展
(1)串行E2PROM典型产品 ATMEL公司的AT24C系列:
a、主机向从机发送数据,数据传送方向在整 个传送过程中不变:
注:有阴影部分表示数据由主机向从机传送,无阴影部分则 表示数据由从机向主机传送。 A表示应答, A非表示非应答(高电平)。S表示起始信号, P表示终止信号。。
b、主机在第一个字节后,立即从从机读数据
c、在传送过程中,当需要改变传送方向时, 起始信号和从机地址都被重复产生一次,但 两次读/写方向位正好反相。
1.1
I2C串行总线概述
I2C总线是PHLIPS公司推出的一种串行总线,是具备多
主机系统所需的包括总线裁决和高低速器件同步功能的高
性能串行总线。
I2C总线只有两根双向信号线。一根是数据线SDA,另
一根是时钟线SCL。
I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均 为高电平。连到总线上的任一器件输出的低电平,都将使总 线的信号变低,即各器件的SDA及SCL都是线“与”关系。
移位操作
左移时最低位补0,最高位移入PSW的CY位 右ቤተ መጻሕፍቲ ባይዱ时最高位保持原数,最低位移除。
传送数据时,单片机首先发送一个字节的被写入器件的 存储区的首地址,收到存储器器件的应答后,单片机就逐个 发送各数据字节,但每发送一个字节后都要等待应答。 AT24C系列器件片内地址在接收到每一个数据字节地址后 自动加1,在芯片的“一次装载字节数”(不同芯片字节数不 同)限度内,只需输入首地址。装载字节数超过芯片的“一 次装载字节数”时,数据地址将“上卷”,前面的数据将被 覆盖。 当要写入的数据传送完后,单片机应发出终止信号以结 束写入操作。写入n个字节的数据格式 :
1.2
I2C总线的数据传送
一、数据位的有效性规定
I2C总线进行数据传送时,时钟信号为高电平 期间,数据线上的数据必须保持稳定,只有在时 钟线上的信号为低电平期间,数据线上的高电平 或低电平状态才允许变化。
二、起始和终止信号
SCL线为高电平期间,SDA线由高电平向低电 平的变化表示起始信号;SCL线为高电平期间, SDA线由低电平向高电平的变化表示终止信号。
主机可以采用不带I2C总线接口的单片机,如 80C51、AT89C2051等单片机,利用软件实现I2C 总线的数据传送,即软件与硬件结合的信号模拟。 一、典型信号模拟 为了保证数据传送的可靠性,标准的I2C总线的数 据传送有严格的时序要求。I2C总线的起始信号、终 止信号、发送“0”及发送“1”的模拟时序 :
(2)数据帧格式 I2C总线上传送的数据信号是广义的,既包括地址 信号,又包括真正的数据信号。
在起始信号后必须传送一个从机的地址(7位), 第8位是数据的传送方向位(R/T),用“0”表示主 机发送数据(T),“1”表示主机接收数据(R)。 每次数据传送总是由主机产生的终止信号结束。但 是,若主机希望继续占用总线进行新的数据传送, 则可以不产生终止信号,马上再次发出起始信号对 另一从机进行寻址。 在总线的一次数据传送过程中,可以有以下几种组 合方式:
I2C串行总线的组成及工作原理 修改 华兄
1 I2C串行总线的组成及工作原理
采用串行总线技术可以使系统的硬件设计大大简化、 系统的体积减小、可靠性提高。同时,系统的更改和 扩充极为容易。
常用的串行扩展总线有: I2C (Inter IC BUS)总 线、单总线(1-WIRE BUS)、SPI(Serial Peripheral Interface)总线及Microwire/PLUS等。
uchar Read_IIC(uchar add) { uchar temp; start(); Write_Byte(0xa0); ack(); Write_Byte(add); ack(); start(); Write_Byte(0xa1); ack(); temp=Read_Byte(); noack(); stop(); return temp; }
从机的地址由固定部分和可编程部分组成。在一个 系统中可能希望接入多个相同的从机,从机地址中 可编程部分决定了可接入总线该类器件的最大数目。 如一个从机的7位寻址位有4位是固定位,3位是可编 程位,这时仅能寻址8个同样的器件,即可以有8个 同样的器件接入到该I2C总线系统中。
2 80C51单片机I2C串行总线器件的接口 2.1 总线数据传送的模拟
四、总线的寻址 I2C总线协议有明确的规定:采用7位的寻址字 节(寻址字节是起始信号后的第一个字节)。 (1)寻址字节的位定义
D7~D1位组成从机的地址。D0位是数据 传送方向位,为“0”时表示主机向从机写 数据,为“1”时表示主机由从机读数据。
主机发送地址时,总线上的每个从机都将这7位地 址码与自己的地址进行比较,如果相同,则认为自 己正被主机寻址,根据R/T位将自己确定为发送器或 接收器。
void stop() { SDA=0; delay(); SCL=1; delay(); SDA=1; delay(); }
(3)应答信号
void ack() { uchar i=0; SCL=1; delay(); while((SDA==1)&&(i<250)) { i++; } SCL=0; delay(); }
(6)读一个字节
uchar Read_Byte() { uchar i,dat; SCL=0; delay(); SDA=1; delay(); for(i=0;i<8;i++) { SCL=1; delay(); dat=dat<<1; if(SDA) { dat++; } SCL=0; delay(); } return dat; }
每个接到I2C总线上的器件都有唯一的地 址。主机与其它器件间的数据传送可以是 由主机发送数据到其它器件,这时主机即 为发送器。由总线上接收数据的器件则为 接收器。
在多主机系统中,可能同时有几个主机企图启 动总线传送数据。为了避免混乱, I2C总线要通 过总线仲裁,以决定由哪一台主机控制总线。
在80C51单片机应用系统的串行总线扩展中, 我们经常遇到的是以80C51单片机为主机,其它 接口器件为从机的单主机情况。
起始和终止信号都是由主机发出的,在起始信号产生 后,总线就处于被占用的状态;在终止信号产生后,总线 就处于空闲状态。
连接到I2C总线上的器件,若具有I2C总线的硬件接口,则 很容易检测到起始和终止信号。
接收器件收到一个完整的数据字节后,有可能需要完成 一些其它工作,如处理内部中断服务等,可能无法立刻接收 下一个字节,这时接收器件可以将SCL线拉成低电平,从而 使主机处于等待状态。直到接收器件准备好接收下一个字节 时,再释放SCL线使之为高电平,从而使数据传送可以继续 进行。
(3)读出过程
单片机先发送该器件的7位地址码和写方向位“0” (“伪写”),发送完后释放SDA线并在SCL线上产生第9个 时钟信号。被选中的存储器器件在确认是自己的地址后,在 SDA线上产生一个应答信号作为回应。 然后,再发一个字节的要读出器件的存储区的首地址,收 到应答后,单片机要重复一次起始信号并发出器件地址和读 方向位(“1”),收到器件应答后就可以读出数据字节,每 读出一个字节,单片机都要回复应答信号。当最后一个字节 数据读完后,单片机应返回以“非应答”(高电平),并发 出终止信号以结束读出操作。
相关文档
最新文档