• DCM


    为了定义DCM模块的功能,DCM SWS将DCM模块建模为由以下子模块组成:
    1.诊断会话层(DSL)子模块:DSL子模块可确保与诊断请求和响应有关的数据流,监督和保证诊断协议计时并管理诊断状态(尤其是诊断会话和安全性)。
    2.诊断服务分派器(DSD)子模块:DSD子模块处理诊断数据流。 子模块:
      1.通过网络接收新的诊断请求,并将其转发到数据处理器。
      2.由数据处理器(例如DSP子模块)触发时,通过网络传输诊断响应。
    3.诊断服务处理(DSP)子模块:DSP子模块处理实际的诊断服务(分别为子服务)请求。下图概述了DCM模块中子模块DSP,DSD和DSL之间的接口。

    注意:这些子模块及其之间的接口的实现是不是强制性的。 引入它们只是为了提高规格。

    负面回应码(NRC)
    定义UDS服务和OBD服务的标准定义了否定响应代码(NRCs)。
    DCM SWS在DCM与其他BSW模块和SW-C之间的接口中使用这些NRC。 这些NRC在数据类型Dcm_NegativeResponseCodeType中定义。
    [SWS_Dcm_01075]传输的NRC的顺序应符合ISO14229-1 [15]中所述的顺序。

    非易失性信息:

    Dcm的几个功能要求对非易失性信息进行初始化。
    AUTOSAR没有描述在Dcm初始化时如何访问此信息或该信息是否可用。 因此,对非易失性信息的访问是特定于实现的,并且必须在集成期间确保。

    [SWS_Dcm_00870] Dcm必须检查NvM是否被正确读出。如果非挥发性信息无法读出正确的DCM将启动默认的反应。 本章描述了默认的反应,并描述了非易失性数据的用法。
    [SWS_Dcm_01048] 如果Dcm取消具有NvM访问权限的服务,则它将调用NvM_CancelJobs()。
    通过达到RCRRP NRC的最大数量或通过协议抢占来取消该服务。

     

    数据类型

    [SWS_Dcm_00968] Dcm应支持以下数据类型:

      • boolean
      • uint8
      • uint16
      • uint32
      • sint8
      • sint16
      • sint32
      • uint8[n]

      uint8 [n]类型映射到固定或可变数据长度。
    [SWS_Dcm_00969] Dcm应该像匹配大小的整数数据类型一样对待非整数数据类型(例如uint8 [n]),或者在DcmDspDataEndianness配置为OPAQUE的情况下不解释其内容。
    [SWS_Dcm_00970] Dcm模块应将不透明数据解释为uint8 [n],并应始终将其映射到n字节大小的信号。

    对于不透明的数据字节序,必须将DcmDspDataEndianness配置为OPAQUE。

    [SWS_Dcm_00971] Dcm必须将在[21](第2.4章)中定义的字节序转换扩展到有符号数据类型。在[21](第2.4章)中,字节序转换是为无符号数据类型定义的。 可以在配置10.2.29 DcmDspData中找到相关的配置。

    • 原子类型概述

    •  数据数组类型概述

    数据类型约束

    [constr_6002]定义DcmDspDataSize参数的用法, DcmDspDataSize是数组和位类型所必需的。
    注意:基本数据类型不需要DcmDspDataSize [constr_6003] 8位数组的大小参数限制如果值大于8并且DcmDspDataType为UINT8_N,SINT8_N或UINT8_DYN,则⌈DcmDspDataSize应为8的倍数。
    [constr_6035]如果值大于16并且DcmDspDataType为UINT16_N或SINT16_N,则16位数组⌈DcmDspDataSizes的大小参数限制应为16的倍数。
    [constr_6036]如果值大于32并且DcmDspDataType为UINT32_N或SINT32_N,则32位数组DcmDspDataSizes的大小参数限制应为32的倍数。

    [constr_6004]如果DcmDspDataUsePort是类型,则UINT8将用作(实现)数据类型,其位长度在1到8之间。USE_DATA_SENDER_RECEIVER或USE_ECU_SIGNAL并且DcmDspDataSize大于1且小于8,DcmDspDataType应使用UINT8。
    [constr_6005] UINT16将用作(实现)数据类型,用于8至16位之间的位长度。⌈如果DcmDspDataUsePort的类型为USE_DATA_SENDER_RECEIVER或USE_ECU_SIGNAL类型,并且DcmDspDataSize大于8且小于16,则DcmDspDataType应使用UINT16。
    [constr_6006]如果DcmDspDataUsePort等于USE_BLOCK_ID ||,则按位访问的限制⌈DcmDspDataSize应为8的倍数。
      USE_DATA_SYNCH_CLIENT_SERVER ||
      USE_DATA_ASYNCH_CLIENT_SERVER ||
      USE_DATA_ASYNCH_CLIENT_SERVER_ERROR ||
      USE_DATA_ASYNCH_FNC_ERROR || USE_DATA_SYNCH_FNC ||
      USE_DATA_ASYNCH_FNC。
    [constr_6033]可变长度的常规参数始终为8的倍数。如果DcmDspRoutineSignalType等于VARIABLE_LENGTH,则DcmDspRoutineSignalLength值应为8的倍数。
    [constr_6007]对按位放置的限制DcmDspDidDataPos参数应始终寻址字节边界,但DcmDspDataType设置为BOOLEAN,UINT8或UINT16且DcmDspDataSize小于或等于16除外。
    [constr_6008]仅在DcmDspRoutineSignalType设置为VARIABLE_LENGTH时,才需要定义DcmDspRoutineSignalLength参数的用法DcmDspRoutineSignalLength。
    [constr_6009] DcmDspRoutineSignalPos参数的按位放置限制应始终寻址字节边界,但DcmDspRoutineSignalType设置为BOOLEAN或UINT8除外。
    [constr_6010]如果DcmDspRoutineSignalType设置为UINT8,则按位访问DcmDspRoutineSignalLength的限制不得超过8的值。

    [constr_6011]只有RID中的最后一个参数可以具有可变长度具有VARIABLE_LENGTH的⌈DcmDspRoutineSignalType仅对最后一个信号有效。
    [constr_6012]定义DcmDspPidDataSize参数的用法arrayDcmDspPidDataSize是array-和bittype所必需的。注意:基本数据类型不需要DcmDspPidDataSize
    [constr_6013]   8位数组的大小参数限制如果该值大于8并且DcmDspPidDataType为UINT8_N,SINT8_N或UINT8_DYN,则DcmDspPidDataSize应为8的倍数。
    [constr_6040] 16位数组的大小参数限制如果值大于16并且DcmDspPIDDataType为UINT16_N或SINT16_N,则DcmDspPIDDataSize应为16的倍数。
    [constr_6041] 32位数组的大小参数限制如果值大于32并且DcmDspPIDDataType为UINT32_N或SINT32_N,则DcmDspPIDDataSize应为32的倍数。
    [constr_6014]如果DcmDspPidDataUsePort是类型,则UINT8将用作(实现)数据类型,其位长度在1到8之间USE_DATA_SENDER_RECEIVER和DcmDspPidDataSize大于1且小于8,DcmDspPidDataType应使用UINT8。
    [constr_6015]如果DcmDspPidDataUsePort是类型,则UINT16将用作(实现)数据类型,用于8到16之间的比特长度USE_DATA_SENDER_RECEIVER并且DcmDspPidDataSize大于9且小于16,DcmDspPidDataType应使用UINT16。
    [constr_6016]对按位访问的限制DcmDspPidDataSize为8的倍数,而DcmDspPidDataUsePort为USE_DATA_SYNCH_CLIENT_SERVER,使用USE_DATA_SYNCH_FNC。

    [constr_6017]对按位放置的限制DcmDspPidDataPos参数应始终寻址字节边界,但DcmDspPidDataType设置为BOOLEAN,UINT8或UINT16且DcmDspPidDataSize小于或等于16除外。
    [constr_6042] UINT8将用作客户端-服务器接口的(实现)数据类型。如果DcmDspPIDDataUsePort参数设置为{USE_DATA_SYNCH_CLIENT_SERVER},则DcmDspPIDDataType必须使用UINT8_N或UINT8_DYN。
    [constr_6043]数据类型使用的限制:DcmDspPIDDataUsePort等于USE_DATA_SYNCH_FNC时,DcmDspPIDDataType必须为UINT8_N或UINT8_DYN。
    [constr_6024]如果DcmDspDataUsePort参数设置为,则应将UINT8用作客户端-服务器接口的(实现)数据类型。{USE_DATA_SYNCH_CLIENT_SERVER,USE_DATA_ASYNCH_CLIENT_SERVER,USE_DATA_ASYNCH_CLIENT_SERVER_ERROR},DcmDspDataType必须使用UINT8_N或UINT8_DYN。
    [constr_6037]数据类型使用的限制⌈如果DcmDspDataUsePort等于USE_DATA_ASYNCH_FNC_ERROR,则DcmDspDataType必须为UINT8_N或UINT8_DYN。 USE_DATA_SYNCH_FNC || USE_DATA_ASYNCH_FNC。
    [constr_6038]在DcmDspDataUsePort等于USE_BLOCK_ID的情况下,数据类型使用DcmDspDataType的限制应为UINT8_N。
    [constr_6026]在S / R通信,NvRam访问或ECU信号访问的情况下使用可变数据长度,如果DcmDspDataUsePort设置为{USE_DATA_SENDER_RECEIVER,USE_BLOCK_ID,USE_ECU_SIGNAL},则不允许使用可变数据长度。
    注意:只有将DcmDspDataType设置为UINT8_DYN的UINT8阵列才可以使用可变数据长度。

  • 相关阅读:
    网页 js 获取DPI pxTomm
    利用自定义属性实现js点击事件 委托
    鼠标移动div时禁止选中div中的文字的方法
    关于if简写语句优化的方法
    .clearfix::after(清除浮动)
    js 事件委托
    清空共享池
    oracle中scott用户权限不足
    安装完Oracle 12C数据库,scott账户过期,解锁方法
    Vulnhub靶场-Me Tomcat Host 学习笔记
  • 原文地址:https://www.cnblogs.com/still-smile/p/12144583.html
Copyright © 2020-2023  润新知