ISOLAR中DEM追加DTC步骤(ETAS工具链)[应用层处理EVENT的情况下]

该文详细介绍了在ISOLAR中,使用ETAS工具链为应用层处理EVENT时添加DEM(DiagnosticEventManager)相关组件的步骤,包括添加DemComponent、DemDTCAttributes、DemDTC和DemEventParameter,以及相应的NVM和BSW代码生成。同时,提供了相关知识的参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ISOLAR中DEM追加DTC步骤(ETAS工具链)[应用层处理EVENT的情况下]


在这里插入图片描述

1. 添加DemComponent

复制黏贴,然后改个名字

双击“DemImmediateChildComponentRef”右侧的框会自动填充

在这里插入图片描述

2. 添加DemDTCAttributes

复制黏贴,然后改个名字

在这里插入图片描述

3. 添加DemDTC

复制黏贴,然后改个名字

DemDTCAttributesRef项要删除然后引用对应的DemDTCAttribute

DemDtcValue要改成相应的DTC号码

在这里插入图片描述

4. 添加DemEventParameter

复制黏贴,然后改个名字

DemComponentClassRef项要删除然后引用对应的DemComponent

DemDTCRef项要删除然后引用对应的DemDTC

在这里插入图片描述

5. NVM相关变更

NvMBlockDescriptor_Dem_AllEventsStatusByte
在这里插入图片描述
生成的代码:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6. 生成BSW代码

参考文章《AUTOSAR设计流程 (ETAS工具链)》

7. DEM相关知识

参考文章AUTOSAR谱系分解(ETAS工具链)》之诊断故障码(DTC)

参考文章《AUTOSAR谱系分解(ETAS工具链)》之Dem

参考文章《AUTOSAR谱系分解(ETAS工具链)》之Dcm

参考文章《AUTOSAR谱系分解(ETAS工具链)》之DCM的子模块DSL、DSD和DSP

《AUTOSAR谱系分解(ETAS工具链)》之总目录

### ETAS 中 UDS 协议的配置方法 在汽车电子领域,UDS(Unified Diagnostic Services)是一种广泛使用的诊断协议标准。通过ETAS工具链可以实现对UDS协议的支持和配置。以下是关于如何在ETAS中完成UDS协议配置的相关说明。 #### 1. 配置基础环境 为了使UDS功能正常运行,需先搭建基本的工作环境并加载必要的模块。这通常涉及ISOLAR-D或INCA等工具中的初始设置部分[^1]。具体来说,在创建项目时应确保选择了支持DOIP(Diagnostic over IP)以及CAN/CAN-FD通信的功能选项。 #### 2. 定义DSP路由与安全机制 对于任何网络连接而言,数据传输的安全性和效率至关重要。因此,在进行具体的UDS服务定义前,必须合理规划DSP路由规则,并实施适当级别的安全性措施来保护敏感信息交换过程不受外界干扰。此外还需注意不同类型的会话管理策略可能会影响整体性能表现。 #### 3. 实现核心诊断服务 根据实际需求定制化开发所需的各种诊断命令集成为关键环节之一。例如文中提到有关于0x85服务用于启停故障码记录功能的例子就很好地展示了这一点[^2]: - **启用/禁用特定条件下的错误检测行为** 当某个原始设备制造商(OEM)明确要求在其产品线内部署该特性时,则需要按照其规定的技术规范准确无误地予以落实到位;与此同时也要考虑到其他关联因素比如资源占用率等方面的影响程度以便做出最优决策方案设计考量。 #### 4. 调整高级参数设定 除了上述几个方面之外还有一些细节之处同样值得关注调整优化以达到最佳效果目标: - 更改默认情况下所采用的标准串口通讯方式为高速度版本即CANFD模式可以通过简单修改相应字段值即可轻松达成目的[^3]; - 如果希望进一步简化程序结构提高可维护性水平的话还可以考虑把原先存在的存储区域大小限制扩展至更大范围之内从而容纳更多有用的数据项内容; - 对某些特殊场景下需要用到的服务接口形式作出改变——由原来的共享型转变为独占式的客户服务器模型(C/S),这样做的好处在于能够更好地满足实时性强的应用场合的要求同时减少潜在冲突发生的可能性几率大大降低. 最后附上一段简单的Python脚本作为辅助演示用途展示如何模拟发送一条典型的ISO-TP消息帧序列给远程节点端接收处理的过程如下所示: ```python import can bus = can.interface.Bus(bustype='socketcan', channel='vcan0') def send_iso_tp_frame(arbitration_id, data): msg = can.Message(arbitration_id=arbitration_id, data=data,is_extended_id=False) try: bus.send(msg) print(f"Message sent on {bus.channel_info}") except Exception as e: print(e) send_iso_tp_frame(0x7E0,[0x02,0x19,0x0A]) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值