FlexRay Transport Layer (FrTp)
Provides segmented data transmission over FlexRay (ISO 10681-2).
Funktionen — Übersicht
void FrTp_GetVersionInfo (Std_VersionInfoType* versioninfo);Returns the version information.void FrTp_Init (const FrTp_ConfigType* configPtr);This service initializes all global variables of a Flex Ray Transport Layer instance and set it in the idle state.void FrTp_Shutdown (void);This service closes all pending transport pro tocol connections by simply stopping operation, frees all resources and stops...Std_ReturnType FrTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);Requests transmission of a PDU.Std_ReturnType FrTp_CancelTransmit (PduIdType TxPduId);Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.Std_ReturnType FrTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);Request to change a specific transport protocol parameter (e.Std_ReturnType FrTp_CancelReceive (PduIdType RxPduId);Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.Std_ReturnType FrTp_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);Within this API , the upper layer module (called module) shall check whether the available data fits into the buffer size...void FrTp_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);Indication of a received PDU from a lower layer communication interface module.void FrTp_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.void FrTp_MainFunction (void);Schedules the Flex Ray TP.
Typen — Übersicht
struct FrTp_ConfigTypeThis is the base type for the configuration of the Flex Ray Transport Protocol A pointer to an instance of this structure will...
Funktionen & Typen — Detailansicht
函数 FrTp_GetVersionInfo [SWS_FrTp_00215] 📄 PDF
void FrTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
Returns the version information.
函数 FrTp_Init [SWS_FrTp_00147] 📄 PDF
void FrTp_Init (const FrTp_ConfigType* configPtr);
This service initializes all global variables of a Flex Ray Transport Layer instance and set it in the idle state. It has no return value because software errors in initialisation data shall be detected during configuration time (e.g. by configuration tool ).
同步函数 FrTp_Init 初始化 FlexRay 传输层实例的所有全局变量,并将其置于空闲状态 [SWS_FrTp_00147]。作为输入参数,通过 configPtr 传递指向 FlexRay 传输协议配置的指针(const FrTp_ConfigType*)[SWS_FrTp_00147]。该接口通过头文件 FrTp.h 声明,服务 ID 为 0x00 [SWS_FrTp_00147]。
在内部行为和错误处理方面,适用以下规定:
- 在传输层通过调用
FrTp_Init成功初始化后,FrTp 模块切换到内部状态FRTP_ON[SWS_FrTp_01032]。 - 该函数没有返回值(
void),因为初始化数据中的软件错误必须在配置阶段(例如通过配置工具)就已经被检测出来 [SWS_FrTp_00147]。
关于并发性,该服务被指定为不可重入(Non Reentrant)[SWS_FrTp_00147]。因此不允许进行并行或多次未经协调的调用。解释:在常规传输服务使用之前,该调用通常可能在 ECU 启动范围内集中进行。 问题 Q-9b7cf7fc6dac510e (未决)
该使用说明基于 AUTOSAR R20-11 的规范需求自动生成。
实现者指南即将推出(复杂度 I1)
函数 FrTp_Shutdown [SWS_FrTp_00148] 📄 PDF
void FrTp_Shutdown (void);
This service closes all pending transport pro tocol connections by simply stopping operation, frees all resources and stops the Fr Tp Module
同步函数 FrTp_Shutdown 终止 FlexRay 传输协议模块(FrTp)的运行[SWS_FrTp_00148]。调用时,该服务通过停止操作立即关闭所有仍挂起的传输协议连接,释放所有占用的资源并完全停止 FrTp 模块[SWS_FrTp_00148]。
关于接口规范和行为,适用以下特性:
- 签名和头文件:该函数可通过头文件
FrTp.h获取,服务 ID 为0x01,不接收参数且不返回值(void)[SWS_FrTp_00148]。 - 并发性:
FrTp_Shutdown被指定为不可重入(Non Reentrant),并且必须同步执行 [SWS_FrTp_00148]。因此,不允许进行并发或多次并行调用。 - 状态转换:通过成功执行服务原语
FrTp_Shutdown(),FrTp 模块转换到内部状态FRTP_OFF[SWS_FrTp_01036]。
由于该服务仅通过停止操作来关闭挂起的连接,因此正在进行的传输可能会立即中止,且不会发出单独的完成通知。 问题 Q-35555515f521d0c3 (未决)
本使用说明基于 AUTOSAR 规范 R20-11 自动生成。
实现者指南即将推出(复杂度 I1)
函数 FrTp_Transmit [SWS_FrTp_00149] 📄 PDF
Std_ReturnType FrTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);
Requests transmission of a PDU.
用法与语义
同步函数 FrTp_Transmit 请求通过 FlexRay 传输层模块传输 PDU [SWS_FrTp_00149]。通过参数 TxPduId 传递要传输的 PDU 的标识符,而 PduInfoPtr 指向有效载荷数据、元数据以及长度 [SWS_FrTp_00149]。如果要发起上层尚未知晓消息长度的传输,则应使用参数值 PduLength = 0 调用 FrTp_Transmit [SWS_FrTp_01064]。发送请求的接受以 E_OK 进行同步确认;若无法接受该请求,则函数返回 E_NOT_OK [SWS_FrTp_00149]。
并发性与通道可用性
该函数对于具有不同 PDU ID 的调用是可重入的,但对于相同标识符是不可重入的 TxPduId [SWS_FrTp_00149]。此外,执行需要空闲传输通道:如果由于状态未处于空闲(FrTpTxChannelState ≠ Idle)而导致无可用通道,则函数中止并返回 E_NOT_OK [SWS_FrTp_01041]。
错误处理
若用于错误检测的开发接口处于激活状态,则 FrTp_Transmit 验证所传递的参数:
- 若传递了不受支持或无效的
TxPduId,则服务以E_NOT_OK中止并报告开发错误FRTP_E_INVALID_PDU_SDU_ID[SWS_FrTp_01040],[SWS_FrTp_01139]。 - 若指针
PduInfoPtr无效,则报告错误FRTP_E_PARAM_POINTER,且执行同样以E_NOT_OK中止 [SWS_FrTp_01140]。
此文本由 AI 基于 AUTOSAR 规范生成。
实现者指南即将推出(复杂度 I1)
函数 FrTp_CancelTransmit [SWS_FrTp_00150] 📄 PDF
Std_ReturnType FrTp_CancelTransmit (PduIdType TxPduId);
Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.
同步服务函数 FrTp_CancelTransmit 请求中止底层通信模块中正在进行的 PDU 传输 [SWS_FrTp_00150]。要中止的传输通过输入参数 TxPduId 寻址 [SWS_FrTp_00150]。
状态相关行为与返回值
中止时的行为取决于连接的当前状态:
- 若发送请求处于挂起状态但传输本身尚未启动,则
FrTp_CancelTransmit立即释放连接 [SWS_FrTp_00385]。 - 若传输已在进行中,则函数停止发送过程并通过返回值
E_OK确认成功中止 [SWS_FrTp_01116]。 - 若连接未激活,或者未确认传输的最后一个 N-PDU 已转发给 FrIf,则中止失败且函数返回
E_NOT_OK[SWS_FrTp_01116]。
错误处理与并发
只要 FrTp_CancelTransmit 的开发错误检测(Development Error Detection)已激活,该函数就会检查参数 TxPduId 的有效性。若该检查失败,则报告开发错误 FRTP_E_INVALID_PDU_SDU_ID 并返回 E_NOT_OK [SWS_FrTp_01141]。
该函数针对具有不同 PDU ID 的调用是可重入的,但不得针对相同 TxPduId 并发执行 [SWS_FrTp_00150]。
此使用说明基于 AUTOSAR CP R20-11 规范自动生成。
实现者指南即将推出(复杂度 I2)
函数 FrTp_ChangeParameter [SWS_FrTp_00151] 📄 PDF
Std_ReturnType FrTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);
Request to change a specific transport protocol parameter (e.g. block size).
根据 [SWS_FrTp_00151],同步函数 FrTp_ChangeParameter 用于在运行时请求更改传输协议的特定参数。通过参数 id 引用受影响的 PDU,而 parameter 传递参数标识符,value 传递新值。在成功调整时,该函数返回 E_OK,否则该更改请求将被拒绝并返回 E_NOT_OK [SWS_FrTp_00151]。
具体而言,该服务用于在运行时根据 ISO 10681-2 修改用于带宽控制(BandwidthControl,BC)的 FlowControl-PDU 参数 [SWS_FrTp_00242]。这涉及:
- 参数
FrTpSCexp[SWS_FrTp_00242], - 参数
FrTpMaxNbrOfNPduPerCycle[SWS_FrTp_00242]。
在发送端,由此触发的额外 FlowControl-PDU 将作为非预期的 N-PDU 被接收并忽略 [SWS_FrTp_00242]。
错误处理
如果为该函数启用了开发错误检测(Development Error Detection),则会执行形式参数检查:
- 检查 PDU 标识符
id:若值无效,该函数会报告开发错误FRTP_E_INVALID_PDU_SDU_ID并返回E_NOT_OK[SWS_FrTp_01143]。 - 检查参数
parameter:若标识符无效,该函数会报告FRTP_E_INVALID_PARAMETER并返回E_NOT_OK[SWS_FrTp_01144]。
并发性与限制
该函数被指定为不可重入(Non Reentrant)[SWS_FrTp_00151]。因此调用方必须确保调用按顺序执行;从不同任务进行访问时可能需要外部同步。 问题 Q-fe82be70448a3e0b (未决)
此使用说明基于 AUTOSAR CP R20-11 规范自动生成。
实现者指南即将推出(复杂度 I1)
函数 FrTp_CancelReceive [SWS_FrTp_01172] 📄 PDF
Std_ReturnType FrTp_CancelReceive (PduIdType RxPduId);
Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.
同步函数 FrTp_CancelReceive 请求中止 FlexRay 传输层中正在进行的 PDU 接收 [SWS_FrTp_01172]。它可通过头文件 FrTp.h 获取,并允许针对性地停止活动的接收操作。
参数与返回值
作为输入参数,传递类型为 PduIdType 的 RxPduId,从而唯一标识要中止的 PDU [SWS_FrTp_01172]。不存在额外的输入或输出参数。该函数返回类型为 Std_ReturnType 的状态值:
E_OK:目标模块已成功执行 PDU 接收的中止 [SWS_FrTp_01172]、[SWS_FrTp_01183]。E_NOT_OK:目标模块拒绝了中止请求 [SWS_FrTp_01172]。
并发性与限制
该函数被归类为不可重入(Non Reentrant)[SWS_FrTp_01172]。因此,调用方必须确保不进行并行或嵌套调用,以避免内部 PDU 状态管理出现不一致。
本使用说明基于规范自动生成。
实现者指南即将推出(复杂度 I1)
函数 FrTp_TriggerTransmit [SWS_FrTp_00154] 📄 PDF
Std_ReturnType FrTp_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);
Within this API , the upper layer module (called module) shall check whether the available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.
同步函数 [SWS_FrTp_00154] 用于为传输提供 SDU 数据。通过参数 TxPduId 标识要传输的 SDU,而 PduInfoPtr 指向包含目标缓冲区(SduDataPtr)和可用缓冲区大小(SduLength)的结构 [SWS_FrTp_00154]。
在该函数内部会检查所提供的数据是否适合通过 PduInfoPtr->SduLength 报告的目标缓冲区 [SWS_FrTp_00154]:
- 复制成功:若缓冲区容量充足,该函数将地址信息、PCI 以及 N-SDU 数据复制到缓冲区
PduInfoPtr->SduDataPtr中 [SWS_FrTp_01060]。PduInfoPtr->SduLength中的数据长度被设置为所复制数据的精确长度,且该函数返回E_OK[SWS_FrTp_00154]、[SWS_FrTp_01061]。 - 缓冲区不足:若数据无法放入缓冲区,该函数将中止并返回
E_NOT_OK,而不会修改PduInfoPtr[SWS_FrTp_00154]。在发生错误时,调用方不得使用PduInfoPtr,因为它可能包含无效数据或空指针 [SWS_FrTp_00154]。
当开发错误检测(DET)激活时,该函数会对传入参数执行预先检查:
- 若
TxPduId无效,该函数向 DET 报告错误FRTP_E_INVALID_PDU_SDU_ID并返回E_NOT_OK[SWS_FrTp_01145]。 - 若
PduInfoPtr无效,它向 DET 报告错误FRTP_E_PARAM_POINTER并同样返回E_NOT_OK[SWS_FrTp_01146]。
在并发性方面,该函数对于不同的 PDU-ID 是可重入的,但对于相同的TxPduId不得并发调用[SWS_FrTp_00154]。
本使用说明基于 AUTOSAR CP R20-11 规范自动生成。
实现者指南即将推出(复杂度 I2)
函数 FrTp_RxIndication [SWS_FrTp_00152] 📄 PDF
void FrTp_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);
Indication of a received PDU from a lower layer communication interface module.
用法与语义
同步回调函数 FrTp_RxIndication 用于将接收到的 PDU 从底层通信接口模块指示给 FlexRay ISO 传输层模块,并启动整个接收过程 [SWS_FrTp_00152],[SWS_FrTp_00137]。它可通过头文件 FrTp.h 获取,服务 ID 为 0x42,无返回值 [SWS_FrTp_00152]。作为参数,它需要接收到的 PDU 的标识符(RxPduId)以及指向类型为 PduInfoType 的结构的指针(PduInfoPtr)[SWS_FrTp_00152]。该指针提供接收到的 PDU 的长度(SduLength)、指向有效载荷数据的缓冲区指针(SduDataPtr)以及关联的元数据 [SWS_FrTp_00152]。
错误处理
关于错误处理,该函数在开发检测(DET)激活时检查两个输入参数:若 RxPduId 无效,则报告开发错误 FRTP_E_INVALID_PDU_SDU_ID [SWS_FrTp_01147]。若 PduInfoPtr 无效,则报告错误 FRTP_E_PARAM_POINTER [SWS_FrTp_01148]。若传递了不受支持的 RxPduId,则终止执行而不执行进一步操作 [SWS_FrTp_01075]。如果在调用时没有可用的空闲接收通道,因为通道状态不是 Idle(FrTpRxChannelState ≠ Idle),则函数同样会中止且不作进一步处理 [SWS_FrTp_01076],并且模块会触发运行时错误 FRTP_E_NO_CHANNEL [SWS_FrTp_01186]。
并发性与交互
关于并发性,FrTp_RxIndication 针对不同 PDU ID 是可重入的,但针对相同 PDU ID 是不可重入的 [SWS_FrTp_00152]。调用必须由底层接口同步执行,以正常启动 FrTp 模块中的接收 [SWS_FrTp_00152],[SWS_FrTp_00137]。
该使用说明基于 AUTOSAR R20-11 的规范需求自动生成。
实现者指南即将推出(复杂度 I2)
函数 FrTp_TxConfirmation [SWS_FrTp_00153] 📄 PDF
void FrTp_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);
The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.
同步函数 [SWS_FrTp_00153] 用于底层通信层向 FrTp 模块通知 PDU 传输成功或失败。在调用时,底层在参数 TxPduId 中传递已配置的标识符 FrTpTxConfirmationPduId 以及发送结果 result([SWS_FrTp_01053])。result 的有效值为:发送成功时的 E_OK 以及传输失败时的 E_NOT_OK([SWS_FrTp_00153])。
若开发错误检测(DET)已启用,该函数将执行参数检查:非法的标识符 TxPduId 会触发开发错误 FRTP_E_INVALID_PDU_SDU_ID([SWS_FrTp_01149]),而 result 的无效值会导致错误 FRTP_E_INVALID_PARAMETER([SWS_FrTp_01203])。
关于并发性,该函数针对不同的 PDU-ID 是可重入的,但不得针对相同的 TxPduId 进行并发调用([SWS_FrTp_00153])。在每次带有对应 FrTpTxConfirmationPduId 的调用中,该模块会将计数器 TxPduPendingCounter 递减([SWS_FrTp_01092])。
与传输状态结合使用时,该确认会引发以下状态转换:
- 在发送端,一旦所有 N-SDU 数据均已发送、
result具有值E_OK且已收到可能配置的确认,或者当result等于E_NOT_OK时直接发生,被占用的通道就会转换到状态Idle(FrTpTxChannelState = Idle),并且标志TX_SDU_AVAILABLE以及TX_SDU_UNKNOWN_MSG_LENGTH会被复位([SWS_FrTp_01056]、[SWS_FrTp_01057]、[SWS_FrTp_01124])。 - 在接收端,当所有数据均已接收且所有必需的 Flow-Control-PDU 均已通过
E_OK确认,或者当确认以E_NOT_OK发生时,被占用的接收通道(FrTpRxChannelState = Idle)会被释放([SWS_FrTp_01081])。
本文由 AI 生成,基于 AUTOSAR 发布版本 R20-11 的规范。
实现者指南即将推出(复杂度 I2)
函数 FrTp_MainFunction [SWS_FrTp_00162] 📄 PDF
void FrTp_MainFunction (void);
Schedules the Flex Ray TP. (Entry point for scheduling)
用法与调用上下文
函数 FrTp_MainFunction 具有签名 void FrTp_MainFunction (void);,且指定的服务 ID 为 0x10 [SWS_FrTp_00162]。它不接收输入参数,也不向调用者返回任何返回值 [SWS_FrTp_00162]。其声明可通过头文件 SchM_FrTp.h 获取 [SWS_FrTp_00162]。根据推测,该函数通常由 BSW 调度器(Schedule Manager)周期性调用。 问题 Q-aaa6251bd84aef94 (未决)
交互与任务
该函数的主要任务是对 FlexRay 传输协议模块进行调度 [SWS_FrTp_00162],[SWS_FrTp_00203]。根据 [SWS_FrTp_00580],FrTp_MainFunction 为 FrTp 模块待处理的处理任务(processing tasks)提供了强制性入口点,从而周期性地处理和管理内部协议进程。
时间条件与限制
对于接入整个系统的时间要求,规范为调度定义了固定的最低调用率:
- 每个 FlexRay 周期必须至少调用
FrTp_MainFunction一次 [SWS_FrTp_01152]。
在当前规范范围内,未描述具体的错误处理、DET 或 DEM 报告,以及关于重入性或并发性的显式规定。
本使用说明是基于规范 AUTOSAR R20-11 自动生成的。
实现者指南即将推出(复杂度 I1)
类型 FrTp_ConfigType [SWS_FrTp_01194] 📄 PDF
This is the base type for the configuration of the Flex Ray Transport Protocol A pointer to an instance of this structure will be used in the initialization of the Flex Ray Transport Protocol. The outline of the structure is defined in chapter 10 Configura tion Specification
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_FrTp- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_FrTp@rel:R20-11#9350c5bc- Content hash
9350c5bc- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlexRayISOTransportLayer.pdf#nameddest=SWS_FrTp_00215
gemini-3.8-flash-low· 2026-10-13 · 德文原文