I2C 24LC02 C 读写例程(PIC 单片机) 1 I2C 总线特点 I2C 总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此 I2C 总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达 25 英尺,并且能够以 10Kbps 的最大传输速率支持 40 个组件。I2C 总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 2 I2C 总线工作原理 I2C 总线上的数据稳定规则,SCL 为高电平时 SDA 上的数据保持稳定,SCL 为低电平时允许SDA 变化。如果 SCL 处于高电平时,SDA 上产生下降沿,则认为是起始位,SDA 上的上升沿认为是停止位。通信速率分为常规模式(时钟频率 100kHz)和快速模式(时钟频率 400kHz)。同一总线上可以连接多个带有 I2C 接口的器件,每个器件都有一个唯一的地址,既可以是单接收的器件,也可以是能够接收发送的器件。 每次数据传输都是以一个起始位开始,而以停止位结束。传输的字节数没有限制。最高有效位将首先被传输,接收方收到第8 位数据后会发出应答位。数据传输通常分为两种:主设备发送从设备接收和从设备发送主设备接收。这两种模式都需要主机发送起始位和停止位,应答位由接收方产生。从设备地址一般是 1 或2 个字节,用于区分连接在同一 I2C 上的不同器件。 I2C 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。 开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。 结束信号:SCL 为低电平时,SDA 由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的 IC 在接收到8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。 在 I2C 总线中只有主发送和主接收两种操作方式。在系统初始化时,由指令控制 CPU 送出相关的数据,经接口送到I2C 寄存器内。通过初始化这些寄存器,可以实现 I2C 总线的主模式控制,以及实现 I2C 总线上的从设备读写。 当主设备和其中的一个从设备交换数据时,主设备首先发出一个启动 Start 信号,这...