常用通信协议——IIC详解(全网最全)

一、IIC 简介

I2C(Inter-Integrated Circuit) 是内部整合电路的称呼, 是一种串行通讯总线, 使用多主从架构, 由飞利浦公司在1980年为了让主板、 嵌入式系统或手机用以连接低速周边装置而发展。 I2C的正确读法为'I-squared-C' , 而'I-two-C'则是另一种错误但被广泛使用的读法, 在中国则多以'I方C'称之。 I2C 总线支持任何IC 生产过程(NMOS CMOS、 双极性) 。 两线――串行数据(SDA) 和串行时钟 (SCL) 线在连接到总线的器件间传递信息。 每个器件都有一个唯一的地址识别(无论是微控制器——MCU、 LCD 驱动器、 存储器或键盘接口) , 而且都可以作为一个发送器或接收器(由器件的功能决定) 。
在CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送, 高速 IIC 总线一般可达 400kbps 以上。
I2C 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号结束信号应答
信号

1、开始信号: SCL 为高电平时, SDA 由高电平向低电平跳变,开始传送数据。
2、结束信号: SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。
3、应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,
表示已收到数据。 CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号, CPU 接
收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为
受控单元出现故障。
这些信号中,起始信号是必需的,结束信号和应答信号, 都可以不要。

IIC 总线时序图

二、IIC的特征

1、 只要求两条总线线路: 一条串行数据线SDA(因此是半双工的), 一条串行时钟线SCL
2、 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址, 主机可以作为主机发送器或主机接收器;
3、 它是多主机总线, 如果两个或更多主机同时初始化, 数据传输可以通过冲突检测和仲裁防止数据被破坏;
4、 串行的8 位双向数据传输位速率在标准模式下可达100kbit/s, 快速模式下可达400kbit/s, 高速模式下可达3.4Mbit/s;
5、 连接到相同总线的IC 数量只受到总线的最大电容400pF 限制

三、IIC的从地址

IIC从地址有3种类型:分别是7位,8位和10位。产生这么多类型的原因是厂商采用的不同的地址约定。

7位寻址

在7位寻址过程中,从机地址在启动信号后的第一个字节开始传输,该字节的前7位为从机地址,第8位为读写位,其中0表示写,1表示读。

图1:7位寻址。I2C总线规范规定,标准模式I2C,从机地址为7位长,其次是读/写位。

第一个字节的头7 位组成了从机地址, 最低位(LSB) 是第8 位, 它决定了传输的方向。
第一个字节的第8位是“0” , 表示主机会写信息到被选中的从机;

“1” 表示主机会向从机读信息, 当发送了一个地址后, 系统中的每个器件都在起始条件后将
头7 位与它自己的地址比较, 如果一样, 器件会判定它被主机寻址, 至于是从机接收器还是从机发送器, 都由R/W 位决定。

任何I2C设备都必须遵循这个标准,USB2XXX传输的从机地址即为这7bit地址,不包含读写位,读写位会根据不同的函数自动添加进去。

8位地址

一些厂商在提供从机地址的时候说的是包含了读写位的8bit地址,比如他说写地址为0x92,读地址为0x93,如下图所示

图2: 8位寻址

如果是8位寻址的情况,需要将这个地址的前7bit提取出来,然后传入USB2XXX的接口函数即可,比如为0x49。

判断厂商提供的地址是7bit模式地址还是8bit地址模式的地址的方式:7bit地址模式下,地址的取值范围在0x07到0x78之间,若超过了这个范围,那么这个地址可能就是8bit地址。

图3:有效的7bit地址范围

10位寻址

I2C总线的10bit寻址和7bit寻址是兼容的,这样就可以在同一个总线上同时使用7bit地址和10bit地址模式的设备,在进行10bit地址传输时,第一字节是一个特殊的保留地址来指示当前传输的是10bit地址。

图4:10bit地址寻址

在使用USB2XXX传输10bit地址模式的时候,只需要在初始化的时候配置为10bit地址模式(由第一个字节设置),然后再调用读写数据函数的时候传入正确的10bit地址即可。

四、保留地址

I2C规范保留了两组和8个地址,1111XXX和0000XXX。这些地址用于特殊用途。下表已被取自 I2C规范(2000年)。

从机地址+R/W 描述
0000 0000 呼叫地址
0000 0001 起始字节
0000 001X CBUS地址
0000 010X 保留供不同的总线格式
0000 011X 保留将来用
0000 1XXX HS模式主机码
1111 0XXX 10位从机地址
1111 1XXX 保留将来用

五、IIC的连接

1、IIC可以接多个主设备,多个从设备(外围 设备)。如下图,存在多个主机、多个从机。

2、当多主机会产生总线裁决问题。当多个主机同时想占用总线时,企图启动总线传输数据,就叫做总线竞争。I2C通过总线仲裁,以决定哪台主机控制总线
3、上拉电阻一般在4.7k~10k之间,默认拉高。

六、IIC总线最多可以挂多少个设备

由IIC地址决定,8位地址,减去1位广播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127个地址, 所以理论上可以挂127个从器件

但是IIC协议没有规定总线上device最大数目,但是规定了总线电容不能超过400pF
管脚都是有输入电容的,PCB上也会有寄生电容,所以会有一个限制。实际设计中经验值大概是不超过8个器件。

规定电容大小的原因:
IIC的OD(漏极开路)要求外部有电阻上拉,电阻和总线电容产生了一个RC延时效应,电容越大信号的边沿就越缓,有可能带来信号质量风险。

