您好,欢迎访问三七文档
1.I2C串行总线概述I2C总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。图1I2C总线系统I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。本实验取Rp=4.7K,具体阻值根据信号需要陡度,一般阻值越小,上升沿越陡。图2I2C上拉电阻及线“与”关系2.I2C总线的数据传送1、数据位的有效性规定:I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。图3I2C有效数据位2、起始和终止信号:SCL线为高电平期间,SDA线由高电平向低电平的变化(下降沿)表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化(上升沿)表示终止信号。图4I2C起始与终止信号3、数据传送格式:字节传送与应答:每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。图5I2C字节传送与应答4、在总线的一次数据传送过程中,可以有以下几种组合方式:a、主机向从机发送数据,数据传送方向在整个传送过程中不变:图6主机写方式注:有阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送。A表示应答,A非表示非应答(高电平)。S表示起始信号,P表示终止信号。b、主机在第一个字节后,立即从从机读数据图7主机读方式c、在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向位正好反相。图8主机读写混合方式3.IIC协议时序图9I2C严格时序要求1、设备地址为0xa0的芯片,向其内存地址(address)写入数据(Data):图10I2C向从机设备特定内存写入数据2、设备地址为0xa0的芯片,将其内存地址(addressn)的数据(Data)读出到dataBuffer:图11I2C向从机设备特定内存读取数据4.测试R2:ThereadcommandshouldmeetbelowrequirementParameterReq.[ns]tHD;STAholdtimestartcondition600tLOWlowperiodofSCL1300tHIGHhighperiodofSCL600tSU;DATdatasetuptime100tRSCLSCLrisetime20tRSCL300tFSCLSCLfalltime20tFSCL300tRDATSDArisetime20tRDAT300tFDATSDAfalltime20tFDAT300tSU;STOsetuptimestopcondition600tHD;DATdataholdtime0-900TBUFBusFreeTimeBUFBetweenStop-Start1300FsclClockFrequency400KHzR3:TheWritecommandshouldmeetbelowrequirementParameterReq.[ns]tHD;STAholdtimestartcondition600tLOWlowperiodofSCL1300tHIGHhighperiodofSCL600tSU;DATdatasetuptime100tRSCLSCLrisetime300tFSCLSCLfalltime300tRDATSDArisetime300tFDATSDAfalltime300tSU;STOsetuptimestopcondition600tHD;DATdataholdtime0-900TBUFBusFreeTimeBUFBetweenStop-Start1300FsclClockFrequency400KHz5.经验使用过AT24C04E2PROM芯片,用GPIO口软件模拟时序。
本文标题:IIC时序
链接地址:https://www.777doc.com/doc-5585035 .html