AUTOSAR 通用术语及行为规范

• MUST / SHALL (必须 / 应该): 这些词表示规范中的绝对要求。如果某项功能被标记为 MUST 或 SHALL,则表示其实现是强制性的,不遵守将导致不符合规范。

• MUST NOT / SHALL NOT (严禁 / 不应): 这些词表示规范中的绝对禁止。某项行为被明确禁止,绝不能发生。

• SHOULD (建议): 这个词表示某项建议或推荐行为。在特定情况下,可能存在不遵循此建议的有效理由,但在采取不同方案之前,必须充分理解并仔细权衡其所有影响。

• SHOULD NOT (不建议): 这个词表示不推荐的行为。在某些特定情况下,此行为可能是可接受甚至有用的,但在实施任何带有此标签的行为之前,应充分理解并仔细权衡其所有影响。

• L-PDU (Logical Protocol Data Unit): 数据链路层的协议数据单元。在 CAN 驱动层中,L-PDU 是通过 CAN 控制器发送和接收的符合其配置的数据单元。

• L-SDU (Service Data Unit at L-layer): 服务数据单元,指在通信协议栈中,上层协议向下层协议传递的数据块,它不包含下层协议的头信息。

• Pre-Compile-Time (预编译时): 指在编译模块源代码之前进行配置。这些配置参数在编译后是固定的,不能在运行时更改。

• Link-Time (链接时): 指在链接阶段进行配置。通常允许在编译好的模块之间进行一些参数绑定,但不允许在运行时更改。

• Post-Build-Time (后期构建时): 指在 ECU 软件镜像构建完成后,甚至在 ECU 运行时进行配置。这些配置可以在不重新编译整个软件的情况下进行修改,通常存储在非易失性存储器中。

--------------------------------------------------------------------------------

CAN 驱动层 (CAN Driver Layer - CanDrv)

CAN 驱动层是 AUTOSAR CAN 协议栈的最底层,负责直接与 CAN 硬件交互。

• Standard Identifier (标准标识符): CAN 帧的一种标识符类型,长度为 11 位。

• Extended Identifier (扩展标识符): CAN 帧的另一种标识符类型,长度为 29 位。CAN 驱动应支持在同一 CAN 控制器上同时使用标准和扩展标识符(如果硬件支持)。

• Hardware Receive Handle (HRH): 硬件接收句柄。由 CAN 驱动提供,通常代表一个或多个硬件接收对象(例如,CAN 控制器内的邮箱),用于接收 L-PDU。CanIf 使用 HRH 作为参数进行软件过滤。

• Hardware Transmit Handle (HTH): 硬件发送句柄。由 CAN 驱动提供,通常代表一个或多个配置为硬件发送缓冲池的硬件对象,用于发送 L-PDU。

• Multiplexed Transmission (多路复用传输): 一种传输机制,允许将多个发送硬件对象分配给一个 HTH,以供上层使用。这有助于防止优先级反转,即高优先级 L-PDU 被同一发送硬件对象中挂起的低优先级 L-PDU 阻止的情况。

• Full-CAN (全 CAN): 指 CAN 硬件对象可以配置为只接收一个特定的 CAN ID 的消息。

• Basic-CAN (基本 CAN): 指 CAN 硬件对象可以配置为接收一组 CAN ID、一个 CAN ID 范围,甚至所有 CAN ID 的消息。通常需要 CAN 接口层进行软件过滤。

• Shadow Buffer (影子缓冲区): 当 CAN 硬件缓冲区不能被保护(锁定)以防止被新消息覆盖时,CAN 驱动应在接收后将 L-SDU 复制到影子缓冲区中,以确保数据一致性。

• CAN_UNINIT (未初始化状态): CAN 驱动模块在电源开启/复位后的初始状态。

• CAN_READY (就绪状态): CAN 驱动模块成功初始化后的状态。

