*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,I,2,C 总线规范,I2C 总线规范,1,I,2,C应用实例,小型视频记录器(硬盘录像机),I2C应用实例 小型视频记录器,2,视频记录器原理,CCIR-656数字视频总线,I2C控制总线,模拟视频,数字视频,视频记录器原理 CCIR-656数字视频总线模拟视频数字视,3,FIC8120与视频A/D接口,I2C总线,FIC8120与视频A/D接口I2C总线,4,FIC8120与视频A/D接口,CCIR-656 数字视频总线,I2C总线,FIC8120与视频A/D接口CCIR-656 数字视频,5,什么是I,2,C,I,2,C,即Inter IC,是Philips一种简单的双向两线总线,用于IC之间的信息通信,I,2,C只有两根信号线,因此最大程度简化了芯片之间的连接,使电路板的设计、制造更简单,I,2,C常用于处理器与外部控制器、处理器与串行存储器、甚至处理器与处理器之间的信息(命令)交互,什么是I2CI2C,即Inter IC,是Philips一,6,I,2,C常用术语,术语,描述,发送器,发送数据到总线的器件,接收器,从总线接收数据的器件,主机,初始化发送产生时钟信号和终止发送的器件,从机,被主机寻址的器件,多主机,同时有多于一个主机尝试控制总线但不破坏报文,仲裁,是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使报文不被破坏的过程,同步,两个或多个器件同步时钟信号的过程,I2C常用术语术语描述发送器发送数据到总线的器件接收器从总线,7,I,2,C特点,总线只有两个信号:SDA和SCL,I,2,C是一个多主设备总线,具有总线仲裁机制,总线上每个从设备具有唯一的地址,主设备根据地址选择操作的目的设备,总线定义三种传输速率:标准模式下可达100kbit/s;快速模式下可达400kbit/s;高速模式下可达3.4Mbit/s,片上滤波器可以滤去数据线上的毛刺,提高数据传输的可靠性,同一I,2,C总线上可以挂接的芯片数量只受到总线400pF最大负载电容限制,I2C特点总线只有两个信号:SDA和SCL,8,I,2,C信号,I,2,C总线由两个信号组成:SCL(串行时钟)和SDA(串行数据),SDA和SCL都是双向信号,电路中通过电阻上拉到正电源,总线空闲时都是高电平,SDA的数据位在SCL的同步下传输,同一I,2,C总线上各节点的SDA、SCL输出都是集电极开路(OC)或漏极开路(OD)的,信号具有“线与”功能,I2C信号I2C总线由两个信号组成:SCL(串行时钟)和SD,9,补充:OC与OD,线与:多个OC/OD门输出连在一起,其中一个为低,所有的都为低,补充:OC与OD线与:多个OC/OD门输出连在一起,其中一,10,I,2,C,总线信号连接原理,I2C总线信号连接原理,11,I,2,C拓扑结构,I2C拓扑结构,12,I,2,C电路实例,CPU,视频A/D,串行EEPROM,I2C电路实例CPU视频A/D串行EEPROM,13,I,2,C总线数据位传输,I,2,C是串行数据总线,SCL每个时钟周期传输一个数据位,数据传输过程中,SDA信号只有在SCL为低电平时才允许改变,数据传输过程中,SCL为高电平时,SDA必须保持稳定状态,I2C总线数据位传输I2C是串行数据总线,SCL每个时钟周期,14,I,2,C总线的起始与停止,空闲状态下,SCL和SDA都为高,SCL为高,SDA由高变低,表示传输起始,SCL为高,SDA由低变高,表示传输结束,START和STOP总是由Master发出,START发出后,I,2,C 进入busy状态,STOP发出后,I,2,C进入free状态,START,STOP,I2C总线的起始与停止空闲状态下,SCL和SDA都为高STA,15,I,2,C总线的设备寻址,I,2,C,总线从设备都有特定的地址,主设备根据地址寻址目标设备,主设备的身份不是固定的,主设备也可能作为从设备被别的主设备寻址,I,2,C,总线两种地址形式:7位地址和10位地址,I,2,C,地址由,I,2,C,总线委员会统一分配,I2C总线的设备寻址I2C总线从设备都有特定的地址,主设备根,16,I,2,C的7位设备地址,7位地址中,其中设备可实际使用的共有112个,有两组(0000 xxx和1111xxx)共16个地址被保留作为特殊用途,从设备地址,R/W#,说明,0000 000,0,广播呼叫地址,0000 000,1,起始字节,0000 001,x,CBUS地址,0000 010,x,保留给不同的总线格式,0000 011,x,保留到将来使用,0000 1xx,x,高速模式主设备码,1111 1xx,x,保留给将来使用,1111 0 xx,x,10位地址扩展,I2C的7位设备地址7位地址中,其中设备可实际使用的共有11,17,I,2,C的7位与10位设备地址,7位地址,10位地址,I2C的7位与10位设备地址7位地址10位地址,18,I,2,C的数据传输,一个字节8个二进制位,MSB在前,LSB在后,按位传输,每个字节后都要有一个应答位,应答由接收器发出,如果SLAVE因事(如处理中断)不能收/发下一个完整的字节,可将SCL拉到低电平,从而使Master进入等待状态,I2C的数据传输一个字节8个二进制位,MSB在前,LSB在后,19,I,2,C数据传输应答,时钟由master发出,响应脉冲期间,发送器释放SDA(置为高),响应脉冲期间,接收器把SDA置为低,I2C数据传输应答时钟由master发出,20,I,2,C设备寻址,起始命令之后,master紧跟着发出控制字节,其中包含slave地址和读写控制信息,START,STOP,地址,读/写,应答,数据1,应答,数据2,应答,I2C设备寻址起始命令之后,master紧跟着发出控制字节,,21,I,2,C可能的数据传输格式1,主机发送器发送到从机接收器传输的方向不会改变,I2C可能的数据传输格式1主机发送器发送到从机接收器传输的方,22,I,2,C可能的数据传输格式2,在第一个控制字节后,主机立即读从机数据。在第一次响应后,,主机发送器,变成,主机接收器,,,从机接收器,变成,从机发送器,第一次响应仍由从机产生。,I2C可能的数据传输格式2在第一个控制字节后,主机立即读从机,23,I,2,C可能的数据传输格式3,复合格式:传输改变方向的时侯起始条件和从机地址都会被重复,但R/W 位取反,读写方向改变,I2C可能的数据传输格式3复合格式:传输改变方向的时侯起始条,24,I,2,C的同步时钟,所有主机在SCL 线上产生它们自己的时钟来传输I,2,C 总线上的报文,数据只在时钟的高电平周期有效,不同device的SCL信号通过线与连接I,2,C,master 2 时钟,SCL实际状态,master 1 时钟,I2C的同步时钟所有主机在SCL 线上产生它们自己的时钟来传,25,I,2,C的仲裁,I,2,C没有中央主机,总线也没有任何定制的优先权,主机只能在总线空闲的时侯启动传送,当SCL 线是高电平时,仲裁在SDA 线发生;在其他主机发送低电平时,发送高电平的主机将断开它的数据输出级,因为总线上的电平与它自己的电平不相同,主设备1,主设备2,实际总线信号,I2C的仲裁I2C没有中央主机,总线也没有任何定制的优先权,26,I,2,C应用实例,24C01,嵌入式系统中广泛应用串行EEPROM,24Cxx是一个I,2,C接口串行EEPROM系列,24Cxx 包括:24C01(128B)、24C02(256B)、24C04(512B)、24C08(1024B)、24C16(2048B),下面以,24C01,为例进行讨论,I2C应用实例24C01 嵌入式系统中广泛应用串行EEP,27,I2C总线规范概要ppt课件,28,24C01 S-EEPROM,引脚名称,功能,说明,VCC,芯片的电源引脚,工作电压范围宽,如1.8V5.5V,不同厂家产品可能略有差别,VSS,信号地,SCL,I2C总线时钟信号,24C01是I,2,C总线上可读、可写的从设备,SDA,I2C总线数据信号,WP,芯片写保护信号,WP为高电平时,芯片被设置为写保护状态,只能读,不能写,A0、A1、A2,芯片I,2,C地址设置,对应着芯片I,2,C地址的低三位,没有外部连接时默认为“0”,24C01 S-EEPROM引脚名称功能说明VCC芯片的电源,29,24C01地址设置,24C01芯片I,2,C地址的高4位固定为“1010”,通过A0A2设置I,2,C地址的低三位,A0A2在没有外部连接时默认为“0”,若A0、A1、A2三个引脚悬空,这时芯片的7位I,2,C地址为“1010000”,通过对A0A2的设置,一个I,2,C总线上最多可挂接8个24C01芯片,24C01地址设置24C01芯片I2C地址的高4位固定为“1,30,24C01字节写操作,24C01有两种写模式:“,字节写,”和“,页写,”,在“字节写”模式下,,I,2,C,主设备(如微处理器)首先发出起始条件和24C01(从设备)的7位地址及读写标志位(此时该位为“0”),主设备收到24C01的响应位后,再向24C01发出8位需要写入数据的字节地址,主设备收到24C01另一个响应位后,发出要写入的数据,24C01再次发出响应位,随后主设备产生停止条件,而24C01开始内部数据的擦写,在内部擦写过程中,24C01不再响应主设备的任何操作,24C01字节写操作 24C01有两种写模式:“字节写”和“,31,24C01字节写操作过程,24C01字节写操作过程,32,24C01页写操作,“页写”模式下,24C01可一次写入8 个字节数据,数据“页写”操作的启动和“字节写”一样,不同之处在于主设备传送了1个字节数据后并不产生停止条件,而是连续再发送7个字节的数据,最后才给出停止条件,如果在发送停止条件之前主器件发送超过8个字节,最后面的数据会覆盖最前面的数据,在接收到8字节数据和主器件发送的停止条件后,24C01启动内部写周期将数据写到数据区,24C01页写操作“页写”模式下,24C01可一次写入8 个,33,24C01“立即地址读”,24C01有三种读操作:“,立即地址读,”、“,选择读,”和“,连续读,”,24C01内部有地址计数器,每次读一个字节数据后,地址计数器加1,指向下一个字节的地址,“立即地址读”操作中,主设备总线发出总线起始条件、从设备地址和读标志位(为“1”),对应地址上的24C01给出响应位后,将当前地址的一个字节数据发给主设备,主设备接收到一个字节的数据后,给出“非响应位”(即保持SDA为高电平),随后发出停止条件,结束总线操作,24C01“立即地址读”24C01有三种读操作:“立即地址,34,24C01“立即地址读”操作过程,24C01“立即地址读”操作过程,35,24C01“选择读”,主设备可以读24C01的任意地址,主设备首先向总线发出起始条件,并以,写操作,的形式寻址24C01,得到响应后,向24C01写入要写入的字节地址,再次得到24C01的响应后,主设备发出,重复起始条件,并用读操作的形式再次寻址24C01,24C01在发出响应位后,即可输出对应地址的一个字节数据,主设备在接收到需要的数据后,给出“非响应位”,结束本次总线操作,24C01“选择读”主设备可以读24C01的任意地址,36,24C01“选择读”操作过程,24C01“选择读”操作过程,37,24C01“连续读”,“连续读”操作可,通过“立即读”和“选择读”操作启动,在24C01发送完一个8位字节数据后,主设备产生一个响应位(单个字节的读操作中主设备发出“非响应位”),告知24C01主设备要求连续地读下一个字节的数据,对应主设备产生的每个响应位,24C01将发送一个8 位数据字节,当主设备不发送响应位、并发出停止位时结束此次总线“连续读”操作,24C01“连续读”“连续读”操作可