Autosar Dcm模块之Vector Configurator Pro配置(DSL子模块)

背景

之前简单介绍了Autosar Dcm模块,接下来我们直接切入主题,如何通过Vector Configurator Pro工具配置DSL子模块,并实现客户的需求。


DSL子模块配置

1.DSL子模块总体配置

DcmDslBuffer:配置诊断缓存区的容器

DcmDslCallbackDCMRequestServices:StartProtocol通知函数的SWC名称容器

DcmDslServiceRequestManufacturerNotifications: 对制造商允许启用或禁用请求通知机制.

DcmDslServiceRequestSupplierNotifications: 对供应商允许启用或禁用请求通知机制。

DcmDslDiagResp:配置Pending响应处理容器

DcmDslProtocol:协议配置容器

2. DcmDslBuffer

DcmDslBufferSize:配置诊断缓存区大小

3. DcmDslCallbackDCMRequestServices

每个容器使用接口定义一个Port, 使用接口向Dcm模块请求Protocol更改的权限。一般不用这个配置

DcmDslCallbackDCMRequestServiceStartFnc:StartProtocol的回调函数名称

DcmDslCallbackDCMRequestServiceUsePort:访问应用程序的接口类型

4.DcmDslServiceRequestManufacturerNotifications

DcmDslServiceRequestSupplierNotifications

这两个可以一起看,用于定义Dcm访问的ServiceRequestNotification接口。任何进入Dcm的数据会先调用这个接口,一般用于实现功能寻址、NRC22条件、抑制响应等功能。

DcmDslServiceRequestSupplierNotificationConfirmationFnc:接收诊断时通知的回调函数

DcmDslServiceRequestSupplierNotificationIndicationFnc:接收诊断时通知的回调函数

DcmDslServiceRequestSupplierNotificationUsePort:访问APP的接口,需要在RTE中实现相关接口函数

5.DcmDslDiagResp

DcmDslDiagRespMaxNumOfDeclinedRequests:拒绝请求(当前无法处理)的最大响应数量。

DcmDslDiagRespMaxNumRespPend:每次请求最大的0x78响应(Pending)数量。

若设置等于0,每次请求发送的Pending将不受限制,直到完成处理。

若设置大于0,每次请求发送的Pending数量大于该值时,Dcm会取消诊断服务的处理并响应NRC10。

DcmDslDiagRespOnSecondDeclinedRequest:拒绝请求(当前无法处理)的响应。

若设置enable,Dcm无法处理该请求时直接响应NRC21(BusyRepeatRequest)。

DcmDslDiagRespPeriodicMsgPaddingPattern:未使用数据的填充值。

若该参数不存在,按照数据的长度发送

若该参数填充数据,每次都会发送8个字节,未使用的数据填充该值。

6.DcmDslProtocolRow

DemClientRef:在Dem配置中引用DemClient。由Dem用于区分不同的客户端调用。默认配置。

DcmDslProtocolID:正在配置的DSL协议的诊断协议类型。一般都是基于UDS的CAN诊断。

DcmDslProtocolIsParallelExecutable:设置OBD协议是否并行处理服务请求。

DcmDslProtocolMaximumResponseSize:定义响应消息的最大长度。

DcmDslProtocolPriority:协议抢占时使用的协议优先级。高优先级的协议可能会抢占低优先级的协议。数值越低表示协议优先级越高。

DcmDslProtocolRxBufferID:引用已配置的诊断缓冲区,该缓冲区用于接收协议的诊断请求。默认配置。

DcmDslProtocolSIDTable:对用于此协议的诊断请求处理的服务表的引用。默认配置。

DcmDslProtocolTxBufferRef:引用已配置的诊断缓冲区,用于传输协议的诊断响应。默认配置。

SendRespPendOnTransToBoot:指定ECU在转换到Boot之前是否应该发送RCR-RP response(Pending帧)。

TimStrP2ServerAdjust:表示由DCM发起传输到消息实际传输到总线的通信延迟时间,配置后实际的P2Time就是(P2Time - TimStrP2ServerAdjust)。

TimStrP2StarServerAdjust:表示由DCM发起传输到消息实际传输到总线的通信延迟时间,配置后实际的P2*Time就是(P2*Time - TimStrP2ServerAdjust)。

7.DcmDslConnection

这个容器包含一个特定协议的通信通道配置。注意,它允许与多个Tester通信,因此可以为一个协议配置多个连接

DcmDslProtocolRxs:这个容器包含诊断连接中接收通道的配置参数。一般设置功能寻址和物理寻址

DcmDslProtocolRxAddrType:指定请求的寻址类型,一般在导入新DBC后需要检查一下,如果没有自动更新,需要手动区分出功能寻址与物理寻址,不然可能会导致诊断报文无法接收。

DcmDslProtocolRxPduId:指定具体Dcm接受PDU。一般也会自动更新,但是也需要检查,不然也会导致诊断报文无法接收。

DcmDslProtocolTx:此容器包含诊断连接中发送通道的配置参数。

注意:上面两个配置一般会在导入DBC之后自动更新,用于将Dcm与PDU进行连接。

总结

以上是DSL子模块通用容器配置,我们仅仅用到其中一部分配置,很多配置还需具体实践。

  • 12
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值