logo资料库

蜂鸟E203的I2C学习报告.pptx

第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
资料共21页,剩余部分请下载后查看
I2C学习报告
I2C背景知识简介 I2C总线,全称为Inter-Integrated Circuit(集成电路互联总线),是MCU中常用的接口模块。 它是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线 上的器件之间传送信息。
I2C原理 I2C 标 志 位 通过SDA(串行数据线)和SCL(串行时钟线)的关 系,可以建立不同的协议标志位。 数 据 传 输 发送到SDA 线上的每个字节必须为8 位每次传输 可以发送的字节数量不受限制,每个字节后必须 跟一个响应位。 时 钟 同 步 和 仲 裁 地 址 格 式 两个主设备可以同时开始在空闲总线上进行传输, 并且必须有一种方法来决定哪个控制总线并完成 其传输。 这是通过时钟同步和仲裁完成的。 I2C总线协议规定的地址寻址介绍。
I2C标志位 1.空闲标志 I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止 状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。  2.Start和stop标志位 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
3.Restart标志位 和start条件一样,在SCL为高电平的时候,SDA下降为低电平,表示一个新的起始。 3.Write和read标志位 不论是读还是写,都是由主设备发起和结束的。也就是由主设备产生开始和结束条件。I2C设备地址为8bit,其中最低位为 读写位,0为写,1为读。实际地址位为7bit。 
数据传输 发送到SDA 线上的每个字节必须为8 位每次传输可以发送的字节数量不受限制,每个字节后必须跟一个响应位,首先传输的 是数据的最高位MSB 。如果从机要完成一些其他功能,例如一个内部中断服务程序才能接收或发送下一个完整的数据字节,可 以使时钟线SCL 保持低电平迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL 后数据传输继续。 响应发生在每个字节之后。 应答位允许接收器向发送器发信号通知该字节已成功接收,并且可以发送另一个字节。 主机产生 所有时钟脉冲,包括应答第9个时钟脉冲。
响应分为ACK和NACK。 ACK 信号:在响应的时钟脉冲期间,接收器必须将SDA 线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。当 然必须考虑建立和保持时间。 NACK信号:当在第9个时钟脉冲期间SDA保持高电平时,这被定义为非应答信号。主设备可以生成STOP条件以中止传输, 或者生成重复的START条件以开始新的传输。 导致生成NACK的条件有五个: 1.总线上没有带有发送地址的接收器,因此没有设备响应确认。 2.接收器无法接收或发送,因为它正在执行某些实时功能,并且尚未准备好开始与主站通信。 3.在传输过程中,接收器获取它不理解的数据或命令。 4.在传输过程中,接收器无法再接收数据字节。 5.主接收器必须发信号通知从发送器的传输结束。
时钟同步 时钟同步通过线与连接I2C 接口到SCL 线来执行。这就是说SCL 线的高到低切换会使器件开始数它们的低电平周期,而且一 旦器件的时钟变低电平,它会使SCL线保持这种状态直到到达时钟的高电平。但是,如果另一个时钟仍处于低电平周期,这个时 钟的低到高切换不会改变SCL线的状态。因此,SCL线被有最长低电平周期的器件保持低电平,此时,低电平周期短的器件会进 入高电平的等待状态。 当所有有关的器件数完了它们的低电平周期后,时钟线被释放并变成高电平。之后器件时钟和SCL线的状态没有差别。而且 所有器件会开始数它们的高电平周期。首先完成高电平周期的器件会再次将SCL线拉低。这样,产生的同步SCL时钟的低电平周 期由低电平时钟周期最长的器件决定,而高电平周期由高电平时钟周期最短的器件决定。
分享到:
收藏