mattlincoln 发表于 2022-11-23 21:29

I2C总线:通信线缆长度的影响及改进措施

   I2C总线确实不适合远距离通信,尤其是需要使用线缆与I2C接口器件进行通信,这里的“不适合”并不是说不可以,这也是本文的重点。一般使用I2C总线,都是在用一个开发板上,或者距离比较近的,如果是远距离通信,比如说超过2米,这个时候对硬件就有特殊的要求了。

   很多的文章说,I2C总线的线缆长度不要超过50cm,这个我觉得相对比较保守,我们做的测试是在实验室里,只要硬件参数合适,是能做到5~8米的,那么如何延长 I2C 通信线缆长度呢,也就是如何进行I2C远距离通信,下面几条经验是可以作为参考的:

(1)实验测试中,我们发现,在通信正常的情况下,I2C总线的上拉电阻与线缆长度是有比例关系的:

         通信线缆越长,上拉电阻要越小。而通信线缆越短,上拉电阻要越大。比如:

      ① 通信线缆小于0.2米,一般可以采用10K的上拉电阻,这个也是很多I2C芯片的说明书中推荐的上拉电阻。

      ② 通信线缆在 0.2到2米之间,一般可以采用 4.7k 上拉电阻。

      ③ 通信线缆在2米以上,一般可以采用 1~2.2 k上拉电阻。

      上拉电阻的范围一般在1K~10k之间,之所以有这个范围,可以简单的认为,电阻过小,功耗比较大,而且容易烧毁I2C接口,而电阻过大,会影响 信号的上升沿时间,也就是影响到了 时钟频率,会出现误码。

(2)远距离通信时,尽量使用 屏蔽 线缆,这个确实是有用的,能够很好的抗干扰。

(3)如果不考虑成本,可以采用 I2C 总线 中继芯片,比如P82B715、P82B96等,这些中继芯片的基本原理是,将I2C总线接口专为 差分信号,所以主机和从机之间,需要一对芯片,这样主机和从机之间是差分信号传输,也就克服了I2C总线的 线缆长度限制了。当然价格也是比较贵的,一对芯片要将近30元。

(4)通信 频率,这个很好理解,在各种通信中,有一个共同的规律,通信速率与误码率成正比,通信频率越低,误码率也越低,所以我们在与I2C设备通信的时候,尤其是距离比较远的,可以考虑降低通信频率。
————————————————
原文链接:https://blog.csdn.net/u012351051/article/details/100567445

jonas222 发表于 2022-12-2 19:43

这个减小上拉电阻不行吗?            

jackcat 发表于 2022-12-2 22:03

好像有I2C总线中继器的。            

linfelix 发表于 2022-12-3 15:18

用过I2C总线到3M,最后的效果就是干扰太严重了。

averyleigh 发表于 2022-12-5 21:17

这个电容数值是怎么测量的呢?            

eefas 发表于 2022-12-6 14:40

I2C总线可以做成差分的形式的吗?

lihuami 发表于 2022-12-10 09:57

这个上拉电阻是怎么选择的呢?            

Undshing 发表于 2022-12-26 12:12

应该可以减小上拉电阻吧

liu96jp 发表于 2022-12-28 13:07

I2C好像都是比较近的方案通信

t1ngus4 发表于 2022-12-28 14:13

没必要用I2C做远距离通信的啊

d1ng2x 发表于 2022-12-28 15:18

用485吧,或者以太网能好些

ex7s4 发表于 2022-12-28 16:24

这个通信长度估计得加中继,才能好一些

b5z1giu 发表于 2022-12-28 17:35

上拉电阻降低能通信的远?应该也是合理的,这样能提高驱动力

y1n9an 发表于 2022-12-28 19:32

所以,很多都不建议I2C远距离通信的,一般都是小于0.2米

su1yirg 发表于 2022-12-29 07:12

讲的很细致,这也算是实践精神了

q1d0mnx 发表于 2022-12-29 09:02

还是换别的方案实现远距离通信吧,毕竟都是2根线,何必为难自己呢,嘿嘿

kaif2n9j 发表于 2022-12-29 10:24

50米的I2C估计是加了放大器了吧

l1uyn9b 发表于 2022-12-29 13:27

我觉得只要总线功率够用,其实远点是可以的,这就跟MCU或者I2C的驱动有关系了

MessageRing 发表于 2023-1-3 14:15

能不能减小上拉
页: [1]
查看完整版本: I2C总线:通信线缆长度的影响及改进措施