009I2C接口的通讯原理V100200 80904.pptVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
009I2C接口的通讯原理V100200 80904.ppt

* * * * * * * * * * I2C结构的通讯原理 产品简介 参考资料 ATMEL的24C02芯片的产品手册 (24C02是串行EEPROM) I2C BUS标准,PHILIP I2C总线的基本特点 I2C总线通过两根信号线可以完成数据的双向通讯,在微控制器领域有广泛的使用,信号线分为一个是SCL(时钟线),一个是SDA(数据线); I2C总线有多种模式: 标准模式,时钟速率最大为100Kbps 快速模式,时钟速率最大为400Kbps 高速模式,时钟速率最大为3.4Mbps 目前我们接触最多、使用最多的主要是标准模式的I2C总线;以100Kbps的速率为例,使用连续读的方式,传输256个字节的数据需要30毫秒左右,即可完成; I2C总线的基本特点 I2C总线的基本电路I I2C总线的基本电路II I2C电路的基本特点: 所有连接到总线上的设备都可以实时知道总线上的状态,通过放大器;即随时监听总线上的活动; 所有连接到总线上的设备都可以把总线的电平拉低,逻辑上称为线与的功能; 不发送数据的设备将输出设定为1;通常情况下,总线上只允许一个设备发送数据,其他的设备都是监听; 发送数据的设备将输出设定为1时,如果同时观察到总线上状态为0,就知道一定还有一个其他的设备正试图占用总线,即总线上有冲突; I2C总线的基本电路III I2C电路的基本特点: 时钟线上的时钟频率,不是严格固定的,可快可慢,甚至,在一个传输过程中,时钟信号的频率也可能发生变化,这种异步的特性,对用MCU来处理I2C通讯协议带来很大的便利; I2C总线上设备分为主设备、从设备两种,主设备是发起通讯的设备,从设备是被动接收命令的设备,通常,一个总线上有一个主设备,多个从设备,这种情况最常见;也有存在多个主设备的I2C总线,但是这个操作上比较复杂,我们不讨论; I2C总线的基本操作:START STOP START:表示一个会话的开始 STOP: 表示一个会话的结束 I2C总线的基本操作:数据传输 基本原则:SCL为高的时候,SDA上的数据有效,所有的数据变化,都必须在SCL为低的期间完成; I2C总线的基本操作:ACK 接收数据的一方在接收到8个BIT后,在第9个BIT对接收的数据进行确认,称为ACK;也就是在总线上发送一个0; I2C基本会话元素:一个基本的会话过程 一个基本会话过程: START、 设备地址、 子地址、 数据、 STOP I2C基本会话元素:设备地址 I2C总线上有很多从机设备,通过设备地址来指定需要和那个从机设备通讯,从机地址有7个BIT来表示,可以支持最多127个从机设备(地址0x00是用来做广播地址 ); 最后一个BIT用来表示这个会话是一个写会话,还是一个读会话;0表示写操作,1表示读取操作 I2C基本会话元素:子地址 子地址用于指定需要具体进行读取操作的存储器地址,目前的8位子地址的I2C结构中,支持256个字节的地址寻址; 重要特性:从机中始终要保存一个内部寄存器,用于存放最后被访问的存储器的地址; I2C基本会话:单字节写 I2C基本会话:页写(最大长度:8个字节) I2C基本会话:从机查询 I2C上的从机在通讯的时候,可能在由于内部处理原因,暂时无法处理I2C上的通讯,比如:正在进行一个内部写操作(EEPROM的写操作比较慢,1个字节需要4-5毫秒),或者,正在进行一个内部的复杂运算; 这个时候,主机需要用查询的方式反复的对从机进行查询,如果从机可以开始I2C操作,就给出ACK,如果不能进行I2C操作,就不做任何响应,主机也就知道从机处于繁忙的状态; I2C基本会话:当前地址读 特别注意NO ACK,表示,不需要更多的数据 I2C基本会话:连续读 如果读取连续读取超过256个字节,会出现什么情况? I2C基本会话:随机地址读 在读取前面增加一个DUMMY WRITE操作 (先假写后读,假写改变内部寄存器的值) I2C的特殊操作:时钟拉长 从机在通讯的过程中,特别是ACK的时候,可以通过拉低SCL信号,让总线SCL短时停止(不能无限制的拉长,即过快的写入会失败),主机可以侦测到SCL被拉低,会停止操作,等待从机恢复SCL总线; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

文档评论(0)

cai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档