Autosar Dcm配置-特定NRC实现方式-基于ETAS软件
发布网友
发布时间:2024-10-07 15:10
我来回答
共1个回答
热心网友
时间:2024-12-04 06:18
项目开发中,诊断服务基于特定需求常引入NRC(如NRC22),通常需通过手动编写代码实现。本文将介绍ETAS工具中配置接口及简单实现方法。
工具配置
每个服务及子服务均可配置对应的用户函数。以服务10为例,在Dcm-DcmConfigSet-DcmDsd-DcmDsdServiceTables中配置SessionControlClass选项DcmRbDsdSidTabUserModeRuleFnc,配置自定义函数名。若不配置,默认使用DcmAppl_UserServiceModeRuleService函数,允许用户自定义逻辑判断。配置完成,生成BSW代码。
子服务配置
对于子服务,如果不配置,默认生成函数为DcmAppl_UserSubServiceModeRuleService。配置后,生成BSW代码。
代码编写
查看生成代码,服务10检查自定义函数示例:仅输入Service ID,输出Nrc_u8。服务1002检查自定义函数示例:输入Service ID及子服务ID。自定义两个函数实现逻辑。
无需判断Sid_u8及Subfunc_u8,因为配置的回调函数对应服务ID,确保准确触发。若未配置自定义函数,系统将执行默认check函数,同样由用户实现判断逻辑,无须额外生成函数。
总结
在涉及1002跳转boot、1101复位等服务时,通常需判断安全条件(如车速、蓄电池电压),防止车辆失控。本文介绍的配置及实现方法,能有效满足这一需求。
感谢阅读,如本文对你有帮助,欢迎点赞、关注、收藏、转发。你的支持是持续分享的动力。关注微信公众号《汽车电子学习笔记》,获取更多相关知识更新。