CAN协议详解

CAN协议详解基础知识一、背景二、发展三、总线优点四、总线要点1、CAN的应用(1)车载网络构想(2)应用实例(3)连接图2、CAN协议基本…

大家好,又见面了,我是你们的朋友全栈君。

一、背景

1、随着车用电气设备增加,对应的电气节点剧增(高档车节点有上千之多),一般的通信协议需要的线束太多。需要减少线束,支持更多节点的协议。
ECU分布

二、发展

1、CAN ( Controller Area Network ) 即控制器局域网络。由于其高性能、高可靠性、及独特的设计,CAN越来越受到人们的重视。CAN最初是由德国的BOSCH公司为汽车监测、控制系统而设计的。现代汽车越来越多地采用电子装置控制,如发动机的定时、注油控制,加速、刹车控制(ASC)及复杂的抗锁定刹车系统(ABS)等。由于这些控制需检测及交换大量数据,采用硬接信号线的方式不但烦琐、昂贵,而且难以解决问题,采用CAN总线上述问题便得到很好地解决。
2、1983-1986年 大众与Bosch制定 软件协议,由Intel 生产控制器。
3、1990年 首次应用于汽车 奔驰 S级 12 缸发动机的汽车。
4、1991年9月,NXP半导体公司制定并发布CAN技术规范CAN2.0A/B,其中CAN2.0A协议规范定义了标准帧格式,CAN2.0B协议规范定义了扩展帧格式。
5、1993年11月,ISO组织正式颁布CAN国际标准ISO11898(高速应用,数据传输速率小于1Mbps)和ISO11519(低速应用,数据传输速率小于125Kbps)。
6、1996年 用于奥迪 A8 D2自动变速器 3.7升 V8 01V AG5的汽车。
7、1997年 用于帕萨特 B5 AG。
8、1998年 用于宝来、高尔夫 A4 AG。
9、VAN Bus 用于标志、雷诺、雪铁龙等,菲利普公司产品。
10、J1850-HBCC 用于福特,莫托罗拉公司产品。
11、J1850-DLC 用于通用,莫托罗拉公司产品。

三、总线优点

1、数据传递更安全可靠;
2、低成本(通信介质可采用双绞线,同轴电缆和光导纤维,一般采用廉价的双绞线即可,无特殊要求);
3、高速实时传递;
4、有条件实现单线功能;
5、适用于各种汽车;
6、开放的标准。

四、总线要点

1、CAN的应用

(1)车载网络构想

车载网络构想

(2)应用实例

应用实例

(3)连接图

CAN连接图

2、CAN协议基本概念

(1)ISO模型与CAN协议

ISO与CAN

(2)ISO11898 和 11519-2 物理层的主要不同点

ISO11898 和 11519-2 物理层的主要不同点

(3)通信速度和最大总线长度

通信速度和最大总线长度

(4)ISO11898、ISO11519-2 的物理层特征

ISO11898、ISO11519-2 的物理层特征

(5)CAN 协议和标准规格

CAN 协议和标准规格

(6)通信协议分类

通信协议分类

3、CAN协议

帧的种类及用途

在这里插入图片描述

(1)数据帧

A、数据帧的构成

数据帧的构成
数据帧由7个段构成,分别是:
(1) 帧起始:表示数据帧开始的段。
(2) 仲裁段:表示该帧优先级的段。
(3) 控制段:表示数据的字节数及保留位的段。
(4) 数据段:数据的内容,可发送 0~8 个字节的数据。
(5) CRC 段:检查帧的传输错误的段。
(6) ACK 段:表示确认正常接收的段。
(7) 帧结束:表示数据帧结束的段。

(2)遥控帧

A、遥控帧的构成

在这里插入图片描述
遥控帧由6个段构成,分别是:
(1) 帧起始(SOF):表示帧开始的段。
(2) 仲裁段:表示该帧优先级的段。可请求具有相同 ID 的数据帧。
(3) 控制段:表示数据的字节数及保留位的段。
(4) CRC 段:检查帧的传输错误的段。
(5) ACK 段:表示确认正常接收的段。
(6) 帧结束:表示遥控帧结束的段。

(3)错误帧

A、错误帧的构成

在这里插入图片描述
(1) 错误标志
错误标志包括主动错误标志和被动错误标志两种。
主动错误标志:6 个位的显性位。
被动错误标志:6 个位的隐性位。
(2) 错误界定符
错误界定符由 8 个位的隐性位构成

(4)过载帧

A、过载帧的构成

在这里插入图片描述
(1) 过载标志
6 个位的显性位。
过载标志的构成与主动错误标志的构成相同。
(2) 过载界定符
8 个位的隐性位。
过载界定符的构成与错误界定符的构成相同。

(5)帧间隔

A、帧间隔的构成

