嵌入式基础知识学习:I2C通信协议

https://zhuanlan.zhihu.com/p/647656964
https://blog.csdn.net/FYBZ2020/article/details/128486981

I2C总线概述

I2C(Inter-Integrated Circuit)总线是两线式串行通信总线,是微电子通信控制领域广泛采用的一种总线标准。

在介绍I2C总线工作原理之前,首先必须明确几个基本概念:
发送器(Transmitter):发送数据到总线的器件;
接收器(Receiver):从总线接收数据的器件;
主机(Master):初始化发送、产生时钟信号和终止信号发送的器件;
从机(Slave):被主机寻址的器件。

I2C总线可以将单片机与其他具有I2C总线通信接口的外围设备连接起来。通过串行数据(SDA)线和串行时钟(SCL)线与连接到该双线的器件传递信息。每个I2C器件都有一个唯一的识别地址(I2C总线支持7位和10位地址),而且都可以作为一个发送器或接收器使用(由器件的功能决定)。I2C器件在执行数据传输时也可以看作是主机或从机,主机是初始化总线数据传输并产生允许传输时钟信号的器件,此时任何被寻址的其他I2C器件都被认为是从机。

I2C总线是双向传输的总线,因为主机和从机都可以成为发送器和接收器,不论主机是发送器还是接收器,时钟信号SCL都要由主机产生。

I2C总线有标准(100Kbps)、快速(400Kbps)和高速(3.4Mbps)三种数据传输速度模式,支持高速模式的可以向下支持低速模式。I2C总线连接的I2C器件数量仅受到总线的最大电容400pF限制,总线连接的器件越多,连线越长,分布电容越大。

I2C总线通信协议

通信协议是通信各方必须遵守的规则,否则通信无法进行,在编写通信程序时需要了解相应的通信协议。
I2C总线通信协议主要内容有:
(1)总线空闲 SCL线和SDA线均为高电平。
(2)开始信号 在SCL线为高电平时,SDA线出现下降沿,该下降沿即为开始信号。
(3)数据传送 开始信号出现后,SCL线为高电平时从SDA线读取的电平为数据;SCL线为高电平时,SDA线的电平不允许变化,只有SCL线为低电平时才可以改变SDA线的电平;SDA线传送数据时,从高位到低位逐位进行,一个SCL脉冲高电平对应1位数据。
(4)停止信号 SCL线为高电平时,SDA线出现上升沿,该上升沿为停止信号,停止信号过后,总线被认为空闲(SCL线、SDA线均为高电平)。

你可能感兴趣的:(学习,嵌入式)