• CAN_BUSY (总线忙碌): Can_Write 函数的返回值之一,表示没有可用的 TX 硬件缓冲区,或同一 HTH 发生了抢占式调用而无法重入。

• Can_Init() (初始化服务): 初始化 CAN 驱动模块的服务。

• Can_DeInit() (去初始化服务): 去初始化 CAN 驱动模块的服务。

• Can_SetControllerMode() (设置控制器模式服务): 执行 CAN 控制器状态机软件触发状态转换的服务。

• Can_GetControllerMode() (获取控制器模式服务): 报告请求的 CAN 控制器的当前模式的服务。

• Can_Write() (写入服务): 由 CanIf 调用,将 CAN 消息传递给 CanDrv 进行传输的服务。这是一个非阻塞函数。

• Can_MainFunction_Write() (主功能 - 写入): 在 CAN_TX_PROCESSING 设置为 POLLING 或 MIXED 时,执行 TX 确认轮询的函数。

• Can_MainFunction_Read() (主功能 - 读取): 在 CAN_RX_PROCESSING 设置为 POLLING 或 MIXED 时,执行 RX 指示轮询的函数。

• Can_MainFunction_BusOff() (主功能 - 总线关闭): 执行总线关闭事件轮询的函数,如果这些事件被静态配置为“需要轮询”。

• Can_MainFunction_Wakeup() (主功能 - 唤醒): 执行唤醒事件轮询的函数,如果这些事件被静态配置为“需要轮询”。

• Pretended Networking (PN): 假装组网,一种低功耗模式,允许 ECU 仅在接收到特定唤醒条件的消息时才完全唤醒和处理消息。在 PN 激活时,CAN 驱动会拒绝 Can_Write() 请求并返回 CAN_BUSY。

--------------------------------------------------------------------------------

CAN 接口层 (CAN Interface Layer - CanIf)

CAN 接口层位于 CAN 驱动之上,提供统一的接口给上层模块(如 PduR、CanNm、CanTp),使其独立于底层 CAN 硬件。

• Hardware Object Handles (HOH): 硬件对象句柄,是 CAN 邮箱结构(包含 CanId、DLC 和数据等 CAN 相关参数)的抽象引用。HTH 和 HRH 都是 HOH 的类型。

• CanIf_Transmit() (传输请求服务): CanIf 提供的传输请求服务,L-PDU 会被转发到 CAN 驱动或存储在 TX 缓冲区中。

• CanIf_RxIndication() (接收指示服务): 由 CanDrv 调用,指示成功接收到 CAN Rx L-PDU 的服务。CanIf 会评估该 L-PDU 的可接受性,并通知上层模块。

• CanIf_TxConfirmation() (传输确认服务): 由 CanDrv 调用,确认先前已成功处理的 CAN TxPDU 传输的服务。

• CanIf_SetControllerMode() (设置控制器模式服务): CanIf 提供给上层模块的服务,用于改变指定 CAN 控制器的模式。

• CANIF_OFFLINE (离线模式): 通道对应的传输和接收路径都被禁用,无通信。

• CANIF_TX_OFFLINE (发送离线模式): 通道对应的传输路径被禁用,接收路径启用。

• CANIF_TX_OFFLINE_ACTIVE (发送离线激活模式): 传输路径处于离线激活模式,模拟成功传输,接收路径禁用。

• CANIF_ONLINE (在线模式): 通道对应的传输和接收路径都启用,完全操作模式。

• Software Acceptance Filtering (软件接收过滤): 对于 BasicCAN 接收,CanIf 提供了配置和存储软件接受过滤器的功能。

• CanIf_CheckWakeup() (检查唤醒服务): CanIf 提供的唤醒服务,用于检查底层 CAN 控制器或 CAN 收发器是否检测到唤醒事件。

• CanIf_ClearTrcvWufFlag() (清除收发器唤醒标志服务): 请求 CanIf 模块清除指定 CAN 收发器 WUF (Wake-up Flag) 标志的服务。