传输速度越快,信号的窗口就越小,上升沿下降沿时间要求更短更陡峭,所以RC乘积必须更小。

原文链接:https://blog.csdn.net/qq_38769551/article/details/105108062

注:
广播地址:广播地址(Broadcast Address)是专门用于同时向网络中所有工作站进行发送的一个地址。在使用[TCP/IP 协议](https://baike.baidu.com/item/TCP%2FIP 协议/2116790)的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机。例如,对于10.1.1.0 (255.0.0.0 )网段,其直播广播地址为10.255.255.255 (255 即为2 进制的11111111 ),当发出一个目的地址为10.255.255.255 的分组(封包)时,它将被分发给该网段上的所有计算机。

七、IIC实现的方式

IIC实现的方式主要有两种,硬件IIC和软件模拟IIC

软件IIC程序员使用程序控制SCL,SDA线输出高低电平,模拟i2c协议的时序。一般较硬件IIC稳定,但是程序较为繁琐,但不难。

硬件IIC程序员只要调用IIC的控制函数即可,不用直接的去控制SCL,SDA高低电平的输出。但是有些单片机的硬件IIC不太稳定,调试问题较多。

硬件IIC、软件模拟IIC的区别

模拟IIC 硬件IIC
用法 流程更清楚一些 用法比较复杂
速度 速度快、效率高、可以使用DMA
适用管脚 任何管脚 固定管脚
稳定性 稳定 不太稳定

下一章、实现硬件IIC和软件模拟IIC,实验中…

(0)

相关推荐

  • 【精品博文】IIC 通信协议的Verilog实现

    刚刚花了几天时间把 IIC 总算搞懂了一些,查了很多资料,也纠结过于很多细节,不过只要耐着性子,一点点的去理解,去尝试,终会得到你想要的结果,人生不也是吗,嘿嘿~ ,不闲扯了,下面就写写我的理解以及方 ...

  • 浅谈I2C总线,有时候它也叫 IIC

    [导读]I2C(Inter Integrated Circuit,内部集成电路)总线是价格低廉却很有效的用以互连小规模嵌入式系统内的外设的网络.I2C 总线有时候也叫作 IIC,它已有20多年的历史了 ...

  • 凔海笔记之FPGA(九):Verilog描述IIC单字节读写协议

    一.简介AT24C04 AT24C04是小容量(4KB)IIC总线EPROM存储元件.这句话说得很有内容呀.首先,AT24c04是存储元件,还是EPROM即可擦写可编程只读存储器,而且断电可保存.其次 ...

  • CAD快捷键详解,太全了!

    源自 | 建筑经济与管理 工具名称 快捷键 功能说明 绘图工具 直线 L 画图用得最多的工具,用法也很简单,由于直线等命令使用频率最高但键位操作却很不方便,所以我们有必要更改它. 构造线 XL 无限延 ...

  • IIC详解,包括原理、过程,最后一步步教你实现IIC

    IIC详解 1.I2C总线具有两根双向信号线,一根是数据线SDA,另一根是时钟线SCL 2.IIC总线上可以挂很多设备:多个主设备,多个从设备(外围 设备).上图中主设备是两个单片机,剩下的都是从设备 ...

  • 初一至初三必读:初中语文常用修辞方法详解!

    比喻 1.定义 比喻就是"打比方",即利用不同事物之间的某些相似之处,用一个事物来比方另一个事物.多用一些具体的,浅显的.熟知的事物来说明抽象的.深奥的.生疏的事物. 2.三个要素 ...

  • 不典型肝细胞肝癌CT表现 病例详解,超全总结!@MedSci

    肝癌:全球第五大常见肿瘤,肝癌在肿瘤相关死亡中,仅次于肺癌,位居第二.(以下肝癌均指肝细胞肝癌) ①临床诊断相对困难,甲胎蛋白(AFP)有一定作用,但是有1/3的患者,AFP正常: ②影像可以提供足够 ...

  • 初中语文常用修辞方法详解

    比喻 1.定义 比喻就是"打比方",即利用不同事物之间的某些相似之处,用一个事物来比方另一个事物.多用一些具体的,浅显的.熟知的事物来说明抽象的.深奥的.生疏的事物. 2.三个要素 ...

  • 19种常用保护性杀菌剂详解!

    保护性杀菌剂区别于治疗性杀菌剂的关键就是使用时间,它是在病菌侵染作物之前,先在作物表面上施药,防止病菌入侵,起到保护作用.防病特点原理是能在作物表面形成一层透气.透水.透光的致密性保护药膜,这层保护膜 ...

  • 盆景常用松树品种详解(建议收藏)

    ▲徐昊作品<月明松声稀>(黑松,78×57cm) 盆友们,因为最近微信公众号进行了大改版,不再按时间先后顺序推送文章,而是按照阅读频率和互动频率来推送了. 所以为了防止大家迷失,盆友们可以 ...

  • 分享小学语文常用修辞手法详解 例句 练习...

    分享小学语文常用修辞手法详解+例句+练习+答案,全面而详细,请给孩子收藏. 修辞手法是非常重要的语文基础知识,运用修辞方法是为提高表达效果,使语言表达鲜明.生动. 会不会用修辞还直接关系到作文写作的好 ...

  • 常用工业吸附剂详解-活性炭

    导读 前天分享了一篇文章,介绍了工业应用的吸附剂的6个共同点!今天更新一下大家最关心的话题,工业应用的吸附剂,主要介绍活性炭.看完此篇文你一定会有颇多收获! 编辑 | 北极星VOCs在线公众号(bjx ...