I^2C协议
硬件层:
主线由时钟信号线(scl)及数据线(sda)组成;时钟线确保同步,数据线收发
在该处上拉电阻保证了主线空闲时为高电平,支持多主机多从机连接设备的数量受总线电容控制,各个主机从机地址不从,
多个主机使用总线时使用仲裁方式
仲裁:一个主机访问从机的过程
协议层:
scl在高电平时要求sda电平稳定,数据不可修改,当sda需要改变时应该使scl处于低电平。
当sda由高电平向低电平改变为起始信号,读取scl的数据,当总机读取到sda由低电平向高电平变化产生一个终止信号。
应答响应:
主机发送数据时,产生一个起始信号,从机接收到数据(一个字节,由高四位到低四位),当从机接收完数据则会产生一个应答(低电平)或非应答信号(高电平),当主机接收到从机的应答信号则准备下一个字节的发送,同时产生一个起始信号,若非应答则主机产生一个终止信号。
总线寻址:
D0位低电平时主机发送数据给从机,D0位低电平时主机读取从机数据。
主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据R/位将自己确定为发送器或接收器。
从机的地址由固定部分和可编程部分组成。在一个系统中可能希望接入多个相同的从机,从机地址中可编程部分决定了可接入总线该类器件的最大数目。如一个从机的7位寻址位有4位是固定位,3位是可编程位,这时仅能寻址8个同样的器件,即可以有8个同样的器件接入到该I2C总线系统中。