嵌入式笔记-ARM裸机-I2C通信

系列文章目录


一、I2C是什么?

1.物理接口:SCL+SDA

I2C通信可以通过非常简单的接口(SCL和SDA)来实现比较复杂的数据传输,
(1)SCL(serial clock):时钟线,用来传输CLK时钟信号,一般是I2C主设备向从设备提供时钟的通道
(2)SDA(serial data):数据线 ,通信数据都通过SDA传输

2.通信特征:串行、同步、非差分、低速率

(1)I2C属于串行通信,所有数据以位为单位在SDA线上串行传输,这一点跟串口通信非常相似
(2)I2C采用同步通信,同步通信就是通信双方工作在同一个时钟下,一般是通信的A方通过一根CLK信号线传输A自己的时钟给B,B工作在A传输的时钟下,所以同步通信的显著特征就是:通信线中有CLK如何判断一种通信方式是同步还是异步呢?只要是同步通信就必然有CLK信号,
(3)非差分,因为I2C的通信速率不高,而且通信双方距离很近。所以使用电平信号通信。
(4)低速率,I2C一般是用在同一个板子上的2个IC之间的通信,而且用来传输的数据量不大,所以本身通信速率很低(几百KHZ,不同的I2C芯片的通信速率可能不同,具体在编程的时候要看自己所使用的设备允许的I2C通信最高速率,不能超过这个速率,不然设备又可能响应不过来)

3.突出特征1:主设备+从设备

(1)I2C通信的时候,通信双方的地位是不对等的,而是分主设备和从设备,通信有主设备发起,有主设备主导,从设备只是按照I2C协议被动的接受主设备的通信,并及时响应
(2)谁是主设备、谁是从设备是由通信双方来定的(I2C协议并无规定),一般来说一个芯片可以只能主设备、也可以只能做从设备、也可以既能当主设备又能当从设备(通过软件来配置)
注意:在同一时刻不能既当主设备又当从设备

4.突出特征1:可以多个设备挂在一条总线上(从设备地址)

(1)I2C通信可以一对一(1个主设备对1个从设备),也可以一对多(1个主设备对多个从设备)
(2)主设备来负责调度总线,决定某一时间只能有一个从设备和主设备通信及和哪一个从设备通信
注意:同一时间内,I2C的总线上只能传输一对设备的通信信息,所以同一时间只能有一个从设备和主设备通信,其他从设备处于”冬眠“状态,不能出来捣乱,否则通信就乱套了。
(3)每一个I2C从设备在通信中都有一个I2C从设备地址,这个设备的地址是从设备本身固有的属性,然后通信时主设备需要知道自己将要通信的那个从设备的地址,然后在通信中通过地址来甄别是不是自己要找的那个从设备。(这个地址是一个电路板上唯一的,不是全球唯一的)
i请添加图片描述

5.主要用途:SOC和周边外设之间的通信

如EEPROM、电容触摸屏IC、各种传感器等

二、I2C通信时序

1.什么是时序?

时序:字面意思,时序就是时间的顺序,实际上在通信中时序就是通信线上按照时间顺序发生的电平变化,以及这些变化对通信的意义就叫时序。

2.I2C的总线空闲状态、起始位、结束位

(1)I2C总线上有2种状态:空闲态(所有从设备都未和主设备通信,此时总线空闲)和忙态(其中一个从设备在和主设备通信,此时总线被这一对占用,其他从设备必须歇着),如何判断空闲态呢?当SDA和SCL在几个时间周期中都处于高电平时就为空闲态。

这I2C通信时序

在这里插入图片描述
(2)整个通信分为一个周期一个周期的,两个相邻的通信周期是空闲态,每一个通信周期由一个起始位开始,一个结束位结束,中间是本周期的通信数据。
2.2

(3)起始位并不是一个时间点,起始位是一个时间段,在这段时间内总线状态变化情况是:SCL维持高电平,同时SDA线发生一个从高到低的下降沿。(如图2.2)
(4)与起始位相似,结束位也是一个时间段。在这段时间内总线状态变化情况是:SCL维持高电平,同时SDA线发生一个从低到高的上升沿。(如图2.2)

3.I2C数据传输格式(数据位&ACK)

(1)每一个通信周期的发起和结束都是由主设备来做的,从设备只有被动的响应主设备,没法自己自发的去做任何事情。
(2)主设备在每个通信周期会先发8位的从设备地址(其实8位中只有7位是从设备地址,还有一位表示主设备下面要写入还是读出)到总线(主设备是以广播的形式发送的,只要是总线上的所有从设备其实都能收到这个信息)。然后总线上的每个从设备都

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

幻无限

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

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

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

打赏作者

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

抵扣说明:

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

余额充值