I2C总线之(二)---时序

发布者:平和宁静最新更新时间:2015-05-21 来源: iianews关键字:I2C总线  时序 手机看文章 扫描二维码
随时随地手机看文章
一、协议


1.空闲状态 


 I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。 


2.起始位与停止位的定义: 

  • 起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。
  • 停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。

3.ACK

  发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。 应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。 对于反馈有效应答位ACK的要求是,接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。 如果接收器是主控器,则在它收到最后一个字节后,发送一个NACK信号,以通知被控发送器结束数据发送,并释放SDA线,以便主控接收器发送一个停止信号P。

   如下图逻辑分析仪的采样结果:释放总线后,如果没有应答信号,sda应该一直持续为高电平,但是如图中蓝色虚线部分所示,它被拉低为低电平,证明收到了应答信号。

这里面给我们的两个信息是:1)接收器在SCL的上升沿到来之前的低电平期间拉低SDA;2)应答信号一直保持到SCL的下降沿结束;正如前文红色标识所指出的那样。


 

4.数据的有效性: 

 

I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。 

我的理解:虽然只要求在高电平期间保持稳定,但是要有一个提前量,也就是数据在SCL的上升沿到来之前就需准备好,因为在前面I2C总线之(一)---概述一文中已经指出,数据是在SCL的上升沿打入到器件(EEPROM)中的。

   

5.数据的传送:

 

  在I2C总线上传送的每一位数据都有一个时钟脉冲相对应(或同步控制),即在SCL串行时钟的配合下,在SDA上逐位地串行传送每一位数据。数据位的传输是边沿触发。[page]

 二、工作过程

  总线上的所有通信都是由主控器引发的。在一次通信中,主控器与被控器总是在扮演着两种不同的角色。

1.主设备向从设备发送数据

  主设备发送起始位,这会通知总线上的所有设备传输开始了,接下来主机发送设备地址,与这一地址匹配的slave将继续这一传输过程,而其它slave将会忽略接下来的传输并等待下一次传输的开始。主设备寻址到从设备后,发送它所要读取或写入的从设备的内部寄存器地址; 之后,发送数据。数据发送完毕后,发送停止位:

写入过程如下:

  发送起始位

  • 发送从设备的地址和读/写选择位;释放总线,等到EEPROM拉低总线进行应答;如果EEPROM接收成功,则进行应答;若没有握手成功或者发送的数据错误时EEPROM不产生应答,此时要求重发或者终止。
  • 发送想要写入的内部寄存器地址;EEPROM对其发出应答;
  • 发送数据
  • 发送停止位.
  • EEPROM收到停止信号后,进入到一个内部的写入周期,大概需要10ms,此间任何操作都不会被EEPROM响应;(因此以这种方式的两次写入之间要插入一个延时,否则会导致失败,博主曾在这里小坑了一下)

   

  详细:

  需要说明的是:①主控器通过发送地址码与对应的被控器建立了通信关系,而挂接在总线上的其它被控器虽然同时也收到了地址码,但因为与其自身的地址不相符合,因此提前退出与主控器的通信;

 

2.主控器读取数据的过程:

  读的过程比较复杂,在从slave读出数据前,你必须先要告诉它哪个内部寄存器是你想要读取的,因此必须先对其进行写入(dummy write):

  • 发送起始位;
  • 发送slave地址+write bit set;
  • 发送内部寄存器地址;
  • 重新发送起始位,即restart;
  • 重新发送slave地址+read bit set;
  • 读取数据
    主机接收器在接收到最后一个字节后,也不会发出ACK信号。于是,从机发送器释放SDA线,以允许主机发出P信号结束传输。 
  • 发送停止位   


详细: 

				   
关键字:I2C总线  时序 引用地址:I2C总线之(二)---时序

上一篇:I2C总线之(一)---概述
下一篇:I2C总线之(三)---以C语言理解IIC

推荐阅读最新更新时间:2024-05-02 23:43

