I2C总线24C08.ppt

上传人:hyn****60 文档编号:88435799 上传时间:2023-04-26 格式:PPT 页数:21 大小:440KB
返回 下载 相关 举报
I2C总线24C08.ppt_第1页
第1页 / 共21页
I2C总线24C08.ppt_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《I2C总线24C08.ppt》由会员分享,可在线阅读,更多相关《I2C总线24C08.ppt(21页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、I2C总线、总线、24C08存储器存储器I2C总线总线n nI I2 2C C总线(总线(总线(总线(Inter Integrated Circuit BusInter Integrated Circuit Bus):是):是):是):是PhilipsPhilips公司推出的串行总公司推出的串行总公司推出的串行总公司推出的串行总线标准(为二线制)。总线上扩展的外围器件及外设接口通过总线寻线标准(为二线制)。总线上扩展的外围器件及外设接口通过总线寻线标准(为二线制)。总线上扩展的外围器件及外设接口通过总线寻线标准(为二线制)。总线上扩展的外围器件及外设接口通过总线寻址,是具备总线仲裁和高低速设备

2、同步等功能的高性能多主机总线。址,是具备总线仲裁和高低速设备同步等功能的高性能多主机总线。址,是具备总线仲裁和高低速设备同步等功能的高性能多主机总线。址,是具备总线仲裁和高低速设备同步等功能的高性能多主机总线。n n I I2 2C C总线工作原理总线工作原理总线工作原理总线工作原理n n串行数据线串行数据线串行数据线串行数据线SDASDA和串行时钟线和串行时钟线和串行时钟线和串行时钟线SCLSCL构成的,可发送和接收数据。构成的,可发送和接收数据。构成的,可发送和接收数据。构成的,可发送和接收数据。n n所有挂接在所有挂接在所有挂接在所有挂接在I I2 2C C总线上的器件和接口电路都应具有

3、总线上的器件和接口电路都应具有总线上的器件和接口电路都应具有总线上的器件和接口电路都应具有I I2 2C C总线接口,且所总线接口,且所总线接口,且所总线接口,且所有的有的有的有的SDA/SCLSDA/SCL同名端相连。总线上所有器件要依靠同名端相连。总线上所有器件要依靠同名端相连。总线上所有器件要依靠同名端相连。总线上所有器件要依靠SDASDA发送的地址信发送的地址信发送的地址信发送的地址信号寻址,不需要片选线。号寻址,不需要片选线。号寻址,不需要片选线。号寻址,不需要片选线。n n特点:组成系统结构简单,占用空间小,芯片管脚的数量少,无需片特点:组成系统结构简单,占用空间小,芯片管脚的数量

4、少,无需片特点:组成系统结构简单,占用空间小,芯片管脚的数量少,无需片特点:组成系统结构简单,占用空间小,芯片管脚的数量少,无需片选信号,价格低。允许若干兼容器件共享总线,应用比较广泛。总线选信号,价格低。允许若干兼容器件共享总线,应用比较广泛。总线选信号,价格低。允许若干兼容器件共享总线,应用比较广泛。总线选信号,价格低。允许若干兼容器件共享总线,应用比较广泛。总线的长度可达的长度可达的长度可达的长度可达7.6m7.6m,传送速度可达,传送速度可达,传送速度可达,传送速度可达400kbps400kbps,标准速率为,标准速率为,标准速率为,标准速率为100kbps100kbps。支持。支持。

5、支持。支持多个组件。支持多主控器件(某时刻只能有一个主控器件)。多个组件。支持多主控器件(某时刻只能有一个主控器件)。多个组件。支持多主控器件(某时刻只能有一个主控器件)。多个组件。支持多主控器件(某时刻只能有一个主控器件)。I I2 2C C总总总总线上所有设备的线上所有设备的线上所有设备的线上所有设备的SDA,SCLSDA,SCL引脚必须外接上拉电阻。引脚必须外接上拉电阻。引脚必须外接上拉电阻。引脚必须外接上拉电阻。I2C总线工作原理总线工作原理n n典型的典型的典型的典型的I I I I2 2 2 2C C C C总线系统结构,如图所示。总线系统结构,如图所示。总线系统结构,如图所示。总

6、线系统结构,如图所示。I I I I2 2 2 2C C C C总线上可以挂接多个器件,总线上可以挂接多个器件,总线上可以挂接多个器件,总线上可以挂接多个器件,其中每个器件必须都支持其中每个器件必须都支持其中每个器件必须都支持其中每个器件必须都支持I I I I2 2 2 2C C C C总线通信协议。总线通信协议。总线通信协议。总线通信协议。典型的典型的I2C总线总线系系统结统结构构 I2C总线器件的寻址方式总线器件的寻址方式n n由于所有器件都通过由于所有器件都通过由于所有器件都通过由于所有器件都通过SCLSCL和和和和SDASDA连接在连接在连接在连接在I I2 2C C总线上,总线上,

7、总线上,总线上,因此,主器件在进行数据传输前需要通过寻址,因此,主器件在进行数据传输前需要通过寻址,因此,主器件在进行数据传输前需要通过寻址,因此,主器件在进行数据传输前需要通过寻址,选择需要通信的从器件。选择需要通信的从器件。选择需要通信的从器件。选择需要通信的从器件。I I2 2C C总线上所有外围器件总线上所有外围器件总线上所有外围器件总线上所有外围器件都需要有唯一的都需要有唯一的都需要有唯一的都需要有唯一的7 7位地址,由器件地址和引脚地址位地址,由器件地址和引脚地址位地址,由器件地址和引脚地址位地址,由器件地址和引脚地址两部分组成。两部分组成。两部分组成。两部分组成。n n器件地址是

8、器件地址是器件地址是器件地址是I I2 2C C器件固有的地址编码,器件出厂时器件固有的地址编码,器件出厂时器件固有的地址编码,器件出厂时器件固有的地址编码,器件出厂时就已经给定,不可更改。就已经给定,不可更改。就已经给定,不可更改。就已经给定,不可更改。n n引脚地址是由引脚地址是由引脚地址是由引脚地址是由I I2 2C C总线外围器件的地址引脚(总线外围器件的地址引脚(总线外围器件的地址引脚(总线外围器件的地址引脚(A2A2,A1A1,A0A0)决定,根据其在电路中接电源正极、接)决定,根据其在电路中接电源正极、接)决定,根据其在电路中接电源正极、接)决定,根据其在电路中接电源正极、接地或

9、悬空的不同,形成不同的地址代码。地或悬空的不同,形成不同的地址代码。地或悬空的不同,形成不同的地址代码。地或悬空的不同,形成不同的地址代码。I2C总线接口总线接口 EEPROM存储器存储器n n目前,市场上目前,市场上目前,市场上目前,市场上I I2 2C C总线接口器件有多种,例如总线接口器件有多种,例如总线接口器件有多种,例如总线接口器件有多种,例如A/DA/D转换器、转换器、转换器、转换器、D/AD/A转换器转换器转换器转换器(PCF8591PCF8591)、时钟芯片和存储器()、时钟芯片和存储器()、时钟芯片和存储器()、时钟芯片和存储器(24C0824C08)等。这里以典型的)等。这

