ZHDA297 November 2022 ADC081C021 , ADC081C027 , ADC101C021 , ADC101C027 , ADC121C021 , ADC121C021-Q1 , ADC121C027 , ADC128D818 , ADS1000 , ADS1000-Q1 , ADS1013 , ADS1014 , ADS1015 , ADS1015-Q1 , ADS1100 , ADS1110 , ADS1112 , ADS1113 , ADS1114 , ADS1115 , ADS1115-Q1 , ADS7823 , ADS7827 , ADS7828 , ADS7828-Q1 , ADS7830 , ADS7924 , AFE539A4 , DAC081C081 , DAC081C085 , DAC101C081 , DAC101C081Q , DAC101C085 , DAC121C081 , DAC121C085 , DAC43204 , DAC43401 , DAC43401-Q1 , DAC43608 , DAC43701 , DAC43701-Q1 , DAC53002 , DAC53004 , DAC53202 , DAC53204 , DAC53204W , DAC53401 , DAC53401-Q1 , DAC53608 , DAC53701 , DAC53701-Q1 , DAC5571 , DAC5573 , DAC5574 , DAC5578 , DAC60501 , DAC60502 , DAC63002 , DAC63004 , DAC63202 , DAC63204 , DAC6571 , DAC6573 , DAC6574 , DAC6578 , DAC70501 , DAC70502 , DAC7571 , DAC7573 , DAC7574 , DAC7578 , DAC7678 , DAC80501 , DAC80502 , DAC8571 , DAC8574
I2C 系统为总线上的所有器件提供两条共享通信线路。这两条线路用于双向半双工通信。I2C 支持多个控制器和多个目标器件。这两条线路都需要上拉电阻器。图 2-1 展示了 I2C 物理层的典型实现。
I2C 采用通用协议的原因之一是因为它只有两条通信线路。第一条线是 SCL,它是主要由控制器器件控制的串行时钟。SCL 用于同步目标器件的时钟数据输入或输出。第二条线路是 SDA,它是一条串行数据线。SDA 用于将数据传输到目标器件或从目标器件传输数据。例如,控制器器件可以将配置数据和输出代码发送到目标数模转换器 (DAC),或者目标模数转换器 (ADC) 可以将转换数据发送回控制器器件。
I2C 是半双工通信,其中一次只有单个控制器或目标器件在总线上发送数据。相比之下,串行外设接口 (SPI) 是一种全双工协议,在这种协议中,可以同时将数据发送和接收回来。SPI 需要四条通信线路,使用两条数据线路与目标器件之间发送数据。除了串行时钟之外,独特的 SPI 片选线路选择器件进行通信,有两条数据线路用于目标器件的输入和输出。
I2C 控制器器件启动和停止通信,从而消除潜在的总线争用问题。与目标器件的通信通过总线上的唯一地址发送。这允许 I2C 总线上有多个控制器和多个目标器件。
SDA 和 SCL 线路与总线上的所有器件都有开漏连接。这需要将一个上拉电阻器连接至公共电压电源。