简介

其实关于IIC通信协议的相关原理的相关理论我在最开始的文章当中进行过讲解,但是没有详细的去进行过说明,在今天的这篇文章中我们就来详细说明一下IIC协议的相关理论。

一、IIC 总线组成

1、定义介绍

        采用串行总线可以简化系统硬件结构、减小系统体积、提高系统可靠性。常 用的串行总线有单总线(1-Wire Bus)、IICInter-Integrated Circuit)、SPI(Serial Peripheral Interface)等。 IIC 总线是 Phlips 公司推出的一种同步串行总线,是一种支持多主机多从机 系统、总线仲裁以及高低速器件同步功能的高性能串行总线技术。 IIC 总线只有两根双向信号线:一根是数据线 SDA,一根是时钟线 SCL

        多主机多从机 ---- IIC 总线系统上可以挂载多个主机设备与从机设备;
        总线仲裁----对于总线上挂载有多主机设备的情况下,为避免多个主机同 时向总线发起通信,需要有相应的总线仲裁机制,避免出现总线冲突;
        高低速器件同步-- 通过 IIC 总线连接的两个器件的传输速度不一定相同, 因此需要通过从机的时钟延展( clock stretching )功能保证两者的通信速度一致。
即:如果果从机跟不上主机的速率, IIC 协议规定从机可以通过将 SCL 时钟线拉 低来暂停传输直到从机释放掉 SCL 线,传输才能继续进行。

2、传输速率

        标准模式:100Kbit/s
        快速模式:400kbit/s
        高速模式:3.4Mbit/s

三、工作原理

        每一个连接到 IIC 总线上的器件都有一个唯一的器件地址( ID),主机通过 ID 建立多机通信机制,因此 IIC 总线节省了外围器件的片选信号线。虽然 IIC 总 线上可以连接多个主机和多个从机,但是同一时刻,只能有一个主机向总线上发 起传输,如果有多个主机同时发起传输,则会根据 IIC 总线的仲裁机制,最终 只给一个主机授权,没有得到仲裁的主机则会停止传输。而且, IIC 总线上只能 由主机主动发起传输,从机无法主动发起传输,这也就意味着从机和从机之间也
是无法直接交换数据的。
        IIC 总线在传输数据时必须遵循规定的数据传输时序,一次完整的数据传输 过程中共有四类信号:起始信号、数据信号、应答信号和停止信号。
        起始信号:在 SCL 为高电平时, SDA 的电平由高电平跳变为低电平,称为 I2C 总线的起始信号,标志着一次数据传输开始。起始信号由主机主动产生,在 产生起始信号之前 I2C 总线必须处于空闲状态。
        停止信号:在 SCL 为高电平时, SDA 由低电平跳变为高电平,称为 I2C 总 线的停止信号,标志着一次数据传输终止。停止信号由主机主动产生,产生停止 信号之后 I2C 总线将返回空闲状态。
        数据信号:IIC 总线传输数据时,在 SCL 为高电平时, SDA 必须保持稳定的 逻辑电平,高电平表示数据 1 ,低电平表示数据 0 ;只有在 SCL 为低电平时才允 许 SDA 上的电平状态改变。
        应答信号:IIC 总线传输数据时,每传输一个字节后都必须有一个 SCL 周期 的应答信号;与应答信号相对应的时钟由主机产生,发送端必须释放 SDA 使其 处于高电平状态,以便接收端在这一个 SCL 周期发出应答信号。
        应答信号有两种状态:应答(ACK )、非应答( NACK),接收端在应答位期 间输出低电平则为应答,输出高电平则为非应答。
        当由于某种原因,从机设备不产生应答时,如从机在进行其它处理而无法接 收总线上的数据时,必须释放 SDA 总线,然后由主机产生一个停止信号以终止 数据传输。
当主机在接收数据时,接收到最后一个字节后,必须给从机发送一个非应答 信号,使从机释放总线以便主机可以发送停止信号,终止数据传输。
        需要注意的是:在某些情况下,从机在收到一个完整的字节后,有可能因为 需要忙于其它工作(如处理内部中断服务)而无法立刻接收下一个字节,这时从 机需要将 SCL 拉为低电平,从而强制主机处于等待状态,直到从机准备好接收 下一个字节时,再释放 SCL 为高电平状态,从而可以继续传输数据。这种现象 称为时钟拉伸( Clock Stretching )。

四、数据地址

IIC 总线协议规定:起始信号表明一次传输开始,其后为寻址字节(高 7 位 为从机地址、最低 1 位为方向位,方向位表明主机与从机之间的数据传输方向, 0-- 主机发送数据给从机, 1--从机发送数据给主机);在寻址字节后是对应的读、 写操作的数据字节和应答位;在数据传输完成后主机必须发送停止信号。
IIC 总线的数据传输方式有许多读、写组合方式:主机写操作、主机读操作、 主机读写操作。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部