0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Vector工具支持Environmental Condition的编辑、代码开发和测试

Vector维克多 来源:Vector维克多 2025-08-26 11:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

诊断规范中定义用来限制诊断服务执行的先决条件称作Environmental Condition,它依赖于车载数据,如车辆内部传感器控制器实时生成或存储的运行参数(如速度、位置等),以及ECU特定的运行模式、工况,如ECU根据不同驾驶场景(如运动模式)或外部条件(如高温/高海拔)切换的工作状态。

8aa65ad6-7e6e-11f0-a18e-92fbcf53809c.png

AUTOSAR定义了三类诊断访问权限,限制诊断服务的执行,分别是:Session、Security Level和Environmental Condition。对于Environmental Condition,AUTOSAR DCM(Diagnostic Communication Manager)管理需要的信息,并在某些环境条件成立时阻止服务的执行。

ISO 14229-1(Unified Diagnostic Service,UDS)协议中,有多个NRC(Negative Response Code)定义ECU对不同的先决条件做出的否定响应。

NRC 0x22(conditionsNotCorrect);

NRC 0x81-0x8D(例如:0x81/0x82:rpmTooHigh/Low;0x88/0x89:vehicleSpeedTooHigh/Low);

NRC 0x8F-0xFE(例如:0x92/0x93:voltageTooHigh/Low);

其中0x95-0xEF:reservedForSpecificConditionsNotCorrect;0xF0-0xFE:vehicleManufacturerSpecificConditionsNotCorrect。

本文以NRC 0x22为例,介绍关于Vector工具对于Environmental Condition的编辑、代码开发和测试的支持。NRC 0x22定义如下图:

8ac06a48-7e6e-11f0-a18e-92fbcf53809c.png

CANdelaStudio 16以上版本支持编辑ECU执行请求的Environmental Condition,在CANdelaStudio中叫做Environmental Condition Groups。如下图所示:

8acf4da6-7e6e-11f0-a18e-92fbcf53809c.png

在CDD中编辑好Environmental Condition Groups后,可以将CDD中编辑的Environmental Condition数据导入DaVinci Configurator Classic,也可以导出到DEXT(Diagnostic Extract Template)文件,还可以将CDD导入CANoe.DiVa,通过配置实现对诊断服务NRC的测试。

注:CANoe.DiVa版本要大于15 SP3。

CANdelaStudio如何编辑Environmental Condition Groups

CANdelaStudio中Environmental Condition Groups中有三个部分:Condition Groups、Dependencies和Defaults。

Condition Groups有车辆数据(Data)和ECU模式(Mode)。例如,当客户端执行Write(0x2E)服务和IO Control(0x2F)服务修改ECU数据时,出于保护硬件、避免功能浪费的目的,会定义以下限制条件:发动机转速为0(Data),在正常电压下(Mode)。用户可以在如下图红框处,添加Data Condition和Mode Condition。

8adfff16-7e6e-11f0-a18e-92fbcf53809c.png

Data Condition

添加Data Condition后,首先编辑Name,默认Negative Response Code(NRC)为0x22。当不满足条件时,ECU将发送带有此NRC的否定响应;

8afa7d64-7e6e-11f0-a18e-92fbcf53809c.png

然后,编辑Data Object:

undefined:没有引用的数据;

in document:选择引用的Data Object来自于CDD文件中某个DID的Data Object,也被称为Internal Data Object,此处定义的数据和选择的Data Object的Data Types需要兼容,即有相同的Encoding/Length(目前支持的有Unsigned(1/2 Byte)和Signed(1/2/4 Byte))和Unit;

external:引用的Data Object没有定义在CDD文件中,也被称为External Data Object,目前支持的Data Type有五种,如下图所示:

8b1ec99e-7e6e-11f0-a18e-92fbcf53809c.png

最后,编辑Data Conditions的具体数值和操作符(有< ≤ ≠ = ≥ >六种);

8b327840-7e6e-11f0-a18e-92fbcf53809c.png

注:上图中的“Referenced”下置为“yes”或“no”是不需要编辑的。当在“Dependencies”下,选择服务对应的“Condition”,“Referenced”下会置为“yes”,反之为“no”。

Mode Condition

添加Mode Condition后,首先编辑Name,再添加Mode;

8b4b3d30-7e6e-11f0-a18e-92fbcf53809c.png

注:上图中的“Referenced”下置为“yes”或“no”是不需要编辑的,当在“Dependencies”下,选择服务对应的“Condition”,“Referenced”下会置为“yes”,反之为“no”。

Dependencies

当Data Condition、Mode Condition编辑完成后,依据需求编辑服务与Data/Mode Condition的依赖关系。

8b5c159c-7e6e-11f0-a18e-92fbcf53809c.png

Environmental Condition在AUTOSAR中的应用

