IIC学习随笔

一、概念简介

IIC(Inter-Integrated Circuit)其实是IICBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。


二、基本特点

2.1 双线制

一根为时钟同步线(SCL),一根为数据传输线(SDA)

2.2 半双工

只有SDA在进行数据传输,所以IIC能够实现双方双向通信,但不能同时

2.3 同步通信

有同步信号线SCL,通信协议时序严格,SDA在主从设备初步同步后,在SCL时序控制下,按位传输数据。

2.4 通信为主从机模式

一主多从的运行模式:一个主机和多个从机
SCL由主机控制,SDA可由主机控制,也可由从机控制

2.5 从属设备地址

由于IIC为主从机模式通信,故当主机想要和从机通信时,需要确定从机的地址才能进行通信,而主机不需要设备地址。
注意:
1.从设备地址是由生产设备的厂家确定的
2.只能由主机先发起通信,从机不能先发起通信

2.5.1 设备地址的组成

设备地址一般由7为组成,在IIC通信时,将其左移一位,将最低位作为读写位。即abcd efg(w/r)
读写位用来确定主机和从机的发送方和接收方
读写位为0 --> 主机作为发送方
读写位为1 --> 主机作为接收方
例如:
有一个从设备的地址为0x50,主机想要和该从机通过IIC进行通信,则有:
0x50 ---- 0101 0000
左移一位为: 1010 0000 ---- 0xA0
主机发送:(0x50 << 1) | 0x00 = 0xA0
主机接收:(0x50 << 1) | 0x01 = 0xA1

2.5.2 设备地址的作用

最主要的作用为确定地址,方便主机找到从机地址,同时确定IIC通信的收发方。
还有其他的作用,后续继续补充!

2.6 数据收发规则

传输数据时是高位先发,由于是串行通信,故接收方也是高位先收
IIC在收发数据的过程中:
发送方只能在SCL低电平时可以发送数据
接收方只能在SCL低电平时可以读取数据


三、时序分析

在这里插入图片描述
(图源百度百科

3.1 主机发送数据给从机

SDA先拉低,发送一个启动信号,后SCL拉低,开始数据传输,每次传输8位数据,传输完成后接收者会反馈一个应答信号(ACK/NACK),后继续传输数据,当数据全部传输完成后,会发送一个终止信号,表明此次数据传输已经结束。

总结即为:启动信号+从设备地址+R/W+应答信号+数据传输+应答信号+……+终止信号

3.2 主机读取从机数据

由于从机可能会将数据存储在特定的位置,故需要先确定数据存储在哪里,因此需要先进行写操作,在进行读操作。

总结即为:启动信号+从机地址+写模式+应答信号+从设备中要读取数据的存储位置+应答信号+重新启动信号+从机地址+读模式+应答信号+终止信号

3.3 通信过程

一次完整的IIC通信一般由以下三部分组成:
通信前:
空闲状态:SDA和SCL都位高电平,并保持一定时间
通信时:
1.启动信号,从空闲状态转到通信状态
2.主机发送信号给从机们,寻找想要通信的从机
3.从机发送给主机应答信号(主机发送数据给从机)
4.主机发给从机应答信号(主机读取从机数据)
5.数据的收发与接收
通信结束后:
发送终止信号,SDA和SCL回归为空闲状态

3.4 启动信号

启动信号为SDA和SCL不同步的一个体现,SDA先拉低,SCL为高电平,保持>=4.0us后再拉低。

3.5 终止信号

SCL先拉高,保持>=4.0us后,SDA再拉高,进入空闲状态。


总结

IIC通讯方式由于只有一条SDA数据线,故为半双工模式。工作原理简而言之其实就是是通过主机不断发出信号,从机接收信号并应答的方式,发出信号需要启动信号和终止信号来控制IIC传输的启动和结束。
写的不好,后面还会继续更新,欢迎大佬指点一下呀!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DayDayUp..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值