




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章I2C串行协议及I2C器件应用,11.1I2C串行总线通信协议,11.2I2C串行总线典型器件,主讲内容,11.3I2C串行总线的应用,11.1I2C串行总线通信协议,I2C是Philips公司推出的在器件间实现同步串行数据传输的标准总线。以其连接简单、节省I/O口线、缩减空间等特点而得以广泛应用。如I2C的RAM、E2PROM、LCD、LED、A/D、D/A、时钟等器件。,I2C串行总线的主要特征如下:1)两条传输线:一条串行数据线(SDA),一条串行时钟线(SCL)。2)总线模式多:主发送模式、主接收模式、从发送模式、从接收模式。3)器件唯一寻址:I2C总线上器件都有唯一地址,主机可对各从机寻址。4)检测和仲裁:冲突检测和仲裁机制保证数据传输完整性和稳定性。5)传输速率高:标准模式、快速模式和高速模式的传输率分别是100k、400k、3.4Mbps。6)漏极开路:总线要接上拉电阻。连接到总线上的IC数量仅受到最大电容400pF的限制。,11.1.1I2C串行总线的基本特征,11.1I2C串行总线通信协议,I2C接口传输具有线“与”功能。SDA和SCL两条线,均为双向I/O口,通过上拉电阻接正电源。当总线空闲时,两根线都是高电平,连接总线器件的输出极必须是集电极或漏极开路。,I2CSDA上的数据仅在SCL为低电平时才能改变。当SCL为高电平时,SDA的改变表示“开始”和“停止”状态。在时钟高电平期间,数据线上必须保持稳定的逻辑电平。只有在时钟线低电平时,才允许数据线的电平变化。,I2C总线是一个半双工、多主器件的总线。总线上发送数据的发送器(也叫主器件)与接收数据的接收器(也叫从器件)取决于当时数据传送的方向。当一个器件发送数据时,其它被寻址器件均作为接收器。,11.1.2.I2C传输接口的特性,11.1I2C串行总线通信协议,完整的时序过程由起始信号、器件地址信号、应答信号ACK、字节数据信号和停止信号等几部分组成。,11.1.3I2C的时序,11.1I2C串行总线通信协议,(1)起停信号定义I2C协议中,起始信号(S)和停止信号(P)都由主器件产生。起始信号定义:当SCL线为高电平时,SDA由高到低的负跳变;在总线上出现了起始信号,就认为总线处于工作状态。停止信号定义:当SCL线为高电平时,SDA由低到高的正跳变;总线上出现停止信号,被认为总线是处在不忙或空闲状态。,1起始和停止信号,11.1I2C串行总线通信协议,(2)起停信号的检测连接到总线上的设备具有I2C硬件接口,检测起、停信号由硬件自动完成。连接到总线上的设备没有I2C硬件接口,检测起、停信号必须由软件检测跳变。,START_IC:CLRSCL;SCL由高变低,因为SCL低电平时才允许SDA更改NOP;加入空指令延时以确保信号可靠NOPSETBSDA;SDA先高NOPNOPSETBSCL;SCL高,起始条件建立时间大于4.7usACALLDS4.7uSCLRSDA;SDA低,起始条件锁定时大于4usACALLDS4uSCLRSCL;SCL低,钳住总线,准备发数据NOPRET,图11-3启动信号时序,11.1I2C串行总线通信协议,(2)起停信号的检测,STOP_IC:CLRSCL;SCL低NOPCLRSDANOPNOPSETBSCL;发送结束条件的时钟信号ACALLDS4.7uS;结束总线时间大于4us(取4.7us)SETBSDA;结束总线ACALLDS4.7uS;保证终止和起始空闲大于4.7usNOPRET,图11-4停止信号时序,11.1I2C串行总线通信协议,2器件地址,如24C02的地址格式如下,11.1I2C串行总线通信协议,表7-3常用外围器件的节点地址,11.1I2C串行总线通信协议,3应答与非应答信号(1)应答信号与非应答信号定义,图11-5应答与非应答信号,接收器收到地址字节或一个字节数据后都要产生一个应答信号ACK。在第9个时钟周期时将SDA线拉低,表示收到一个8位数据。发送器必须在这一时钟位上释放数据线SDA,使其处于高电平状态,以便接收器输出ACK应答信号,表示继续接收;若接收器输出高电平则为非应答信号(/ACK),表示结束接收。发送器接收数据时,它收到最后一个数据后,须向接收器发送一个非应答信号,使接收器释放SDA线,发送器产生终止信号,停止数据传送。,11.1I2C串行总线通信协议,3应答与非应答信号(2)应答信号时序ACK,在接收方,每收到一字节后便将SDA电平拉低,应答完成后,SCL=0,SDA=1。具体时序如下:,MACK_IC:CLRSCLNOPCLRSDA;在第9个SLC脉冲,将SDA置0NOPNOPSEIBSCL;保持数据时间,即SCL为高时间大于ACALLDS4.7usCLRSCLNOPNOPSETBSDA;在SDA高或低的任何前提下,应答完成后,SCL=0,SDA=1NOPRET,图11-6应答信号ACK时序,11.1I2C串行总线通信协议,3应答与非应答信号(3)非应答信号时序/ACK,MNACK_IC:CLRSCLNOPNOPSETBSDA;将SDA置1NOPNOPSETBSCLACALLDS4.7uSNOP;保持数据时间,即SCL为高时间大于4.7usCLRSCLNOPSETBSDANOPRET,图11-7非应答信号时序,11.1I2C串行总线通信协议,4数据字节信号字节数位:数据字节数没有限制,但是每字节必须是8位长度;发送次序:先发送最高位,每字节数据后必跟一位应答脉冲ACK;等待状态:接收器不能接收下一个字节时,可以把SCL线拉成低电平,迫使发送器处于等待状态。,图为多字节数据传输过程的完整时序。,图11-8数据传输时序,连续写的两个字节之间最好是有10ms的延时。当然,也可以进行页写(PAGEWRITE),即一次性连续写8个字节,但采用页写方式时每个字节后要有一个应答信号。,11.1I2C串行总线通信协议,(1)向IC卡写一字节数据(WR_BYTE),WR_BYTE:MOVR2,#08;一字节8位数据CLRSCLNOPNOPWR_BYTE1:RLCA;A.8-CMOVSDA,C;改变SDA上的数据NOPSETBSCL;拉高SCL=4.7uSACALLDS4.7uSCLRSCLNOPNOPDJNZR2,WR_BYTE1;依次发8位,图11-9字节写时序图,SETBSDANOPNOPSETBSCLCLRF0NOPNOPMOVC,SDA;回读IC卡的确认信号JCWR_BYTE2SETBF0;有应答位WR_BYTE2:NOP;非应答CLRSCLNOPRET,11.1I2C串行总线通信协议,(2)从IC卡读取一字节数据(RD_BYTE),RD_BYTE:MOVR2,#08SETBSDA;设备SDA为读状态CLRA;清空A寄存器NOPNOPRD_BTYE1:SETBSCL;时钟线为高,接收数据位NOPNOPMOVC,SDA;读取一位数据到进位位,图11-10字节读时序图,RLCA;左移数据到ACC.0CLRSCL;将SCL拉低时间大于4.7usACALLDS4.7uSDJNZR2,RD_BYTE1;依次读出8位数据到A中RET;读数据是无应答信号的需要注意的是:读数据的器件不是通过确认状态来应答的,而是随后产生一个停止状态。,11.2两线串行总线典型器件,1.AT24系列存贮器I2C串行接口的EEPROM,目前用于IC卡的通用存贮器芯片多为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)数据输入输出端;C8(RFU)待用.有些系统中IC卡的C4和C8未用,可见卡上仅有六个触点.引脚:SCL串行时钟;SDA串行数据,开漏极驱动;(DIP封装)A2、A1、A0:器件/页面寻址,器件地址:1010A2、A1、A0,11.2两线串行总线典型器件,1.AT24系列存贮器I2C串行接口的EEPROM,11.2两线串行总线典型器件,1.AT24系列存贮器I2C串行接口的EEPROM,11.2两线串行总线典型器件,2.SLE44422线连接协议(ISO7816)加密卡(磁生电供电),还有射频卡:13.56M非接触IC卡符合ISO14443TYPEA+ISO7816标准,ISO7816协议与IIC协议不相同!,SLE4442德国西门子SIMENS公司逻辑加密存储卡。具有2K位的存储容量和完全独立的可编程代码存储器PSC。单+5V电压供电,目前国内应用较多的一种IC卡芯片。2线连接协议(串行接口满足ISO7816同步传送协议每字节擦除/写入编程时间为2.5ms。至少10000次的擦写,数据保持10年。芯片引脚SLE4442的触点安排见下图,11.2两线串行总线典型器件,3.PCF8563I2C串行接口的实时日历时钟,PCF8563-I2C时钟芯片见教材;HYM1302-高性能、低功耗带RAM实时时钟芯片,HYM1302(DS1302)可慢速充电实时时钟,含实时时钟/日历和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.3I2C在单片机系统中的应用,新近推出的增强型高性能单片机大都片内自带标准I2C总线接口。MCS-51系列单片机片内无I2C总线接口,则可以使用I/O口软件模拟I2C总线。,1.MCS-51与I2C器件的连接使用单片机I/O口模拟I2C总线时,只需两条I/O口线即可,在软件中分别定义成SCL和SDA。模拟I2C接口时,要软件模拟I2C串行总线的通信时序。,图7-21I/O口模拟I2C总线,2.I2C总线的典型应用24xx系列的E2PROM存储器是应用比较广泛的I2C总线器件之一。24C04内部组织为5128位,16字节页写。,【例7-4】24C04与8051的接口电路如图,8051通过I2C总线接口对24C04进行多字节写操作的程序流程图如图。试编写多字节写程序。,图7-2324C04多字节写操作流程图,流程图,11.3I2C在单片机系统中的应用,11.3I2C在单片机系统中的应用,24C04写入多字节子程序:SCLBITP3.2;定义时钟线SDABITP3.3;定义数据线START:LCALLSTAR;调起始信号MOVR2,#08H;8字节(括地址)MOVDPTR,#TAB;定义数据指针LOOP:MOVA,#00HMOVCA,A+DPTRLCALLSEND;发送字节数据LCALLACKC;接收应答信号JCLOOP;JC什么意思?INCDPTRDJNZR2,LOOP,LCALLSTOP;调停止信号RETTAB:DB0A0H,10H,01H,02H,03H,04H,05H,06HSTAR:CLRSCL;起始信号SETBSDAACALLDELAYSETBSCLACALLDELAYCLRSDAACALLDELAYCLRSCLRETSTOP:CLRSCL;停止信号CLRSDA,11.3I2C在单片机系统中的应用,ACALLDELAYSETBSCLACALLDELAYSETBSDAACALLDELAYRET;发送一个字节子程序SEND:MOVR0,#08H;每个字节八位CLRCSEND0:RLCAMOVSDA,C;送的进位位SETBSCLACALLDELAYCLRSCLDJNZR0,SEND0;判断8位数据是否传送完SETBSDARET,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 竞价考试题及答案
- 画室考试题及答案
- 编码考试题及答案
- 职业危害及防护措施试题含答案
- 中级宏观经济学(浙江大学)知到智慧树答案
- 成人住院患者跌倒风险评估及预防考核试题及答案
- 中药药剂学考试模拟题(附答案)
- 血透室进修护士出科理论考试卷含答案
- 中学生物课程教学设计知到智慧树答案
- 财务杠杆效应分析-洞察及研究
- 2025年公平竞争审查知识竞赛考试练习题库(正式版)含答案
- 医学大数据与人工智能教学
- 《腹腔镜操作方法》课件
- 《高等数学》说课文档
- 运动训练学PPT-运动训练学
- 2023新教材高中数学第5章三角函数微专题5三角函数中的最值问题课件新人教A版必修第一册
- 入厂新员工安全知识培训考试题及答案
- 一年级上学期家长会数学老师发言稿(共17张PPT)
- (11.7.1)-12.7-肺性脑病病理生理学
- SH/T 0356-1996燃料油
- GB/T 1303.4-2009电气用热固性树脂工业硬质层压板第4部分:环氧树脂硬质层压板
评论
0/150
提交评论