1、I2C总线的物理结构
❶两条总线线路:一条串行数据SDA, 一条串行时钟线SCL来完成数据的传输及外围器件的扩展
❷I2C总线上的每一个设备都可以作为主设备或者从设备,而且每一个设备都会对应一个唯一的地址
❸I2C总线数据传输速率在标准模式下可达100kbit/s, 快速模式下可达400kbit/s, 高速模式下
可达3.4Mbit/s。一般通过I2C总线接口可编程时钟来实现传输速率的调整, 同时也跟所接的上拉电阻
的阻值有关。
❹I2C总线上的主设备与从设备之间以字节(8位)为单位进行单双工的数据传输。
2、I2C协议
❶I2C协议规定:总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。起始和结束信号总是由主设备产生。
❷空闲状态:SCL(时钟)和SDA(数据)都保持着高电平。
❸起始信号:当SCL为高电平而SDA由高到低的跳变, 表示产生一个起始条件
❹结束信号:当SCL为高而SDA由低到高的跳变, 表示产生一个停止条件
3、I2C通讯过程
❶起始信号:当SCL为高电平而SDA由高到低的跳变, 表示产生一个起始条件
❷从设备地址位:一般为7位
❸方向位:0表示主设备向从设备写数据,1表示主设备向从设备读数据
❹应答位:从设备可以进行操作拉低SDA(0);从设备不搭理,SDA保持高电平(1)
❺有效数据位:主设备进行读或者写操作
❻应答位:接收方向发送方应答,1为成功,0为失败
❽继续发送有效数据位:主设备进行读或者写操作
❾继续应答位:接收方向发送方应答,1为成功,0为失败
❿结束信号:当SCL为高而SDA由低到高的跳变, 表示产生一个停止条件
4、I2C数据采样时间
5、I2C典型的读和写步骤
主设备往从设备写数据
主设备读从设备数据
6、主设备读从设备的某个寄存器
7、I2C控制器
I2C总线规范rev 03兼容性:
❶从机模式和主机模式
❷多主机功能
❸标准模式(高达100kHz)
❹快速模式(高达400kHz)
❺超快速模式(高达1MHz)
❻7位和10位地址模式
❼软件复位
1字节缓冲带DMA功能