资源描述
,单击此处编辑母版标题样式,第11章,I,2,C串行协议及I,2,C器件应用,11.1 I,2,C串行总线通信协议,11.2 I,2,C串行总线典型器件,主讲内容,11.3 I,2,C串行总线的应用,11.1 I,2,C串行总线通信协议,I,2,C,是,Philips,公司推出的在器件间实现同步串行数据传输的标准总线。以其连接简单、节省I/O口线、缩减空间等特点而得以广泛应用。,如I,2,C 的RAM、E,2,PROM、LCD、LED、A/D、D/A、时钟等器件。,I,2,C,串行总线的主要特征如下:,1)两条传输线:,一条串行数据线(,SDA,),一条串行时钟线(,SCL,)。,2)总线模式多:,主发送模式、主接收模式、从发送模式、从接收模式。,3)器件唯一寻址:,I,2,C,总线上器件都有唯一地址,主机可对各从机寻址。,4)检测和仲裁:,冲突检测和仲裁机制保证数据传输完整性和稳定性。,5)传输速率高:,标准模式、快速模式和高速模式的传输率分别是,100k,、,400k,、,3.4M bps,。,6)漏极开路:,总线要接上拉电阻。连接到总线上的,IC,数量仅受到最大电容,400pF,的限制。,11.1.1 I,2,C串行总线的基本特征,11.1 I,2,C串行总线通信协议,I,2,C接口传输具有线“与”功能。,SDA和SCL两条线,均为双向I/O口,通过上拉电阻接正电源。当总线空闲时,两根线都是高电平,连接总线器件的输出极必须是集电极或漏极开路。,I,2,C,SDA上的数据仅在SCL为低电平时才能改变。当SCL为高电平时,SDA的改变表示“开始”和“停止”状态。,在时钟高电平期间,数据线上必须保持稳定的逻辑电平。只有在时钟线低电平时,才允许数据线的电平变化。,I,2,C总线是一个半双工、多主器件的总线。,总线上发送数据的发送器(也叫主器件)与接收数据的接收器(也叫从器件)取决于当时数据传送的方向。当一个器件发送数据时,其它被寻址器件均作为接收器。,11.1.2.I,2,C传输接口的特性,11.1 I,2,C串行总线通信协议,完整的时序过程由,起始信号,、,器件地址信号,、,应答信号ACK,、,字节数据信号,和,停止信号,等几部分组成,。,11.1.3 I,2,C的时序,图11,-,1 I,2,C,总线数据传输时序,11.1 I,2,C串行总线通信协议,(1)起停信号定义,I,2,C,协议中,起始信号(,S,)和停止信号(,P,)都由主器件产生。,起始信号定义:,当,SCL,线,为高电平时,SDA由高到低的,负跳变,;在总线上出现了起始信号,就认为总线处于工作状态。,停止信号定义:,当SCL线为高电平时,,SDA,由低到高的,正跳变,;总线上出现停止信号,被认为总线是处在不忙或空闲状态。,图11,-2,起始和停止信号时序,1 起始和停止信号,11.1 I,2,C串行总线通信协议,(2)起停信号的检测,连接到总线上的设备具有I,2,C硬件接口,检测起、停信号由,硬件自动完成,。,连接到总线上的设备没有I,2,C硬件接口,检测起、停信号必须由,软件检测,跳变。,START_IC:,CLR SCL ;SCL由高变低,因为SCL低电平时才允许SDA更改 NOP ;加入空指令延时以确保信号可靠 NOP SETB SDA ;SDA先高NOP NOP SETB SCL ;SCL高,起始条件建立时间大于4.7usACALL DS4.7uSCLR SDA ;SDA低,起始条件锁定时大于4usACALL DS4uSCLR SCL ;SCL低,钳住总线,准备发数据NOP RET,图11-3 启动信号时序,11.1 I,2,C串行总线通信协议,(2)起停信号的检测,STOP_IC:,CLR SCL ;SCL低NOP CLR SDA NOP NOP SETB SCL ;发送结束条件的时钟信号,ACALL DS4.7uS;结束总线时间大于4us(取4.7us)SETB SDA ;结束总线ACALL DS4.7uS;保证终止和起始空闲大于4.7usNOP RET,图11-4 停止信号时序,11.1 I,2,C串行总线通信协议,2,器件地址,A,0,A,1,A,2,0,1,0,1,如24C02 的地址格式如下,W,R,器件地址具有唯一性,发送器发出起始信号后,必须紧跟发送一个字节(8位)器件地址信号;,地址信号用SLAVE 表示。SLAVE 是7位的器件地址位D,7,D,1,,D,0,位是数据传送方向位,用 表示读/写选择位;,SLAVE由一个4位固定部分和3位可编程部分组成。固定部分为器件的标识,表明了器件的类型,出厂时固定的。可编程部分为器件的引脚地址,视硬件接线而定。,W,R,W,R,11.1 I,2,C串行总线通信协议,表,7,-,3,常用外围器件的节点地址,类型,型号,器件地址,256x8/128x8,静态,RAM,PCF8570/71,256x8,静态,RAM,PCF8570,256B E,2,PROM,PCF8582,256B E,2,PROM,AT24C02,8,位,I/O,口,PCF8574A,4,位,LED,驱动控制器,SAA1064,4,通道,8,位,A/D,、,1,路,D/A,转换器,PCF8591,1001 A,2,A,1,A,0,01110 A,1,A,0,0100 A,2,A,1,A,0,1010 A,2,A,1,A,0,1010 A,2,A,1,A,0,1011 A,2,A,1,A,0,1010 A,2,A,1,A,0,11.1 I,2,C串行总线通信协议,3,应答与非应答信号,(1)应答信号与非应答信号定义,图11-5 应答与非应答信号,接收器,收到地址字节或一个字节数据后都要产生一个应答信号ACK。在第9 个时钟周期时将SDA 线拉低,表示收到一个8 位数据。,发送器,必须在这一时钟位上释放数据线SDA,使其处于高电平状态,以便接收器输出ACK应答信号,表示继续接收;若接收器输出高电平则为非应答信号(/ACK),表示结束接收。,发送器,接收数据时,它收到最后一个数据后,须向接收器发送一个非应答信号,使接收器释放SDA线,发送器产生终止信号,停止数据传送。,11.1 I,2,C串行总线通信协议,3,应答与非应答信号,(2)应答信号时序 ACK,在接收方,每收到一字节后便将SDA电平拉低,应答完成后,SCL=0,SDA=1。具体时序如下:,MACK_IC:,CLR SCL NOP CLR SDA ;在第9个SLC脉冲,将SDA置0NOP NOP SEIB SCL ;保持数据时间,即SCL为高时间大于ACALL DS4.7usCLR SCL NOP,NOPSETB SDA ;在SDA高或低的任何前提下,应答完成后,SCL=0,SDA=1NOP,RET,图11-6 应答信号ACK时序,11.1 I,2,C串行总线通信协议,3,应答与非应答信号,(3)非应答信号时序 /ACK,MNACK_IC:,CLR SCL,NOP,NOP,SETB SDA ;将SDA置1,NOP,NOP,SETB SCL,ACALL DS4.7uS,NOP ;保持数据时间,即SCL为高时间大于4.7us,CLR SCL,NOP SETB SDA NOP,RET,图11-7 非应答信号时序,11.1 I,2,C串行总线通信协议,4 数据字节信号,字节数位:,数据字节数没有限制,但是每字节必须是8位长度;,发送次序:,先发送最高位,每字节数据后必跟一位应答脉冲ACK;,等待状态:,接收器不能接收下一个字节时,可以把SCL线拉成低电平,迫使发送器处于等待状态。,图为多字节数据传输过程的完整时序。,图11-8 数据传输时序,连续写的两个字节之间最好是有10ms的延时。当然,也可以进行页写(PAGE WRITE),即一次性连续写8个字节,但采用页写方式时每个字节后要有一个应答信号。,11.1 I,2,C串行总线通信协议,(1)向IC卡写一字节 数据(WR_BYTE,),WR_BYTE:,MOV R2,#08;一字节8位数据,CLR SCL,NOP NOP,WR_BYTE1:RLC A;A.8-C,MOV SDA,C,;改变SDA上的数据 NOP,SETB SCL,;拉高SCL =4.7uSACALL DS4.7uS,CLR SCL,NOP NOP DJNZ R2,WR_BYTE1;依次发8位,图11-9 字节写时序图,SETB SDA,NOP,NOP,SETB SCL,CLR F0,NOP,NOP,MOV C,SDA ;回读IC卡的确认信号,JC WR_BYTE2,SETB F0 ;有应答位,WR_BYTE2:NOP ;非应答,CLR SCL,NOP,RET,11.1 I,2,C串行总线通信协议,(2)从IC卡读取一字节 数据(RD_BYTE,),RD_BYTE:,MOV R2,#08,SETB SDA,;设备SDA为读状态,CLR A ;清空A寄存器,NOP,NOP,RD_BTYE1:,SETB SCL,;时钟线为高,接收数据位,NOP,NOP,MOV C,SDA,;读取一位数据到进位位,图11-10 字节读时序图,RLC A ;左移数据到ACC.0,CLR SCL,;将SCL拉低时间大于4.7us,ACALL DS4.7uS,DJNZ R2,RD_BYTE1;依次读出8位数据到A中,RET ;读数据是无应答信号的,需要注意的是:读数据的器件不是通过确认状态来应答的,而是随后产生一个停止状态。,11.2 两线串行总线典型器件,1.AT24系列存贮器,I,2,C串行接口的EEPROM,目前用于IC卡的通用存贮器芯片多为EEPROM,其常用的协议主要有两线串行连接协议(I,2,C)和三线串行链接协议,其中比较常用的是ATMEL公司生产的AT24系列芯片,。,AT24系列主要有 AT24C01/02/04,非加密卡,工艺:采用CMOS工艺制造,内置有高压泵,2V5V的低电压工作。,封装:8脚DIP封装;,IC卡封装。,IC卡封装,对触点数目,位置,信号名称和功能都有明确规定,以保证兼容性.其中:C1(VCC)为电源;C2(RST)复位信号;C3(CLK)时钟脉冲;C4(RFU)待用;C5(GND)接地端;C6(VPP)编程电压,用于对EPROM编程;C7(I/O)数据输入输出端;C8(RFU)待用.有些系统中IC卡的C4和C8未用,可见卡上仅有六个触点.,引脚:SCL串行时钟;SDA串行数据,开漏极驱动;,(DIP封装),A2、A1、A0:器件/页面寻址,器件地址:1010 A2、A1、A0,11.2 两线串行总线典型器件,1.AT24系列存贮器,I,2,C串行接口的EEPROM,11.2 两线串行总线典型器件,1.AT24系列存贮器,I,2,C串行接口的EEPROM,产品型号,AT24C01,AT24C02,AT24C04,AT24C08,AT24C16,AT24C64,产品描述,1K位,2K位,4K位,8K位,16K位,64K位,内存组织形式,1288,2568,2568,10248,20488,81928,页写入方式,8字节,8字节,16字节,16字节,16字节,32字节,通讯协议,ISO/IEC7816-3同步协议,双行串行接口,工作频率,1MHz(,5v,),1MHz(2.7v),400MHz(1.8v),工作电压,5v10%;根据需求最低电压可至,1.8V,ICC电流,读:,1Ma,(最大),写:,3Ma,(最大),工作温度,0-70,根据需求可超出指定工作温度,写,/,擦除次数,1,000,000次,数据保持,100年,ESD保护,4000V,应用领域,数据保持、电话卡、校园、医疗保险等,11.2 两线串行总线典型器件,2.SLE 4442,2 线连接协议,(ISO7816),加密卡,(,磁生电供电),还有射频卡:,13.56M非接触IC卡 符合ISO14443 TYPE A+ISO7816 标准,ISO7816协议与IIC协议不相同!,SL
展开阅读全文