您好,欢迎访问三七文档
I2C串行总线概述I2C总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。每个接到I2C总线上的器件都有唯一的地址。(一般情况下器件的地址都是7位)比如说我们要发送一个数据给某一个从设备,此时我们如何对其进行写入数据呢,这时主设备先通过SDA发送一个地址,然后所有的从设备就会判断自己的地址是不是主机发送的这个地址,如果是,这样主机就和此地址的从设备连接上了。数据位的有效性规定I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。I2C串行总线的组成及工作原理整个通信过程发送启动信号发送寻址信号(7位或10)+读写位应答信号数据传送(发送数据)发送停止信号二、起始和终止信号SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态。接收器件收到一个完整的数据字节后,有可能需要完成一些其它工作,如处理内部中断服务等,可能无法立刻接收下一个字节,这时接收器件可以将SCL线拉成低电平,从而使主机处于等待状态。直到接收器件准备好接收下一个字节时,再释放SCL线使之为高电平,从而使数据传送可以继续进行。发送寻址信号和读写位信号主机发送启动信号后,再发送寻址信号。器件地址有7位和10位两种。在这只介绍7位地址寻址方式寻址字节的位定义D7~D1位组成从机的地址。D0位是数据传送方向位,为“0”时表示主机向从机写数据,为“1”时表示主机由从机读数据。字节传送与应答每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。非应答信号当主机作为接收设备时,主机对最后一个字节不应答,以向发送设备表示数据传送完毕。以下是24C08EEPROM的随机地址读操作,也就是主机作为接收设备。发送停止信号在全部数据传输完毕后,主机发送停止信号,即在SCL为高电平期间,SDA上产生一个上升沿信号。字节传输完,接收器中断时钟保持低,处理中断8.2.2I2C总线器件的扩展一、扩展电路二、串行E2PROM的扩展(1)串行E2PROM典型产品AT24C01:128字节(128×8位);AT24C02:256字节(256×8位);AT24C04:512字节(512×8位)AT24C08:1K字节(1K×8位);AT24C16:2K字节(2K×8位);在这我们选用开发板上的TU24C08BS3这款EEPROM做为例子来讲解ATMEL公司的AT24C系列:(2)写入过程TU系列E2PROM芯片地址的固定部分为1010,也就是IIC总线器件的识别码,E2、E1、E0引脚接高、低电平后得到确定的3位编码。形成的7位编码即为该器件的地址码。44B0进行写操作时,首先发送该器件的7位地址码和写方向位“0”(共8位,即一个字节),发送完后释放SDA线并在SCL线上产生第9个时钟信号。被选中的存储器器件在确认是自己的地址后,在SDA线上产生一个应答信号作为相应,单片机收到应答后就可以传送数据了。传送数据时,单片机首先发送一个字节的被写入器件的存储区的首地址,收到存储器器件的应答后,单片机就逐个发送各数据字节,但每发送一个字节后都要等待应答。当要写入的数据传送完后,单片机应发出终止信号以结束写入操作。写入n个字节的数据格式:(3)读出过程44B0先发送该器件的7位地址码和写方向位“0”(“伪写”),发送完后释放SDA线并在SCL线上产生第9个时钟信号。被选中的存储器器件在确认是自己的地址后,在SDA线上产生一个应答信号作为回应。然后,再发一个字节的要读出器件的存储区的首地址,收到应答后,单片机要重复一次起始信号并发出器件地址和读方向位(“1”),收到器件应答后就可以读出数据字节,每读出一个字节,单片机都要回复应答信号。当最后一个字节数据读完后,单片机应返回以“非应答”(高电平),并发出终止信号以结束读出操作。作业将今天课堂内容自己完全独立做出即可
本文标题:IIC总线协议
链接地址:https://www.777doc.com/doc-2881719 .html