[CP_AUTOSAR]_通信服务_DCM模块(三)_DSL子模块(四)


  紧接着 《[CP_AUTOSAR]_通信服务_DCM模块(三)_DSL子模块(一)》《[CP_AUTOSAR]_通信服务_DCM模块(三)_DSL子模块(二)》《[CP_AUTOSAR]_通信服务_DCM模块(三)_DSL子模块(三)》文,本文将接着介绍下 DSL 子模块的一些功能规范。

5、Generic Connection Handling(通用连接的处理)

  Dcm应该能够处理由 DcmPdus 识别的通用连接,其元数据项类型为 SOURCE_ADDRESS_16 和 TARGET_ADDRESS_16 。这些连接在运行时携带实际的上位机地址。通用连接支持基于 IP 和 FlexRay 的诊断,以及根据ISO15765-2 使用正常固定或混合29位寻址格式的 CAN 诊断。根据 CAN ID 的实际分布,通用连接也可以用于扩展或普通和混合11位寻址格式。Dcm 不知道 CanTp 使用的实际寻址格式。多个连接可能引用相同的 DcmPdus。
  [SWS_Dcm_CONSTR_06044] 所有引用的 DcmDslConnection(DcmDslProtocolRxPduRef、DcmDslProtocolTxPduRef、DcmDslPeriodicTxPduRef) 的 PDUs 的元数据和 PDU 长度都是一致的。
  [SWS_Dcm_00848] 通过 generic connection 接收的诊断请求的源地址必须被存储,该地址信息通过 Dcm_StartOfReception 函数提供的 MetaDataItem 中提供 SOURCE_ADDRESS_16。
  [SWS_Dcm_00849] generic connection 发送的目标地址。[如果 DCM 模块准备发送 ROE、周期性的诊断应答,应该将 TARGET_ADDRESS_16 设置到参数 MetaDataPtr 中的源地址的值中,参数 MetaDataPtr 在函数 PduR_DcmTransmit() 中]。
  [SWS_Dcm_01429] 通过 generic connection 接收的诊断请求的源地址应该在参数 TesterSourceAddress 中提供给应用程序。
  [SWS_Dcm_01347] 通过 generic connection 接收的诊断请求的目标地址,应该通过函数 Dcm_StartOfReception() 在参数 MetaDataItem TARGET_ADDRESS_16 中提供。该情况下,DCM 模块应该忽略物理请求,这些物理请求目标地址不等于配置的 ECU 地址 DcmDspProtocolEcuAddr。
  [SWS_Dcm_01348] 通过 generic connection 发送的诊断应答消息的源地址,可以从参数 DcmDspProtocolEcuAddr 中读取得到。在函数 PduR_DcmTransmit() 中的 MetaDataItem SOURCE_ADDRESS_16 应该提供此地址信息。

6、Guarantee timing to tester by sending busy responses(保证上位机时序)

  [SWS_Dcm_00024] 如果应用程序(或者是 DSP 模块)能够执行所诊断请求的任务,但是需要额外的时间来完成任务或者准备应答,当达到响应时间(DcmDspSessionP2ServerMax - DcmTimStrP2ServerAdjust,DcmDspSessionP2StarServerMax - DcmTimStrP2StarServerAdjust),那么 DSL 模块应该应该发送值为 0x78 的负响应。
  [SWS_Dcm_00119] DSL 子模块应该从一个独立的缓存中,发送如 [SWS_Dcm_00024] 要求的负响应。这么做的目的是为了避免覆写了正在进行中的诊断请求。一条诊断请求的负响应 NRC_0x78 的数量应该在配置参数 DcmDslDiagRespMaxNumRespPend 去设置,而避免在应用程序出现死锁时而引发的无休止的 NRC_0x78 应答。
  [SWS_Dcm_01567] NRC_0x78 负响应的数量可以使用参数 DcmDslDiagRespMaxNumRespPend 来配置,如果未配置的话,那么NRC_0x78 负响应的默认数量应该是无限的。

