在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1620|回复: 0

[转贴] IIC通信协议

[复制链接]
发表于 2021-6-1 15:59:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
IIC(Inter-Integrated Circuit) ,简单说就是IC(芯片)之间通信的总线。总线的意思就是,各个器件都并联接到一组公共的线路上,然后共用这条线路来传输数据信息。总线的英文名字是BUS,所以这些数据的传输有点类似搭乘巴士的感觉。这样做的好处就是可以复用线路,大家都来坐巴士就好了,不用自己开车了。
image.png
IIC通信协议采用2条信号线,1条时钟线(SCL)和1条数据线(SDA),属于串行半双工通信。标准模式的传输速率为100Kb/s,快速模式为400Kb/s。总线上可以接多个从设备,从设备的地址必须不同。也可也接多个主设备,但同一时刻只能有一个主设备控制总线。最大设备数量受总线的最大负载电容400pf限制。
每个从设备有自己的设备地址,主设备发送START信号后,紧跟着发送想要通信的从设备地址字节,7位器件地址+1位读写标志位(0为写,1为读)。
START信号:当时钟线为高时,数据线下跳会产生启动信号。
STOP信号:当时钟线为高时,数据线上跳会产生停止信号。
总线的状态1.总线空闲时,就是总线上所有器件都释放了总线,此时SCL和SDA因为有上拉电阻都为高电平。
2.主设备检测到总线当前处于空闲时,此时可以发START信号获得总线得控制权。
3.主设备通信完成后,发送STOP信号释放总线,总线处于空闲状态。
写数据的过程:    1. 主控检测到总线处于空闲时,首先发送一个START信号来控制总线,此时总线进入忙状态;
    2. 主控发送一个设备地址字节,总线上所有的从设备都会收到;
    3. 当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK);
    4. 主控收到ACK后开始发送第一个数据字节;
    5. 被控器收到数据字节后发送一个ACK表示继续传送数据,发送NACK表示传送数据结束;
    6. 主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线;

读过程:1.主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线;
2.发送一个地址字节(包括7位地址码和一位R/W,最后1bit为0,表示写),将地址写入地址计数器;
3.当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK);
4.主控收到ACK后紧接着发送一个start状态,然后重复第一个地址字节(device code)最后1bit为'1',代表读。
5.释放数据总线,开始接收第一个数据字节;
6.主控收到数据后发送ACK表示继续传送数据,发送NACK表示传送数据结束;

image.png
转自:IIC通信协议 - 简书 (jianshu.com)

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-28 00:40 , Processed in 0.015015 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表