IIC学习

简介

IIC(Inter-Integrated Circuit)是一种同步、串行、半双工的通信协议,也被称为I2C(Inter-Integrated Circuit)。它是由飞利浦公司(现在的恩智浦半导体公司)在1982年开发的一种简单、高效的通信协议,用于在集成电路(IC)之间进行通信。


物理层

IIC使用两根线(时钟线SCL和数据线SDA)进行通信,同时支持多个设备共享这两根线,因此适用于多主设备多从设备的应用场景。主设备通过产生时钟信号(SCL)来控制数据的传输,从设备则根据时钟信号进行相应的数据处理。


IIC协议的特点

主从模式:IIC协议支持主从模式的通信。主设备负责控制总线上的通信流程,而从设备则根据主设备的指令进行相应的操作


时钟信号(SCL):主设备产生时钟信号,用于同步数据的传输。时钟信号的频率可以在不同系统中有所变化,常见的频率包括100 kHz、400 kHz和1 MHz。

数据信号(SDA):主设备和从设备通过数据线进行数据的传输。传输的数据包括地址信息、读/写位、数据字节和应答位等。

起始信号:起始条件是在SCL为高电平时,SDA从高电平跳变到低电平。


停止信号:在SCL为高电平时,SDA从低电平跳变到高电平。

地址和数据传输:主设备通过发送设备地址来选择要与之通信的从设备。主设备还可以选择读或写操作,并通过数据线传输数据字节。每个数据字节的传输都需要有从设备的应答。传输过程中,时钟信号由主设备产生,设备在每个时钟信号边沿进行数据的读取或传输。


读写位:决定主机进行读操作还是写操作。该位为 0 时表示主机对从机进行写操作,当该位为1 时表示主机对从机进行读操作。

应答和非应答:从设备在接收到地址和数据字节后会通过应答位给予相应的响应。在应答模式下,从设备会使SDA线变为低电平来发送应答信号。在非应答模式下,从设备则保持SDA线为高电平,表示不接收数据。


步骤

一、确定总线状态:在开始进行通信之前,需要确保IIC总线处于空闲状态。此时,SCL和SDA线都应该为高电平。

二、发送起始条件:主设备通过将SDA线从高电平跳变到低电平来发送起始条件。这表明通信的开始。
三、发送设备地址和读/写位:主设备发送要通信的设备的地址,通常是一个7位的地址。在地址之后,主设备发送一个读位或写位,以指示接下来的操作是读取还是写入数据。
四、数据传输:根据读/写位的选择,主设备将发送或接收数据。每个数据字节都由8位组成,通过SDA线进行传输。传输过程中,时钟信号由主设备产生,设备在每个时钟信号边沿进行数据的读取或传输。
五、应答处理:在主设备发送完数据后,它会释放SDA线,以便从设备能够给出应答信号。从设备在时钟信号的边沿上拉低SDA线表示应答。主设备在读操作时会检查应答信号,以确定是否成功接收数据。
六、重复传输或停止条件:在完成一次数据传输后,主设备可以选择继续传输更多数据(重复传输),或者发送停止条件来结束通信。停止条件是在SCL为高电平时,SDA从低电平跳变到高电平。

优点

多设备共享总线:IIC协议支持多个设备共享同一总线,通过地址区分不同的设备,这使得系统中的设备连接更简洁。
两根线的传输:IIC协议只需要两根线(时钟线和数据线)进行通信,节省了引脚资源。
适用于短距离通信:IIC通信适用于低速率、短距离的通信,例如内部电路通信、板上通信等。
速度可调节:IIC协议支持不同的通信速率,例如标准模式(100 kHz)和快速模式(400 kHz)。

缺点

仲裁问题:当多个主设备同时发起通信时,可能会发生冲突,需要通过仲裁机制解决冲突。
系统复杂性:由于多个设备共享总线,需要管理和控制设备的地址分配、冲突解决、时钟同步等问题,增加了系统设计的复杂性。
距离限制:IIC接口的传输距离相对较短,一般在几米范围内,超过一定距离后信号质量可能会下降。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值