DSL模块的功能
诊断请求处理
● 将从PduR模块发出的请求转发到DSD子模块。DSL子模块应调用Dcm_TpRxIndication并返回参数Result = E_OK后,才将接收到的数据转发到DSD子模块
● Tester在线保持(“保持有效逻辑”)。“Tester在线”命令可由Tester通过物理请求/响应发送,即ISO14229-1 [1]中定义的“keep alive logic”
诊断响应处理
DSD子模块应请求DSL子模块进行诊断响应数据的传输。
● 转发DSD子模块传入的诊断响应数据到PduR模块。DSD子模块应请求DSL子模块进行诊断响应数据的传输
● 保证对测试仪的响应时间。如果应用程序(或DSP子模块)能够执行请求的诊断任务,但需要额外的时间来完成任务和准备响应,那么DSL子模块应在达到响应时间时发送NRC0x78(Response Pending)
● 支持周期型传输方式。UDS服务通过ReadDataByPeriodicIdentifier(0x2A)周期性读取数据;Periodic Transmission通信方式只能在Full Communication Mode模式下进行
● 支持事件型传输方式。UDS服务通过 ResponseOnEvent(0x86)请求ECU开始/暂停传输诊断响应
● 支持分段响应
安全等级处理
管理安全等级。DSL子模块应保存当前活动安全级别的级别,为了访问Security Level,DSL子模块提供了两个接口:
① 获取当前安全等级:Dcm_GetSecurityLevel
② 设置当前安全等级:DslInternal_SetSecurityLevel
会话状态处理
● 管理会话状态。DSL子模块应保存当前活动会话的状态,为了获取当前会话状态,DSL模块提供了两个接口:
① 获取当前会话状态:Dcm_GetSesCtrlType
② 设置新的会话:DslInternal_SetSesCtrlType()
● 保持跟踪当前运行的非默认会话。当非默认会话处于活动状态,并且到达会话超时(S3Server)时,DSL子模块应重置到默认会话状态(“默认会话”,0x01)
● 允许修改定时参数。包括P2ServerMin, P2ServerMax,P2*ServerMin, P2*ServerMax, S3Server
诊断协议处理
● 处理不同的诊断方案
● 管理资源
通信模式处理
● 通信需求处理(Full- / Silent- / No Communication)
● 指示active / inactive diagnostic
● 启用/禁用各种诊断传输