1、概括:
I2C全拼Inter-integrated Circuit,它是由飞利浦开发的 两线式串行总线,用于连接处理器的controler 和外围器件,具有接口线少,控制方式简单,器件封装形式小,通信速率高,廉价等优点,被广泛应用嵌入式设备中。
简单:总共两线--串行数据(SDA)和串行时钟(SCL)
灵活:每个器件有个唯一地址对应,可以作为发送器,也可以作为接收器,所以调试也方便。
2、术语:
发送器:发送数据到总线的设备
接收器:从总线接受数据的设备
主机: 发起和结束传送,并产生时钟信号器件
从机: 被主机寻址的器件
多主机: 多个主机同时控制总线,但是不会破坏传输
仲裁: 多主机模式下只允许其中一个控制总线避免传输被破坏的过程
同步: 两个或者多个器件同步信号的过程
3、位传输:
(1 ) 有效数据:SDA线上的数据必须在SCL上高电平周期保持稳定,SDA上的改变在SCL上是低电平时才有效,如下图所示
(2)起始条件:SCL为高电平时,SDA 从高到低的一个跳变
(3)停止时间:SCL为高电平时,SDA从低到高的一个跳变
4、数据格式:
(1)字节格式:SDA 上传输是以一个字节+一个相应位为单位,线传送字节的最高位(MSB),必要时从机可以使SCL保持低电平迫使主机进入等待状态,
(2)响应:该时钟有主机产生,发送器释放SDA线(高),接收器将SDA线拉低,如下图所示
5、寻址方式:
(1)7位,第一个字节的头七位组成从机地址,最低位(LSB)即第八位是方向位,LSB = “0” 代表主机写,LSB = "1",代表主机读,
(2)10位:兼容7位寻址方式,可以结合使用,