16_IIC编程

发布时间:2022-09-04 18:30

第十六章 I2C编程

​ I2C(Inter-Integrated Circuit BUS)是I2C BUS简称,中文为集成电路总线,是目前应用最广泛的总线之一,和IMX6ULL有些相关的是,刚好该总线是NXP前身的PHILIPS设计。当前仍然是应用最广泛的总线协议之一。

16.1 I2C协议

16.1.1 概述

​ I2C是一种串行通信总线,使用多主从架构,最初设计师为了让主板、嵌入式系统或手机用以连接低速周边设备而发展而来。在小数据量场合使用,有传输距离短,任意时刻只能有一个主机等特性。严格意义上讲,I2C应该是软硬件结合体,所以我们将分物理层和协议层来介绍该总线。(总线结构如下图)

16_IIC编程_第1张图片

​ 对于I2C通信的过程,韦老师有个形象的说法:

​ 传输数据,我们需要发数据,从主设备发送到从设备上去,也需要把数据从从设备传送到主设备上去,数据涉及到双向传输。

​ 举个例子:

​ 体育老师:可以把球发给学生,也可以把球从学生中接过来。

​ ① 发球:

​ a. 老师说:注意了(start)

​ b. 老师对A学生说,我要球发给你(地址)。

​ c. 老师就把球发出去了(传输)。

​ d. A收到球之后,应该告诉老师一声(回应)。

​ e. 老师说下课(停止)

​ ② 接球:

​ a. 老师说注意了(start),

​ b. 老师说:B把球发给我(地址)

​ c. B就把球发给老师(传输)

​ d. 老师收到球之后,给B说一声,表示收到球了(回应)。

​ e. 老师说下课(停止)

我们就使用这个简单的例子,来解释一下IIC的传输协议。

  • 老师说注意了,表示开始信号(start)
  • 老师告诉某个学生,表示发送地址(address)
  • 老师发球/接球,表示数据的传输
  • 老师/学生收到球,回应表示:回应信号(ACK)
  • 老师说下课,表示IIC传输接受§

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号