IIC串行协议及器件ppt课件.ppt

上传人:牧羊曲112 文档编号:1973119 上传时间:2022-12-29 格式:PPT 页数:25 大小:774KB
返回 下载 相关 举报
IIC串行协议及器件ppt课件.ppt_第1页
第1页 / 共25页
IIC串行协议及器件ppt课件.ppt_第2页
第2页 / 共25页
IIC串行协议及器件ppt课件.ppt_第3页
第3页 / 共25页
IIC串行协议及器件ppt课件.ppt_第4页
第4页 / 共25页
IIC串行协议及器件ppt课件.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《IIC串行协议及器件ppt课件.ppt》由会员分享,可在线阅读,更多相关《IIC串行协议及器件ppt课件.ppt(25页珍藏版)》请在三一办公上搜索。

1、第11章 I2C串行协议及I2C器件应用,11.1 I2C串行总线通信协议,11.2 I2C串行总线典型器件,主讲内容,11.3 I2C串行总线的应用,11.1 I2C串行总线通信协议,I2C是Philips公司推出的在器件间实现同步串行数据传输的标准总线。 以其连接简单、节省I/O口线、缩减空间等特点而得以广泛应用。 如I2C 的RAM、E2PROM、LCD、LED、A/D 、D/A 、时钟等器件。,I2C串行总线的主要特征如下:1)两条传输线:一条串行数据线(SDA),一条串行时钟线(SCL)。2)总线模式多:主发送模式、主接收模式、从发送模式、从接收模式。3)器件唯一寻址:I2C总线上器

2、件都有唯一地址,主机可对各从机寻址。4)检测和仲裁:冲突检测和仲裁机制保证数据传输完整性和稳定性。5)传输速率高:标准模式、快速模式和高速模式的传输率分别是100k 、 400k 、3.4M bps 。6)漏极开路:总线要接上拉电阻。连接到总线上的IC数量仅受到最大电容400pF的限制。,11.1.1 I2C串行总线的基本特征,11.1 I2C串行总线通信协议, I2C接口传输具有线“与”功能。SDA和SCL两条线,均为双向I/O口,通过上拉电阻接正电源。当总线空闲时,两根线都是高电平,连接总线器件的输出极必须是集电极或漏极开路。, I2C SDA上的数据仅在SCL为低电平时才能改变。当SCL

3、为高电平时,SDA的改变表示“开始”和“停止”状态。 在时钟高电平期间,数据线上必须保持稳定的逻辑电平。只有在时钟线低电平时,才允许数据线的电平变化。, I2C总线是一个半双工、多主器件的总线。总线上发送数据的发送器(也叫主器件)与接收数据的接收器(也叫从器件)取决于当时数据传送的方向。当一个器件发送数据时,其它被寻址器件均作为接收器。,11.1.2. I2C传输接口的特性,11.1 I2C串行总线通信协议,完整的时序过程由起始信号、器件地址信号、应答信号ACK、字节数据信号和停止信号等几部分组成。,11.1.3 I2C的时序,11.1 I2C串行总线通信协议,(1)起停信号定义I2C协议中,

4、起始信号(S)和停止信号(P)都由主器件产生。 起始信号定义:当SCL线为高电平时,SDA由高到低的负跳变; 在总线上出现了起始信号,就认为总线处于工作状态。 停止信号定义:当SCL线为高电平时,SDA由低到高的正跳变;总线上出现停止信号,被认为总线是处在不忙或空闲状态。,1 起始和停止信号,11.1 I2C串行总线通信协议,(2)起停信号的检测 连接到总线上的设备具有I2C硬件接口,检测起、停信号由硬件自动完成。 连接到总线上的设备没有I2C硬件接口,检测起、停信号必须由软件检测跳变。,START_IC:CLR SCL ;SCL由高变低,因为SCL低电平时才允许SDA更改 NOP ;加入空指

5、令延时以确保信号可靠 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 I2C串行总线通信协议,(2)起停信号的检测,STOP_IC:CLR SCL ;SCL低NOP CLR SDA NOP NOP SETB SCL ; 发送结束条件的时钟信号ACALL DS4.7uS ;结束总线时间大于4us(取4.7us)SETB SDA ;结

