跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
晶圆电阻捷比信 · 专业器件主题站

Arduino主从之间的I2C通信实验

I2C简介I2C总线是飞利浦开发的一种简单的两路两线同步串行总线。它只需要两条线就可以在连接到总线的设备之间传输信息。主设备用于启动总线以传输数据并生成时钟以打开设备进行传输。此时,任何寻址的设备都被视为从设备。主站和从站之间,总线上的发送和接收之间的关系不是恒定的,而是取决于此时的数据传输方向。如果主机要向从设备发送数据,则主机首先对从设备进行寻址,然后主动将数据发送到从设备,最后主机终止数据传输。如果主机要从从设备接收数据,则主设备首先寻址从设备。然后主机接收从设备发送的数据,最后主机终止接收过程。在这些情况下。主机负责产生定时时钟并终止数据传输。 I2C工作原理SDA(串行数据线)和SCL(串行时钟线)均为双向I / O线,接口电路为漏极开路输出。电源VCC需要通过上拉电阻连接。公交车有空的时候。两条线均为高电平,连接到总线的外部设备均为CMOS器件,输出级也是开漏电路。总线上消耗的电流很小。因此,总线上扩展的设备数主要由容性负载决定,因为每个设备的总线接口具有一定的等效电容。线路中的电容会影响总线传输速度。当电容太大时,可能会导致传输错误。因此,其负载能力为400pF,因此可以估算总线的允许长度和连接的设备数量。主设备用于启动总线以传输数据并生成时钟以打开设备进行传输。此时,任何寻址的设备都被视为从设备。主站和从站之间,总线上的发送和接收之间的关系不是恒定的,而是取决于此时的数据传输方向。如果主机要向从设备发送数据,则主机首先对从设备进行寻址,然后主动将数据发送到从设备,最后主机终止数据传输。如果主机要从从设备接收数据,则主设备首先寻址从设备。然后主机接收从设备发送的数据,最后主机终止接收过程。在这些情况下。主机负责产生定时时钟并终止数据传输。 2C总线特性(1)在硬件中,12C总线仅需要两条线:一条数据线和一条时钟线。总线接口已集成在芯片内部,不需要特殊的接口电路,并且片上接口电路的过滤器可以过滤掉总线数据上的毛刺。因此,I2C总线简化了硬件电路的PCB布线,降低了系统成本,并提高了系统可靠性。由于12C芯片除了这两根线和少量中断线外,没有与系统相连的线,因此用户常用的IC可以很容易地进行标准化和模块化,从而便于重复使用。 (2)I2C总线是真正的多主机总线。如果两个或更多主机同时启动数据传输,则可以使用冲突检测和仲裁来防止数据损坏。连接到总线的每个设备都有一个唯一的地址。该设备可以用作主机或从机,但一次只允许一个主机。数据传输和地址设置由软件设置,非常灵活。在总线上添加和删除设备不会影响其他设备的正常运行。 (3)可以通过外部连接在线检测I2C总线,方便系统故障诊断和调试。故障可以立即得到解决,该软件也有利于标准化和模块化,从而缩短了开发时间。 (4)连接到同一总线的IC数量仅受总线的最大电容限制。串行8位双向数据传输的比特率在标准模式下可以达到100Kbit / s,在快速模式和高速模式下可以达到400Kbit / s。最高3.4Mbit / s。 (5)总线的电流消耗极低。抗噪声干扰,增加总线驱动器可使总线电容增加10倍,传输距离可达15m;与不同电压等级的设备兼容,工作温度范围宽。