打印
[开发资料]

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

[复制链接]
1024|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mattlincoln|  楼主 | 2022-11-23 21:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   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,最后的效果就是干扰太严重了。

使用特权

评论回复
5
averyleigh| | 2022-12-5 21:17 | 只看该作者
这个电容数值是怎么测量的呢?              

使用特权

评论回复
6
eefas| | 2022-12-6 14:40 | 只看该作者
I2C总线可以做成差分的形式的吗?

使用特权

评论回复
7
lihuami| | 2022-12-10 09:57 | 只看该作者
这个上拉电阻是怎么选择的呢?              

使用特权

评论回复
8
Undshing| | 2022-12-26 12:12 | 只看该作者
应该可以减小上拉电阻吧

使用特权

评论回复
9
liu96jp| | 2022-12-28 13:07 | 只看该作者
I2C好像都是比较近的方案通信

使用特权

评论回复
10
t1ngus4| | 2022-12-28 14:13 | 只看该作者
没必要用I2C做远距离通信的啊

使用特权

评论回复
11
d1ng2x| | 2022-12-28 15:18 | 只看该作者
用485吧,或者以太网能好些

使用特权

评论回复
12
ex7s4| | 2022-12-28 16:24 | 只看该作者
这个通信长度估计得加中继,才能好一些

使用特权

评论回复
13
b5z1giu| | 2022-12-28 17:35 | 只看该作者
上拉电阻降低能通信的远?应该也是合理的,这样能提高驱动力

使用特权

评论回复
14
y1n9an| | 2022-12-28 19:32 | 只看该作者
所以,很多都不建议I2C远距离通信的,一般都是小于0.2米

使用特权

评论回复
15
su1yirg| | 2022-12-29 07:12 | 只看该作者
讲的很细致,这也算是实践精神了

使用特权

评论回复
16
q1d0mnx| | 2022-12-29 09:02 | 只看该作者
还是换别的方案实现远距离通信吧,毕竟都是2根线,何必为难自己呢,嘿嘿

使用特权

评论回复
17
kaif2n9j| | 2022-12-29 10:24 | 只看该作者
50米的I2C估计是加了放大器了吧

使用特权

评论回复
18
l1uyn9b| | 2022-12-29 13:27 | 只看该作者
我觉得只要总线功率够用,其实远点是可以的,这就跟MCU或者I2C的驱动有关系了

使用特权

评论回复
19
MessageRing| | 2023-1-3 14:15 | 只看该作者
能不能减小上拉

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

1347

帖子

3

粉丝