在这里插入图片描述
帧间隔是用于分隔数据帧和遥控帧的帧。数据帧和遥控帧可通过插入帧间隔将本帧与前面的任何帧(数据帧、遥控帧、错误帧、过载帧)分开。
过载帧和错误帧前不能插入帧间隔。
(1) 间隔
3 个位的隐性位。
(2) 总线空闲
隐性电平,无长度限制(0 亦可)。本状态下,可视为总线空闲,要发送的单元可开始访问总线。
(3) 延迟传送(发送暂时停止)
8 个位的隐性位。只在处于被动错误状态的单元刚发送一个消息后的帧间隔中包含的段。

五、补充要点

1、信号传输技术数据

(1)CAN bus最高传播速度:1 Mbps
(2)ISO 分类:
低速型 低于10 kbps (用于后视镜调整、电动窗、灯光照明、雨刷器等,称作LIN总线)
低速型 10 -125 kbps (用于舒适系统、仪表显示等)
高速型 125 kbps -1Mbps (用于发动机控制、ABS、传动控制等)
(3)最多接入控制单元数:32个
(4)通用版本:Bosch CAN 2.0

2、干扰问题

(1)两条数据线相互缠绕,防止电磁波干扰和向外辐射,规定绞距20mm。

3、can收发器接口

(1)常用三种接口器件
M12小型连接器、OPEN5连接端子、DB9插座

4、显性电平和隐性电平

总线上的电平有显性电平和隐性电平两种。
总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。“显性”具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比隐性电平更强。)

六、参考

1、《上海大众帕萨特CAN数据总线的结构原理》
2、《CAN 入门书》 作者 瑞萨科技
3、CAN总线要点

                                </div><div><div></div></div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
                            </div>
</article>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154141.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux宝塔卸载,宝塔面板卸载与安装[通俗易懂]

    linux宝塔卸载,宝塔面板卸载与安装[通俗易懂]一键卸载宝塔Linux面板及运行环境命令1-使用xshell链接服务进入服务器命令:wgethttp://download.bt.cn/install/bt-uninstall.sh2-执行脚本命令:shbt-uninstall.sh3-根据提示4-完成更多功能及文档2,安装宝塔面板执行以下代码进行安装宝塔6.9免费版。宝塔6.9版本已经很稳定了,推荐大家直接安装6.9版本(注意:…

    2025年9月20日
    8
  • tinyint 范围「建议收藏」

    tinyint 范围「建议收藏」最进做项目要记日志日志表同事建的关联任务id用的tinyint一开始测试没问题后来日志记录里数据全是127纳闷看了127的也没人使用然后才看到“`lang=sqlTINYINT型的字段如果不设置UNSIGNED类型,存储-128到127的整数。“`改了就好了抠鼻.jpg…

    2022年9月21日
    3
  • 二阶有源滤波器设计

    二阶有源滤波器设计1引入为什么要用有源二阶滤波器?(1)从有源来说对于无源二阶低通滤波器:其幅頻方程为:我们从中可以看出其通带截止频率为有其品质因子为0.372。我们根据上图得到二阶无源低通滤波器的品质因子只有0.372,如果希望Q大于0.5,就需要在ω=ωo附近增大幅度响应。实现这个目的的一种方法就是增加一个可控的正反馈控制量,这种反馈仅仅在ω=ωo附近奏效,参见下…

    2022年5月4日
    56
  • 网络常用端口号大全图片_windows关闭不必要的端口

    网络常用端口号大全图片_windows关闭不必要的端口端口号—具有网络功能的应用软件的标识号。注意,端口号是不固定的,即可以由用户手工可以分配(当然,一般在软件编写时就已经定义)。当然,有很多应用软件有公认的默认的端口,比如FTP:20和21,HTTP:80,TELNET:23等等,这里就不一一列举了。一个软件可以拥有多个端口号,这证明这个软件拥有不止一个网络功能。0-1023是公认端口号,即已经公认定义或为将要公认定义的软件保留的,而102…

    2025年11月7日
    3
  • git 迁出/克隆远程仓库的指定分支方法(附常用git配置命令)

    普通克隆方式:gitclone&lt;远程仓库地址&gt;这种克隆方式默认是克隆master主分支,而且通过命令gitbranch–list能看到克隆后在本地也只有这一个分支,如果再通过新建分支再拉取指定分支,甚至可能还需要解决冲突,太繁琐。那么,如何快速有效的直接克隆远程指定分支?只需要一条命令:gitclone-b&lt;指定分支名&gt;&…

    2022年4月17日
    53
  • php 实现工厂模式 实例

    php 实现工厂模式 实例工厂模式:由工厂类根据参数来决定创建出哪一种产品类的实例工厂类是指包含了一个专门用来创建其他对象方法的类。根据传入参数进行选择返回具体类的实例。主要作用就是对象创建的封装、简化创建对象的操作。也就是调用工厂类的一个方法(传入参数)来得到需要的类<?php//定义一个抽象类abstractclassOperation{protected$numA=0;protected$numB=0;protected$result=0;.

    2022年7月25日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号