I2c通讯协议
一、I2C硬件知识
I2C通信协议是主要是双线通信:SDA/SCL,是一种同步式的半双工通信协议。SDA:串行数据线、SCL:时钟线,该协议通信速率:标准速度:100KHZ,快速模式:400KHZ,高速模式:3.4MHZ;超高速模式:5MHZ 。SMBus是在I2C的基础上进行了特定越苏例如:一定要维持10kHz以上的运作时脉,主要也是为了管理监控,在总线上只有一个主机其他设备只能够作为从机,另外通信时信号边沿的时间也是有要求。以下内容主要是对I2C进行描述。
1、首先I2C接口内部电路:
1) 芯片I2C接口内部电路是一个具有带有输入缓冲器的漏级开路的驱动器:这种驱动器只能够有两种状态:高阻态和低电平;电路图如图1所示:
![23313030f780b45e8e4efe81342568df.png](https://img-blog.csdnimg.cn/img_convert/23313030f780b45e8e4efe81342568df.png)
图1 芯片I2C内部电路
从图中可以看出:CBUS为总线电容;当总线上需要保持高电平的时候,需要主机和从机内部的FET不导通(I2C控制器)。I2C standby模式下总线上的电平保持高电平(外部上拉),这也是总线协议中需要上拉的原因。
2) 主机向从机发送数据过程
当主机需要向从机发送的数据为高,内部FET不导通(主机和从机),发送的数据为低:主机内部FET不导