单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,项目四,I2C,总线技术,组员:彭国峰 周君胜 高腾飞 杨奇峰,项目四 I2C总线技术组员:彭国峰,1,项目,功能,项目知识点与技能点,项目知识准备,软件设计,硬件电路,项目,程序,项目功能,2,【,项目功能,】,1,、利用,I2C,总线技术,完成,ATmega16,单片机对,I2C,器件,PCF8563T,时钟芯片的读写操作。,2,、通过完成项目,掌握,I2C,总线技术,并能合理运用到实际项目中。,【项目功能】1、利用I2C总线技术,完成ATmega16单,3,【,项目知识点与技能点,】,1,、,I2C,总线的协议。,2,、时钟芯片,PCF8563,的相关知识。,3,、如何用,I/O,口模拟,I2C,通讯时序。,【项目知识点与技能点】1、I2C总线的协议。,4,【,项目知识准备,】,1,、,I2C,总线概述,2,、,I2C,总线的协议,3,、时钟芯片,PCF8563,的相关知识,【项目知识准备】1、I2C总线概述,5,1,、,I2C,总线概述,I2C,总线,是,INTER-IC,串行总线的缩写。它是由,PHILIPS,公司开发的,两线式串行总线,,用于连接微控制器及其外围设备。,I2C,总线产生于在,80,年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。这种串行总线上的各单片机或集成电路模块通过,一条串行数据线(,SDA,),和,一条串行时钟线(,SCL,),进行信息传送。同其他形式的总线相比,,I2C,总线具有,可靠性好、传输速度快、结构简单等优点,,因此也被广泛地应用在单片机应用系统中。,1、I2C总线概述 I2C总线,是INTER-I,6,2,、,I2C,总线的协议,按照,I2C,总线的通信规则,每个总线上的电路模块都有的地址,总线通过这个地址识别连在总线上的器件。每个设备既可以是,主控器,(能控制总线,又能完成一次传输过程的初始化,并产生时钟信号及传输终止信号的器件)或,被控器,(被主控器寻址的器件),也可以是,发送器,(在总线上发送信息的器件)或,接收器,(从总线上接收信息的器件)。,2、I2C总线的协议 按照I2C总线的通信规则,每,7,(1,),I2C,总线的基本结构,通常,采用,I2C,总线标准的,单片机或,IC,器件,,其内部不仅有,I2C,接口电路,而且还有将内部各单元电路按功能划分的独立模块,它们通过软件寻址实现,片选功能,,因此减少了器件片选线的连接。总线控制设备不仅能通过指令将某个功能单元电路挂接到总线或摘离总线,还可对该单元的工作状况,进行监测,,从而实现对硬件系统的简单灵活的,扩展与控制,。,I2C,总线接口电路结构如图,(1)I2C总线的基本结构 通常,采用I2C总线标准,8,(,2,),起始和终止信号,若,SCL,为高电平,,,则,SDA,上的信息必须保持稳定不变,若,SCL,为低电平,,,则,SDA,上的信息允许变化,。,若,SCL,没有时钟信号,,,SDA,上的数据也将停止传输。,当,SCL,保持高电平期间,,,SDA,由高电平向低电平变化这中状态定义为,起始信号,SDA,由低电平向高电平变化则定义为,终止信号,。,SDA,上的每一位数据都和,SCL,上的时钟脉冲相对应。且,SCL,和,SDA,的线,“与”,逻辑关系,,下图为,I2C,总线起始信号和终止信号时序图。,(2)起始和终止信号,9,在,I2C,总线上,,SDA,上的数据传输必须以,字节,为单位(,最高位最先传送,),每个传送字节后还必须跟随一,应答位,。这个应答信号由发送器发出。整个数据传送过程中,传输的字节数目是没有限制的。但是若数据传输一段时间后,接收器无法继续接收时,主控器也可以终止数据的传送。,在I2C总线上,SDA上的数据传输必须以字节为单,10,(3,),I2C,总线的仲裁,I2C,总线上可以挂接多个器件,这样当两个或多个主控器同时想占用总线时,就会产生总线竞争。,I2C,总线具有多主控能力,可以对发生在,SDA,线上的总线竞争产生仲裁过程,仲裁是在,SCL,为高电平时,根据,SDA,状态进行的。在总线仲裁期间,如有其他以主控器已经在,SDA,上传送低电平,则发送高电平的主控器就会发现此时,SDA,上的最平与它发送的信号不一致,这样,该主控器就自动裁决失去总线控制权。,I2C,总线协议的详细仲裁过程为:当主控器在发送某个字节时,若被仲裁失去主控权时,它的时钟信号继续输出,并直到整个字节发送结束为止。若主控器在寻址阶段被仲裁失去主控权,它就立刻进入被旁若被控接收状态,并判断取得主控权的主控器是否正在对它进行寻址,。,(3)I2C总线的仲裁 I2C总线上可以挂接,11,在仲裁过程中,一旦有个主控器低电平时钟信号,则,SCL,也变为低电平状态,它将影响所有有关的主控器,并使它们的计时器复位。如果有一个主控器首先由低电平向高电平转换,这时由于还有其他主控器处于低电平状态,因此它只能处于高电平状态等待状态,直至所有主控器都结束低电平状态,,SCL,才转为高电平。仲裁过程中的具体时序同步如图所示。,在仲裁过程中,一旦有个主控器低电平时钟信号,则SC,12,(,4,),I2C,总线的数据传输,I2C,总线上的数据传输主要是以,18,位的字节,进行的,其传输过程如图,9.3.4,所示。,图中,1,时刻时字节传送完成,接收器内产生中断信号;,图中,2,时刻则为当中断服务处理过程中,接收器保持低电平信号。,(4)I2C总线的数据传输 I2C总线上的数据传输,13,在,I2C,总线上,每个数据的逻辑“,0”,和逻辑“,1”,的信号电平取决于相应的,正端电压,。,当,I2C,总线进行数据传送时,,时钟信号的高电平,使数据线上的数据保持稳定;,时钟信号在低电平时,,数据线上的高电平或低电平状态才允许变化。,在时钟线保持高电平期间,由于数据线由高电平向低电平然变化是一种稳定的状态,所以就将其状态规定为起始条件;而时钟线保持高电平期间,数据线是由低电平向高电平变化,则规定为停止条件。因此,只有,I2C,总线中的主控器件产生的起始条件和停止条件才能使总线进入“忙”或“闲”状态。,14,在,I2C,总线上,比特位传送字节的后面都必须有一位应答位,并且数据是以最高有效位首先发出。由于进行数据传输的接收器收到完整的一个数据字节后,有可能还要进行相应的数据处理,因此,接收器也就无法立刻接收下一个字节的数据。为了解决这一问题,,I2C,协议规定:,接收器可以通过总线上的时钟保持为低电平,使发送器进入等待状态,直到接收器准备好接收新的数据。并释放时钟线使数据传输继续进行,。,在I2C总线上,比特位传送字节的后面都必须有一,15,字节传送与应答,当一个字节的数据被总线上的另一个已被寻址的接收器接收后,总线上都要求产生一个确认信号,并在这一位时钟信号的高电平期间,使数据保持稳定的低电平状态,从而完成应答确认信号的输出。确认信号通常是指起始信号和停止信号,如果这个信息从一个起始字节,或是总线寻址,则总线上不允许有应答信号产生。如果接收器对被寻址做出了确认应答,但在数据传输的一段时间以后,又无法继续接收更多的数据,则主控器也将停止数据的继续传送。,I2C,总线的数据传输格式如图所示。,其中,1,7,位为地址位,第,8,位为读写位,第九位为应答位。,字节传送与应答,16,I2C,总线中,数据传输协议为:,起始信号的后面总有一个被控器的地址,被控器的地址一般规定为,7,位数据。,数据的第,8,位是数据的传输方向位,即读写位。在读写位中,,如果是“,0”,则表示主控器向被控机发送数据,也就是执行,“写”,的功能;,如果是“,1”,则表示主控器接收被控器发来的数据,也就是执行,“读”,的功能。,数据的传输总是随主控器产生的停止信号而结束。,I2C总线中,数据传输协议为:,17,3,、时钟芯片,PCF8563,的相关知识,(,1,)时钟芯片,PCF8563,概述,PCF8563,是,PHILIPS,公司推出的一款工业级内含,I2C,总线接口功能的具有极低功耗的多功能时钟,/,日历芯片。,PCF8563,的多种报警功能、定时器功能、时钟输出功能以及中断输出功能能完成各种复杂的定时服务,甚至可为单片机提供看门狗功能。,内部时钟电路内部振荡电路、内部低电压检测电路,1.0V,以及两线制,I2C,总线通讯方式,不但使外围电路及其简洁,而且也增加了芯片的可靠性。同时每次读写数据后,内嵌的字地址寄存器会自动产生增量。当然作为时钟芯片,,PCF8563,亦解决了,2000,年问题。因而,,PCF8563,是一款性价比极高的时钟芯片,它已被广泛用于电表、水表、气表、电话、传真机、便携式仪器以及电池供电的仪器仪表等产品领域。,3、时钟芯片PCF8563的相关知识(1)时钟芯片PCF85,18,(,2,),时钟芯片,PCF8563,的外部结构及引脚功能,下图为时钟芯片,PCF8563,的外部结构图,振荡器输入,振荡器输出,中断输出,地,正电源,时钟输出,串行时钟输出,串行数据,I/O,(2)时钟芯片PCF8563的外部结构及引脚功能,19,(,3,)时钟芯片,PCF8563,的基本原理及内部寄存器述,1,)时钟芯片,PCF8563,的基本原理,PCF8563,有,16,个,8,位寄存器,:,一个可自动增量的地址寄存器,,一个内置,32.768KHz,的振荡器(带有一个内部集成的电容),,一个分频器(用于给实时时钟,RTC,提供源时钟),,一个可编程时钟输出,,一个定时器一个报警器,,一个掉电检测器和一个,400KHzI2C,总线接口。,所有,16,个寄存器,设计成可寻址的,8,位并行寄存器,,但不是所有位都有用。,内存地址,00H,,,01H,用于,控制寄存器和状态寄存器,,内存地址,02H,08H,用于时钟计数器(秒年计数器),,地址,09H,0CH,用于报警寄存器(定义报警条件),,地址,0DH,控制,CLKOUT,用于管脚的输出频率,,地址,0EH,和,0FH,分别,用于定时器控制寄存器和定时器寄存器。秒、分钟、小时、日、月、年、分钟报警、小时报警、日报警寄存器,编码格式为,BCD,,星期和星期报警寄存器不以,BCD,格式编码。,(3)时钟芯片PCF8563的基本原理及内部寄存器述1)时钟,20,PCF8563,共有,16,个寄存器,,00H,01H,为控制方式寄存器、,09H,0CH,为报警功能寄存器、,0DH,为时钟输出寄存器、,0EH,和,0FH,为定时器功能寄存器、,02H,08H,为秒年时间寄存器。各位寄存器的位描述如下表所示。,2,)时钟芯片,PCF8563,内部寄存器概述,PCF8563共有16个寄存器,2)时钟芯片PCF8563,21,【,软件设计,】,程序流程图,【软件设计】,22,【,硬件电路,】,ATmega16,单片机本身带有,I2C,总线接口,在本项目中,为了将,I2C,总线的整数据传输工作过程给大家清晰的展示出来,我们采用单片机,I/O,口模拟,I2C,总线接口。,ATmega16,单片机与时钟芯片,PCF8563,电路连接图如图所示。,【硬件电路】ATmega16单片机本身带有I2C总,23,原理图说明:,图中,Y,为,32.768KHz,的晶振,为时钟芯片,PCF8563,提供时钟源。,C1,为起振电容,一般取值为,1,20PF,。,时钟芯片,PCF8563,的,数据引脚,SDA,和时钟引脚,SCL,分别与,ATmega16,单片机的,PC0,、,PC1,相连。,PC6,和,PC7,为系统与液晶显示模块的连接接口,PA4,为,LCD,背景光控制端口。,24,项目程序,程序实现功能,:,(,1,)使,LCD,液晶屏显示时间,字符,文字。,(,2,)并且能使液晶屏切换显示不同的内容。,主程序:,答辩,项目主程序,.doc,8563,程序:,答辩,8563,主要程序,.doc,I2C,程序:,答辩,I2C,主要程序,.d