对于stm32外设的理解还是不够深,也许也是没有沉淀的原因吧,对于嵌入式行业来说,通信协议是挺重要的,今天花一段时间好好讲一下IIC总线通信协议。也是方便日后查看吧。
IIC总线是串行总线,两根线,时钟线SCL和数据线SDA。从以下六个方面来讲解IIC通信协议。数据主要是通过SCL、SDA线1高低电平的转变来进行传输的。
1、空闲状态
IIC总线的SCL和SDA两根信号线,同时处于高电平,规定为总线空闲状态。
2、起始信号
SCL为高电平,SDA由高电平到低电平的跳变,启动信号是一种电平跳变时序信号,而不是电平信号。
3、停止信号
当SCL为高电平期间,SDA由低电平到高电平的跳变,停止信号也是一种电平跳变时序信号。
4、应答信号
发送器每发送一个字节,由接收器反馈一个应答信号。应答信号为低电平时,规定为有效应答位,表示接收器已经成功接收该字节,应答信号为高电平时,规定为非应答位,一般表示接收器接收该字节没有成功。对于反馈有效应答位ACK的要求是,接收器在时钟脉冲将sda线拉低。并且确保该时钟的高电平期间为稳定的低电平。
5、数据有效性
IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须稳定,只有时钟线上的信号为低电平期间,数据线上的高电平或低电平,才允许变化,即数据在SCL的上升沿到来之前就需做好准备,并在下降沿到来之前必须稳定。
6、数据的传送
在IIC总线上传送的每一位数据都有一个时钟脉冲相对应或(同步控制),即在SCL串行时钟配合下,在SDA上逐位地串行传送每一位数据,数据位传输是边沿触发。
因为某些原因就没有配图了,以后也是有可能会修改的。未完待续,持续更新中…