打印

I2C总线实现原理

[复制链接]
775|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
I2C总线特点包括:
    只使用两根线:
         串行数据(SDA);
         串行时钟(SCL);
         串行的8位数据传输:
  标准模式下最大速度为100kbps;
  快速模式下最大速度400kbps;
  快速加模式下最大速度1Mbps。
沙发
雾霾和青山| | 2015-7-24 09:00 | 只看该作者
使用集电极开路或者开漏极,通过上拉电阻将设备连接到总线上(线“与”功能)。
每个连接到总线的设备,由软件通过独一无二的地址进行寻址。
存在简单的主/从关系,从设备能操作为发送器或者接收器;
支持多主模式,当两个设备同时初始化数据传输时,使用冲突检测和仲裁。

使用特权

评论回复
板凳
关小波522| | 2015-7-24 09:10 | 只看该作者
一个典型的I2C总线的传输过程。该过程主要包含以下几步:

图片15.png (63.72 KB )

图片15.png

使用特权

评论回复
地板
关小波522| | 2015-7-24 09:11 | 只看该作者
主设备控制SCL线,产生一个开始(Start)条件,后面跟着数据字节。数据字节包含7个从设备地址和一个读/写(RW)位。该位设置相对于主设备的数据传输方向。高为读低为写。
从设备识别它的地址,并且在第9位的时间间隔内,通过将数据线拉低产生应答(ACK)字节。如果从设备没有用ACK响应第1个字节,主设备产生停止条件来终止数据的传输。一个重复的启动条件将用于重新的尝试传输;
取决于读/写,主设备发送或接收不确定数目的字节。

使用特权

评论回复
5
peace555| | 2015-7-24 09:12 | 只看该作者
当数据传输结束时,主设备产生停止条件。
        当接收设备需要时间将接收的数据存储或者准备要发送的数据时,从设备可以将SCL线拉低,这样就使得主设备进入等待状态。注意有些主设备不支持这种等待方式。
       此外,I2C接口能为下面这些条件产生中断:
字节传输完成(接收/发送);
I2C停止条件;
I2C错误检测;

使用特权

评论回复
6
波越| | 2015-7-26 19:57 | 只看该作者
学习了,谢谢分享

使用特权

评论回复
7
zb0830| | 2015-7-26 20:54 | 只看该作者
I2C是一个很好的总线,还可以进行寻址的方式进行,多个器件的集联,不错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

90

主题

648

帖子

0

粉丝