10、里以典型的)等。这里以典型的)等。这里以典型的I I2 2C C总总总总线接口的存储器为例进行介绍。线接口的存储器为例进行介绍。线接口的存储器为例进行介绍。线接口的存储器为例进行介绍。n nI I2 2C C总线接口总线接口总线接口总线接口EEPROMEEPROM存储器是一种采用存储器是一种采用存储器是一种采用存储器是一种采用I I2 2C C总线接口的总线接口的总线接口的总线接口的串行总线存储串行总线存储串行总线存储串行总线存储器,这类存储器具有器,这类存储器具有器,这类存储器具有器,这类存储器具有体积小、引脚少、功耗低、工作电压范围宽等特体积小、引脚少、功耗低、工作电压范围宽等特体积小、引

11、脚少、功耗低、工作电压范围宽等特体积小、引脚少、功耗低、工作电压范围宽等特点点点点。目前,目前,目前,目前,AtmelAtmel、MicroChipMicroChip、NationalNational等公司均提供各种型号的等公司均提供各种型号的等公司均提供各种型号的等公司均提供各种型号的I I2 2C C总线接口的总线接口的总线接口的总线接口的串行串行串行串行EEPROMEEPROM存储器存储器存储器存储器。在在在在单片机系统中使用较多的单片机系统中使用较多的单片机系统中使用较多的单片机系统中使用较多的EEPROMEEPROM存储器是存储器是存储器是存储器是2424系列串行系列串行系列串行系列

