iic总线介绍

Posted lphwork

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iic总线介绍相关的知识,希望对你有一定的参考价值。

在I2C 总线中唯一出现的是被定义为起始S 和停止P 条件见图5 的情况
其中一种情况是在SCL 线是高电平时SDA 线从高电平向低电平切换这个情况表示起始条件
当SCL 是高电平时SDA 线由低电平向高电平切换表示停止条件
起始和停止条件一般由主机产生总线在起始条件后被认为处于忙的状态在停止条件的某段时间后
总线被认为再次处于空闲状态总线的空闲状态将在第15 章详细说明
如果产生重复起始Sr 条件而不产生停止条件总线会一直处于忙的状态此时的起始条件S
和重复起始Sr 条件在功能上是一样的见图10 因此在本文档的剩余部分符号S 将作为一个通用
的术语既表示起始条件又表示重复起始条件除非有特别声明的Sr
如果连接到总线的器件合并了必要的接口硬件那么用它们检测起始和停止条件十分简便但是没
有这种接口的微控制器在每个时钟周期至少要采样SDA 线两次来判别有没有发生电平切换

字节格式
发送到SDA 线上的每个字节必须为8 位每次传输可以发送的字节数量不受限制每个字节后必须跟
一个响应位首先传输的是数据的最高位MSB 见图6 **如果从机要完成一些其他功能后例如一个
内部中断服务程序才能接收或发送下一个完整的数据字节可以使时钟线SCL 保持低电平迫使主机进入
等待状态当从机准备好接收下一个数据字节并释放时钟线SCL 后数据传输继续**
在一些情况下可以用与I2C 总线格式不一样的格式例如兼容CBUS 的器件甚至在传输一个字
节时用这样的地址起始的报文可以通过产生停止条件来终止此时不会产生响应。
I2C 总线的寻址过程是通常在起始条件后的第一个字节决定了主机选择哪一个从机例外的情况是可以
寻址所有器件的广播呼叫地址使用这个地址时理论上所有器件都会发出一个响应但是也可以
使器件忽略这个地址广播呼叫地址的第二个字节定义了要采取的行动。

以上是关于iic总线介绍的主要内容,如果未能解决你的问题,请参考以下文章

IIC协议介绍

Arduino IIC协议笔记

SHT20 IIC总线驱动概述

九IIC驱动原理分析

IIC协议

半吊子的STM32 — IIC通信