SoC芯片的CAN总线基础知识详解(一)

描述

CAN总线(Controller Area Network)是一种用于车辆、工业自动化和其他领域的高可靠性、实时性强的串行通信协议。它允许多个微控制器和设备在没有主机计算机的情况下相互通信。

微控制器

CAN总线最初由德国BOSCH公司在1980年代初期为汽车内部通信而开发。1993年,ISO发布了CAN总线标准(ISO 11898),包括数据链路层协议和物理层协议。

ISO 11898-1:定义数据链路层协议。

ISO 11898-2:定义高速CAN总线物理层协议,最高数据传输速率为1Mbps。推荐使用线形拓扑,适用于实时性要求高的场合。

ISO 11898-3:定义低速CAN总线物理层协议,数据传输速率在40Kbps到125Kbps之间。也称为容错CAN,能够在一根信号线失效时继续通信,适用于实时性要求较低的场合。

CAN总线特点:

多主控制:CAN总线支持多个主设备同时存在于网络上,没有主从之分,设备根据消息的优先级进行通信。

差分信号:使用两根线(CAN_H和CAN_L)传输差分信号,提高了抗电磁干扰的能力。

非破坏性仲裁:在消息传输过程中,如果发生冲突,优先级高的消息将被传输,低优先级的消息将等待重传。

错误检测与处理:具有强大的错误检测和处理能力,包括CRC校验、位错误检查等。

灵活的拓扑结构:支持多种网络拓扑结构,如线形、星形、树形和环形。

在CAN总线上,逻辑“0”和“1”之间显著的电压差是总线可靠通信的保证。参照上面的描述,CAN总线上两种电平状态分别为:

显性(Dominant ): 0

隐性(Recessive ): 1

CAN总线的信号电平具有线与特性,线与特性是CAN总线仲裁的电路基础,即显性电平(0)总是会掩盖隐性电平(1),如果不同节点同时发送显性和隐性电平,总线上表现出显性电平(0),只有在总线上所有节点发送的都是隐性电平(1)时,总线才表现为隐性。

显性电平:逻辑0,高速CAN中CAN_H端向5V,CAN_L端向0V。

隐性电平:逻辑1,不驱动任何一端。

微控制器

高速CAN和低速CAN总线在物理层信号电平上定义有所不同:

高速CAN,定义 CANH 和 CANL 电压相同(CANH = CANL = 2.5V)时为逻辑“1”,CANH和CANL 电压相差 2V(CANH = 3.5V, CANL = 1.5V) 时为逻辑“0”。

高速CAN收发器在共模电压范围内(-12V ~ 12V),将CANH和CANL电压相差大于 0.9V 解释为显性状态(Dominant),而将CANH和CANL电压相差小于 0.5V 解释为为隐性状态(Recessive)。收发器内部有迟滞电路可以降低干扰。

低速CAN,定义CANH和CANL电压相差 5V (CANH = 0V, CANL = 5V)时为逻辑“1”,相差 2.2V (CANH = 3.6V, CANL = 1.4V)时为逻辑“0”。

微控制器

高速CAN信号电平( ISO 11898-2)

微控制器

低速CAN信号电平( ISO 11898-3)

CAN的错误处理机制:

CRC错误:通过计算和校验数据的CRC值来检测错误。

位错误:在传输过程中实时检测比特错误。

错误帧:当检测到错误时,发送错误帧以请求重传。

总结

CAN总线以其高可靠性、实时性和灵活性,在多个领域得到了广泛应用。随着技术的发展,CAN总线也在不断演进,例如BOSCH发布的CAN FD(Flexible Data-Rate)标准,进一步提高了数据传输速率,满足了更高带宽需求的应用场景。




审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分