12、串行EEPROMEEPROM。其具有型号多、容量大、。其具有型号多、容量大、。其具有型号多、容量大、。其具有型号多、容量大、支持支持支持支持I I2 2C C总线协议、占用单片机总线协议、占用单片机总线协议、占用单片机总线协议、占用单片机I/OI/O端口少,芯片扩展方便、读写简单端口少,芯片扩展方便、读写简单端口少,芯片扩展方便、读写简单端口少,芯片扩展方便、读写简单等优点。等优点。等优点。等优点。AT24C08的引脚的引脚结结构构 AT24C01AT24C01:128128字节(字节(1281288 8位);位);AT24C02AT24C02:256256字节(字节(2562568 8位);

13、位);AT24C04AT24C04:512512字节(字节(5125128 8位)位)AT24C08AT24C08:1K1K字节字节 (1K1K8 8位);位);AT24C16AT24C16:2K2K字节字节 (2K2K8 8位);位);AT24C32 4KAT24C32 4K字节字节 (4KX84KX8位)位)C51模拟模拟 I2C总线协议总线协议n n在实际应用中,往往遇到所使用的单片机没有在实际应用中,往往遇到所使用的单片机没有在实际应用中,往往遇到所使用的单片机没有在实际应用中,往往遇到所使用的单片机没有I I2 2C C总线接口,例如典总线接口,例如典总线接口,例如典总线接口,例如典

14、型的型的型的型的 5151系列单片机。为了让此类单片机用于操作系列单片机。为了让此类单片机用于操作系列单片机。为了让此类单片机用于操作系列单片机。为了让此类单片机用于操作I I2 2C C总线器件的能力,总线器件的能力,总线器件的能力,总线器件的能力,需要在程序模拟需要在程序模拟需要在程序模拟需要在程序模拟I I2 2C C总线数据传输协议。总线数据传输协议。总线数据传输协议。总线数据传输协议。I2C总线概述总线概述n nI I2 2C C总线采用两线制,由数据线总线采用两线制,由数据线总线采用两线制,由数据线总线采用两线制,由数据线SDASDA和时钟线和时钟线和时钟线和时钟线SCLSCL构成

15、。构成。构成。构成。I I2 2C C总线对数总线对数总线对数总线对数据通信时序进行了严格的定义。据通信时序进行了严格的定义。据通信时序进行了严格的定义。据通信时序进行了严格的定义。I2C总线数据操作总线数据操作n n在在在在I I2 2C C总线上,数据是伴随着时钟脉冲,一位一位地传送的,数据位总线上,数据是伴随着时钟脉冲,一位一位地传送的,数据位总线上,数据是伴随着时钟脉冲,一位一位地传送的,数据位总线上,数据是伴随着时钟脉冲,一位一位地传送的,数据位由低到高传送,每位数据占一个时钟脉冲。由低到高传送,每位数据占一个时钟脉冲。由低到高传送,每位数据占一个时钟脉冲。由低到高传送,每位数据占一

