IIC协议

1. 概述

I2C(Inter-Integrated Circuit BUS) 集成电路总线,该总线由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。

2. 物理层

  1. 只要求两条总线线路,一条是串行数据线SDA,一条是串行时钟线SCL。(IIC是半双工,而不是全双工)。
  2. 每个连接到总线的器件都可以通过唯一的地址和其它器件通信,主机/从机角色和地址可配置,主机可以作为主机发送器和主机接收器。
  3. IIC是真正的多主机总线,(区别于SPI在每次通信前都需要把主机定死,而IIC可以在通讯过程中,改变主机),如果两个或更多的主机同时请求总线,可以通过冲突检测和仲裁防止总线数据被破坏。
  4. 传输速率在标准模式下可以达到100kb/s,快速模式下可以达到400kb/s。
  5. 连接到总线的IC数量只是受到总线的最大负载电容400pf限制。

3. 协议层

开始条件:SCL高电平,SDA由高变低
停止条件:SCL高电平,SDA由低变高
总线空闲态:SDA为高电平(没有设备发送开始条件)
应答信号:接受数据的IC在接受到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。

写:
1.主机发送开始条件
2.发送从机地址(7位 )+ 写(0)
3.从机会产生一个应答信号(一个CLK下,把SDA拉低)
4.主机得到应答信号,发送8位数据。
5.从机会产生一个应答信号
6.重复 4.5 过程,直到主机发送停止条件

读:
1.主机发送开始条件
2.发送从机地址(7位)+读(1)
3.从机会产生一个应答信号(一个CLK下,SDA拉低)
4.从机给主机发送8位数据
5.主机给从机发送应答
6.从机得到应答,接着发送8位数据。
7.重复5.6过程,直到主机不发送应答信号和产生停止信号

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值