一、IIC工作原理及协议介绍
1.IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接
微控制器及其外围设备。它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。
在 CPU 与被控 IC 之间、 IC 与 IC 之间进行双向传送, 高速 IIC 总线一般可达 400kbps 以上。最开始SDA和SCL都属于拉高状态,IIC是半双工总线,发送和接受不可以同时进行,主要用于近距离、低速的芯片之间的通信。
2.IIC总线上的器件分为主机和从机,主机有权发起和结束一次通信,而从机只能被主机呼叫。当总线上有多个主机同时启动总线时,IIC也具有冲突检测和仲裁的功能防止产生错误。每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机。IIC通信时总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器。
3.IIC总线通信过程
(1)主机发送起始信号启动总线
(2)主机发送一个字节数据指明从机地址和后续字节的传送方向(高七位确定地址,最后以为确定方向,0表示后续数据主机发送数据,1表示主机接收数据)
(3)被寻址的从机发送应答信号回应主机
(4)发送器发送一个字节数据
(5)接收器发送应答信号回应发送器
(6)循环4、5(发送过程中不允许改变通信方向)
(7)通信完成后主机发送停止信号释放总线
4.IIC协议主要包括四种类型:(1)空闲状态(2)三种信号(3)数据有效性
(1)空闲状态:I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。