7、Support of periodic transmission(支持周期性发送)

  《UDS 0x2A 服务》 允许上位机请求定义在 ECU 中的一个或多个 periodicDataIdentifiers 的数据记录值的周期性发送。
  [SWS_Dcm_00122] 对于周期发送,DCM 模块应该使用独立的协议和可配置大小的缓存空间来发送诊断应答消息。配置参数 DcmDslPeriodicTransmissionConRef (引用一个周期发送的连接,其被用于处理周期发送的事件)允许将用于接收周期性传输请求/发送周期性传输响应的协议链接到用于传输周期性传输消息的协议。注意,多个 DcmTxPduIds 可以被分配到周期发送协议上。根据通信方式的不同,DCM 模块有几种限制:
  [SWS_Dcm_00123] 周期发送通信只应该发生在 Full Communication Mode 下;
  当不在 Full Communication 模式下,周期发送的事件可以发生,因此存在如下需求:
  [SWS_Dcm_00125] DCM 模块应丢弃周期性传输事件,除了 Full Communication Mode 全通信模式,不将其入队传输队列;
  [SWS_Dcm_00126] 周期性传输事件不应该激活 Full Communication Mode 全通信模式。

8、Support of segmented response(paged-buffer,分页缓存)

  [SWS_Dcm_00028] 如果使能(DcmPagedBufferEnabled = TRUE),DCM 模块应该提供一种机制,其可以发送超出了配置所允许的缓存空间的诊断响应消息。
  [SWS_Dcm_CONSTR_06055] 对于参数 DcmDslProtocolMaximumResponseSize 的依赖,[只有在参数 DcmPagedBufferEnabled 被设置为 TRUE 时,参数 DcmDslProtocolMaximumResponseSize 才会出现。]
  [SWS_Dcm_01058] 如果参数 DcmPagedBufferEnabled 被设置为 TRUE,并且诊断响应的长度超出了 DcmDslProtocolMaximumResponseSize 的大小,DCM 模块应该应答 NRC 0x14(DCM_E_RESPONSETOOLONG)。
  [SWS_Dcm_01059] 如果参数 DcmPagedBufferEnabled 被设置为 TRUE,并且诊断响应的长度超出了结构体Dcm_MsgContextType 中 resMaxDataLen 的大小,DCM 模块应该应答 NRC 0x14(DCM_E_RESPONSETOOLONG)。
  使用分页缓存处理,ECU 不会强制提供与最大响应消息长度一样大的缓存空间。值得注意的是:
    1、分页缓存处理仅用于发送-不支持接收;
    2、分页缓存处理不可用于应用层程序(只能 DCM 内部使用);
  [SWS_Dcm_01186] DCM 模块应提供 TP 请求的正确数据量,如果请求的数据量不可用,则返回 BUFREQ_E_BUSY。

   更多内容可参考 CP_AUTOSAR_总目录,点击跳转

  • 26
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: my_autosar_project-master是指一个名为my_autosar_project的Autosar项目的主文件夹(也称为主分支),其托管在Github代码托管平台上。Autosar是一种面向电控制单元(ECU)的开放式软件架构,用于高级驾驶辅助系统(ADAS)和自动驾驶(AV)系统。my_autosar_project是一个使用Autosar软件开发的项目,目的是创建一个可在汽车行业中使用的可靠软件。 据我所知,该项目具有良好的文档,可以通过Github页面查看和下载。在该页面上还可以找到包含项目所有代码和分类版本的README文件,以及一些有关如何使用代码、如何贡献代码和如何提出问题的说明。此外,该项目似乎已被开源社区广泛接受,并且有很多开发者已经为该项目做出了贡献。 总的来说,my_autosar_project-master是一个基于Autosar架构的开源项目,旨在为汽车行业提供一种可靠的软件解决方案。该项目有很好的文档,并且收到了广泛的开源社区支持,已经吸引了众多开发者的贡献。 ### 回答2: my_autosar_project-master是一个基于AUTOSARAutomotive Open System Architecture)标准的项目,旨在提高汽车系统软件的可靠性、可复用性和可维护性。该项目使用C编程语言实现,包含了许多AUTOSAR规范中的接口和功能。它可以帮助汽车制造商、供应商和开发人员在设计、开发和测试汽车电控制系统时更好地遵循AUTOSAR标准,同时提高他们的工作效率。项目中还包含了一些示例代码和说明文档,可以帮助开发者更快地理解和使用该项目。该项目需要在AUTOSAR的开发环境中运行,例如Vector CANoe或dSPACE SystemDesk。总之,my_autosar_project-master是一个优秀的汽车软件开发项目,有助于提高汽车控制系统的质量和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值