16、个时钟脉冲。I I2 2C C总线上的在时钟线总线上的在时钟线总线上的在时钟线总线上的在时钟线SCLSCL高电平期间,数据线高电平期间,数据线高电平期间,数据线高电平期间,数据线SDASDA的状态就表示要传送的数据,高电平为数据的状态就表示要传送的数据,高电平为数据的状态就表示要传送的数据,高电平为数据的状态就表示要传送的数据,高电平为数据1 1,低电平为数据,低电平为数据,低电平为数据,低电平为数据0 0。在数据传送时,。在数据传送时,。在数据传送时,。在数据传送时,SDASDA上数据的改变在时钟线为低上数据的改变在时钟线为低上数据的改变在时钟线为低上数据的改变在时钟线为低电平时完成,而电平

17、时完成,而电平时完成,而电平时完成,而SCLSCL为高电平时,为高电平时,为高电平时,为高电平时,SDASDA必须保持稳定,否则必须保持稳定,否则必须保持稳定,否则必须保持稳定,否则SDASDA上的上的上的上的变化会被当作起始或终止信号而致使数据传输停止。变化会被当作起始或终止信号而致使数据传输停止。变化会被当作起始或终止信号而致使数据传输停止。变化会被当作起始或终止信号而致使数据传输停止。I2C总线数据操作总线数据操作n nI2CI2C总线在传送数据过程中共有三种类型信号:开始信号、停止信号总线在传送数据过程中共有三种类型信号:开始信号、停止信号和应答信号。和应答信号。n n开始信号:开始信

18、号:开始信号:开始信号:SCLSCL保持高电平的状态下,保持高电平的状态下,SDASDA出现下降沿。出现开始信出现下降沿。出现开始信号以后,总线被认为号以后,总线被认为“忙忙”。n n停止信号:停止信号:停止信号:停止信号:SCLSCL保持高电平的状态下,保持高电平的状态下,SDASDA出现上升沿。停止信号过出现上升沿。停止信号过后,总线被认为后,总线被认为“空闲空闲”。n n应答信号:应答信号:应答信号:应答信号:接收数据的器件在接收到接收数据的器件在接收到8 8位数据后,向发送数据的器件位数据后,向发送数据的器件发出特定的低电平脉冲,表示已收到数据。发出特定的低电平脉冲,表示已收到数据。n

19、 n总线空闲:总线空闲:总线空闲:总线空闲:SCLSCL和和SDASDA都保持高电平。都保持高电平。n n总线忙:总线忙:总线忙:总线忙:在数据传送开始以后,在数据传送开始以后,SCLSCL为高电平的时候,为高电平的时候,SDASDA的数据必的数据必须保持稳定,只有当须保持稳定,只有当SCLSCL为低电平的时候才允许为低电平的时候才允许SDASDA上的数据改变。上的数据改变。I2C协议起始信号时序协议起始信号时序起始信号起始信号时时序序 起始信号用于开始起始信号用于开始I2CI2C总线通信。其中,起始信号是在时钟线总线通信。其中,起始信号是在时钟线SCLSCL为高电平为高电平 期间,数据期间,

20、数据SDASDA上高电平向低电平变化的下降沿信号。起始信号出现以后,上高电平向低电平变化的下降沿信号。起始信号出现以后,才可以进行后续的才可以进行后续的I2CI2C总线寻址或数据传输等总线寻址或数据传输等I2C协议终止信号时序协议终止信号时序n n终止信号用于终止终止信号用于终止终止信号用于终止终止信号用于终止I I2 2C C总线通信。其中,终止信号是在时钟线总线通信。其中,终止信号是在时钟线总线通信。其中,终止信号是在时钟线总线通信。其中,终止信号是在时钟线SCLSCL为高为高为高为高电平期间,数据线电平期间,数据线电平期间,数据线电平期间,数据线SDASDA上低电平到高电平变化的上升沿信