I2C总线协议详解
I2C总线定义 --------------------------------------------------------------------------------       I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。   I2C总线特点
[嵌入式]
STM8 ADC时序
STM8 ADC时序图 如图149所示,在ADC上电后,在开始精确转换之前ADC需要一个稳定时间tSTAB(等于一次转换的时间tCONV),对于之后接下来的转换就不需要稳定延时,而且ADON位只需要被置位一次。一次ADC转换需要14个时钟周期,在转换完成后EOC标志被置位,同时转换结果保存在10位ADC数据寄存器里面。 (图149:STM8单次模式的时序图(CONT=0)) (图150:STM8单次模式的时序图(CONT=1))
[单片机]
STM8 ADC<font color='red'>时序</font>图
I2C总线实现TMS320VC5509A引导装载设计
1 引言 DSP芯片的Bootloader程序用于上电时将用户程序从外部非易失性、慢速存储器或外部控制器中装载到片内高速RAM中,保证用户程序在DSP内部高速运行,TI公司的C55x系列DSP芯片提供多种装载模式,主要包括HPI引导装载、串行E2ROM引导装载、并行引导装载、串行口引导装载、I2C总线E2ROM引导装载等,通常使用的是并行引导装载模式,该方式引导速度快实现简单,但是体积和功耗也较大,随着串行接口存储设备容量的提高,串行引导方式体积小、功耗低的优势便显现出来了,所以使用ARM的串行接口对DSP进行引导装载,不仅能省去存储芯片,而且利用ARM的ISP功能,可以根据需要改变用户程序,有利于系统的维护和升级。 本文以TM
[应用]
富士通半导体推出支持I2C总线 1Mb的FRAM
  拥有I2C接口,适用于工厂自动化控制、测验仪器及工业设备       上海,2014年2月25日 –富士通半导体(上海)有限公司今日宣布,成功开发出拥有1Mb内存 (128K字符X 8位)的全新FRAM产品---MB85RC1MT,是所有富士通半导体I2C串行接口产品中最高内存容量的产品,且即日起即可为客户提供样品。全新MB85RC1MT可保证有一万亿次写入/擦除 (write/erase) 周期,适用于需要经常重复写入数据之应用,例如工厂自动化、测试仪器及工业设备所需之实时数据登录应用。现在富士通半导体同时拥有广泛的I2C与SPI串行接口产品系列,为客户提供最符合他们要求的非挥发性存储器产品。      FRAM是一种兼具非
[嵌入式]
富士通半导体推出支持<font color='red'>I2C总线</font> 1Mb的FRAM
关于工业网络的精密时序问题解析
  工业网络连接工厂内的机器、机器人、传感器、 执行器、控制器和计算机,以便于指令和数据的交换,从而同步它们的工作。网络中机器的同步操作需要每个机器都有相同的“精密时间”。每台机器上的精密时间 保证了网络中事件的相对顺序。缺乏精确的时间可能会导致机器和机器人操作顺序混乱CONTROL ENGINEERING China版权所有,这反过来可能导致产品质量差、重要信息丢失、甚至发生灾难性的事故。本文探讨了工业网络中的精密时序的必要性,以及各种应用和机制所需的时间精度来确保以太网网络中的时序精确性。   工业网络   传统的工业网络使用专有的、特定供应商提供的网络技术连接工厂内的机器和计算机。专有的网络技术导致不同厂商机器之间的
[嵌入式]
第八章、Tiny4412 U-BOOT移植八 SDRAM工作时序与原理
DDR出身自SDRAM,严格的说应该叫DDR SDRAM,DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思,所以,有很大一部分,两者是一样的,理解SDRAM,然后再来理解DDR。在SDRAM上的改进,效果应该更好一些,这里要感谢Chinaunix.net的大神--Tekkaman Ninja,我的内存的学习资料都是Tekkaman Ninja的博客中介绍的。以下是我对大神推荐文档的一些个人整理,OK,先上一张SDRAM的结构图,如下图8-1所示。 图8-1、SDRAM 内部结构图 下面上一张简易的SDRAM工作流程图。 图8-2、SDRAM 简易工作流程图 图中
[单片机]
第八章、Tiny4412 U-BOOT移植八 SDRAM工作<font color='red'>时序</font>与原理
是德科技与Silicon Labs联手简化时序解决方案的验证
是德科技与Silicon Labs合作,结合双方产品技术优势,旨在简化对时序解决方案的验证工作,这些时序解决方案对于无线通信,高速数字,医学成像和汽车应用的系统级设计的开发至关重要。 是德科技与Silicon Labs联手,利用Keysight的实时Infiniium UXR系列示波器,新的相位噪声分析软件和Silicon Labs的产品来简化对相位噪声的测量。因此,是德科技UXR示波器的现有用户,例如振荡器,高速数字系统和功率放大器(PA)前端模块(FEM)的制造商,可以轻松表征其设计的时钟和振荡器的性能。 通过Keysight的UXR示波器及相位噪声分析软件,可在很宽的频率范围内提供信号保真度。使用相位噪声测量功能的用户可以评
[测试测量]
基于EP9312的银税类嵌入式系统硬件设计方案
1 嵌入式系统的概念与特点 嵌入式系统结合微处理器或微控制器的系统电路与其专属软件,达到系统操作效率的最高比,这里把嵌入式系统定义为一个体积较小的计算机系统(与PC机相比),由于其体积较小,因此软硬件结构和应用范围与PC机相比有较大的不同,其特性可归纳为下列四项: (1)通常执行特定功能; (2)以微电脑与外围构成核心; (3)严格的时序与稳定性要求; (4)全自动操作循环。 嵌入式系统具有目的性或针对性,其开发是围绕着产品和产品的特定功能来进行的。它必须最大限度的在硬件和软件上"量身订作"以提高效率 ,本文设计的嵌入式系统主要用于金融和税务类产品。 2 总体设计 2.1 CPU的选择 本文采用的是Cirrus L
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved