基于PREEvision的诊断设计
技术干货 2022.08.19

汽车诊断技术,即利用外部设备在汽车生产、制造、售后维修过程中与汽车内部电子控制单元建立连接进行通讯完成数据交互的过程。如在售后维修时可以读取ECU记录的故障码,从而分析故障原因,高效准确的定位并解决车辆问题;在软件开发时可以给控制器刷写软件程序;在整车生产制造下线前可以根据车型不同通过诊断技术配置不同参数实现差异化功能。

我们今天就来聊聊基于PREEvision的诊断设计技术。


一、PREEvision诊断简介


PREEvision是汽车行业及相关领域的重要开发工具。PREEvision功能强大,可支持开展电子/电气架构的设计、评估和优化,面向信号和面向服务的架构开发,需求工程管理,AUTOSAR系统和软件设计,AUTOSAR DBC、LDF、FIBEX和Ethernet通信设计,线束开发,测试工程和测试管理,以及符合ISO-26262的功能安全开发。


针对诊断建模及其在软件中的实现,PREEvision为诊断对象提供了专门的建模层。PREEvision支持符合AUTOSAR标准的诊断数据建模。此外在PREEvision中建模的诊断数据可以与CANdelaStudio 13或更高版本交互,进一步的诊断细节实现也可以在CANdelaStudio中维护。


基于PREEvision的诊断设计(图1)


二、诊断建模方式


01. 应用层开发 

在PREEvision中诊断对象引用的是软件端口、数据元素,因此保证了诊断信息与软件模型的一致性。数据类型、转换方式等细节与软件实现保持一致。诊断信息可以在PREEvision中建模,例如诊断数据标识符(DID)和诊断控制(I/O控制):


基于PREEvision的诊断设计(图2)


诊断信息可以分配到对应ECU的软件组件端口。建议在PREEvision中对诊断进行建模,也可以从CANdelaStudio导入诊断数据开始,并在PREEvision中实现相应的软件组件,然后将诊断数据导回CANdelaStudio继续开发。


02. 通信层开发

PREEvision支持基于TP转发机制的诊断通信建模。通过设计DCM-PDU、N-PDU、TP Connection、Tp Node等诊断通讯对象,定义诊断通讯(Function/Physical Address)通信行为,完成诊断通信层的设计。由于篇幅原因,这部分内容今天暂不做介绍。


640 (1).png


下面,我们来看一下基于应用层模型的诊断信息开发方式。


三、诊断信息开发方式


PREEvision提供特定的模型结构-Diagnostic进行诊断信息的开发,如下图所示:


640 (3).png


基于以上模型可开展诊断信息的开发,PREEvision支持如下诊断信息的设计:

▷ diagnostic data identifier (DID);

▷ diagnostic controls (I/O Control);

▷ diagnostic routines (Routine);

▷ diagnostic events (Event);

▷ diagnostic trouble codes (DTC);

▷ master-slave relations;


创建DID及其Port

① 创建Diagnostic Data Identifier对象,并在属性页面进行ID、Diagnostic Class、Service等属性配置;


640 (4).png


② 在Diagnostic Data Identifier 下创建出 Diagnostic Data Object对象以便于SWC关联;

③ 通过拖拽将Diagnostic Data Object 分配到 Atomic SW Component 对象上,生成相应的Port口类型(S/R,C/S);


640 (5).png


④在Diagnostic Data Object 分配到 Atomic SW Component后,PREEvision根据AUTOSAR系统建模的一致性规则,多个对象及其之间的关系会被自动的创建出来包括Sender/Receiver Port Type、SW Port Prototype、SW Port、interface等元素:


640 (6).png


⑤ 创建Diagnostic Data Object数据结构。每条数据需要有一套完整的数据类型(ADT、IDT、Base Type)支撑,接下来需要对DID的数据类型进行完整定义。

选中Diagnostic Data Object对象导航到Diagnostic Attributes页面中找到Assigned Data Elements对象并单击定位到此对象:


640 (7).png


⑥ 在Data Element对象上Data Type属性中为其赋 Application Value Type:


640 (8).png


⑦ 在Application Value Type对象上为其赋予Computation Method:


640 (9).png


⑧ 在Application Value Type对象上为其赋予 Implementation Value:


基于PREEvision的诊断设计(图11)


⑨ 在Implementation Value对象上为其赋予 Base Type:


基于PREEvision的诊断设计(图12)


创建I/O control及其Port

① 创建Diagnostic I/O Control对象,并在属性页面进行配置:


基于PREEvision的诊断设计(图13)


② 通过拖拽将Diagnostic I/O Control 分配到 Atomic SW Component 对象上,生成相应的Port口类型;


基于PREEvision的诊断设计(图14)


③ 在Diagnostic Data Object 分配到 Atomic SW Component后,PREEvision根据AUTOSAR系统建模的一致性规则,多个对象及其之间的关系会被自动的创建出来:


基于PREEvision的诊断设计(图15)

④ 仿照2.2数据结构建立方法完成I/O Control数据结构建立。


创建Diagnostic routine及其Port

① 创建Diagnostic Routine对象,并在属性页面进行配置:


基于PREEvision的诊断设计(图16)


② 通过拖拽将Diagnostic Routine分配到 Atomic SW Component 对象上,生成相应的Port口类型;


基于PREEvision的诊断设计(图17)


③ 在Diagnostic Routine分配到 Atomic SW Component后,PREEvision根据AUTOSAR系统建模的一致性规则,多个对象及其之间的关系会被自动的创建出来:


基于PREEvision的诊断设计(图18)


④ 仿照2.2数据结构建立方法完成I/O Control数据结构建立。



创建DTC and event

① 创建Diagnostic Trouble Code对象,并在属性页面进行配置:


基于PREEvision的诊断设计(图19)


② 创建Diagnostic Event,并在属性页面进行配置:


基于PREEvision的诊断设计(图20)


③在Diagnostic Event的Diagnostic Attributes属性页面中,选择Diagnostic Trouble Code下拉列表配置Event的DTC:


基于PREEvision的诊断设计(图21)



④通过拖拽将Diagnostic Event分配到 Atomic SW Component 对象上,PREEvision根据AUTOSAR系统建模的一致性规则,多个对象及其之间的关系会被自动的创建出来:


基于PREEvision的诊断设计(图22)


⑤ 在Diagnostic Event下创建Diagnostic Connected Indicator,并在Diagnostic Attribute中分配相应的Diagnostic Indicator;

⑥在Diagnostic Event的Diagnostic Attribute属性为其分配Diagnostic Enable Condition、Diagnostic Operation Cycle、Diagnostic Storage Condition:


基于PREEvision的诊断设计(图23)


创建 master&slave关系


① 创建出Diagnostic Master/Slave对象;

② 选择硬件层的某个组件作为诊断的Master/Slave,在其Diagnostic属性页将诊断层创建出的Master/Slave对象分配到目标组件:


基于PREEvision的诊断设计(图24)


③ 在Master对象Diagnostic Node Type属性上为其配置Diagnostic Capability:


基于PREEvision的诊断设计(图25)


④ 在Slave对象Diagnostic Node Type属性上为其配置Diagnostic Capability:


基于PREEvision的诊断设计(图26)


四、诊断数据的导入&导出


01. 导入

可以导入为.pvcdi格式文件到PREEvision中进行诊断开发:

① 在模型视图中,选择要将诊断数据导入到其中的产品线;

②打开上下文菜单,选择Import> Diagnostics > Import Diagnostic Exchange from CANdelaStudio (*.pvcdi);


基于PREEvision的诊断设计(图27)


③ 在对话框中,选择*。需要导入的.pvcdi文件;

④ 再导入CANdela数据后,Product Line根据CANdela数据自动生成Software Types, Diagnostics(即诊断数据), 和Mappings对象。


02. 导出

PREEvision可以导出为.pvcdi格式文件:

① 在 Model View, 选择Diagnostic Master,右键选择Export> Diagnostics > Export Diagnostic Exchange for CANdelaStudio (*.pvcdi);


基于PREEvision的诊断设计(图28)


② 在导出对象框中设置文件名以及保存路径单击保存,然后自动跳转到Simplified diagnostic exchange export configuration对话框,选择与AUTOSAR Export相同的导出选项以保持工作一致性。


基于PREEvision的诊断设计(图29)


 

五、全文小结


PREEvision工具提供两种诊断建模方式,可为现有软件创建诊断数据或导入CANdelaStudio工程并分配给软件SWC。本文基于已有的应用层软件模型建模,介绍了PREEvision工具诊断数据(DID、I/O Control、Routine、DTC、Event等)开发以及数据库导入导出方法,设计完成的数据则需要导出到CANdelaStudio中完成后续设计工作。


以上就是我们今天的全部内容,如有问题可随时联系我们!




关注怿星科技公众号,获得更多资讯


基于PREEvision的诊断设计(图30)