21、号。终止信上低电平到高电平变化的上升沿信号。终止信上低电平到高电平变化的上升沿信号。终止信上低电平到高电平变化的上升沿信号。终止信号一出现,所有号一出现,所有号一出现,所有号一出现,所有I I2 2C C总线操作都结束,并释放总线控制权。终止信号总线操作都结束,并释放总线控制权。终止信号总线操作都结束,并释放总线控制权。终止信号总线操作都结束,并释放总线控制权。终止信号的时序,的时序,的时序,的时序,终终止信号止信号时时序序 I2C协议应答信号时序协议应答信号时序n n应答信号用于表明应答信号用于表明应答信号用于表明应答信号用于表明I I2 2C C总线数据传输的结束。总线数据传输的结束。总线

22、数据传输的结束。总线数据传输的结束。I I2 2C C总线数据传送时,一总线数据传送时,一总线数据传送时,一总线数据传送时,一个字节数据传送完毕后都必须由主器件产生应答信号。主器件在第个字节数据传送完毕后都必须由主器件产生应答信号。主器件在第个字节数据传送完毕后都必须由主器件产生应答信号。主器件在第个字节数据传送完毕后都必须由主器件产生应答信号。主器件在第9 9个时钟位上释放数据总线个时钟位上释放数据总线个时钟位上释放数据总线个时钟位上释放数据总线SDASDA,使其处于高电平状态,此时从器件输,使其处于高电平状态,此时从器件输,使其处于高电平状态,此时从器件输,使其处于高电平状态,此时从器件输

23、出低电平拉低数据总线出低电平拉低数据总线出低电平拉低数据总线出低电平拉低数据总线SDASDA为应答信号。应答信号的时序,如图所示。为应答信号。应答信号的时序,如图所示。为应答信号。应答信号的时序,如图所示。为应答信号。应答信号的时序,如图所示。应应答信号答信号时时序序 I2C总线的传送格式总线的传送格式 I2C总线的传送格式为主从式,对系统中的某一器件来说有总线的传送格式为主从式,对系统中的某一器件来说有四种工作方式:主发送方式、从发送方式、主接收方式、从接四种工作方式:主发送方式、从发送方式、主接收方式、从接收方式。收方式。只讲只讲主发送从接收(单片机发送主发送从接收(单片机发送 24C08

24、接收)接收)主器件产生开始信号以后,发送的第一个字节为控制字节。前主器件产生开始信号以后,发送的第一个字节为控制字节。前七位为从器件的地址片选信号。最低位为数据传送方向位(高七位为从器件的地址片选信号。最低位为数据传送方向位(高电平表示读从器件,低电平表示写从器件),然后发送一个选电平表示读从器件,低电平表示写从器件),然后发送一个选择从器件片内地址的字节,来决定开始读写数据的起始地址。择从器件片内地址的字节,来决定开始读写数据的起始地址。接着再发送数据字节,可以是单字节数据,也可以是一组数据,接着再发送数据字节,可以是单字节数据,也可以是一组数据,由主器件来决定。从器件每接收到一个字节以后,

25、都要返回一由主器件来决定。从器件每接收到一个字节以后,都要返回一个应答信号(个应答信号(ASK=0)。)。主器件在应答时钟周期高电平期间释放主器件在应答时钟周期高电平期间释放SDA线,转由从器件控制,从器件在这个时钟周期的高电平期线,转由从器件控制,从器件在这个时钟周期的高电平期间必须拉低间必须拉低SDA线,并使之为稳定的低电平,作为有效的应答线,并使之为稳定的低电平,作为有效的应答信号。信号。控制字节控制字节 在起始条件之后,必须是器件的控制字节,其中,高四位在起始条件之后,必须是器件的控制字节,其中,高四位为器件类型识别符(不同的芯片类型有不同的定义,为器件类型识别符(不同的芯片类型有不同

26、的定义,E2PROM为为1010),接着三位为片选,最低位为读写控制位,为),接着三位为片选,最低位为读写控制位,为“1”时时为读操作,为为读操作,为“0”时为写操作。如下图所示。时为写操作。如下图所示。写操作写操作 写操作分为字节写和页面写两种操作,对于页面写,根据写操作分为字节写和页面写两种操作,对于页面写,根据芯片的一次装载的字节不同有所不同。页面写的地址、应答和芯片的一次装载的字节不同有所不同。页面写的地址、应答和数据传送的时序如下图所示。数据传送的时序如下图所示。读操作读操作 读操作有三种基本操作:当前地址读、随机读和顺序读。读操作有三种基本操作:当前地址读、随机读和顺序读。下图给出