MICROSAR Classic支持Mode Condition,可以将CDD文件中定义的Mode Condition导入DaVinci Configurator Classic,也可以将Mode Condition的定义导出到DEXT文件中。如需将CDD中定义的Mode Condition导入DaVinci Configurator Classic或导出到DEXT文件中,需要在CDD文件中对Mode Condition添加相应的Attributes Value。添加方法:

首先,通过Expert View打开CDD文件,打开方式如下图所示:

8b6c98e0-7e6e-11f0-a18e-92fbcf53809c.png

在Default Attributes下Mode Conditions中添加Attribute “ASR SWC ModeDeclaration Ref”,如下图所示:

注:先查看文件中是否已添加此Attribute,如果已添加就不用再添加了。

8b7f9f62-7e6e-11f0-a18e-92fbcf53809c.png

然后,在已有的Mode Conditions中,如下图处,添加、编辑Attributes Value(注:需要CANdelaStudio 17以上版本):

8b96b684-7e6e-11f0-a18e-92fbcf53809c.png

Attributes Value示例如下(本例中为了可读性而使用换行符,实际使用时要用空格替代换行符):

CRCR:/COM/VECTOR/CFG/WORKFLOW/SYSDESC/SYNC/SYSTEM/COMPOSITIONTYPE

CCR:/COM/VECTOR/CFG/WORKFLOW/SYSDESC/SYNC/COMPOSITIONTYPE/SwcDiagApp

CPRP:/ComponentTypes/SwcDiagApp/SwcDiagApp_ProcessingCondition_CodingVoltageMode

MDG:/PortInterfaces/SwcDiagApp_CodingVoltageMode/CodingVoltageMode

TM:/ModeDclrGroups/SwcDiagApp_CodingVoltageMode/DEFAULT

注:如果CDD文件中有Data Conditions,对于Referenced的Internal Data Object(即在“Dependencies”下,选择对应的“Condition”),也可以导出到DEXT文件中;

对于Referenced的External Data Object(即在“Dependencies”下,选择对应的“Condition”),需要编辑Attributes Value,也可以导出到DEXT文件中,如下图所示:

8ba678c6-7e6e-11f0-a18e-92fbcf53809c.png

Attributes Value示例如下:CRCR:/RootSwc CCR:/Swc1 CPRP:/Port1 TDPR:/Data2

将带有以上Attributes Value的CDD文件导入DaVinci Configurator Classic,在工具中自动创建了DcmProcessingConditions,如下图所示:

8bc1af56-7e6e-11f0-a18e-92fbcf53809c.png

将带有以上Attributes Value的CDD文件导出为DEXT文件,导出的DEXT文件中带有Mode的部分如下图:

8bdc7b7e-7e6e-11f0-a18e-92fbcf53809c.png

生成的代码如下图所示:

8bebfa90-7e6e-11f0-a18e-92fbcf53809c.png

CANoe.DiVa如何生成合法或非法条件下执行诊断服务的测试用例

CANoe.DiVa 15 SP3以上版本支持测试CDD里定义的Environmental Condition。

第一步,将定义了Environmental Condition的CDD文件导入CANoe.DiVa,CANoe.DiVa会自动将Environmental Condition生成System Conditions,如下图所示:

8c082e2c-7e6e-11f0-a18e-92fbcf53809c.png

第二步,对CDD中定义的诊断服务执行需要的Valid Condition或Invalid Condition进行配置,如下图所示:添加一个或多个Step,例如对于External Data Object,可以由工程中添加的DBC文件设置Bus Signal的值;

8c197d4e-7e6e-11f0-a18e-92fbcf53809c.png

第三步,对于在CDD文件中编辑的服务与Data/Mode Condition的依赖关系,在CANoe.DiVa中会自动生成Invalid Condition下服务的测试用例,如下图:

8c3026b6-7e6e-11f0-a18e-92fbcf53809c.png

如果要生成Valid Condition下服务的测试用例,需要对诊断Service或Job添加Valid Condition,选择一个Condition作为“System Precondition”;

8c41364a-7e6e-11f0-a18e-92fbcf53809c.png

8c56baa6-7e6e-11f0-a18e-92fbcf53809c.png

最后,工程设置编辑完成后,点击“Generate”按钮,生成CANoe.DiVa测试工程,再将工程文件导入CANoe执行测试用例。如下图所示:

8c6e68a4-7e6e-11f0-a18e-92fbcf53809c.png

生成的测试用例部分CAPL代码如下图所示:

8c90a16c-7e6e-11f0-a18e-92fbcf53809c.png

8ca3b888-7e6e-11f0-a18e-92fbcf53809c.png

总结

Environmental Condition定义了诊断服务执行的限制条件,在代码实现和测试中都很重要。Vector工具链提供从诊断需求定义到代码实现到诊断测试的完整解决方案。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2573

    文章

    54372

    浏览量

    786087
  • ecu
    ecu
    +关注

    关注

    14

    文章

    966

    浏览量

    56882
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73151
  • Vector
    +关注

    关注

    3

    文章

    88

    浏览量

    9900

