CAN总线学习笔记(1)- CAN基础知识

本专辑是依照瑞萨公司《CAN入门书》的组织思路来学习CAN通信的相关知识,并结合网上相关资料以及学习过程中的领悟整理成的笔记。希望对初学者有所帮助。

01

CAN的一些基本概念

1.1 什么是CAN总线

CAN 是 Controller Area Network 的缩写,是 ISO 国际标准化的串行通信协议。通俗来讲,CAN总线就是一种传输数据的线,用于在不同的ECU之间传输数据。

CAN总线有两个ISO国际标准:ISO11898 和 ISO11519。其中:

ISO11898 定义了通信速率为 125 kbps~1 Mbps 的高速 CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度 ≤ 40米。

ISO11519 定义了通信速率为 10~125 kbps 的低速 CAN 通信标准,属于开环总线,传输速率为40kbps时,总线长度可达1000米。

Tips: <总线的传输速率>:又称为总线的通信速率,指的是位速率。或称为比特率(和波特率不是一回事),表示的是:单位时间内,通信线路上传输的二进制位的数量,其基本单位是 bps 或者 b/s (bit per second)。

1.2 CAN的拓扑结构

下图中,左边是高速CAN总线的拓扑结构,右边是低速CAN总线的拓扑结构。

如图中所示,CAN总线包括CAN_H 和 CAN_L 两根线。节点通过CAN控制器和CAN收发器连接到CAN总线上。

Tips :通常来讲,ECU内部集成了CAN控制器和CAN收发器,但是也有没集成的,需要自己外加。

1.3 CAN信号表示

在CAN总线上,利用CAN_H和CAN_L两根线上的电位差来表示CAN信号。CAN总线上的电位差分为显性电平和隐性电平。其中显性电平为逻辑0,隐性电平为逻辑1。

ISO11898标准(125kbps ~ 1Mbps)和ISO11519标准(10kbps ~ 125kbps)中CAN信号的表示分别如下所示:

1.4 CAN信号传输

发送过程:

CAN控制器将CPU传来的信号转换为逻辑电平(即逻辑0-显性电平或者逻辑1-隐性电平)。CAN发射器接收逻辑电平之后,再将其转换为差分电平输出到CAN总线上。

接收过程:

CAN接收器将CAN_H 和 CAN_L 线上传来的差分电平转换为逻辑电平输出到CAN控制器,CAN控制器再把该逻辑电平转化为相应的信号发送到CPU上。

概括的讲:

  • 发送方通过使总线电平发生变化,将其信息传递到CAN总线上。

  • 接收方通过监听总线电平,将总线上的消息读入自己的接收器。

02

CAN通信的特点

2.1 多主工作方式

所谓多主工作方式,指的是:总线上的所有节点没有主从之分,大家都处于平等的地位。反应在数据传输上,即是:在总线空闲状态,任意节点都可以向总线上发送消息。

Tips: <总线空闲状态>:当总线上的上出现连续的11位隐性电平,那么总线就处于空闲状态。也就是说对于任意一个节点而言,只要它监听到总线上连续出现了11位隐性电平,那么该节点就会认为总线当前处于空闲状态,它就会立即向总线上发送自己的报文。

至于为什么连续出现11位隐性电平,就可以判定+总线处于空闲状态,这个问题可以结合CAN协议的帧结构来进行理解。

在多主工作方式下:

  • 最先向总线发送消息的节点获得总线的发送权;

  • 当多个节点同时向总线发送消息时,所发送消息的优先权高的那个节点获得总线的发送权。

例如:Node_A和Node_B同时向总线发送各自的消息Msg_1和Msg_2,如果Msg_1的优先级比Msg_2高,那么Node_A就获得了总线的发送权。

2.2 非破坏性位仲裁机制

在CAN协议中,所有的消息都以固定的帧格式发送。当多个节点同时向总线发送消息时,对各个消息的标识符(即ID号)进行逐位仲裁,如果某个节点发送的消息仲裁获胜,那么这个节点将获取总线的发送权,仲裁失败的节点则立即停止发送并转变为监听(接收)状态。

