第26章 I2C简介

第二十六章 I2C简介

IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、 IC 与 IC 之间进行双向传送, 高速 IIC 总线一般可达 400kbps 以上。

I2C 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。

  • 开始信号:SCL 为高电平时, SDA 由高电平向低电平跳变,开始传送数据。

  • 结束信号:SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。

  • 应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。 CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号, CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障

这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。 IIC 总线时序图如图所示:

屏幕截图 20241019 095812png

ALIENTEK 探索者 STM32F4 开发板板载的 EEPROM 芯片型号为 24C02。该芯片的总容量是 256 个字节,该芯片通过 IIC 总线与外部连接,我们本章就通过 STM32F4 来实现 24C02 的读写。

目前大部分 MCU 都带有 IIC 总线接口, STM32F4 也不例外。但是这里我们不使用 STM32F4的硬件 IIC 来读写 24C02,而是通过软件模拟。 ST 为了规避飞利浦 IIC 专利问题,将 STM32的硬件 IIC 设计的比较复杂,而且稳定性不怎么好,所以这里我们不推荐使用。

用软件模拟 IIC,最大的好处就是方便移植,同一个代码兼容所有 MCU,任何一个单片机只要有 IO 口,就可以很快的移植过去,而且不需要特定的 IO 口。而硬件 IIC,则换一款 MCU,基本上就得重新搞一次,移植是比较麻烦的。

posted @ 2024-10-19 10:35  hazy1k  阅读(1)  评论(0编辑  收藏  举报