一、I2C 总线术语的界说
术语
发送器 发送数据到总线的器材
接纳器 从总线接纳数据的器材
主机
从机
多主机 一起有多于一个主机测验操控总线但不损坏报文
裁定
同步
二、I2C 总线上数据传输的进程
I2C 总线是一个多主机的总线,这就是说能够衔接多于一个能操控总线的器材到总线。因为主机通常是微操控器,让我们考虑以下数据在两个衔接到I2C 总线的微操控器之间传输的状况。这突出了I2C 总线的主机–从机和接纳器–发送器的联系。
应当留意的是这些联系不是耐久的,只由其时数据传输的方向决议。
传输数据的进程如下:
1、假定微操控器A 要发送信息到微操控器B
1)微操控器A 主机寻址微操控器B 从机
2)微操控器A 主机发送器发送数据到微操控器B 从机接纳器
3)微操控器A 中止传输
2、假如微操控器A 想从微操控器B 接纳信息
1)微操控器A 主机寻址微操控器B 从机
2)微操控器A 主机接纳器从微操控器B 从机发送器接纳数据
3)微操控器A 中止传输,甚至在这种状况下主机微操控器A 也产生守时并且中止传输
三、I2C 总线的裁定
衔接多于一个微操控器到I2C 总线的可能性意味着超越一个主机能够一起测验初始化传输数据。为了避免由此产生紊乱,发展出一个裁定进程。它依托线与衔接一切I2C 总线接口到I2C 总线。假如两个或多个主机测验发送信息到总线,在其他主机都产生“0” 的状况下,首要产生一个“1”的主机将丢掉裁定。裁守时的时钟信号是用线与衔接到SCL 线的主机产生的时钟的同步结合。
在I2C 总线上产生时钟信号通常是主机器材的职责,当在总线上传输数据时每个主机产生自己的时钟信号。主机宣布的总线时钟信号只要在以下的状况才干被改动:慢速的从机器材操控时钟线并延伸时钟信号,或许在产生裁守时被另一个主机改动。
四、I2C 总线的装备
SDA 和SCL 都是双向线路,都经过一个电流源或上拉电阻衔接到正的电源电压。当总线闲暇时,这两条线路都是高电平。衔接到总线的器材输出级有必要是漏极开路或集电极开路才干履行线与的功用。I2C 总线上数据的传输速率在标准形式下可达 100kbit/s,在快速形式下可达 400kbit/s,在高速形式下可达 3.4Mbit/s 。衔接到总线的接口数量只由总线电容是 400pF 的约束决议。
1)数据的有效性:SDA 线上的数据有必要在时钟的高电平周期坚持稳定。数据线的高或低电平状况只要在SCL 线的时钟信号是低电平时才干改动。
2)开始和中止条件:在I2C 总线中仅有呈现的是被界说为开始S 和中止P 条件的状况。其间一种状况是在SCL 线是高电平时,SDA 线从高电平向低电平切换这个状况表明开始条件;当SCL 是高电平时,SDA 线由低电平向高电平切换表明中止条件。
开始和中止条件一般由主机产生。总线在开始条件后被以为处于忙的状况,在中止条件的某段时刻后总线被以为再次处于闲暇状况。假如衔接到总线的器材兼并了必要的接口硬件,那么用它们检测开始和中止条件非常简洁。可是没有这种接口的MCU,在每个时钟周期至少要采样SDA 线两次来判别有没有产生电平切换。
Hs 形式器材的体系的物理I2C 总线装备:主机器材的SDA 和SCL 管脚只在速度混合的总线体系中运用,在只要Hs 形式的体系中不需要衔接。此刻这些管脚有其他功用。
可选的串连电阻RS 维护I2C 总线器材的I/O 级,避免总线上高电压的毛刺影响I/O 级并将振动和搅扰减到最小。
上拉电阻Rp 使SDAH 和SCLH 线在总线闲暇的时侯坚持高电平,并保证信号在要求的上升时刻内从低电平变成高电平。关于电容负载很高>100pF 的总线线路,为了契合上升时刻的要求,能够用外部上拉电流源替代Rp 。除非跟着一个呼应位,Hs 形式传输的SCLH 时钟脉冲上升时刻被激活主机的内部电流源上拉电路MCS 缩短。
五、I2C 总线的电平兼容
I2C 总线器材的电气标准和衔接到它们的总线线路特性:有1.5V 和3V 固定输入电平的 I2C 总线器材每个都有它们自己相应的电源电压上拉电阻有必要衔接到一个5V +-10% 的电源。输入电平衔接到VDD 的I2C 总线器材有必要有一条公共的电源线衔接到上拉电阻。当有固定输入电平的器材与输入电平衔接到VDD 的器材混合运用时,后者有必要衔接到一条公共的5V +-10% 电源线,并且有必要衔接上拉电阻到SDA 和SCL 管脚。
如何将电压不同的器材经过衔接到电源电压线的上拉电阻衔接到相同的总线?虽然上述是最简略的解决方法,但低电压的器材有必要能忍受5V,这将使它们的出产更贵重。
经过运用双向电平转换器,能够将电源电压和逻辑电平不同的两部分I2C 总线衔接起来。“低电压”部分有上拉电阻,并且器材衔接到3.3V 的电源电压;“高电平”部分有上拉电阻,器材衔接到5V 电源电压。两部分的器材都有与逻辑输入电平相关的电源电压和开漏输出装备的I/O。
每条总线线路的电平转换器是相同的,并且由一个分立的N通道增强型MOS-FET 管、串行数据线SDA 的TR1 和串行时钟线SCL 的TR2 组成。门极g 要衔接到最电源电压VDD1,源极s 衔接到“低电压”部分的总线线路,而漏极d 则衔接到“高电压”部分的总线线路。