例如:Node_A和Node_B同时向总线发送各自的消息Msg_1和Msg_2,那么对Msg_1的ID号ID_1和Msg_2的ID号ID_2进行逐位仲裁,如果仲裁结果是:ID_1的优先级比ID_2高,那么Msg_1在仲裁中获胜,于是发出Msg_1这条报文的节点Node_A就获得了总线的发送权。同时,Msg_2在仲裁中失败,于是Node_B就转换到监听总线电平的状态。

这种仲裁机制既不会造成已发送数据的延迟,也不会破坏已经发送的数据,所以称为非破坏性仲裁机制。这种仲裁方式的实现机制参见本系列笔记的第二篇CAN协议数据帧与遥控帧中的介绍。

2.3 系统的柔性

CAN总线上的节点没有“地址”的概念,因此在总线上增加节点时,不会对总线上已有节点的软硬件及应用层造成影响。

2.4 通信速度

在同一条CAN线上,所有节点的通信速度(位速率)必须相同,如果两条不同通信速度总线上的节点想要实现信息交互,必须通过网关。

例如:汽车上一般有两条CAN总线:500kbps的驱动系统CAN总线和125kbps的舒适系统CAN总线,如果驱动系统CAN总线上的发动机节点要把自己的转速信息发送给舒适系统CAN总线上的转速表节点,那么这两条总线必须通过网关相连。

2.5 数据传输方式

CAN总线可以实现一对一,一对多以及广播的数据传输方式,这依赖于验收滤波技术。验收滤波技术的实现机制参见本专辑的第二篇CAN协议帧结构中的介绍。

2.6 远程数据请求

某个节点Node_A可以通过发送“遥控帧”到总线上的方式,请求某个节点Node_B来发送由该遥控帧所指定的报文。具体实现方式参见本专辑的第二篇文章CAN协议的帧结构中的介绍。

2.7 错误检测、错误通知、错误恢复功能

  • 所有的节点都可以检测出错误(错误检测功能);

  • 检测出错误的节点会立即通知总线上其它所有的节点(错误通知功能);

  • 正在发送消息的节点,如果检测到错误,会立即停止当前的发送,并在同时不断地重复发送此消息,直到该消息发送成功为止(错误恢复功能)。

2.8 故障封闭

节点能够判断错误的类型,判断是暂时性的数据错误(如噪声干扰)还是持续性的数据错误(如节点内部故障),如果判断是严重的持续性错误,那么节点就会切断自己与总线的联系,从而避免影响总线上其他节点的正常工作。

CAN通信的上述特点都是基于CAN协议所定义的多种帧结构来实现的,因此,在对CAN的帧结构(下一篇笔记)详细了解之后,再做进一步的详细解释。

03

CAN通信网络结构

3.1 OSI基本参照模型

实际上,CAN总线网络底层只采用了OSI基本参照模型中的数据链路层、传输层。而在CAN网络高层仅采用了OSI基本参照模型的应用层

3.2 CAN协议网络层次

在CAN协议中,ISO标准只对数据链路层和物理层做了规定。对于数据链路层和物理层的一部分,ISO11898和ISO11519-2的规定是相同,但是在物理层的PMD子层和MDI子层是不同的。

在CAN总线,每一层网络中定义的事项如下:

本期的的分享就这些,下一期分享的内容是:《CAN协议数据帧与遥控帧》,敬请期待!

版权声明:本文为CSDN博主「weixin_40528417」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

(0)