• CanIf_CheckTrcvWakeFlag() (检查收发器唤醒标志服务): 请求检查收发器硬件唤醒标志状态的服务。

• CanIf_SetBaudrate() (设置波特率服务): 设置指定 CAN 控制器波特率的服务。

• CanIf_EnableBusMirroring() (启用总线镜像服务): 启用或禁用给定控制器上每个接收或发送帧的镜像功能。

• CanIf_TriggerTransmit() (触发传输服务): 当触发传输支持启用时,CanIf 提供此 API 函数,它会调用相应的 <User_TriggerTransmit>() 函数来获取待传输的 L-SDU 数据。

• CanIfPublicTxBuffering (公共发送缓冲): 一个配置参数,启用或禁用 CAN 接口模块内部对被 CAN 驱动拒绝的发送 L-PDU 的缓冲。

• CanIfTxPduTriggerTransmit (发送 PDU 触发传输): 一个配置参数,定义是否支持此处理句柄的触发传输 API。如果启用,CanIf_Write() 可以接受 SDU 为空指针,表示请求使用触发传输接口。

--------------------------------------------------------------------------------

CAN 传输协议层 (CAN Transport Layer - CanTp)

CAN 传输协议层 (CanTp) 负责处理 ISO 15765-2 和 15765-4 规范中定义的诊断和通信消息的分割和重组。

• N-SDU (Network Service Data Unit): 网络服务数据单元。在传输协议层,指的是上层(如诊断通信管理 Dcm 或通信 Com)要发送或接收的完整数据块。

• N-PDU (Network Protocol Data Unit): 网络协议数据单元。N-SDU 在传输协议层被分割成较小的 N-PDU 进行传输。

• Single Frame (SF): 单帧。当 N-SDU 足够小,可以在一个 CAN 帧内传输时使用。

• First Frame (FF): 首帧。当 N-SDU 需要分割成多个 CAN 帧传输时,用于传输 N-SDU 的第一部分。

• Consecutive Frame (CF): 连续帧。用于传输 N-SDU 的后续部分。

• Flow Control (FC): 流控帧。接收方用于控制发送方数据流动的帧,可以授权或延迟后续 CF N-PDU 的传输。

• CanTp_Transmit() (传输服务): 请求传输一个 PDU 的服务。如果传输需要传输协议且通道被占用,它将拒绝请求并返回 E_NOT_OK。

• CanTp_CancelTransmit() (取消传输服务): 请求取消正在进行的 PDU 传输的服务。

• CanTp_CancelReceive() (取消接收服务): 请求取消正在进行的 PDU 接收的服务。

• CanTp_RxIndication() (接收指示服务): 由 CanIf 模块调用,通知 CanTp 模块已接收到新的 CAN N-PDU 帧的服务。

• CanTp_TxConfirmation() (传输确认服务): 由 CanIf 模块调用,确认 TP 相关 CAN 帧已通过 CAN 网络传输的服务。

• Full-duplex communication (全双工通信): CAN 传输层应支持 TP 通道的全双工通信,即能够同时在同一通道上管理接收和传输。

• Normal Addressing (标准寻址): ISO 15765-2 定义的一种寻址模式。

• Extended Addressing (扩展寻址): ISO 15765-2 定义的一种寻址模式。

• Mixed Addressing (混合寻址): ISO 15765-2 定义的一种寻址模式。CAN 传输层应能并行管理标准和扩展寻址模式。

• N_SA (Network Source Address): 网络源地址,在某些寻址模式下用于标识发送方。

• N_TA (Network Target Address): 网络目标地址,在某些寻址模式下用于标识接收方。

• N_AE (Network Address Extension): 网络地址扩展,在混合寻址模式下使用。

• CANTP_PADDING_BYTE (填充字节): 当 CAN TP 传输 SF 或最后一个 CF N-PDU 时,如果填充功能启用,未使用的字节应填充此值。

