I2C串行接口技术课件.ppt
《I2C串行接口技术课件.ppt》由会员分享,可在线阅读,更多相关《I2C串行接口技术课件.ppt(52页珍藏版)》请在三一办公上搜索。
1、串行接口技术,I2C串行总线I2C串行总线是Philips公司提出的一种板内芯片间串行总线。它用两根连线即可方便地实现外围器件扩展。I2C总线上数据传送的基本单位为字节,采用高位在前的格式。主从器件之间一次传输的数据称为一帧,由启动信号、若干个数据字节和应答位以及停止信号组成。,第6章 串行接口技术,I2C串行总线原理与应用 串行单总线原理与应用 串行模/数转换器 I2C总线键盘/显示器接口芯片ZLG7290 I2C总线串行8位数/模转换器MAX517 基于I2C总线的ADS1100型16位模/数转换器,I2C串行总线原理与应用,I2C串行总线的组成与工作原理 I2C串行总线的接口设计 I2C
2、串行总线器件 应用举例 实践与思考,I2C串行总线的组成与工作原理,I2C串行总线的基本特性I2C总线的数据传送,I2C串行总线的基本特性,I2C总线是Philips公司推出的一种串行总线,是具备多主机系统所需的包括总线仲裁和高低速器件同步功能的高性能串行总线。它具有如下基本特性。,I2C串行总线只有两根双向信号线I2C总线是一个多主机总线I2C总线的SDA和SCL是双向的,均通过上拉电阻接正电源I2C总线的总线仲裁,I2C串行总线只有两根双向信号线,一根是数据线SDA,另一根是时钟线SCL。所有连接到I2C总线上的器件的数据线都接到SDA线上,各器件的时钟线均接到SCL线上。I2C总线的基本
3、结构如图所示。,I2C总线是一个多主机总线,总线上可以有一个或多个主机,总线运行由主机控制。这里所说的主机是指启动数据的传送(发起始信号)、发出时钟信号、传送结束时发出终止信号的器件。通常,主机由各种单片机或其他微处理器充当。被主机寻访的器件叫从机,它可以是各种单片机或其他微处理器,也可以是其他器件,如存储器、LED或LCD驱动器、A/D或D/A转换器、时钟日历器件等。,I2C总线的SDA和SCL是双向的均通过上拉电阻接正电源,如图所示,当总线空闲时,两根线均为高电平。连到总线上的器件(相当于结点)的输出级必须是漏极或集电极开路的,任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及
4、SCL都是线“与”关系。SCL线上的时钟信号对SDA线上各器件间数据的传输起同步作用。SDA线上数据的起始、终止及数据的有效性均要根据SCL线上的时钟信号来判断。,在标准I2C普通模式下,数据的传输率为100Kbps,高速模式下可达400Kbps。连接的器件越多,电容值越大,总线上允许的器件数以总线上的电容量不超过400pF为限。,I2C总线的总线仲裁,在多主机系统中,可能同时有几个主机企图启动总线传送数据。为了避免混乱,I2C总线要通过总线仲裁,以决定由哪一台主机控制总线。首先,不同主器件(欲发送数据的器件)分别发出的时钟信号在SCL线上“线与”产生系统时钟:其低电平时间为周期最长的主器件的
5、低电平时间,高电平时间则是周期最短主器件的高电平时间。仲裁的方法是:各主器件在各自时钟的高电平期间送出各自要发送的数据到SDA线上,并在SCL的高电平期间检测SDA线上的数据是否与自己发出的数据相同。,I2C总线的数据传送,数据位的有效性规定 起始和终止信号数据传送格式 I2C总线的时序特性 I2C总线的寻址,数据位的有效性规定,I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定。只有在时钟线上的信号为低电平期间,数据线上的高电平或低电工状态才允许变化,如图所示。,起始和终止信号,根据I2C总线协议的规定,SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号
6、;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。起始和终止信号如图所示。,数据传送格式,(1)字节传送与应答,利用I2C总线进行数据传送时,传送的字节数是没有限制的,但是每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位),如图所示:,应答时序图,数据传送格式,(2)数据帧格式,在总线的一次数据传送过程中,可以有以下几种组合方式:,主机向从机发送数据,数据传送方向在整个传送过程中不变。,主机在第一个字节后,立即由从机读数据。,在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两
7、次读/写方向位正好反向。,注:有阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送。A表示应答,表示非应答(高电平)。S表示起始信号,P表示终止信号。,I2C总线的时序特性,为了保证数据传送的可靠性,标准I2C总线的数据传送有严格的时序要求。I2C总线的起始信号、终止信号、发送“0”及发送“1”的模拟时序如图所示。,典型信号时序图,I2C总线的时序特性,下表为I2C总线的时序特性。由表可见,除了SDA、SCL线的信号下降时间为最大值外,其他参数只有最小值。这表明在I2C总线的数据传送中,可以利用时钟同步机制展宽低电平周期,迫使主器件处于等待状态,使传送速率降低。,I2C总线
8、的寻址,I2C总线协议有明确的规定:采用7位的寻址字节(寻址字节是起始信号后的第一个字节)。,(1)寻址字节的位定义,D7D1位组成从机的地址。D0位是数据传送方向位,为“0”时表示主机向从机写数据,为“1”时表示主机由从机读数据。主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据R/W位将自己确定为发送器或接收器。从机的地址由固定部分和可编程部分组成。在一个系统中可能希望接入多个相同的从机,从机地址中可编程部分决定了可接入总线该类器件的最大数目。如一个从机的7位寻址位有4位是固定位,3位是可编程位,这时仅能寻址8个同样的器件,即可以有
9、8个同样的器件接入到该I2C总线系统中。,I2C总线的寻址,(2)寻址字节中的特殊地址,总线规定了一些特殊地址。其中两组固定地址编号0000和1111已被保留作为特殊用途,如表所示。,I2C总线的寻址,起始信号后第一字节的8位为“0000 0000”时,称为通用呼叫地址,即用于寻访接到I2C总线上所有器件的地址。通用呼叫地址的用意在第二字节中加以说明。格式为:,第二字节为06H时,所有能响应通用呼叫地址的从机器件复位,并由硬件装入从机地址的可编程部分。能响应命令的从机器件复位时不拉低SDA和SCL线,以免堵塞总线。,第二字节为04H时,所有能响应通用呼叫地址并通过硬件来定义其可编程地址的从机器
10、件将锁定地址中的可编程位,但不进行复位。如果第二字节的方向位B为“1”,则这两个字节命令称为硬件通用呼叫命令。也就是说这是由“硬件主器件”发出的。,I2C总线的寻址,所谓硬件主器件,就是不能发送所要寻访从器件地址的发送器,如键盘扫描器等。制造这种器件时无法知道信息应向哪儿传送,所以,它发出硬件呼叫命令,在这第二字节的高7位说明自己的地址。接在总线上的智能器件,如单片机或其他微处理器能识别这个地址,并与之传送数据。硬件主器件作为从机使用时,也用这个地址作为从机地址。格式为:,在系统中另一种选择可能是系统复位时硬件主机器件工作在从机接收器方式,这时由系统中的主机先告诉硬件主机器件数据应送往的从机器
11、件地址,当硬件主机器件要发送数据时,就可以直接向指定从机器件发送数据了。,I2C总线的寻址,(3)起始字节,起始字节是提供给没有I2C总线接口的单片机查询I2C总线时使用的特殊字节。于是单片机的速度与硬件接口器件的速度存在较大的差别,因此I2C总线上的数据传送要由一个较长的起始过程加以引导,如图所示。,起始引导字节,I2C串行总线的接口设计,I2C串行总线的接口设计分两种情况:一种是单片机自身带有I2C总线硬件接口,另一种是早期单片机不含I2C总线硬件接口。Philips公司推出的P89C66X系列单片机内含I2C总线逻辑,提供了符合I2C总线规范的串行接口,具有性能稳定、速度快、使用方便等优
12、点;而Philips公司推出的P8XC552、P8XC654以及P8XC652系列单片机不具有I2C总线逻辑,在外接I2C总线接口器件,需要模拟实现。,P89C66X系列单片机I2C总线接口 I2C总线模拟硬件接口软件设计,P89C66X系列单片机I2C总线接口,1.引脚设计,P89C66X系列单片机有44脚PLCC和LQFP两种封装,其中P1.6/SCL和P1.7/SDA分别为I2C总线的时钟线和数据线,且因为芯片内部采用漏级开路工艺,所以当用户将这两个引脚用做I2C总线接口时,需外接上拉电阻,如图所示。,P89C66X系列单片机I2C总线接口引脚图,P89C66X系列单片机I2C总线接口,
13、2.P89C66X系列单片机I2C总线的控制寄存器,P89C66X系列单片机内部与I2C总线有关的寄存器共有4个,通过对这4个寄存器的编程实现I2C总线功能,如表所示:,地址寄存器(S1ADR),该寄存器用于保存单片机本身的从地址,CPU可以对该寄存器进行读写操作。其中高7位为地址本身,最低位为通用地址识别标志GC。当单片机作为主器件存在时,该寄存器不起作用;当单片机作为从器件存在的时候,接收到的地址字节的高7位将与S1ADR的值相比较,如果相同则接收后面的数据信息。此外,如果通用地址识别标志GC为0,单片机不识别通用调用地址(如广播地址);GC为1时,单片机识别通用调用地址。,控制寄存器(S
14、1CON),该寄存器用于对I2C总线进行设置,各功能位含义如下:,ENS1:I2C总线使能位。当ENS1为0时,SDA和SCL输出为高阻状态;当ENS1为1时,I2C总线使能。STA:I2C总线起始条件标志位。当STA为0时,单片机不产生起始条件,当STA为1时,单片机首先利用硬件检测I2C总线状态。STO:I2C总线停止条件标志位。当STO为0时,单片机不产生停止条件;当STO为1时,如果单片机处于主模式,则立刻向I2C总线发送停止条件,如果单片机处于从模式,则可以从错误条件中恢复出来。STO位可由硬件清零。,控制寄存器(S1CON),SI:串行中断标志位。当SI标志位置位,并且EA和ES1
15、都置位时,产生一个中断请求。单片机就可以对接收到的数据进行处理,处理完成后,SI必须由软件清零。AA:声明应答标志位。当AA为1时,如果器件接收到自身的从地址(或广播地址),或者接收到一个完整的数据字节之后,将会在SCL的响应时钟脉冲期间保持SDA为低电平,即发送应答信号。当AA为0时,器件接收到一个完整的数据字节之后,在SCL的响应时钟脉冲期间保持SDA为高电平,即发送非应答信号。CR0、CR1和CR2:串行时钟速率选择位。这3位决定了器件在主模式下的串行时钟速率,其值与单片机工作频率有关,如下表所示。,控制寄存器(S1CON),I2C总线串行时钟速率选择,速率单位:kHz,状态寄存器(S1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- I2C 串行 接口 技术 课件

链接地址:https://www.31ppt.com/p-3864022.html