IIC学习报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

IIC学习报告电子科技大学成都学院研究学习报告课程名称:ARM处理器与C语言程序开发课题名称:IIC总线学习报告成员姓名:第二小组(8人)指导老师:王茜报告时间:2014-6-10IIC学习报告1一、IIC的定义与内容1.IIC的定义IIC,一种总线结构。IIC即Inter-IntegratedCircuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的,主要是用来连接整体电路(ICS),IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。这种方式简化了信号传输总线。图1.1.1IIC工作原理图IIC串行总线一般有两根信号线,一根是双向的数据线SDA(SerialData),另一根是时钟线SCL(SerialClock),也是双向传输的。所有接到IIC总线设备上的串行数据SDA都能接到总线的SDA上,设备上的串行数据线SDA接口电路应该是双向的,输出电路用于向总线上发送数据,输入电路用于接收总线上的数据各设备的时钟线;SCL接到总线的SCL上,而串行时钟线也应是双向的,作为控制总线数据传送的主机,一方面要通过SCL输出电路发送时钟信号,另一方面还要检测总线上的SCL电平,以决定什么时候发送下一个时钟脉冲电平。2.IIC的特点只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL,所以也称为两线式串行总线。每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系由软件设定地址,主机可以作为主机发送器或主机接收器。它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏。串行的8位双向数据传输位速率在标准模式下可达到100Kbps,快速模式下可达到400Kbps,高速模式下可达到3.4Mbps。片上的滤波器可以滤去总线数据线上的毛刺波,保证数据完整。连接到相同总线的IC数量只受到总线的最大电容400pF限制。二、IIC引脚连接1.IIC总线连接IIC总线是目前系统芯片控制外围设备非常常用的一种总线,每一个挂在总线上的终端设备都有其在总线上的唯一的地址,并且每一个终端都可以作为主机(Master)或是从机(Slave)。总线的运行(数据传输)由主机控制。所谓主机就是指启动数据的传送(发动启动信号)、发出时钟信号以及传送结束时发出停止信号的设备,通常主机都是微处理器。这时,线上所有其他设备都被认为是从机,作为接受主机命令的从机,要按总线上的SCL信号发出或接收SDA上的信号,也可以向SCL线发出低电平信号以延长总IIC学习报告2线时钟信号周期。像存储器这类器件就既可以是主机又是从机,并且可以有许多主机共存于一条总线上。主机和从机的数据传送,可以由主机发送数据到从机,也可以由从机发到主机。图2.1.1具有1个处理器的IIC总线配置示例2.S3C2410A与AT24C08IIC连接参考Atmel公司AT24C08的用户手册,使用这块8K的EEPROM进行IIC连接,只需连接地址线A2,A0和A1不需连接。图中NC0,NC1和NC2分别对应A0,A1,A2。图2.2.1AT24C08控制电路路三、IIC总线协议内容1、IIC总线协议:I2C总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。如下图:IIC学习报告3图3.1.1I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。如下图:图3.1.2每个接到I2C总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器。由总线上接收数据的器件则为接收器。在多主机系统中,可能同时有几个主机企图启动总线传送数据。为了避免混乱,I2C总线要通过总线仲裁,以决定由哪一台主机控制总线。2.关于IIC总线协议的内容:(1)开始:当主机要和一个从机交换数据时,会首先发出一个启动(Start)信号,次信号会被所有从机接收,接收后所有从机便做好了接收CPU信号的准备。然后主机发出它需要通信的从机地址,每个从机收到地址后将其与自己的地址做比较:如果不同,则什么都不做,等待主机发出停止(Stop)信号;如果相同,则发出ACK给主机,主机收到ACK后就开始向从机发送或接受数据。当IIC总线处于空闲状态时,两根传输线均为高电平。SDA由高电平到低电平的跳变可以产生开始条件。(2).停止:当主机从应答ACK那个从机处完成数据交流后,发出停止(Stop)信号给所有从机,此时通信完毕,释放IIC总线。所有从机等待下一次的启动(Start)信号。SCL为高电平时,SDA由低电平向高电平跳变可以产生终止条件。(3).地址、数据格式与读/写:IIC学习报告4每一个挂在总线上的终端设备都有其在总线上的唯一地址。每一个写到SDA传输数据线上的数据字节都应是8位的。一个字节的地址数据包括7位地址,地8位为方向位,决定数据的传输方向(即读/写:主机是向从机传送数据还是读取数据)。(4).ACK:ACK:ACK(Acknowledgement),即确认字符,在数据通信传输中,接收站发给发送站的一种传输控制字符。它表示确认发来的数据已经接受无误。通常ACK信号有自己固定的格式,长度大小,由接受方回复给发送方。其格式取决于采取的网络协议。当发送方接收到ACK信号时,就可以发送下一个数据。如果发送方没有收到信号,那么发送方可能会重发当前的数据包,也可能停止传送数据。具体情况取决于所采用的网络协议。在S3C2410AIIC中,ACK脉冲出现在SCL信号的第九个始终周期。前八个始终周期用来传送一个字节的数据。与ACK信号相应的始终由主机产生。四、IIC时序图分析1.开始和终止条件。a)启动信号:SDA从高电平1负跳变到0,SCL为1,产生启动信号。b)终止信号,SDA从低电平0正跳变到1,SCL还是为1,产生终止信号。图4.1.1起/停信号2.数据传送格式主控制器件产生启动信号发出之后,先是完成从器件地址的选择,然后进行数据的传送或者接收,没完成一次传送或者接收,产生一个应答信号A,确实是否完成操作。多次传送或者接收完成之后,主控制器件发送停止信号,终止操作。图4.2.1数据传输格式3.应答信号ACK的产生IIC学习报告5IIC总线以8位字节进行传送,没传送完一个字节,就在第9时钟周期释放总线,高电平1,然后由接收器反馈一个应答信号低电平0,表示接收器成功接收该字节,如果反馈信号为高电平1,表示接收器没有成功接收该字节。图4.3.1ACK应答信号4、插入等待时间如果被控器需要延迟下一个数据字节开始传送的时间,则可以通过把时钟线SCL电平拉低并且保持,使主控器进入等待状态。一旦被控器释放时钟线,数据传输就得以继续下去,这样就使得被控器得到足够时间转移已经收到的数据字节,或者准备好即将发送的数据字节。带有CPU的被控器在对收到的地址字节做出应答之后,需要一定的时间去执行中断服务子程序,来分析或比较地址码,其间就把SCL线钳位在低电平上,直到处理妥当后才释放SCL线,进而使主控器继续后续数据字节的发送。5、重启动信号在主控器控制总线期间完成了一次数据通信(发送或接收)之后,如果想继续占用总线再进行一次数据通信(发送或接收),而又不释放总线,就需要利用重启动Sr信号时序。重启动信号Sr既作为前一次数据传输的结束,又作为后一次数据传输的开始。利用重启动信号的优点是,在前后两次通信之间主控器不需要释放总线,这样就不会丢失总线的控制权,即不让其他主器件节点抢占总线。6、总线仲裁程序DATA1和DATA2的第一位,第二位都是相当的,为1,0,然后第3位出现DATA2先出现低电平0,那么发送DATA2的主机就获得了总线的控制权,所以SDA后面输出的波形和DATA2一样。IIC学习报告6图4,5.1总线仲裁五、AT24C08芯片特性,用途1、简介AT24C08芯片是一块8192位的串行电可擦写可编程只读存储器(EEPROM).其组织形式为1K*8位字长。适用于许多要求低功耗和低电压操作的工业级或商业级应用。可选节省空间的8脚PDIP,8脚JEDECSOIC,8脚UltraLeadFrameLandGridArray(ULA),5脚SOT23,8脚TSSOP,和8触点dBGA2封装,并通过2-wire串行接口存取。图5.1.1PDIP封装的AT24C082、特性低压和标准电压操作(VCC=2.7~5.5V)内部组织1024Kx8位字长2-Wire串行接口施密特触发器,过滤输入,实现噪音抑制双向数据传输协议1MHz(5.0V),兼容400KHz(1.8V,2.5V,2.7V)写保护引脚,实现硬件数据保护16字节页写模式允许页面局部写入高可靠性DBGA2封装3、引脚IIC学习报告7表5.3.1AT24C08引脚描述4、器件寻址从机地址由固定部分和可编程部分构成,由于很可能在一个系统中有几个同样的器件,从机地址中的可编程部分可使最大数量的相同器件连接到IIC总线上。地址的分配方法有两种:1、含CPU的智能器件,地址由软件自己定义,但不能与其它的器件有冲突;2、不含CPU的非智能器件,由厂家在器件内部固化,不可改变。例如,如某器件地址中有4个固定位的和3个可编程位,那么此器件在同一总线上最多可以连接8个。表5.4.1AT24C系列DeviceAddress六、IIC读写时序(AT24C08)1、ByteWrite图6.1.1字写模式图1.先初始化总线。2.写器件地址数据,高位在前低位在后。R/W位代表读/写。3.等侍应答信号。再写入想读/写的字地址,也就是存储器单元地址。4.收到应答信号后,读/写数据。5.收到应答信号后,就可以停止总线。完成操作IIC学习报告82、PageWrite图6.2.1页写模式图不同的器件页写的字节数也不同,2402是按8字节/页写,2404-08-16是按16字页写。而2432-2464则是按32字节页写。页写初始化和字节写相同,只是主器件不会在第一个数据后发送停止条件,而是EEPROM的ACK以后,接着发送(7个)、(15个)、(31个)数据。EEPROM在收到数据后每个都应答0,最后仍需要主器件发送停止条件。终止页写条件。在接收或发送每个数据后,字地址的(低3位)、(低4位)(低5位)内部自动加1,高位地址不变,维持当前页。当内部产生的字地址达到该页边界地址时,随后的数据将写入该页的页首,这时会将先前的字节覆盖掉。3、CurrentRead24CXX的内部地址计数器会保存上次访问最后一个地址加1的值,只要芯片有电。该地址会一直保存。当读到最后页的最后字节,地址回转到0。当写到某页尾的最后一个字节,地址也会回转到该页首节字。1.发送起始条件,再发送读取器件的地址。2.等待ACK,再读取当前地址数据。3.发送NOACK。停止条件。4、RandomRead图6.4.1随机读模式图IIC学习报告9随机读需要先写一个目标字地址,只要EEPROM做了应答,主器件就产生一个重复的起始条件。然后主器件发送器件地址,选择是读/写,EEROM应答了ACK,并会随时钟送出数据。主器件无需要应答0,但需要发送停止条件。1.发送起始条件,再发送器件地址(写),等应答。再发送字地址。再次等应答。2.再次发送起始条件,和器件地址(读),等应答。再读回一组数据。3.主器件发送NOACK,发送停止条件。5、SequentialRead图6.5.1连续读模式图顺序读可以通过“当前地址读”或“随机读”启动,主器件接收到一个数据后,应答ACK。只要EEPROM接收到ACK,将自动增加字地址并继续随时钟发送后面的数据。若达到存储器的地址末尾,地址自动回转到0。仍可继续顺序读取数据。主器件不应答0,而

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功