• CanTp_MainFunction() (主功能): 用于调度 CAN TP 的主要函数,处理所有 CAN TP 超时(如 N_As, N_Bs, N_Cs, N_Ar, N_Br, N_Cr 和 STMmin)。

--------------------------------------------------------------------------------

CAN 网络管理层 (CAN Network Management Layer - CanNm)

CAN 网络管理层 (CanNm) 负责控制 CAN 网络的通信状态,包括启动、停止和管理节点在网络中的行为。

• NM-PDU (Network Management Protocol Data Unit): 网络管理协议数据单元,用于网络管理通信。

• NM-Timeout Timer (NM 超时定时器): 当进入网络模式时,CanNm 模块会启动此定时器。在网络模式下成功接收到 NM PDU 后,如果 PDU 传输能力已启用,此定时器会重新启动。

• Repeat Message Request Bit (重复消息请求位): 在 NM PDU 中设置的一个位,用于请求其他节点发送 NM 消息,以便它们可以被识别。

• Partial Networking (PN) (部分组网): 一种网络管理功能,允许 ECU 在特定条件下(例如,只有当请求的服务被激活时)进入低功耗模式,只参与网络的部分通信。

• EIRA (External and Internal Requested PNs) (内外请求的部分组网): 如果启用,CanNm 应提供存储所有相关通道上内部和外部请求的 PN 信息的能力。

• ERA (External Requested PNs) (外部请求的部分组网): 如果启用,CanNm 应提供存储每个相关通道上外部请求的 PN 信息的能力。与 EIRA 不同,ERA 需要为每个物理通道上的每个 PN 设置单独的定时器。

• CanNm_NetworkRequest() (网络请求服务): 请求网络的服务,将网络状态更改为“requested”。

• CanNm_NetworkRelease() (网络释放服务): 释放网络的服务,将网络状态更改为“released”。

• CanNm_DisableCommunication() (禁用通信服务): 禁用网络管理 PDU 传输能力的服务。

• CanNm_EnableCommunication() (启用通信服务): 启用网络管理 PDU 传输能力的服务。

• CanNm_Transmit() (传输服务): 请求传输 PDU 的服务,通常用于传输 NM 用户数据。

• CanNm_RxIndication() (接收指示服务): 接收到 PDU 的指示服务。

• CanNm_TxConfirmation() (传输确认服务): PDU 传输确认服务。

• CanNm_ConfirmPnAvailability() (确认 PN 可用性服务): 启用指定 NM 通道上的 PN 过滤功能的服务。

• CanNm_TriggerTransmit() (触发传输服务): CanNm 收集 NM 用户数据并与其它 NM 字节结合后,请求额外传输 NM PDU 的服务。

• CanNm_GetState() (获取状态服务): 返回网络管理的状态和模式的服务。

• CanNmImmediateTxConfEnabled (立即传输确认启用): 一个配置参数,启用立即传输确认机制。这对于不希望使用 CanIf 实际确认的系统很有用。

• CanNmImmediateNmCycleTime (NM 立即循环时间): 配置用于立即 NM PDU 传输的循环时间。

--------------------------------------------------------------------------------

CAN 状态管理层 (CAN State Manager Layer - CanSM)

CAN 状态管理层 (CanSM) 负责管理 CAN 网络的状态,并协调不同通信模式下的 CAN 控制器和收发器行为。

• ComM_Mode (通信模式): 定义了 CAN 网络的通信模式,例如:

    ◦ COMM_FULL_COMMUNICATION (全通信模式): 允许完整的网络通信。

• CanSM_RequestComMode() (请求通信模式服务): 改变 CAN 网络通信模式的服务。

• CanSM_GetCurrentComMode() (获取当前通信模式服务): 获取指定网络句柄的当前通信模式的服务。

• CanSM_SetBaudrate() (设置波特率服务): 设置 CAN 网络波特率的服务。

• CanSM_SetIcomConfiguration() (设置 ICOM 配置服务): 设置 CAN 网络的 ICOM 配置的服务。

