IIC总线

一、IIC总线简介

       IIC总线是Philips公司在八十年代初推出的一种串行、半双工总线主要用子近距离、低速的芯片之间的通信;IC总线有两根双向的信号线一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步:IIC总线硬件结构简单,成本较低,因此在各个领域得到了广泛的应用。
在这里插入图片描述

       IIC总线是一种多主机总线,连接在IIC总线上的器件分为主机和从机,主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总线时,IIC也具备冲突检测和仲裁的功能来防止错误产生;每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能有一个主机),总线上的器件增加和删除不影响其他器件正常工作;IIC总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器。
在这里插入图片描述

二、IIC总线通信过程

       1.主机发送起始信号启用总线;
       2.主机发送一个字节数据指明从机地址和后续字节的传送方向,高七位为从机地址,最后一位为指定传送方向;
       3.被寻址的从机发送应答信号回应主机;
       4.发送器(因为是主机还是从机为发送器是由主机最开始发送的那个字节的最后一位决定的)发送一个字节数据;
       5.接收器发送应答信号回应发送器;
       … … (循环步骤4、5)
       n.通信完成后主机发送停止信号释放总线。

三、IIC总线寻址方式

       IIC总线上传送的数据是广义的,既包括地址,又包括真正的数据。
       主机在发送起始信号后必须先发送一个字节的数据,该数据的高7位为从机地址,最低位表示后续字节的传送方向,0表示主机发送数据,1表示主机接收数据;总线上所有的从机接收到该字节数据后都将这7位地址与自己的地址进行比较,如果相同,则认为自己被主机寻址,然后再根据第8位将自己定为发送器或接收器。
在这里插入图片描述

四、起始信号和停止信号

       SCL为高电平时,SDA由高变低表示起始信号。
       SCL为高电平时,SDA由低变高表示停止信号。
       起始信号和停止信号都是由主机发出,起始信号产生后总线处于占用状态,停止信号产生后总线处于空闲状态。
在这里插入图片描述

五、字节传送与应答

       IIC总线通信时每个字节为8位长度,数据传送时,先传送最高位,后传送低位,发送器发送完一个字节数据后接收器必须发送1位应答位来回应发送器即一帧共有9位,应答位置1为非应答,置0为应答。
在这里插入图片描述

六、同步信号

       IIC在空闲时SCL和SDA都是高电平,IIC总线在进行数据传送时,时钟线SCL为低电平期间发送器向数据线上发送一位数据,在此期间数据线上的信号允许发生变化,时钟线SCL高电平期间接收器从数据线上读取一位数据,在此期间数据线上的信号不允许发生变化,必须保持稳定,即读取数据时必须在SCL为高电平时读取,SDA在SCL是高电平期间必须是稳定的数值,如果不稳定,产生上升沿或者下降沿,都会导致起始信号和终止信号的读取。
在这里插入图片描述

七、典型IIC时序

       阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送:A表示应答, A非表示非应答,S表示起始信号,P表示终止信号,0表示主机向从机发送数据,1表示从机向主机发送数据。

1.主机向从机发送数据

       先是主机给从机发送起始信号S,然后再给从机发送一个字节数据,指定从机地址和传输方向,0表示主机给从机发送数据,结束时分两种情况:
       第一种:主机不想给从机发送数据了,主机在接收到从机应答后直接发送终止信号。
       第二种:从机不想接受数据了,非应答主机信号,主机知道后就没必要再向从机发送数据,直接发送终止信号。
在这里插入图片描述

2.从机向主机发送数据

       先是主机给从机发送起始信号,再发送一个字节数据,指定从机地址和传输方向,1表示从机给主机发送数据,从机应答后给主机发送数据,发送一个字节,主机应答一次,当主机不想接受数据时,从机发送完最后一个字节,主机非应答,主机向从机发送终止信号。
在这里插入图片描述

3.主机先向从机发送数据,然后从机再向主机发送数据

       主机先给从机发送起始信号,再发送一个字节的数据,指定从机地址和发送方向,先是0,主机给从机发送数据,从机应答后主机开始给从机发送数据,如主机向从机发送数据流程一样,当主机不想发数据或者从机不想接收数据时(这两种情况上面的1讲过,不再叙述),主机再次发送起始信号,再次指定从机地址,并把传送方向设为1,即从机向主机发送地址,后续和从机向主机发送数据流程一样。
       为什么在中间交换传输方向的那个节点主机不向从机发送停止信号?
       因为如果主机发送停止信号的话,总线使用权有可能会被其它主机抢走。

在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值