原文标题:Vector工具支持Environmental Condition的编辑、代码开发和测试

文章出处:【微信号:VectorChina,微信公众号:Vector维克多】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HarmonyOS应用开发-代码编辑

    编辑器使用技巧DevEco Studio支持多种语言进行HarmonyOS应用的开发,包括Java、JS和C/C++。在编写应用阶段,您可以通过掌握各种代码编写的各种常用技巧,来提升编
    发表于 09-18 16:56

    RISC-V MCU开发 (三):代码编辑

    】MRS支持工具栏按钮或代码编辑区右键菜单”Source->ShiftLeft/Right”实现对选中代码的缩进调整。【
    发表于 09-26 16:31

    编辑音频剪辑、声音设计、控制、录音软件工具

    编辑音频剪辑、声音设计、控制、录音软件工具(支持wav等mp3格式文件):一个免费的音频编辑工具.可以
    发表于 06-17 13:29 236次下载
    <b class='flag-5'>编辑</b>音频剪辑、声音设计、控制、录音软件<b class='flag-5'>工具</b>

    应对CAN总线系统设计开发Vector总线技术研讨会即将开

    应对CAN总线系统设计开发Vector总线技术研讨会即将开演 德国Vector Informatik公司推出的CANoe等一系列软硬件工具,被应用在CAN总线系统的设计、建模、仿真
    发表于 08-27 10:40 783次阅读

    渗透测试工具开发

    渗透测试工具开发
    发表于 09-07 10:30 18次下载
    渗透<b class='flag-5'>测试工具</b><b class='flag-5'>开发</b>

    Stellaris开发和评估工具代码编辑器的详细资料概述

    Stellaris开发和评估工具包提供了一种低成本的方法来开始使用StalARIS微控制器使用德克萨斯仪器的代码编写器Studio开发工具设计。评估板可以作为一个完整的评估目标或者作为
    发表于 05-09 15:13 2次下载
    Stellaris<b class='flag-5'>开发</b>和评估<b class='flag-5'>工具</b>包<b class='flag-5'>代码</b><b class='flag-5'>编辑</b>器的详细资料概述

    Vector看板管理工具Squore助力敏捷开发

    JIRA是一款集项目管理、缺陷跟踪、团队协作、服务管理、敏捷规划于一体的优秀商业软件,目前已被广泛应用到敏捷开发当中。来自Vector的看板管理工具Squore,具备强大的接口管理功能,通过预设配置
    的头像 发表于 09-26 09:29 2809次阅读

    c语言代码自动生成工具,MCU代码自动生成工具介绍

    MCU代码自动生成工具介绍文档编辑原标题:GoKit3二次开发-代码自动生成工具介绍前文需知1.
    发表于 10-28 17:36 8次下载
    c语言<b class='flag-5'>代码</b>自动生成<b class='flag-5'>工具</b>,MCU<b class='flag-5'>代码</b>自动生成<b class='flag-5'>工具</b>介绍

    RISC-V MCU开发 (三):代码编辑

    RISC-V MCU开发 (三):代码编辑对于一款集成开发环境来说,代码编辑既是最基础的必需功能
    发表于 12-08 14:06 12次下载
    RISC-V MCU<b class='flag-5'>开发</b> (三):<b class='flag-5'>代码</b><b class='flag-5'>编辑</b>

    如何快速修改keil软件的代码编辑界面

    大家好,我是小麦,最近的文章都在介绍相关工具推荐和使用,这次给大家带来如何快速修改keil软件的代码编辑界面的主题。
    的头像 发表于 06-14 09:00 6475次阅读

    如何实现Linux环境和CANoe工具之间的数据交互

    Vector提供的CANoe软件是进行网络/总线和ECU开发测试和分析的全面工具支持总线网络开发
    的头像 发表于 11-14 16:52 5486次阅读

    语言智能在代码编辑器中是如何工作的

    程序员和开发者经常使用代码编辑器写代码代码编辑器这种工具
    的头像 发表于 11-21 09:40 1393次阅读

    2024年十款热门云端开发工具推荐

    2024年十款热门云端开发工具推荐:代码编辑(VSCode、Cloud9、Codenvy)、版本控制(Git、GitHub)、容器化(Docker)、自动化部署(Jenkins)、设计协作
    的头像 发表于 11-23 16:26 1321次阅读

    Vector推出一套基于Visual Studio Code的免费插件

    在汽车软件开发过程中,除使用MATLAB开发算法外,专业开发者也偏向使用Visual Studio Code来开发代码,其中软件
    的头像 发表于 11-24 14:15 3113次阅读
    <b class='flag-5'>Vector</b>推出一套基于Visual Studio Code的免费插件

    云端AI开发工具怎么用

    云端AI开发工具通常包括代码编辑器、模型训练平台、自动化测试工具代码管理
    的头像 发表于 12-05 13:31 916次阅读