
I2C总线的最大长度是:小于200mm~300mm,跟传输速度、布线等有关系,延长距离可以用I2C中继器芯片,NXP如P82B715、P82B96等等;在标准上没有看到明确规定有效的传输距离。
I2C传输的距离应该取决信号的稳定性,而稳定性由总线负载,传输速度,总线电容,甚至外部干扰等因素决定,因此有可能出现5米的通讯距离换个位置或者加个设备就出问题。
扩展资料:
Hs 模式主机器件有一个SDAH 信号的开漏输出缓冲器和一个在SCLH 输出的开漏极下拉和电流源上拉电路,这个电流源电路缩短了SCLH 信号的上升时间,任何时候在Hs 模式,只有一个主机的电流源有效。
在多主机系统的Hs 模式中,不执行仲裁和时钟同步,以加速位处理能力。仲裁过程一般在前面用F/S 模式传输主机码后结束。
Hs 模式主机器件以高电平和低电平是1:2 的比率产生一个串行时钟信号。解除了建立和保持时间的时序要求,
可以选择Hs 模式器件有内建的电桥。在Hs 模式传输中,Hs 模式器件的高速数据(SDAH)和高速串行时钟(SCLH )线通过这个电桥与F/S 模式器件的SDA 和SCL 线分隔开来,减轻了SDAH 和SCLH 线的电容负载,使上升和下降时间更快。
Hs 模式从机器件与F/S 从机器件的唯一差别是它们工作的速度。Hs 模式从机在SCLH 和SDAH输出有开漏输出的缓冲器。SCLH 管脚可选的下拉晶体管可以用于拉长SCLH 信号的低电平,但只允许在Hs 模式传输的响应位后进行。
Hs 模式器件的输出可以抑制毛刺,而且SDAH 和SCLH 输出有一个施密特触发器;Hs 模式器件的输出缓冲器对SDAH 和SCLH 信号的下降沿有斜率控制功能。
参考资料来源:百度百科-I2C总线
IIC总线上的器件都是只通过SCL和SDA这两条线连接到IIC总线上的吗?\x0d\是的\x0d\\x0d\IIC上的每个器件都要一个地址寄存器来确定自己的地址吗? \x0d\不一定,很多器件都是通过硬件来确定地址的。\x0d\有的在出厂时地址就设置好了,用户不可以更改;\x0d\有的确定了几位,剩下几位由硬件确定(比如有三位由用户确定,就留有3个控制地址的引脚),此类较多;\x0d\还有的有地址寄存器。 \x0d\\x0d\"如果主机向从机发送地址,从机怎么知道这个地址就是主机的,这个地址是怎么计算出来的"\x0d\严格讲,主机不是向从机发送地址,而是主机往总线上发送地址(这个地址是某个从机的,而不是主机的,所以不存在“从机怎么知道这个地址就是主机的”的问题),所有的从机都能接收到主机发出的地址,然后每个从机都将主机发出的地址与自己的地址比较,如果匹配上了,这个从机就会向主机发出一个响应信号。主机收到响应信号后,开始向总线上发送数据,与这个从机的通讯就建立起来了。如果主机没有收到响应信号,则表示寻址失败。 \x0d\\x0d\“比如IIC总线上接了两块单片机,一块是主机,另一块是从机,如何定义从机的这个地址”\x0d\如果是带IIC的单片机,会有地址寄存器,寄存器里的值即为它作为从机时的地址。\x0d\以ATmega48为例,有TWI从机地址寄存器—TWAR,先要确定工作模式(主机模式或从机模式),若工作在从机模式,,TWI将根据这个地址进行响应。\x0d\如果是不带IIC的单片机,没有地址寄存器。所以一般不用做从机。以AT89C51为例,用它的普通IO口模拟IIC时序时,一般都是用作主机。特殊情况下51用作从机时,可以通过扫描总线的方式,若发现总线上出现某个地址信号便响应(严格来说,这种方式只是在IIC基础上z用户定义的通信方式)。\x0d\\x0d\最常见的情况,如前面所说,主从器件的角色是确定的,也就是说从机一直工作在从机模式。它的地址确定方法我已经说过了。不同的器件定义地址的方式是不同的,有的是软件定义,有的是硬件定义。你找个数据手册看看就明白了,纸上谈兵很难说清楚。IIC中的应答是由从机在第9个SCL周期拉低SDA实现的若不能产生应答或者说是在第9个周期使SDA为高电平即非应答则说明从机忙或者有其他的原因无法响应,主机应该发送停止或者重新开始发送 而应答说明了主机发送的一字节数从机已经收到,可以继续 *** 作
总线最大电容。
连接到相同总线上的IC数量只受总线最大电容的限制,串行的8位双向数据传输位速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s。
I2C总线可以通过外部连线进行在线检测,便于系统故障诊断和调试,故障可以立即被寻址,软件也利于标准化和模块化,缩短开发时间。
扩展资料:
时钟同步通过线与连接I2C 接口到SCL 线来执行。这就是说SCL 线的高到低切换会使器件开始数它们的低电平周期,而且一旦器件的时钟变低电平,它会使SCL 线保持这种状态直到到达时钟的高电平。
但是如果另一个时钟仍处于低电平周期,这个时钟的低到高切换不会改变SCL 线的状态。因此SCL 线被有最长低电平周期的器件保持低电平。此时低电平周期短的器件会进入高电平的等待状态。
当所有有关的器件数完了它们的低电平周期后,时钟线被释放并变成高电平。之后,器件时钟和SCL线的状态没有差别,而且所有器件会开始数它们的高电平周期。首先完成高电平周期的器件会再次将SCL线拉低。
参考资料来源:百度百科-I2C总线
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)