IIC原理超详细讲解原理超详细讲解—值得一看值得一看
文章目录文章目录IIC 简介IIC的物理层IIC的高阻态IIC物理层总结:IIC的协议层IIC 总线时序图初始(空闲)状态开始信号:停止信号数据有效性应答信号IIC数据传送数据传送格
式IIC发送数据IIC读数据:以AT24C02为例子软件IIC和硬件IIC
IIC 简介简介
IIC(Inter--Integrated Circuit)总线总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通
信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。
在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。
IIC的物理层IIC的物理层
IIC一共有只有两个总线:一共有只有两个总线: 一条是双向的串行数据线SDA,一条是串行时钟线SCL一条是双向的串行数据线SDA,一条是串行时钟线SCL
SDA(Serial data)是数据线是数据线,D代表Data也就是数据,Send Data 也就是用来传输数据的
SCL(Serial clock line)是时钟线是时钟线,C代表Clock 也就是时钟 也就是控制数据发送的时序的
所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。I2C总线上的每个设备都自己一个唯一的地址,来确保不同设备之间
访问的准确性。
IIC主要特点:主要特点:
通常我们为了方便把IIC设备分为主设备和从设备,基本上谁控制时钟线(即控制基本上谁控制时钟线(即控制SCL的电平高低变换)谁就是主设备。的电平高低变换)谁就是主设备。**
IIC主设备功能:主要产生时钟,产生起始信号和停止信号
IIC从设备功能:可编程的IIC地址检测,停止位检测
IIC的一个优点是它支持多主控的一个优点是它支持多主控(multimastering), 其中任何一个能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时
间点上只能有一个主控。
支持不同速率的通讯速度,标准速度(最高速度100kHZ),快速(最高400kHZ)
SCL和和SDA都需要接上拉电阻都需要接上拉电阻 (大小由速度和容性负载决定一般在3.3K-10K之间) 保证数据的稳定性,减少干扰。
IIC是半双工,而不是全双工是半双工,而不是全双工 ,同一时间只可以单向通信
为了避免总线信号的混乱,要求各设备连接到总线的输出端时必须是漏极开路(要求各设备连接到总线的输出端时必须是漏极开路(OD)输出或集电极开路()输出或集电极开路(OC)输出。这一点在等下我们会讲解)输出。这一点在等下我们会讲解
IIC的高阻态的高阻态
漏极开路(漏极开路(Open Drain)即高阻状态,适用于输入)即高阻状态,适用于输入/输出,其可独立输入输出,其可独立输入/输出低电平和高阻状态,若需要产生高电平,则需使用外部上拉电阻输出低电平和高阻状态,若需要产生高电平,则需使用外部上拉电阻
高阻状态:高阻状态是三态门电路的一种状态。逻辑门的输出除有高、低电平两种状态外,还有第三种状态——高阻状态的门电路。电路分析时高阻态可做开路理解电路分析时高阻态可做开路理解。
我们知道IIC的所有设备是接在一根总线上的,那么我们进行通信的时候往往只是几个设备进行通信,那么这时候其余的空闲设备可能会受到总线干扰,或者干扰到总线,怎
么办呢?
为了避免总线信号的混乱,IIC的空闲状态只能有外部上拉, 而此时空闲设备被拉到了高阻态,也就是相当于断路, 整个IIC总线只有开启了的设备才会正常进行通信,而不
会干扰到其他设备。
评论0