• CanSM_SetEcuPassive() (设置 ECU 被动服务): 将 ECU 的所有 CanSM 通道设置为只接收模式的服务。

• CanSM_ControllerBusOff() (控制器总线关闭回调): 由 CanIf 调用,指示控制器发生总线关闭事件的回调函数。

• CanSM_ControllerModeIndication() (控制器模式指示回调): 由 CanIf 调用,指示控制器状态转换的回调函数。

• CanSM_TxTimeoutException() (传输超时异常回调): 由 CanNm 调用,通知 CanSM 模块在受影响的 CAN 部分网络中检测到传输超时异常的回调函数。

• CanSM_ClearTrcvWufFlagIndication() (清除收发器唤醒标志指示回调): 由 CanIf 调用,指示收发器已清除 WufFlag 的回调函数。

• CanSM_CheckTransceiverWakeFlagIndication() (检查收发器唤醒标志指示回调): 由 CanIf 调用,指示收发器唤醒标志检查已完成的回调函数。

• CanSM_ConfirmPnAvailability() (确认 PN 可用性回调): 由 CanIf 调用,指示收发器正在 PN 通信模式下运行的回调函数。

• CANSM_E_INVALID_NETWORK_HANDLE (无效网络句柄错误): 当请求的网络句柄无效时报告的开发错误。

• CANSM_E_UNINIT (未初始化错误): 当 CanSM 模块未初始化时,调用其函数会报告此错误。

• CANSM_E_MODE_REQUEST_TIMEOUT (模式请求超时错误): 当 CAN 状态管理器执行 CanIf 服务,但未收到相应指示达到 CanSMModeRequestRepetitionMax 次时,会报告此扩展生产错误。

--------------------------------------------------------------------------------

CAN 收发器驱动层 (CAN Transceiver Driver Layer - CanTrcv)

CAN 收发器驱动层 (CanTrcv) 负责直接控制 CAN 收发器硬件,管理其操作模式和唤醒功能。

• CANTRCV_OP_MODE_NORMAL (正常操作模式): CAN 收发器处于正常通信状态。

• CANTRCV_OP_MODE_SLEEP (睡眠操作模式): CAN 收发器处于低功耗睡眠状态。

• CANTRCV_OP_MODE_STANDBY (待机操作模式): CAN 收发器处于中间功耗待机状态,通常可以更快地唤醒。

• CanTrcv_SetOpMode() (设置操作模式服务): 设置 CAN 收发器操作模式的服务。

• CanTrcv_GetOpMode() (获取操作模式服务): 获取 CAN 收发器当前操作模式的服务。

• CanTrcv_ClearTrcvWufFlag() (清除收发器唤醒标志服务): 清除收发器唤醒标志的服务。

• CanTrcv_CheckWakeup() (检查唤醒服务): 检查收发器是否检测到唤醒事件的服务。通常由 CanIf 调用。

• CanTrcv_SetPNActivationState() (设置 PN 激活状态服务): 启用或禁用 PN 唤醒功能的服务。

• CanTrcv_CheckWakeFlag() (检查唤醒标志服务): 请求检查收发器硬件唤醒标志状态的服务。

• Selective Wakeup (选择性唤醒): 如果硬件支持,CAN 收发器可以配置为根据特定的 CAN 帧或一组 CAN 帧进行唤醒。

• WUF Flag (Wakeup Flag) (唤醒标志): 收发器内部的标志,指示是否检测到唤醒事件。

• BUSERR (Bus Error Flag) (总线错误标志): 收发器检测到总线故障时设置的标志。

• POR (Power On Reset Flag) (上电复位标志): 收发器上电复位时设置的标志。

--------------------------------------------------------------------------------

TTCAN 驱动层和接口层 (TTCAN Driver and Interface Layers - TtcanDrv & TtcanIf)

