IIC有两个种线构成:1.数据线SDA 2.时钟线SCL。数据线要配合时钟线上的时钟来转输数据,一个脉冲周期能够传输1bit的数据,当时钟处于高电平时,数据线不可以发生改变,处于低电平时,能够任意改变。网络
使用MSB的数据传输方式,先传高位。spa
注意:在电路设计时时钟线和数据线都必须都要分别接上拉电阻,为电路提供高点平使用。设计
IIC的几个基本概念:it
一、开始信号:当时钟线为高电平时,数据线发生降低沿跳变,该信号就被认为是数据传输开始信号,说明开始传输数据。也就是说发送方开始向接收方发出数据时,由发送方开始发出的信号,发送方此后开始占有IIC总线。io
二、结束信号:当时钟线为高电平时,数据线发生上升沿跳变,该信号就被认为是数据传输结束信号,说明中止传输数据。也就是说发送方不想再向接收方发数据了,由发送方发出的信号,此后IIC总线处于空闲状态。通信
三、应答信号:应答信号是在每次数据发送完的第9个时钟脉冲由接收方回应发送方的一种信号,该信号为0时为应答信号,表示数据传输成功;为1时为非应答信号。数据
注意:这里所说的非应答信号并非说接收方不该答发送方。异常
何时回应应答何时回应非应答,你得看芯片的具体时序图,不一样芯片时序图不同一般状况请,正常接收到了,正常写入,回应应答信号,出现异常或者是但愿提早结束本次通讯,一般回应非应答时间
每一个具备IIC总线的设备中都有惟一的一个地址,该地址称之为器件地址。通常由是7bit和10bit,可是10bit不经常使用。由于10bit的地址咱们想处理时,要用2字节来处理,比较麻烦,固然也可使用,可是通常使用的是7bit器件地址+1bit读写位恰好为1个字节,方便处理。co
IIC的仲裁机制:
简单的说就是在多个主机中由哪个主机来做为IIC总线的控制者的一种选择机制。
1.竞争仲裁机制之因此可以实施,是由于IIC 内部开漏结构
2.每个主机,往时钟线送电平的时候,它可以实时的感知到当前时钟线上呈现的电平状态
好比说在一个IIC网络中有3个设备A,B,C,这三个设备均可以做为主从机,在某一时刻,三个设备都发出低电平的信号0,在发送过程当中C->0忽然发生跳变至高电平C->1,此时C发现线路中仍然是有低电平存在,说明如今不仅是有C想要经过IIC总线进行通信,所以C设备将被设置为接收状态(浮空输入);一段时间后,B->0也忽然跳变为B->1高电平,此时B发现线路中仍然是有低电平存在,说明如今还有其余主机想要经过IIC总线进行通信,则B设备将被设置为接收状态(浮空输入);再一段时间后,A->0也忽然跳变为A->1高电平,此时A发现线路中是有高电平存在,说明如今IIC总线上除了主机A想要控制外,没有其它的主机想控制IIC总线,则此时认定A为IIC总线的拥有者,直到A发出结束信号,使IIC总线为空闲状态为止,其它主机才能拥有。
注意:一个IIC网络中能够有多个主机和从机,可是某一时刻只能有一台主机来发送数据,由他来控制IIC总线。
IIC通信创建链接:
每一次通讯时候,都是由主机发起的,首先是主机发出起始信号,而后起始信号以后必须紧跟 要进行广播接下来通讯的目标设备的器件地址7bit或10bit+读写位1bit,当芯片网络里其余的设备收到这个地址和自身器件地址进行比对,若是不相同,就不激活,不参与接下来的通讯。若是某一个设备发现和刚刚主机广播出来的地址相同,它就激活,而后要回应一个bit 的应答信号(低电平 数字信号0)。以后的通信由具体芯片具体设置。最后有主机发出中止信号。
发出起始信号------->器件地址(7bit)-------->读写位(1bit)------>应答信号----->数据传输链接------>应答信号----->发出结束信号