6、束总线ACALL DS4.7uS ;保证终止和起始空闲大于4.7usNOP RET,图11-4 停止信号时序,11.1 I2C串行总线通信协议,2 器件地址,如24C02 的地址格式如下,11.1 I2C串行总线通信协议,表7-3 常用外围器件的节点地址,11.1 I2C串行总线通信协议,3 应答与非应答信号 (1)应答信号与非应答信号定义,图11-5 应答与非应答信号,接收器收到地址字节或一个字节数据后都要产生一个应答信号ACK。在第9 个时钟周期时将SDA 线拉低,表示收到一个8 位数据。 发送器必须在这一时钟位上释放数据线SDA,使其处于高电平状态,以便接收器输出ACK应答信号,表示继续

7、接收;若接收器输出高电平则为非应答信号(/ACK),表示结束接收。 发送器接收数据时,它收到最后一个数据后,须向接收器发送一个非应答信号,使接收器释放SDA线,发送器产生终止信号,停止数据传送。,11.1 I2C串行总线通信协议,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

8、 SDA ;在SDA高或低的任何前提下,应答完成后,SCL=0,SDA=1NOP RET,图11-6 应答信号ACK时序,11.1 I2C串行总线通信协议,3 应答与非应答信号 (3)非应答信号时序 /ACK,MNACK_IC: CLR SCL NOP NOP SETB SDA ;将SDA置1 NOPNOPSETB SCLACALL DS4.7uSNOP ;保持数据时间,即SCL为高时间大于4.7usCLR SCLNOP SETB SDA NOP RET,图11-7 非应答信号时序,11.1 I2C串行总线通信协议,4 数据字节信号 字节数位:数据字节数没有限制,但是每字节必须是8位长度; 发

9、送次序:先发送最高位,每字节数据后必跟一位应答脉冲ACK; 等待状态:接收器不能接收下一个字节时,可以把SCL线拉成低电平,迫使发送器处于等待状态。,图为多字节数据传输过程的完整时序。,图11-8 数据传输时序,连续写的两个字节之间最好是有10ms的延时。当然,也可以进行页写(PAGE WRITE),即一次性连续写8个字节,但采用页写方式时每个字节后要有一个应答信号。,11.1 I2C串行总线通信协议,(1)向IC卡写一字节 数据(WR_BYTE ),WR_BYTE:MOV R2,#08 ;一字节8位数据 CLR SCL NOP NOP WR_BYTE1:RLC A ;A.8-C MOV SD

10、A,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 I2C串行总线通信协议,(2)从IC卡读取一字节 数据(RD_BYTE ),RD_BYTE: MOV R2,#08 SETB S

11、DA ;设备SDA为读状态 CLR A ;清空A寄存器 NOP NOPRD_BTYE1: SETB SCL ;时钟线为高,接收数据位 NOP NOP MOV C,SDA ;读取一位数据到进位位,图11-10 字节读时序图,RLC A ;左移数据到ACC.0CLR SCL ;将SCL拉低时间大于4.7usACALL DS4.7uSDJNZ R2,RD_BYTE1;依次读出8位数据到A中 RET ;读数据是无应答信号的需要注意的是:读数据的器件不是通过确认状态来应答的,而是随后产生一个停止状态。,11.2 两线串行总线典型器件,1. AT24系列存贮器 I2C串行接口的EEPROM,目前用于IC卡

12、的通用存贮器芯片多为EEPROM,其常用的协议主要有两线串行连接协议(I2C)和三线串行链接协议,其中比较常用的是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) 数据输入输出端;

13、C8(RFU)待用.有些系统中IC卡的C4和C8未用,可见卡上仅有六个触点.引脚:SCL串行时钟;SDA串行数据,开漏极驱动;(DIP封装 ) A2、A1、A0:器件/页面寻址, 器件地址:1010 A2、A1、A0,11.2 两线串行总线典型器件,1. AT24系列存贮器 I2C串行接口的EEPROM,11.2 两线串行总线典型器件,1. AT24系列存贮器 I2C串行接口的EEPROM,11.2 两线串行总线典型器件,2. SLE 4442 2 线连接协议(ISO7816)加密卡(磁生电供电),还有射频卡:13.56M非接触IC卡 符合ISO14443 TYPE A + ISO7816 标