TTCAN (Time-Triggered CAN) 是 CAN 协议的一种扩展,支持时间触发通信,确保消息在特定时间窗口内传输,适用于对时间确定性要求高的应用。

• Arbitrating Time Window (仲裁时间窗口): 在 TTCAN 中,消息可以在此窗口内通过标准 CAN 仲裁机制进行传输。配置为仲裁时间窗口的消息在每次传输请求时只发送一次 (Single Shot)。

• Exclusive Time Window (独占时间窗口): 在 TTCAN 中,特定消息在此窗口内拥有独占传输权,没有仲裁。配置为独占时间窗口的消息会周期性地传输,即使没有新的传输请求 (Continuous Transmission)。

• Matrix Cycle (矩阵周期): TTCAN 调度 L-PDU 传输的周期。

• Basic Cycle (基本周期): TTCAN 中的基本时间单位,矩阵周期由多个基本周期组成。

• Global Time (全局时间): TTCAN 系统中的全局同步时间。

• Local Time (本地时间): 每个 TTCAN 控制器维护的本地时间。

• NTU (Network Time Unit) (网络时间单位): 网络时间单位,与本地振荡器周期一起,可以从 TUR(时间单元分辨率)的实际值推导出来。

• Time Mark (时间标记): TTCAN 中的一个功能,可以设置、取消、确认和获取其中断状态。

• Reference Message (参考消息): 在 TTCAN 中用于同步时间的消息。

• Job List Execution Function (JLEF) (作业列表执行函数): 如果启用了作业列表,它应由一个单独的函数执行,可以在任务或中断上下文中调用。JLEF 负责在 TTCAN 本地时间同步地请求发送或读取接收数据。

--------------------------------------------------------------------------------

其他相关模块术语

• PDU Router (PduR) (PDU 路由层): 负责将 PDUs 从上层模块路由到下层模块,反之亦然,实现模块间的解耦。

• Default Error Tracer (DET) (默认错误跟踪器): AUTOSAR 中用于检测和报告开发错误的模块。如果启用,发生开发错误时会调用 DET 服务。

• Communication Manager (ComM) (通信管理器): 管理 ECU 的整体通信模式(如全通信、静默通信)的模块。

• Network Management (Nm) (网络管理): 一个通用的网络管理接口,由特定的总线网络管理模块(如 CanNm、LinNm)实现。

• ECU State Manager (EcuM) (ECU 状态管理器): 负责管理 ECU 的整体状态转换(如启动、运行、休眠)。

• Diagnostic Event Manager (Dem) (诊断事件管理器): 负责管理和报告诊断事件(故障)的模块。

• RTE (Runtime Environment) (运行时环境): AUTOSAR 软件组件之间的接口层。

• XCP (eXtended Calibration Protocol): 一种用于 ECU 标定和测量数据的协议。它通过 CAN 接口层传输数据。

• J1939 (SAE J1939): 一种用于商用车辆的 CAN 协议,有自己的网络管理和传输层。

--------------------------------------------------------------------------------

总结

以上术语涵盖了 AUTOSAR CAN 协议栈从硬件抽象层(驱动层、收发器驱动层)到更高级的功能层(接口层、传输协议层、网络管理层、状态管理层)的关键概念和组件。理解这些术语对于深入理解 AUTOSAR 架构下的 CAN 通信至关重要。例如,通过 HRH 和 HTHCAN 驱动将硬件邮箱抽象化;CAN 接口层则利用这些句柄和软件过滤来管理 L-PDU 的流向,并处理不同通信模式(如CANIF_ONLINE)下的行为;CAN 传输层将大块数据(N-SDU)分割成小块(N-PDU)通过 CAN 传输,并管理流控制;而CAN 网络管理则通过NM-PDU和**部分组网(PN)**功能来协调网络节点的唤醒和休眠,从而优化功耗。CAN 状态管理器进一步协调不同模块以实现整个 CAN 网络的模式转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

VehSwHwDeveloper

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值