通信总线协议三 :IIC

通信总线协议三 :IIC

1. IIC总线介绍

  • IIC总线是Philips公司推出的一种串行,半双工通信总线,主要用于近距离,低速的芯片之间的通信
  • 硬件结构简单,成本低,仅需2根双向的信号线数据线SDA时钟线SCL
    1. 数据线SDA :用于数据传输;
    2. 时钟线SCL :用于通信双方的时钟同步;
  • IIC是一种多主机总线,连接在IIC总线上的器件分为主机和从机,主机有权发起和结束一次通信,而从机只能被呼叫。
  • 当总线上有多个主机同时启用总线时,IIC具有冲突检测和仲裁机制来防止错误产生。
  • 每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机或者从机,总线上的器件的增加和删除不影响其它器件的正常工作。
  • 将IIC总线上发送数据的器件叫做发送器,接收数据的器件叫做接收器,但并不是说主机就是发送器,主机可以发送数据,也可以接收数据。
  • 如下图所示,为多个设备IIC通信连接示意图:
    在这里插入图片描述

2. IIC总线通信过程

2.1 通信过程步骤

  • 通信过程步骤较为复杂,总体上分为:
    1. 主机发送一个起始信号启用总线
    2. 主机发送一个字节的数据指明从机地址和后续字节的传输方向
    3. 被寻址的从机发送应答信号回应主机
    4. 发送器发送一个字节的数据
    5. 接收器发送应答信号回应发送器
    6. …重复步骤4和5,发送所有的数据
    7. 通信完成后主机发送停止信号释放总线

2.2 寻址方式

  • 总线上传输的数据是广义的,既包括地址,又包括真正的数据
  • 总线发送起始信号后,必须发送一个字节的寻址数据,该字节数据的高7位表示呼叫的从机地址,最低位表示后续数据的传输方向0 表示主机发送数据,1 表示主机接收数据。
  • 总线上的所有从机接收该信号后,都会将7位寻址地址和自己的地址进行比较,如果相同,则根据第8位确定自己是收发器还是接收器,确定后该通信过程中方向不能发生变化
    在这里插入图片描述

2.3 起始信号和停止信号

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

2.4 字节传送和应答

  • 发送器每次发送8位数据,先发高位后发低位,例如发送0xAA (10101010B),先发送高位1,发送顺序为 :1 0 1 0 1 0 1 0
  • 发送器发送完后,接收器发送1位来应答,0表示应答1非应答,即一帧数据共有9位
    在这里插入图片描述

2.5 同步信号

  • IIC总线在进行数据传送时,时钟线SCL为低电平期间,发送器向数据线上发送1位数据,在此期间数据线的信号允许发生变化
  • 时钟线SCL为高电平时期,接收器从数据线上读取1位数据,在此期间数据线的信号不允许发生变化
    在这里插入图片描述

3. 典型IIC时序

3.1 主机向从机发送数据

在这里插入图片描述

具体发送过程为:

  1. 主机发送一个起始信号启用总线
  2. 主机发送一个字节的数据,包括7bit从机地址和传输方向 0 主机发送数据
  3. 被寻址的从机发送应答信号 0回应主机
  4. 主机发送器发送一个字节的数据
  5. 从机接收器发送应答信号 0回应发送器
  6. …重复步骤4和5
  7. 结束通信前,存在2种情况,一是主机发送完最后一个字节,从句发出应答信号 0,最后主机发送停止信号;二是主机发送一个字节数据后,从机发送非应答信号 1,则主机被动发送停止信号
  8. 通信最后主机发送停止信号释放总线

3.2 从机向主机发送数据

在这里插入图片描述
具体发送过程为:

  1. 主机发送一个起始信号启用总线
  2. 主机发送一个字节的数据,包括7bit从机地址和传输方向 1 主机接受数据
  3. 被寻址的从机发送应答信号 0回应主机
  4. 从机发送器发送一个字节的数据
  5. 主机接收器发送应答信号 0回应发送器
  6. …重复步骤4和5
  7. 结束通信前,主机发送非应答信号 1
  8. 通信最后主机发送停止信号释放总线

3.3 主机先向从机发送数据,然后从机向主机发送数据

在这里插入图片描述

  • 由于通信过程中方向不能发生变化,因此在改变传输方向时,必须重新发送起始位和寻址地址;但是可以不发送上一次的结束信号,即没有释放总线,可以避免总线被抢占的情况。

  • 具体发送过程为:

    1. 主机发送一个起始信号启用总线
    2. 主机发送一个字节的数据,包括7bit从机地址和传输方向 0 主机发送数据
    3. 被寻址的从机发送应答信号 0回应主机
    4. 主机发送器发送一个字节的数据
    5. 从机接收器发送应答信号 0回应发送器
    6. …重复步骤4和5
    7. 改变方向前,存在2种情况,一是主机发送完最后一个字节,从句发出应答信号 0;二是主机发送一个字节数据后,从机发送非应答信号 1
    8. 主机重新发送一个起始信号启用总线
    9. 主机重新发送一个字节的数据,包括7bit从机地址和传输方向 1 主机接受数据
    10. 从机发送器发送一个字节的数据
    11. 主机接收器发送应答信号 0回应发送器
    12. …重复步骤10和11
    13. 结束通信前,主机发送非应答信号 1
    14. 通信最后主机发送停止信号释放总线

感谢阅读 若有错误 欢迎指正 !!!


在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
AXI4总线协议和I2C(Inter-Integrated Circuit)协议是两种不同的通信协议,用于在电子设备之间进行数据传输。它们有以下几点区别: 1. 性质和应用领域: - AXI4总线协议是一种高性能、高带宽的总线协议,主要用于连接处理器、内存和外设等硬件模块之间的通信。它广泛应用于现代的系统级集成电路(SoC)设计中。 - I2C协议是一种串行通信协议,主要用于连接低速外设,如传感器、存储器、显示屏等。它通常用于连接较简单的设备,并且可以通过多个设备共享同一条总线。 2. 物理层连接方式: - AXI4总线协议通常使用并行数据传输,需要多条数据线和控制线来进行通信。 - I2C协议使用两根线(SDA和SCL)进行串行通信,其中SDA线用于数据传输,SCL线用于时钟同步。 3. 通信速率: - AXI4总线协议支持高速数据传输,可以达到很高的频率。 - I2C协议通常运行在较低的速率下,最高速率取决于设备的支持能力,一般在几百kHz到几MHz之间。 4. 设备数量和地址分配: - AXI4总线协议可以连接多个设备,每个设备都有唯一的地址。 - I2C协议可以通过地址来区分不同的设备,支持多主机和多从机的连接方式。 5. 性能和复杂性: - AXI4总线协议具有高性能和灵活性,但相对较复杂,需要更多的硬件资源和设计工作。 - I2C协议相对简单,适用于低速、低功耗的应用,但在高速数据传输和大规模系统中的性能可能受限。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

园长QwQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值