27、的是顺序读的时序图。应当注意的是,为了结束读操下图给出的是顺序读的时序图。应当注意的是,为了结束读操作,主机必须在第作,主机必须在第9个周期间发出停止条件或者在第个周期间发出停止条件或者在第9个时钟周个时钟周期内保持期内保持SDA为高电平,然后发出停止条件为高电平,然后发出停止条件。I2C协议起始信号时序协议起始信号时序起始信号起始信号时时序序 起始信号用于开始起始信号用于开始I2CI2C总线通信。其中,起始信号是在时钟线总线通信。其中,起始信号是在时钟线SCLSCL为高电平为高电平 期间,数据期间,数据SDASDA上高电平向低电平变化的下降沿信号。起始信号出现以后,上高电平向低电平变化的下降

28、沿信号。起始信号出现以后,才可以进行后续的才可以进行后续的I2CI2C总线寻址或数据传输等总线寻址或数据传输等void start()/void start()/开始位开始位 SDA=1;/SDA SDA=1;/SDA初始化为高电平初始化为高电平“1 1”SCL=1;/SCL=1;/开始数据传送时,要求开始数据传送时,要求SCLSCL为高电平为高电平“1 1”_ _nopnop_();/_();/等待一个机器周期等待一个机器周期_ _nopnop_();/_();/等待一个机器周期等待一个机器周期_ _nopnop_();/_();/等待一个机器周期等待一个机器周期_ _nopnop_();/

29、_();/等待一个机器周期等待一个机器周期_ _nopnop_();/_();/等待一个机器周期等待一个机器周期SDA=0;/SDASDA=0;/SDA的下降沿被认为是开始信号的下降沿被认为是开始信号_ _nopnop_();/_();/等待一个机器周期等待一个机器周期_ _nopnop_();/_();/等待一个机器周期等待一个机器周期_ _nopnop_();/_();/等待一个机器周期等待一个机器周期_ _nopnop_();/_();/等待一个机器周期等待一个机器周期 _ _nopnop_();/_();/等待一个等待一个机器周期机器周期SCL=0;/SCLSCL=0;/SCL为低电平

30、时,为低电平时,SDASDA上数据才允许变化上数据才允许变化(即允许以后的数据传递)即允许以后的数据传递)I2C协议终止信号时序协议终止信号时序n n终止信号用于终止终止信号用于终止终止信号用于终止终止信号用于终止I I2 2C C总线通信。其中,终止信号是在时钟线总线通信。其中,终止信号是在时钟线总线通信。其中,终止信号是在时钟线总线通信。其中,终止信号是在时钟线SCLSCL为高为高为高为高电平期间,数据线电平期间,数据线电平期间,数据线电平期间,数据线SDASDA上低电平到高电平变化的上升沿信号。终止信上低电平到高电平变化的上升沿信号。终止信上低电平到高电平变化的上升沿信号。终止信上低电平

31、到高电平变化的上升沿信号。终止信号一出现,所有号一出现,所有号一出现,所有号一出现,所有I I2 2C C总线操作都结束,并释放总线控制权。终止信号总线操作都结束,并释放总线控制权。终止信号总线操作都结束,并释放总线控制权。终止信号总线操作都结束,并释放总线控制权。终止信号的时序,的时序,的时序,的时序,终终止信号止信号时时序序 void stop()/void stop()/停止位停止位 SDA=0;/SDASDA=0;/SDA初始化为低电平初始化为低电平“0 0”SCL=1;/SCL=1;/结束数据传送时,要求结束数据传送时,要求SCLSCL为高电平为高电平“1 1”_ _nopnop_(

32、);/_();/等待一个机器周期等待一个机器周期_ _nopnop_();/_();/等待一个机器周期等待一个机器周期_ _nopnop_();/_();/等待一个机器周期等待一个机器周期_ _nopnop_();/_();/等待一个机器周期等待一个机器周期_ _nopnop_();/_();/等待一个机器周期等待一个机器周期SDA=1;/SDASDA=1;/SDA的上升沿被认为是结束信号的上升沿被认为是结束信号_ _nopnop_();/_();/等待一个机器周期等待一个机器周期_ _nopnop_();/_();/等待一个机器周期等待一个机器周期_ _nopnop_();/_();/等待一

