I2C协议笔记


I2C简介

  I2C(芯片间)总线接口连接微控制器和串行I2C总线。它提供多主机功能,控制所有I2C总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,同时与SMBus 2.0兼容。
  I2C模块有多种用途,包括CRC码的生成和校验、SMBus(系统管理总线—System Management Bus)和PMBus(电源管理总线—Power Management Bus)。
  根据特定设备的需要,可以使用DMA以减轻CPU的负担。

接口可以下述4种模式中的一种运行:
● 从发送器模式
● 从接收器模式
● 主发送器模式
● 主接收器模式
该模块默认地工作于从模式。接口在生成起始条件后自动地从从模式切换到主模式;当仲裁丢失或产生停止信号时,则从主模式切换到从模式。允许多主机功能。


一、总体特征

  SDA 和 SCL 都是双向线路,都通过一个电流源或上拉电阻连接到正的电源电压(见图 1 )。当总线空闲时,这两条线路都是高电平,连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能。I2C 总线上数据的传输速率在标准模式下可达 100kbit/s,在快速模式下可达 400kbit/s 在高速模式下可达 3.4Mbit/s,连接到总线的接口数量只由总线电容是 400pF 的限制决定。


二、位传输

  由于连接到 I2C 总线的器件有不同种类的工艺 (CMOS NMOS 双极性), 逻辑 ‘0’ (低) 和 ‘1’ (高)的电平不是固定的,它由 VDD 的相关电平决定。每传输一个数据位就产生一个时钟脉冲。

2.1 数据的有效性

  SDA 线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只有在 SCL 线的时钟信号是低电平时才能改变(见图 2)。
图3  标准模式器件和快速模式器件连接到 I2C 总线

图1 标准模式器件和快速模式器件连接到 I2C 总线

I2C总线位传输

图2 I2C总线的位传输

2.2 起始和停止条件

  在 I2C 总线中,唯一出现的是被定义为起始(S)和停止(P)条件(见图 3)的情况。
其中一种情况是在 SCL 线是高电平时,SDA 线从高电平向低电平切换。这个情况表示起始条件。
  当 SCL 是高电平时,SDA 线由低电平向高电平切换表示停止条件。
  起始和停止条件一般由主机产生。总线在起始条件后被认为处于忙的状态。在停止条件的某段时间后总线被认为再次处于空闲状态。
  如果产生重复起始(Sr)条件而不产生停止条件吗,总线会一直处于忙的状态。此时的起始条件(S)和重复起始(Sr)条件在功能上是一样的(见图 8)因此在本文档的剩余部分,符号(S)将作为一个通用
的术语既表示起始条件又表示重复起始条件,除非有特别声明的(Sr)。
  如果连接到总线的器件合并了必要的接口硬件 那么用它们检测起始和停止条件十分简便。但是没
有这种接口的微控制器在每个时钟周期至少要采样 SDA 线两次来判别有没有发生电平切换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值