news 2026/4/27 2:18:45

16、嵌入式系统本地总线接口与低功耗优化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
16、嵌入式系统本地总线接口与低功耗优化

嵌入式系统本地总线接口与低功耗优化

1. I2C 总线通信特性

I2C 总线是嵌入式系统中常用的本地总线接口,它具有一些独特的特性以确保数据传输的可靠性和灵活性。

1.1 时钟拉伸机制

在数据传输过程中,有时请求的数据可能会稍有延迟。时钟拉伸机制允许传输在暂停不定时间后恢复,主设备仍需产生九个时钟脉冲来结束传输。当本次事务内不再有更多帧时,主设备最后不将 ACK 位拉低,而是发送 STOP 条件来正确完成事务。
虽然并非所有设备都支持时钟拉伸,但该机制在处理数据稍有延迟的事务时非常有用,是 I2C 协议与传感器及其他输入外设通信的一个独特且通用的特性。对于无法及时提供完成事务所需值的较慢设备,时钟拉伸尤为重要。主设备若要与通用 I2C 从设备通信,建议正确支持此特性。从设备方面,要实现时钟拉伸,需提供一种硬件配置,使 SCL 线能保持逻辑低电平,直到准备好再次通信,这意味着 SCL 线在此情况下必须是双向的,从设备应能控制其下拉,以在准备下一帧传输时维持事务进行。

1.2 多主设备仲裁机制

I2C 提供了一种基于 SDA 线电气特性的确定机制,用于检测和应对总线上多个主设备的存在。在发起任何通信之前,主设备会通过感应 SDA 和 SCL 线来确保总线可用。START 条件的设计本身可排除大部分冲突,在两个边沿之间的初始宽限期内,若检测到 SDA 线为低电平,并发的起始条件会被中断。然而,由于信号在导线上的传播时间,仍可能发生冲突。
当两个主设备同时发起事务时,它们会在每个位传输后持续比较线路状态。若两个主设备在不同传输中完全同步,当出现第一个值不同的位时,发送 1 的主设备会注意到实际线路状态与预期值不符,从而立

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!