33、个机器周期等待一个机器周期_ _nopnop_();/_();/等待一个机器周期等待一个机器周期_ _nopnop_();/_();/等待一个机器周期等待一个机器周期SDA=0;SDA=0;SCL=0;SCL=0;I2C协议应答信号时序协议应答信号时序n n应答信号用于表明应答信号用于表明应答信号用于表明应答信号用于表明I I2 2C C总线数据传输的结束。总线数据传输的结束。总线数据传输的结束。总线数据传输的结束。I I2 2C C总线数据传送时,一个字节数据传送总线数据传送时,一个字节数据传送总线数据传送时,一个字节数据传送总线数据传送时,一个字节数据传送完毕后都必须由主器件产生应答信号。

34、主器件在第完毕后都必须由主器件产生应答信号。主器件在第完毕后都必须由主器件产生应答信号。主器件在第完毕后都必须由主器件产生应答信号。主器件在第9 9个时钟位上释放数据总线个时钟位上释放数据总线个时钟位上释放数据总线个时钟位上释放数据总线SDASDA,使,使,使,使其处于高电平状态,此时从器件输出低电平拉低数据总线其处于高电平状态,此时从器件输出低电平拉低数据总线其处于高电平状态,此时从器件输出低电平拉低数据总线其处于高电平状态,此时从器件输出低电平拉低数据总线SDASDA为应答信号。应答信号的为应答信号。应答信号的为应答信号。应答信号的为应答信号。应答信号的时序,如图所示。时序,如图所示。时序

35、,如图所示。时序,如图所示。应应答信号答信号时时序序 bit Ask()/bit Ask()/检测应答检测应答 bit bit ack_bitack_bit;/;/储存应答位储存应答位 SDA=1;SDA=1;/发送设备(主机)发送设备(主机)/应在时钟脉冲的高电平期间应在时钟脉冲的高电平期间(SCL=1)(SCL=1)释放释放SDASDA线,线,/以让以让SDASDA线转由接收设备线转由接收设备(AT24Cxx)(AT24Cxx)控制控制_ _nopnop_();/_();/等待一个机器周期等待一个机器周期 _ _nopnop_();/_();/等待一个机器周期等待一个机器周期 SCL=1;

36、/SCL=1;/根据上述规定,根据上述规定,SCLSCL应为高电平应为高电平_ _nopnop_();/_();/等待一个机器周期等待一个机器周期 _ _nopnop_();/_();/等待一个机器周期等待一个机器周期 _ _nopnop_();/_();/等待一个机器周期等待一个机器周期 _ _nopnop_();/_();/等待一个机器周期等待一个机器周期_ _nopnop_();/_();/等待一个机器周期等待一个机器周期 ack_bitack_bit=SDA;/=SDA;/接受设备(接受设备(AT24Cxx)AT24Cxx)向向SDASDA送低电平,送低电平,/表示已经接收到一个字节表

37、示已经接收到一个字节/若送高电平,表示没有接收到,传送异常若送高电平,表示没有接收到,传送异常 结束发送结束发送SCL=0;/SCLSCL=0;/SCL为低电平时,为低电平时,/SDA /SDA上数据才允许变化上数据才允许变化(即允许以后的数据传递)即允许以后的数据传递)return return ack_bitack_bit;/;/返回返回AT24CxxAT24Cxx应答位应答位 写操作写操作 写操作分为字节写和页面写两种操作,写操作分为字节写和页面写两种操作,在字节写模式下在字节写模式下 主器件发送起始命令和从器件地址信息主器件发送起始命令和从器件地址信息 R/WR/W位置零位置零 给从器

