深入浅出、通俗易懂的讲解CAN bus。

  • Post author:
  • Post category:其他


与时俱进,我也开始写博客了。

记忆自己历史的痕迹!

今天,分配到我手下的新来毕业生向我请教can bus问题,他表示canbus很难理解。我将讲解的部分内容放置到网上,也算方便不懂的新手朋友了解了解,当然大神看了,请勿见怪。

第一、can bus的历时、渊源,在这里我不讲述了。网上大把文章了。

第二、为什么要有can bus,它有优点?

can bus由传统的mod bus改版而来的,但跟mobus又不一样。


can bus 要求是 两条通信线;两根线都是通信线;并且通讯线没有TX/RX之分。只有两根线组合在一起,才是一条总线。既是TX线,也是RX线。


canbus必须采用双绞线(一般双绞线要求是20mm绞距)。如下图。

在这里插入图片描述

上面这要绞线有什么好处呢?为了减少外部电磁场对信息内部电平的干扰。

在这里插入图片描述

为什么在双线交互缠绕时,会减少外部干扰呢?上图中,电磁场不也是对两个信息线各自有干扰吗?

在讲到,必须要回转头跟大家讲讲can bus 总线的识别信号了。

我们遇到的大部分电子环境中,都是默认为+5V或者+3V为高电平,代表通信数值1;0V或者-5V为低电平,代表通信数值0。我想大部分有软件或者硬件功底的朋友估计都能轻易理解吧!(如果这句话都理解不了,证明你的技术水平实在太低了,建议你自己去看看的技术书籍)。

一般的串行总线,都有两根信号线(例如,比较好理解的I2C有一根SDA,一根SCL)。 但是can bus不一样了,虽然也有两根总线(can_H和can_L),但是它要两根总线组合在一起,才能区分逻辑信号。

can bus ,它的逻辑0,为两根总线的电压差=2V;它的逻辑1,为两根总线的电压差=0v。如下图,

在这里插入图片描述

当有外部磁场干扰时,因为can-H和can-L是紧密的缠绕在一起,所以干扰脉冲总是有规律的同时作用在两条线上,让传输的逻辑数值不会发生变化。
在这里插入图片描述

因此,看到这里我不由想到,金庸的名著,“他强由他强,清风拂山岗;他横由他横,明月照大江”。不管你外界环境多恶劣,通信信号不管历尽千辛万苦,数值依然保持忠贞不变,可谓惊叹绝伦。这种设定,会让can bus对外界的电磁干扰的抵抗力大大增强,是一个通信技术的突破(由衷为技术前辈的智慧结晶而感叹!!!)



版权声明:本文为cgc200310原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。