汽车dbc文件解析(汽车电子通信)
在以前文章介绍车载通信原理以及作用:
车载控制器通信
本篇文章主要从汽车电子三个范畴:
1、 车载通信;
2、 车载诊断;
3、 车载标定。
分享其应用场景和常用协议。
首先说明下为何要用协议(也就是说协议的目的)?
协议就是将约定俗成定义为规则,大家都来遵守。
在汽车行业通过这些协议:
(1)、避免社会资源浪费
随着一份协议的推广,主机厂(OEM)和其供应商都遵守该协议。避免了供应商适配不同主机厂的供货要求,降低了重复开发的时间和费用;
(2)、极大促进行业进步
集思广益将协议制定,使用过程中逐步修改完善。
不同范畴,应用不同协议以及对应数据库:
一、车载通信
现阶段车载现场总线应用最广的是CAN总线,对应的协议是ISO 11898。最初该协议是博世公司发明,后续凭借该协议的安全性、舒适性、方便性、低公害、低成本得以在汽车行业推广(现在飞机网络和医疗设备也有用)。该协议分为6部分:
Part 1: defines the data link layer including the logical link control (LLC) sub-layer and the medium access control (MAC) sub-layer, as well as the physical signalling (PHS) sub-layer; 定义数据链路层,包括逻辑链路控制(LLC)子层和媒体访问控制(MAC)子层,以及物理信令(PHS)子层;
Part 2: defines the high-speed physical medium attachment (PMA); 高速物理媒体附属层
Part 3: defines the low-speed fault-tolerant physical medium attachment (PMA); 低速容错物理媒体附属层
Part 4: defines the time-triggered communication; 时间触发通讯
Part 5: defines the power modes of the high-speed physical medium attachment (PMA); 低功耗的物理媒体附属层
Part 6: defines the selective wake-up functionality of the high-speed physical medium attachment (PMA). 选择性唤醒的物理媒体附属层
具体内容在本文中不做详细描述。基于该总线(通信介质),可以使整车车身中所有节点(ECU)进行数据交互。
行业中常见的通信数据库是.dbc文件,定义所研发ECU与与车身那些ECU有数据交互(这个在定义整车网络架构的时候会整体考量到),并将涉及到的Node、Message、Signal在该数据库中定义:
其中这里面核心的是通信矩阵。
将该数据库加载到Vector公司工具CANoe中可以实现整车网络仿真。
二、车载诊断
车载诊断源于生活中生病就诊,当车辆出现故障时,需要快速界定故障发生在车身哪个部位。这也是车载诊断最初目的。后续也将读取车辆运行状态、ECU软件更新也并入了车载诊断范畴。
常用到协议ISO 14229(也是现阶段最通用的诊断协议)、 ISO 15765(起初是基于CAN总线的诊断协议)、ISO 13400(由于以太网引入到车载网络,新定义该协议规范了基于车载以太网进行诊断所需要搭建的通信步骤其实就是搭建通信桥梁的过程)、ISO 15031(关于排放相关的协议)。
其中业界最常用的诊断协议是ISO 14229,该协议定义了诊断通信的模式、诊断服务的功能、请求格式、响应格式等等:
该协议定义了26个服务,也预留一些位给用户自定义。每个服务实现不同的功能,后续我也将会用图解的方式,分篇讲述每一服务的功能和应用场景。
在诊断范畴最常用的诊断数据库是CDD、ODX:
CDD数据库是Vector公司一种诊断数据库格式,使用CANdelaStudio可以编辑生成CDD文件。
ODX是另外一种诊断数据库格式文件,对应的协议是ISO 22901,定义该数据库的框架和内容,主要分6个子类:
ODX-CODX-DODX-VODX-EODX-FODX-FD不同子类应用于不同的场景,后续也会专门以文章的形式介绍该数据库。
在数据库中定义内容如下:
1、 所支持的诊断服务、子服务;
2、 所支持的DID(Data Identifier);
3、 所支持的DTC(故障码);
4、 服务的执行权限(Session & Security两个状态机)
通过数据库贯穿整个流程(诊断需求提出-功能实现(代码)-集成测试-售后),来保证整个流程数据的一致性和有效性。这样对于数据,整个流程参与的工程师不会出现主观解读情况,用来保护数据的一致性。
CDD编辑界面:
ODX编辑界面:
三、 车载标定
对于标定工程师,其存在的一个巨大意义就是尽可能将“理想”照进现实。因为完美的硬件在现实世界中是不可能存在的,人类只能借助科学和体系能力去尽可能贴近精确的结果。从HiL(Hardware-in-the-Loop,控制器开发的一个标准化测试流程,主要用于ECU开发)到台架再到整车,亦步亦趋把无数的开环参数一个一个标定下来,尽最大可能地去贴近总布置和设计上的需求,去最大可能性地满足市场和用户的“原始需求”
对应的协议是CCP/XCP协议作用:
1、当ECU运行的时候,可以实时记录ECU内存中的变量。
2、可以具有真实物理意义和单位的数值来直接读写ECU变量,比如RPM、温度、开关等,而不是以原始的字节、位来读取。
3、实时改变ECU内存中的变量值,测试中实时改变ECU行为和性能,而不需重新编译ECU程序。
4、标定过程中,数据记录功能可以获取和记录全面的数据。
对应常用的数据库是a2l:
我是穿拖鞋的汉子
一非典型汽车电子工程师
在这里愿与你一起分享。
2021.04.14
写于上海出租房(马上搬新房咯,期待中)
声明:本文由"麦兜"发布,不代表"知识分享"立场,转载联系作者并注明出处:https://www.wuxiaoyun.com/auto/43711.html