38、件给从器件 在从器件产生在从器件产生应答信号后应答信号后 主器件发送主器件发送1616的字节地址的字节地址 主器件在收到从器件的另一个应答信号后主器件在收到从器件的另一个应答信号后 再发送数据到被寻址的存再发送数据到被寻址的存储单元储单元 再次应答再次应答 并在主器件产生停止信号后并在主器件产生停止信号后开始内部数据的擦写开始内部数据的擦写 在内部擦写过程中在内部擦写过程中 从器件不再应答主器件的任何请求从器件不再应答主器件的任何请求 void void WriteCurrent(unsignedWriteCurrent(unsigned char y)char y)start start()

39、;();unsigned char i;unsigned char i;for(ifor(i=0;i 8;i+)=0;i 8;i+)/循环移入循环移入8 8个位个位 SDA=(bit)(y&0 x80);/SDA=(bit)(y&0 x80);/通过按位通过按位“与与”运算将最高位数据送到运算将最高位数据送到S/S/因为传送时高位在前,低位在后因为传送时高位在前,低位在后_ _nopnop_();/_();/等待一个机器周期等待一个机器周期 SCL=1;/SCL=1;/在在SCLSCL的上升沿将数据写入的上升沿将数据写入AT24Cxx AT24Cxx _ _nopnop_();/_();/等待

40、一个机器周期等待一个机器周期 _ _nopnop_();/_();/等待一个机器周期等待一个机器周期 SCL=0;/SCL=0;/将将SCLSCL重新置为低电平,以在重新置为低电平,以在SCSC线形成传送数据所需的个脉冲线形成传送数据所需的个脉冲y=1;/y=1;/将将y y中的各二进位向左移一位中的各二进位向左移一位 读读操操作作有有三三种种基基本本操操作作:当当前前地地址址读读、随随机机读读和和顺顺序序读读。下下图图给给出出的的是是顺顺序序读读的的时时序序图图。应应当当注注意意的的是是,为为了了结结束束读读操操作作,主主机机必必须须在在第第9个个周周期期间间发发出出停停止止条条件件或或者者

41、在在第第9个个时时钟钟周周期期内内保保持持SDA为为高高电电平平,然然后后发出停止条件发出停止条件。unsigned char unsigned char ReadDataReadData()/()/从从AT24CxxAT24Cxx移入数据到移入数据到MCUMCU unsigned char i;unsigned char i;unsigned char x;/unsigned char x;/储存从储存从AT24CxxAT24Cxx中读出的数据中读出的数据for(ifor(i=0;i 8;i+)=0;i 8;i+)SCL=1;/SCL SCL=1;/SCL置为高电平置为高电平x=1;/x=1

42、;/将将x x中的各二进位向左移一位中的各二进位向左移一位x|=(unsigned x|=(unsigned char)SDAchar)SDA;/;/将将SDASDA上的数据通过按位上的数据通过按位“或或“运算存入运算存入x x中中SCL=0;/SCL=0;/在在SCLSCL的下降沿读出数据的下降沿读出数据 return(xreturn(x);/);/将读取的数据返回将读取的数据返回 unsigned char unsigned char ReadCurrentReadCurrent()()unsigned char x;unsigned char x;start();/start();/开始数据传递开始数据传递WriteCurrent(OP_READWriteCurrent(OP_READ););/选择要操作的选择要操作的AT24CxxAT24Cxx芯片,芯片,/并告知要读其数据并告知要读其数据Ask();Ask();x=x=ReadDataReadData();/();/将读取的数据存入将读取的数据存入x xstop();/stop();/停止数据传递停止数据传递return x;/return x;/返回读取的数据返回读取的数据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com