• 1145查看
  • 0回复

[系统功能] ​CAN通讯系列28- 我们能用CAN报文做什么?

[复制链接]


该用户从未签到

发表于 31-5-2024 19:56:50 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


在汽车电子控制系统中,通讯,诊断和标定基本上每个控制器所具备的基本功能,虽然它们是不同的功能,但是这三者又有共性,就是它们通常都是基于CAN协议来实现(当然也可以基于其他总线形式来实现),通过接收或发送CAN报文的形式进行数据传输。因此,不难发现CAN 报文是实现诊断、标定和通讯的基础,同时如何应用CAN报文来实现各自的功能非常关键。关于CAN报文的格式定义可以参考本系列前面文章,比如:CAN通讯系列4- CAN数据帧及其仲裁 等文章,下文就主要介绍如何应用CAN报文来实现各自的功能。

1 CAN通讯  

利用CAN报文实现车辆内部各个 ECU 之间的数据交互,其逻辑是:

    先定义整车网络拓扑,即各ECU都通过哪路CAN建立起通讯;

    然后对于单个ECU,需要定义利用该路CAN,发送多少条报文,每条报文发送哪些信号,同时需要明确接收哪些报文;
    最终以CAN矩阵或者DBC文件形式确定各个ECU的CAN通讯内容,本质上是以CAN 报文实现车辆内部各个 ECU 间的数据交换,确保信息的准确传递。

​CAN通讯系列28- 我们能用CAN报文做什么?w1.jpg
   
Source: 如何制作DBC文件_dbc制作结合CAN报文格式定义和实际应用中所采集的CAN报文数据来看,其报文ID,长度和数据的关系如下所示:
​CAN通讯系列28- 我们能用CAN报文做什么?w2.jpg
另外,通过 CAN 报文可以实现车辆的网络管理,保证网络的稳定运行。同样地,上述的数据交换几乎没有差别,不同点在于:对于CAN网络管理,通常规定了以0X4xx作为 网络管理报文的ID,再就是报文数据内容不一样。
​CAN通讯系列28- 我们能用CAN报文做什么?w3.jpg
2. 诊断通讯

利用特定的CAN报文实现诊断通讯,以此读取故障码,读写数据和刷写软件等功能,这些其实都是基于UDS服务来实现的。下面通过实例来解释下如何利用CAN报文来实现UDS服务请求或响应的数据传输。比如需要跳转到扩展会话模式,那么就使用10服务,由请求端发送10 03,然后ECU端接收请求后给出相应的响应50 03 00 32 00 C8,在CAN报文的数据体现形式如下图所示:   
​CAN通讯系列28- 我们能用CAN报文做什么?w4.jpg

其中,对于单帧传输,字节0表示数据的长度;对于多帧传输,字节0表示帧类型,1x表示首帧, 2x表示连续帧,3x表示流控帧。图中2E服务写入VIN码就使用了多帧传输,因为发送VIN码需要使用20个字节的数据,即需要多帧CAN报文才能完成传输。此时这种情况下,CAN通讯在遵循标准和协议ISO 11898之外,还需要遵循ISO 15765以处理单帧和多帧传输。
3. XCP通讯  

通过特定的CAN报文实现XCP通讯,以此实现测量与标定功能,即对ECU中的参数进行观测和调整,以优化车辆性能或适应特定的使用条件;另外,也可以实现软件刷写,即利用CAN报文将新的软件版本传输到ECU中,实现功能的更新或改进。其实,可以类比于上述的诊断通讯,同样地通过CAN报文进行数据传输,也是一个请求,另一个响应的形式。不过不同点在于测量与标定是基于XCP协议来实现,其原理如下示意:   
​CAN通讯系列28- 我们能用CAN报文做什么?w5.jpg

Source:如何使用CANape实现XCP/CCP“Measurement测量”和“Calibration标定” 同样地,对应到CAN报文的ID,长度和数据,如下示意,其中对于每个数据的具体含义则要参考XCP协议中所定义的帧格式。
​CAN通讯系列28- 我们能用CAN报文做什么?w6.jpg

Source: XCP协议的构造和功能4 小结  

通过上述对基于CAN报文的通讯,诊断通讯和标定通讯的介绍,总体来说,它们的相同点都是基于CAN报文格式,涉及到ID,长度和数据段,这些内容都遵循ISO 11898或CAN2.0协议标准等。   
​CAN通讯系列28- 我们能用CAN报文做什么?w7.jpg

它们的不同点主要在于数据所表示的意义不一样:

    基于CAN的ECU间数据交换通讯,报文数据主要为了实现整车功能,包括车速,转速,扭矩,压力,电流,电压和功率等等信号;

    基于CAN的诊断通讯,报文数据主要为诊断服务,读取数据和诊断信息,例程控制等诊断功能,主要基于UDS服务(ISO 14229),还有OBD(ISO15031)等协议标准;

    基于CAN的XCP通讯,报文数据主要为实现测量与标定,主要基于CCP/XCP协议。
在实际应用中,CAN通讯通常会与诊断和标定通讯使用不同的CAN总线,会对诊断和标定定义专门的CAN ID,通常诊断会定义三个CAN ID(一个物理请求的ID,一个功能请求的ID和一个响应的ID),标定会定义两个CAN ID(一个请求的ID和一个响应的ID)。它们具体通讯的过程均可以通过工具追踪,下图使用CANalyzer的trace页面观测的CAN报文实时的通讯动态。
​CAN通讯系列28- 我们能用CAN报文做什么?w8.jpg




该用户从未签到

发表于 11-3-2025 04:42:02 | 显示全部楼层
在汽车电子控制系统中,CAN通讯发挥着至关重要的作用。通过CAN报文,我们可以实现车辆内部各个控制器之间的通讯、诊断和标定。具体来说,利用CAN报文,我们可以实现以下功能:

一、通讯:CAN报文能够实现不同控制器之间的数据传输,确保车辆内部各个系统之间的协同工作。

二、诊断:通过发送和接收特定的CAN报文,我们可以对车辆各系统进行故障诊断和监测,以便及时发现并处理问题。

三、标定:CAN报文还可以用于参数的标定和修改,以适应不同的驾驶需求和车辆状态。

总之,对CAN报文的合理运用是确保汽车电子控制系统正常运行的关键。更多关于CAN报文的应用,建议参考相关系列文章,以更全面地了解CAN通讯在汽车电子领域的应用。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 11-3-2025 04:42:02 | 显示全部楼层
利用CAN报文实现车辆内部各个电子控制单元之间的通讯、诊断和标定是汽车电子控制系统中的基础功能。通过发送和接收CAN报文,可以实现数据信息的传输和共享。具体来说,我们可以利用CAN报文进行以下操作:

1. 实现各控制器之间的通讯:利用CAN报文传递信号和数据,使得各个控制器可以协同工作,提高车辆性能和安全。
2. 故障诊断:通过监测CAN报文,可以诊断出电子控制单元是否出现故障,及时进行维修和更换。
3. 参数标定:利用CAN报文进行参数的读取和修改,实现对车辆性能的标定和优化。

此外,CAN报文的灵活应用还能实现其他功能,如实时数据监控、软件升级等。了解并运用CAN报文是实现汽车电子控制系统各项功能的关键。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 02:25 , Processed in 0.382768 second(s), 36 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.