相关推荐

  • UC头条:通信协议

    首先了解一下,什么是通信? 通信是指两个对象之间能够进行信息的数据传输. 通信的两个对象是指什么呢? 如果不谈具体的领域,通信的两个对象可以是想要完成信息交换的任何对象.但是今天我们聚焦于汽车领域,我 ...

  • CAN总线的工厂自动化监测网络

    摘要:本文介绍了CAN的结构,网络协议及控制器的使用,阐述了CAN总线的工厂自动化实时监测分网络系统设计. 关键词: CAN现场总线 通信协议 网络 1 引言 在计算机数据传输领域内,长期以来使用RS ...

  • 干货分享:CAN总线详解 整车的控制只需要一条线

    CAN("Controller Area Network",控制器局域网) 作用:将整车中各种不同的控制器连接起来,实现信息的可靠共享,并减少整车线束数量.可以设想一种极端情况,如 ...

  • ARM Linux CAN 异常排查步骤

    ARM Linux CAN 异常排查方法 1. 背景 项目上经常有反馈,说我们的CAN总线相关设备不受控,或者控制板重启也没用.登陆系统后查看,会发现经常出现CAN通信异常或超时的情况,由于我们的控制 ...

  • 一文读懂CAN

    一文读懂CAN

  • 如何用示波器测试CAN信号?

    作为目前车载网络领域最成熟.应用最广泛的通信总线之一,CAN总线具有传输可靠性高.速度快.易用等特点.由于其涉及到用户的人身安全,所以在汽车研发.生产.检测.维修等过程中均需做严格的测试. 由于CAN ...

  • CAN总线的显性电平为什么能覆盖隐性电平?

    大家都知道,CAN总线的差分电平分为显性电平和隐性电平,显性电平的逻辑为0,隐性电平的逻辑为1,在同一个位时间,一个节点发显性电平,另一个节点发隐性电平,则总线电平为显性电平,这是CAN总线仲裁的基础 ...

  • CAN总线学习笔记(2)- CAN协议数据帧、遥控帧、错误帧

    本专辑是依照瑞萨公司<CAN入门书>的组织思路来学习CAN通信的相关知识,并结合网上相关资料以及学习过程中的领悟整理成的笔记.希望对初学者有所帮助. 01 CAN 协议中的帧 在了解CAN ...

  • LIN总线

    LIN总线历史 1996年Volvo与Volcano通讯为Volvo S80系列开发了一种基于UART/SCI的Volcano Lite协议. 1997年,Motorola与Volvo.Volcano ...

  • Django入门+实战教程+个人笔记+实时更新+基础知识 ->(个人学习记录笔记)

    @ 目录 1.初识 2.登录,登录首页实现步骤 3.GET方式_登录功能 1.post请求的请求报文 2.post响应报文 3.GET和POST请求区别 4.GET请求方式 5.POST请求方式 6. ...

  • 学习伤寒必要的基础知识

    第一节:六经形层 太阳经主皮毛,阳明经肌肉,少阳经主腠理,太阴经主肢末,少阴经主血脉,厥阴经主筋膜. 第二节:六经气化太阳之上,寒气治之,中见少阴:阳明之上,燥气治之,中见太阴:少阳之上,火气治之,中 ...

  • 小学语文学习大致分为语文基础知识、阅读与...

    小学语文学习大致分为语文基础知识.阅读与写作.文学常识.今天整理了语文基础知识部分,作为语文学习的奠基石,相当重要!一起学习一下吧!

  • 【Go语言学习笔记一】基础语法

    行分隔行 在 Go 程序中,一行代表一个语句结束.每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾, 但是可以使用分号:结尾,如果当你将多个语句写在同一行时,则必须使用分号: 一.变量 1. ...

  • 学习声乐的十点基础知识【转】

    许多歌者认为发声练习就是开开嗓子,其实发声练习不仅仅是单纯的开嗓子,而是有针对性地选择适合的练声曲进行技巧训练.下面跟随小美在线了解学习声乐的十点基础知识~ 1.演唱的姿势 (1)站立姿势.不仅是为了 ...

  • 学习期权之一:基础知识

    与期货类似,期权也属于一种远期衍生工具.与期货交易双方承担对等权利义务的情况不同,期权买方获得的执行合约的权力,而卖出方则承担执行合约的义务.也就是说,期权买方可以选择在对自己有利的情况下行使权力,在 ...

  • 实用|小学生学习必备,语文基础知识大全(共26页)

    小学语文必考基础知识大全 小学语文其实内容还是很多的,语文它不像数学只要理解了它的含义,搞懂了它的运算规则,那么只要仔细一点就能完成.语文就完全不一样,需要孩子们花大量的时间来进行记忆,像语文的基础知 ...

  • 孟先生笔记丨奇门遁甲基础知识 反吟 六仪击刑

    反吟是指九星.八门.值符落到与它相对冲的地盘宫内,故有星反吟.门反吟.值符反吟. 反吟主远.主快.主动.主反复:主变动:主后悔:主重审:主赔本:主不顺:主谈婚不成.不稳定.反复:主能够破案:主失而复得 ...