14、准,ISO7816协议与IIC协议不相同!,SLE4442 德国西门子SIMENS 公司逻辑加密存储卡。具有2K 位的存储容量和完全独立的可编程代码存储器PSC。单+5V 电压供电,目前国内应用较多的一种IC 卡芯片。2 线连接协议(串行接口满足ISO7816 同步传送协议每字节擦除/写入编程时间为2.5ms。 至少10000 次的擦写,数据保持10 年。 芯片引脚 SLE4442 的触点安排见下图,11.2 两线串行总线典型器件,3. PCF8563I2C串行接口的实时日历时钟,PCF8563 -I2C时钟芯片 见教材;HYM1302-高性能、低功耗带RAM 实时时钟芯片,HYM1302(D

15、S1302) 可慢速充电实时时钟,含实时时钟/日历和31 字节非易失静态RAM。实时时钟/日历可对秒,分,时,日,周,月,和年进行计数,对于小于31 天的月,月末的日期自动进行调整,还具有闰年校正的功能。时钟可以采用24 小时格式或带AM(上午)/PM(下午)的12 小时格式。31 字节的RAM 可以用来临时保存一些重要数据。通信仅需3 根线:(1)RST(复位),(2)I/O(数据线)和(3)SCLK(串行时钟)。 宽工作电源电压范围:2.0V5.5V;2.5V 时耗电小于300nA;3 线接口,TTL 兼容 封装形式:DIP8 和SOP8;可完全兼容DALLAS 的DS1302。,11.3

16、 I2C在单片机系统中的应用,新近推出的增强型高性能单片机大都片内自带标准I2C总线接口。MCS-51系列单片机片内无I2C总线接口,则可以使用I/O口软件模拟I2C总线。,1. MCS-51与I2C器件的连接 使用单片机I/O口模拟I2C总线时,只需两条I/O口线即可,在软件中分别定义成SCL和SDA。 模拟I2C接口时,要软件模拟I2C串行总线的通信时序。,图7-21 I/O 口模拟I2C 总线,2. I2C总线的典型应用 24xx系列的E2PROM存储器是应用比较广泛的I2C总线器件之一。24C04内部组织为5128位,16字节页写。,【例7-4】24C04与8051的接口电路如图,80

17、51通过I2C总线接口对24C04进行多字节写操作的程序流程图如图。试编写多字节写程序。,图7-23 24C04 多字节写操作流程图,流程图,11.3 I2C在单片机系统中的应用,11.3 I2C在单片机系统中的应用,24C04写入多字节子程序: SCL BIT P3.2 ;定义时钟线 SDA BIT P3.3 ;定义数据线START:LCALL STAR ;调起始信号 MOV R2,#08H ;8字节(括地址) MOV DPTR,#TAB ;定义数据指针LOOP: MOV A,#00H MOVC A,A+DPTR LCALL SEND ;发送字节数据 LCALL ACKC ;接收应答信号 J

18、C LOOP ;JC什么意思? INC DPTR DJNZ R2,LOOP,LCALL STOP ;调停止信号 RETTAB:DB 0A0H,10H,01H,02H, 03H,04H ,05H,06H STAR:CLR SCL ;起始信号 SETB SDA ACALL DELAY SETB SCL ACALL DELAY CLR SDA ACALL DELAY CLR SCL RETSTOP:CLR SCL ;停止信号 CLR SDA,11.3 I2C在单片机系统中的应用,ACALL DELAY SETB SCL ACALL DELAY SETB SDA ACALL DELAY RET ;发送

19、一个字节子程序SEND: MOV R0,#08H ; 每个字节八位 CLR CSEND0: RLC A MOV SDA,C;送的进位位 SETB SCL ACALL DELAY CLR SCL DJNZ R0,SEND0;判断8位数据是否传送完 SETB SDA RET,ACKC: SETB SCL ;应答 ACALL DELAY MOV C,SDA CLR SCL RETDELAY: NOP ;延时 NOP NOP RET END,11.3 I2C在单片机系统中的应用,I2C 通信接口的软件编程和调试过程中,应特别注意时序关系的配合,必须根据系统时钟的不同而具体修正有关延时语句或插入适当的NOP 指令。 以上程序已经过调试通过,但盲目移植还是不一定能正常运行,关键要调试时序配合。,I2C总线模拟程序还包括写多字节、读单字节、读多字节等子程序。 对于片内地址超过一页的芯片,在器件地址后还要跟第二个字节地址(即页地址),书中未列出,可查文献。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号