IIC通信协议

IIC是串行半双工同步总线

I2C总线为两线制,只有两根双向信号线,一根是数据线SDA,另一根是时钟线SCL,IIC总线外接两个上拉电阻作用:在总线处于空闲状态,总线处于高电平状态

IIC总线硬件连接

1、IIC总线支持多主机多从机模式,在同一时刻,只能一个主机和一个从机进行通讯

2、在实际使用过程中,大部分使用单主机多从机模式

3、挂接到IIC总线上的每一个从机设备,都有自己唯一的7位从机地址

4、发送器:向数据线上写入数据, 接收器:从数据线上读取数据

5、主机:主动向数据线上发起数据(起始信号,停止信号), 从机只能被动从总线上接收数据

6、时钟线只能由主机产生,作用给从机完成数据收发同步

IIC时序

起始信号

IIC通信协议_第1张图片

1、起始信号:在SCL为高电平期间,数据线从高电平到低电平的变化(下降沿)

2、起始信号和停止信号都是由主机产生

3、起始信号产生之后总线处于占用状态

4、停止信号产生之后总线处于空闲状态

停止信号

停止信号:在SCL为高电平期间,数据线从低电平到高电平的变化(上升沿)

数据传输信号

IIC通信协议_第2张图片

在SCL为高电平期间,总线上数据保持稳定,所以接收器可以从数据线上读取数据

在SCL为低电平期间,总线上数据允许发生变化,所以发送器可以向数据线上写入数据

应答信号

1、每一个字节传输必须保证8位长度(1字节=8位),先传输高位,在发送低位

2、每传输8位数据位之后,必须跟随应答信号,一帧数据 = 8位数据位 + 1位应答信号 = 9位

3、发送器发送8位数据位之后,在第9个时钟周期,接收器向数据线上写入应答信号或者非应答信号

在第9个时钟周期,发送器从数据线上,读取数据

读0:接收器返回应答信号

读1:接收器返回非应答信号

寻址

1、IIC总线进行数据传输是广义的,既可以传输数据,也可以传输地址

2、寻址过程 = 7位从机地址 + 读写位 = 8位,读:1 写:0

3、在起始信号产生之后,发送7位从机地址和读写位

IIC协议

主机给从机发送一个字节

主机:发送器

从机:接收器

主机给从机发送多个连续字节

从机给主机发送一个字节

主机:接收器

从机:发送器

从机给主机发送多个连续字节

框图 

IIC通信协议_第3张图片

你可能感兴趣的:(单片机,fpga开发,嵌入式硬件)