背景
之前简单介绍了Autosar Dcm模块,接下来我们直接切入主题,如何通过Vector Configurator Pro工具配置DSD子模块,并实现客户的需求。
DSD子模块配置
1.DSD子模块总体配置
DcmDsdServiceTable:配置诊断ID表
DcmDsdService:配置单个诊断服务
2.DcmDsdServiceTable
这个容器包含每个具体诊断服务(0x10, 0x11等)的配置(DSD参数)。
DcmDsdSidTabId:诊断服务ID标识。当只有一个DcmDsdServiceTable表时不需要填写;当有多个DcmDsdServiceTable表时填写表ID号。
3. DcmDsdService
一个具体诊断服务的配置容器。
Short Name: 诊断服务命名
DcmDsdServiceRole:每个Bit都有特定作用,设置为1允许执行,设置为0拒绝执行。设置为1之后,收到对应的诊断服务之后Dcm会自动拒绝任何请求。
DcmDsdSidTabFnc: ECU Supplier特定组件针对特定服务的回调函数。若未配置此参数,则服务在Dcm内部处理。
DcmDsdSidTabModeRuleRef:诊断服务规则检查。若设置规则,诊断服务会按照规则进行检查,检查失败的话Dcm会自动拒绝请求;反之则不检查。
DcmDsdSidTabServiceDispatcher:诊断服务调度功能。若使能,服务请求由调度器控制,在处理过程中可能会被内部和外部事件打断。
DcmDsdSidTabServiceId:诊断服务ID。
DcmDsdSidTabSubfuncAvail:诊断服务是否支持子服务。
DcmDsdSidTabSecurityLevelRef:允许执行服务的安全级别。一个服务允许多个引用。
DcmDsdSidTabSessionLevelRef:允许执行服务的会话级别。一个服务允许多个引用。
DcmDsdSidTabVehicleSystemGroupRef:诊断服务依赖于特定的VSG。
DcmDsdSubServices:与DcmDsdService的配置大同小异,这里不再赘述。
总结
以上是DSD子模块通用容器配置,我们仅仅用到其中一部分配置,很多配置还需具体实践。