简单的I2C协议理解

一. 技术性能:
    工作速率有100K和400K两种;
    支持多机通讯;
    支持多主控模块,但同一时刻只允许有一个主控;     
    由数据线SDA和时钟SCL构成的串行总线;
    每个电路和模块都有唯一的地址;                   
    每个器件可以使用独立电源

二. 基本工作原理:
    以启动信号START来掌管总线,以停止信号STOP来释放总线;
    每次通讯以START开始,以STOP结束;
    启动信号START后紧接着发送一个地址字节,其中7位为被控器件的地址码,一位为读/写控制位R/W,R. /W位为0表示由主控向被控器件写数据,R/W为1表示由主控向被控器件读数据;
    当被控器件检测到收到的地址与自己的地址相同时,在第9个时钟期间反馈应答信号;
    每个数据字节在传送时都是高位(MSB)在前;

写通讯过程:
    1. 主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线;
    2. 发送一个地址字节(包括7位地址码和一位R/W);
    3. 当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK);
    4. 主控收到ACK后开始发送第一个数据字节;
    5. 被控器收到数据字节后发送一个ACK表示继续传送数据,发送NACK表示传送数据结束;
    6. 主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线;

读通讯过程:
    1. 主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线;
    2. 发送一个地址字节(包括7位地址码和一位R/W);
    3. 当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK);
    4. 主控收到ACK后释放数据总线,开始接收第一个数据字节;
    5. 主控收到数据后发送ACK表示继续传送数据,发送NACK表示传送数据结束;
    6. 主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线;

四. 总线信号时序分析
    1. 总线空闲状态
    SDA和SCL两条信号线都处于高电平,即总线上所有的器件都释放总线,两条信号线各自的上拉电阻把电平拉高;
    2. 启动信号START
    时钟信号SCL保持高电平,数据信号SDA的电平被拉低(即负跳变)。启动信号必须是跳变信号,而且在建立该信号前必修保证总线处于空闲状态;
    3. 停止信号STOP
    时钟信号SCL保持高电平,数据线被释放,使得SDA返回高电平(即正跳变),停止信号也必须是跳变信号。
    4. 数据传送
    SCL线呈现高电平期间,SDA线上的电平必须保持稳定,低电平表示0(此时的线电压为地电压),高电平表示1(此时的电压由元器件的VDD决定)。只有在SCL线为低电平期间,SDA上的电平允许变化。
    5. 应答信号ACK
    I2C总线的数据都是以字节(8位)的方式传送的,发送器件每发送一个字节之后,在时钟的第9个脉冲期间释放数据总线,由接收器发送一个ACK(把数据总线的电平拉低)来表示数据成功接收。
    6. 无应答信号NACK
    在时钟的第9个脉冲期间发送器释放数据总线,接收器不拉低数据总线表示一个NACK,NACK有两种用途:
    a. 一般表示接收器未成功接收数据字节;
    b. 当接收器是主控器时,它收到最后一个字节后,应发送一个NACK信号,以通知被控发送器结束数据发送,并释放总线,以便主控接收器发送一个停止信号STOP。

五. 寻址约定
    地址的分配方法有两种:
    1. 含CPU的智能器件,地址由软件初始化时定义,但不能与其它的器件有冲突;
    2. 不含CPU的非智能器件,由厂家在器件内部固化,不可改变。

    高7位为地址码,其分为两部分:
    1. 高4位属于固定地址不可改变,由厂家固化的统一地址;
    2. 低三位为引脚设定地址,可以由外部引脚来设定(并非所有器件都可以设定);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: I²C(Inter-Integrated Circuit)总线是一种串行通信协议,用于在电子设备间进行数据传输。它由飞利浦公司开发,旨在提供高效、简单和可靠的通信解决方案。该协议使用两根线路,分别是SDA(串行数据线)和SCL(串行时钟线),用于传输数据和时钟信号。 3.4 mI2C协议文档是针对I²C协议的具体规范和说明文件,用于帮助开发人员正确使用和实施I²C通信。这个文档详细描述了mI2C协议工作方式、协议格式和信号定义等关键参数。 在mI2C协议文档中,开发人员可以找到如下内容: 1. 协议概述:介绍mI2C协议的目标、特点以及适用范围。 2. 信号定义:详细说明了SDA和SCL线的电气特性,如电平范围和时钟频率等。 3. 传输格式:解释了mI2C协议传输数据的规则和格式,包括开始信号、地址传输、数据传输和终止信号等。 4. 主从模式:描述了mI2C协议中主设备和从设备的角色以及各自的功能和通信流程。 5. 错误处理:讲解了mI2C协议处理错误和异常情况的方法,如重发机制和超时处理等。 6. 示例代码:提供了一些实用的示例代码,以帮助开发人员了解如何使用mI2C协议进行通信。 总之,3.4m I2C协议文档是一份重要的技术文献,对于理解和应用I²C协议在电子设备间进行数据传输是非常有帮助的。开发人员可以通过阅读该文档,了解I²C协议工作原理和通信方式,同时在实际应用中遵循规范,确保数据的正确传输和设备的正常交互。 ### 回答2: I2C(Inter-Integrated Circuit)是一种串行通信协议,用于在微控制器和外围设备之间进行通信。3.4m I2C协议文档可能是指有关3.4米的I2C协议的相关文档。 I2C协议由两根线组成:串行数据线(SDA)和串行时钟线(SCL)。这种协议使用主从结构,其中一个设备充当主设备,而其他设备充当从设备。主设备控制通信的起始和停止条件,以及时钟信号的生成。从设备接收和发送数据,根据主设备的命令进行响应。 I2C协议有多种速度模式,其中最常见的是标准模式(100 kHz)和快速模式(400 kHz)。其他更高速的模式还包括高速模式(3.4 MHz)和超高速模式(5 MHz)。 文档可能包括有关I2C协议的详细说明,包括通信的起始和停止条件、数据传输的格式、时钟信号的生成、地址分配等内容。文档还可能包括相关设备的配置和命令示例,以及错误处理和故障排除的指导。 对于3.4m I2C协议文档,它可能是指一种3.4米的I2C协议扩展或变种。这种3.4米的I2C协议可能是为了满足特殊应用需求而开发的,例如在通信距离上远远超过了标准I2C协议的限制。 无论是标准的I2C协议文档还是3.4m I2C协议文档,对于工程师和开发者来说,详细的协议文档是非常重要的,它提供了关于协议理解和实施的指导,确保设备之间的正常通信和正确的数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值