【车载开发系列】Autosar中的DSL模块(Vector Configurator Pro实现)

【车载开发系列】Autosar中的DSL模块(Vector Configurator Pro实现)

Autosar中的DSL模块(Vector Configurator Pro实现)

  • 【车载开发系列】Autosar中的DSL模块(Vector Configurator Pro实现)
    • 一. DSL子模块总体配置
      • 1)DcmDslBuffer
      • 2)DcmDslCallbackDCMRequestServices
      • 3)DcmDslServiceRequestManufacturerNotifications:
      • 4)DcmDslServiceRequestSupplierNotifications
      • 5)DcmDslDiagResp
      • 6)DcmDslProtocol
    • 二. 什么是DcmDslProtocol
    • 三. DcmDslProtocolRow的配置项
    • 四. DcmDslDiagResp
    • 五. 什么是DcmDslConnection
    • 六. DSL模块总结

一. DSL子模块总体配置

DSL就是Dcm当中的诊断会话层,负责与PduR交互,处理报文的传输,同时监控诊断的状态、请求及响应时序。DSL模块主要用于诊断请求的处理及诊断时序的控制。
它主要的设置项目如下。
【车载开发系列】Autosar中的DSL模块(Vector Configurator Pro实现)_第1张图片

1)DcmDslBuffer

配置诊断缓存区的容器。配置缓存区的Size,一般默认为4095。
在这里插入图片描述

2)DcmDslCallbackDCMRequestServices

StartProtocol通知函数的SWC名称容器

3)DcmDslServiceRequestManufacturerNotifications:

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

4)DcmDslServiceRequestSupplierNotifications

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

5)DcmDslDiagResp

配置Pending响应处理容器

6)DcmDslProtocol

协议配置容器

二. 什么是DcmDslProtocol

DcmDslProtocol是协议配置容器,它是DSL子模块当中的一个配置容器。它由一个或多个DcmDslProtocolRow所组成。
DcmDslProtocolRow也是一个容器,可以用来配置支持的协议层。它是在DCM中DSL模块当中的一个子模块。
【车载开发系列】Autosar中的DSL模块(Vector Configurator Pro实现)_第2张图片

三. DcmDslProtocolRow的配置项

1)DemClientRef
在Dem配置中引用
DemClient由Dem用于区分不同的客户端调用。默认配置。
2)DcmDslProtocolID
正在配置的DSL协议的诊断协议类型。一般都是基于UDS的CAN诊断。DCM_UDS_ON_CAN。
3)DcmDslProtocolIsParallelExecutable
设置OBD协议是否并行处理服务请求。
4)DcmDslProtocolMaximumResponseSize
定义响应消息的最大长度。
5)DcmDslProtocolPriority
协议抢占时使用的协议优先级。高优先级的协议可能会抢占低优先级的协议。数值越低表示协议优先级越高。
6)DcmDslProtocolRxBufferID
引用已配置的诊断缓冲区,该缓冲区用于接收协议的诊断请求。默认配置。
7)DcmDslProtocolSIDTable
对用于此协议的诊断请求处理的服务表的引用。默认配置。
8)DcmDslProtocolTxBufferRef
引用已配置的诊断缓冲区,用于传输协议的诊断响应。默认配置。
9)SendRespPendOnTransToBoot
指定ECU在转换到Boot之前是否应该发送RCR-RP response(Pending帧)。
10)TimStrP2ServerAdjust
表示由DCM发起传输到消息实际传输到总线的通信延迟时间,配置后实际的P2Time就是(P2Time - TimStrP2ServerAdjust)。
11)TimStrP2StarServerAdjust
表示由DCM发起传输到消息实际传输到总线的通信延迟时间,配置后实际的P2Time就是(P2Time - TimStrP2ServerAdjust)。

四. DcmDslDiagResp

它是Pending响应处理容器。
【车载开发系列】Autosar中的DSL模块(Vector Configurator Pro实现)_第3张图片
DcmDslDiagRespMaxNumOfDeclinedRequests:拒绝请求(当前无法处理)的最大响应数量。
DcmDslDiagRespMaxNumRespPend:每次请求最大的0x78响应(Pending)数量。
若设置等于0,每次请求发送的Pending将不受限制,直到完成处理。
若设置大于0,每次请求发送的Pending数量大于该值时,Dcm会取消诊断服务的处理并响应NRC10。
DcmDslDiagRespOnSecondDeclinedRequest:拒绝请求(当前无法处理)的响应。
若设置enable,Dcm无法处理该请求时直接响应NRC21(BusyRepeatRequest)。
DcmDslDiagRespPeriodicMsgPaddingPattern:未使用数据的填充值。
若该参数不存在,按照数据的长度发送
若该参数填充数据,每次都会发送8个字节,未使用的数据填充该值。

五. 什么是DcmDslConnection

这个容器包含一个特定协议的通信通道配置。注意,它允许与多个Tester通信,因此可以为一个协议配置多个连接,可以有物理寻址也可以有功能寻址。Dcm与PDU进行连接的时候,会使用以下的配置项。
【车载开发系列】Autosar中的DSL模块(Vector Configurator Pro实现)_第4张图片
1)DcmDslProtocolRxs:
这个容器包含诊断连接中接收通道的配置参数。一般设置功能寻址和物理寻址
2)DcmDslProtocolRxAddrType
指定请求的寻址类型,一般在导入新DBC后需要检查一下,如果没有自动更新,需要手动区分出功能寻址与物理寻址,不然可能会导致诊断报文无法接收。
3)DcmDslProtocolRxPduId
指定具体Dcm接受PDU。一般也会自动更新,但是也需要检查,不然也会导致诊断报文无法接收。
4)DcmDslProtocolTx
此容器包含诊断连接中发送通道的配置参数。
【车载开发系列】Autosar中的DSL模块(Vector Configurator Pro实现)_第5张图片

六. DSL模块总结

DSL模块主要的功能总结:
1)处理诊断请求
收到请求时,PDUR会将数据诊断请求数据从下层的Buffer中Copy到诊断的接收Buffer中,DSD会从此Buffer中取出数据进行处理。
维持诊断功能在线(保活逻辑)。
2)处理诊断响应
收到发送数据时,PDUR会将数据诊断请求数据从DSL的发送Buffer中Copy到PDUR的发送Buffer中,具体后续处理由CAN的协议栈进行处理。
3)保证诊断时序
支持周期性传输数据等。

你可能感兴趣的:(#,网络)