弗原創IT教育中心 总体特征 SDA和SCL都是双向线路都通过一个电流源或上拉电 阻连接到正的电源电压。当总线空闲时这两条线路都 是高电平连接到总线的器件输出级必须是漏极开路或 集电极开路才能执行线与的功能I2C总线上数据的传 输速率在标准模式下可达100kbit/s在快速模式下可 达400kbit/s在高速模式下可达3.4Mbi/s连接到总 线的接口数量只由总线电容是400F的限制决定
总体特征 SDA 和SCL 都是双向线路都通过一个电流源或上拉电 阻连接到正的电源电压。当总线空闲时这两条线路都 是高电平连接到总线的器件输出级必须是漏极开路或 集电极开路才能执行线与的功能I2C 总线上数据的传 输速率在标准模式下可达100kbit/s 在快速模式下可 达400kbit/s 在高速模式下可达3.4Mbit/s 连接到总 线的接口数量只由总线电容是400pF 的限制决定
弗原創IT教育中心 位传输 由于连接到|2C总线的器件有不同种类的工艺CMOs NMOs双极性逻辑0低和1高的电平不是固定的它由VDD 的相关电平决定见第15章的电气规范每传输一个数据位 就产生一个时钟脉冲 数据的有效性 SDA线上的数据必须在时钟的高电平周期保持稳定数据 线的高或低电平状态只有在SCL线的时钟信号是低电平 时才能改变
一:位传输 由于连接到I2C 总线的器件有不同种类的工艺CMOS NMOS 双极性逻辑0 低和1高的电平不是固定的它由VDD 的相关电平决定见第15 章的电气规范每传输一个数据位 就产生一个时钟脉冲 数据的有效性 SDA 线上的数据必须在时钟的高电平周期保持稳定数据 线的高或低电平状态只有在SCL 线的时钟信号是低电平 时才能改变
弗原創IT教育中心 起始和停止条件 在12C总线中唯一出现的是被定义为起始S和停止P条件的情 况。其中一种情况是在SCL线是高电平时SDA线从高电平向 低电平切换这个情况表示起始条件;当SCL是高电平时SDA 线由低电平向高电平切换表示停止条件;起始和停止条件一般 由主机产生总线在起始条件后被认为处于忙的状态在停止条件 的某段时间后总线被认为再次处于空闲状态 如果产生重复起始Sr条件而不产生停止条件总线会一直处于 忙的状态此时的起始条件S和重复起始Sr条件在功能上是 样的。因此在本文档的剩余部分符号S将作为一个通用的术 语既表示起始条件又表示重复起始条件除非有特别声明的Sr 如果连接到总线的器件合并了必要的接口硬件那么用它们检 测起始和停止条件十分简便但是没有这种接口的微控制器在 每个时钟周期至少要采样SDA线两次来判别有没有发生电平 切换
起始和停止条件 在I2C 总线中唯一出现的是被定义为起始S 和停止P 条件 的情 况。其中一种情况是在SCL 线是高电平时SDA 线从高电平向 低电平切换这个情况表示起始条件;当SCL 是高电平时SDA 线由低电平向高电平切换表示停止条件;起始和停止条件一般 由主机产生总线在起始条件后被认为处于忙的状态在停止条件 的某段时间后总线被认为再次处于空闲状态 如果产生重复起始Sr 条件而不产生停止条件总线会一直处于 忙的状态此时的起始条件S和重复起始Sr 条件在功能上是一 样的。因此在本文档的剩余部分符号S 将作为一个通用的术 语既表示起始条件又表示重复起始条件除非有特别声明的Sr 如果连接到总线的器件合并了必要的接口硬件那么用它们检 测起始和停止条件十分简便但是没有这种接口的微控制器在 每个时钟周期至少要采样SDA 线两次来判别有没有发生电平 切换
弗原創IT教育中心 传输数据 字节格式 发送到SDA线上的每个字节必须为8位每次传输可以发送 的字节数量不受限制每个字节后必须跟一个响应位首先传 输的是数据的最高位MSB。如果从机要完成一些其他功能 后例如一个内部中断服务程序才能接收或发送下一个完整 的数据字节可以使时钟线SCL保持低电平迫使主机进入等 待状态当从机准备好接收下一个数据字节并释放时钟线 SCL后数据传输继续在一些情况下可以用与I2C总线格式 不一样的格式例如兼容CBUS的器件甚至在传输一个字节 时用这样的地址起始的报文可以通过产生停止条件来终止 此时不会产生响应
传输数据 字节格式 发送到SDA 线上的每个字节必须为8 位每次传输可以发送 的字节数量不受限制每个字节后必须跟一个响应位首先传 输的是数据的最高位MSB 。如果从机要完成一些其他功能 后例如一个内部中断服务程序才能接收或发送下一个完整 的数据字节可以使时钟线SCL 保持低电平迫使主机进入等 待状态当从机准备好接收下一个数据字节并释放时钟线 SCL 后数据传输继续在一些情况下可以用与I2C 总线格式 不一样的格式例如兼容CBUS 的器件甚至在传输一个字节 时用这样的地址起始的报文可以通过产生停止条件来终止 此时不会产生响应
弗原創IT教育中心 响应 数据传输必须带响应相关的响应时钟脉冲由主机产生在响应的 时钟脉冲期间发送器释放SDA线拉高,在响应的时钟脉冲期间 接收器必须将SDA线拉低,使它在这个时钟脉冲的高电平期间 保持稳定的低电平,当然必须考虑建立和保持时间。 当从机不能响应从机地址时例如它正在执行一些实时函数不能 接收或发送从机必须使数据线保持高电平主机然后产生一个停 止条件终止传输或者产生重复起始条件开始新的传输。 如果从机接收器响应了从机地址但是在传输了一段时间后不能 接收更多数据字节主机必须再一次终止传输这个情况用从机在 第一个字节后没有产生响应来表示从机使数据线保持高电平主 机产生一个停止或重复起始条件
响应 数据传输必须带响应相关的响应时钟脉冲由主机产生在响应的 时钟脉冲期间发送器释放SDA线拉高,在响应的时钟脉冲期间 接收器必须将SDA线拉低,使它在这个时钟脉冲的高电平期间 保持稳定的低电平, 当然必须考虑建立和保持时间。 当从机不能响应从机地址时例如它正在执行一些实时函数不能 接收或发送从机必须使数据线保持高电平主机然后产生一个停 止条件终止传输或者产生重复起始条件开始新的传输。 如果从机接收器响应了从机地址但是在传输了一段时间后不能 接收更多数据字节主机必须再一次终止传输这个情况用从机在 第一个字节后没有产生响应来表示从机使数据线保持高电平主 机产生一个停止或重复起始条件