图解AUTOSAR_SWS_FlexRayARTransportLayer

FlexRay AUTOSAR 传输层 (FrArTp) 分析

1. AUTOSAR FlexRay 传输层架构

1.1 FlexRay AUTOSAR 传输层在AUTOSAR架构中的位置

在这里插入图片描述

AUTOSAR分层架构中,FlexRay AUTOSAR 传输层(FrArTp)位于通信抽象层,其上方是PDU路由器,下方是FlexRay接口。FrArTp的主要功能是实现FlexRay网络上的数据分段和重组。FrArTp基于ISO 15765-2标准(最初为CAN总线设计),但针对FlexRay通信需求进行了扩展。

自AUTOSAR 4.0以来,标准的FlexRay传输层已经与ISO 10681-2兼容,而本文分析的FrArTp是基于ISO 15765-2的AUTOSAR特定实现。

1.2 FlexRay AUTOSAR 传输层的主要功能

  • 数据分段和重组
  • 流控制
  • 错误检测
  • 支持1:1和1:n连接
  • 确认机制和重试
  • 支持基于ISO 15765-2的帧格式和通信序列
  • 支持多达2^32-1字节的数据传输

2. FrArTp 内部组件架构

2.1 模块内部组件结构

在这里插入图片描述

FlexRay AUTOSAR 传输层模块由以下主要组件构成:

  1. FrArTp核心:负责协调所有内部组件和外部接口的工作。

  2. 传输处理

    • 分段处理:将长数据分割成多个帧
    • 流控制处理:处理流控制帧的发送和接收
    • 重试机制:实现传输失败时的重试逻辑
  3. 接收处理

    • 重组处理:将接收到的多个帧重组为完整数据
    • 缓冲区管理:管理接收数据的缓冲区
  4. 协议处理

    • 帧格式处理:处理ISO 15765-2兼容和扩展帧格式
    • 地址处理:支持1字节和2字节寻址,物理和功能寻址
  5. 资源管理

    • 连接管理:管理1:1和1:n的连接
    • PDU池管理:管理N-PDU资源
  6. 主函数

    • 定时器管理:处理各种超时
    • 状态机控制:管理连接状态

2.2 模块接口

FrArTp与其他模块通过以下接口交互:

  1. 与PDU路由器的接口

    • FrArTp_Transmit():触发数据传输
    • FrArTp_CancelTransmit():取消传输
    • FrArTp_CancelReceive():取消接收
    • FrArTp_ChangeParameter():更改参数
    • PduR_FrArTpStartOfReception():通知开始接收
    • PduR_FrArTpCopyRxData():复制接收数据
    • PduR_FrArTpRxIndication():指示接收完成
    • PduR_FrArTpCopyTxData():复制传输数据
    • PduR_FrArTpTxConfirmation():确认传输完成
  2. 与FlexRay接口的接口

    • FrIf_Transmit():触发帧传输
    • FrArTp_TriggerTransmit():触发传输回调
    • FrArTp_RxIndication():指示帧接收
    • FrArTp_TxConfirmation():确认帧传输

3. FrArTp 帧格式

3.1 帧类型和结构

在这里插入图片描述

FrArTp支持多种类型的帧,所有帧都有共同的基本结构:

  1. 地址信息头部:包含目标地址和源地址(1字节或2字节)
  2. 协议控制信息(PCI):包含帧类型、数据长度等控制信息
  3. 数据负载:实际传输的数据

主要帧类型包括:

  1. ISO 15765-2单帧(SF-I)

    • PCI类型:0x0
    • 用于小于等于7字节的无分段数据传输
    • 符合ISO 15765-2标准
  2. 扩展单帧(SF-E)

    • PCI类型:0x4
    • 用于最多253字节的无分段数据传输
    • 是FrArTp的扩展,非ISO 15765-2兼容
  3. ISO 15765-2首帧(FF-I)

    • PCI类型:0x1
    • 表示分段传输的开始
    • 包含完整数据长度信息和首部分数据
    • 符合ISO 15765-2标准
  4. 扩展首帧(FF-E)

    • PCI类型:0x5
    • 表示扩展分段传输的开始
    • 支持更大的数据长度值
    • 是FrArTp的扩展,非ISO 15765-2兼容
  5. 连续帧(CF)

    • PCI类型:0x2
    • 包含序列号(0-15)和数据
    • 用于传输分段数据
    • 符合ISO 15765-2标准
  6. 扩展连续帧(CF2)

    • PCI类型:0x6
    • 用于交替块机制
    • 是FrArTp的扩展,非ISO 15765-2兼容
  7. 流控制帧(FC)

    • PCI类型:0x3
    • 包含流状态(FS)、块大小(BS)和最小分离时间(STmin)
    • 用于控制数据流
    • 符合ISO 15765-2标准
  8. 确认帧(AF)

    • PCI类型:0x7
    • 用于实现有确认的传输
    • 是FrArTp的扩展,非ISO 15765-2兼容

3.2 寻址模式

FrArTp支持两种寻址模式:

  1. 单字节寻址:每个地址1字节,最多支持256个节点
  2. 双字节寻址:每个地址2字节,最多支持65536个节点

4. FrArTp 通信过程

4.1 分段传输和流控制序列

在这里插入图片描述

FrArTp分段传输和流控制过程如下:

  1. 启动分段传输

    • 应用/DCM通过PDU路由器请求传输大数据
    • 发送方FrArTp确定消息需要分段并计算所需帧数
    • 发送方发送首帧(FF),包含完整数据长度和首部分数据
    • 接收方从首帧获取完整数据长度信息
  2. 流控制过程

    • 接收方发送流控制帧(FC),指示继续发送(CTS)
    • 流控制帧包含块大小(BS)和最小分离时间(STmin)参数
    • 发送方根据这些参数调整传输行为
  3. 数据块传输

    • 发送方按照指定的块大小发送连续帧(CF)
    • 每个连续帧都有序列号(SN),接收方通过序列号检查帧序列完整性
    • 接收方将每个帧的数据复制到接收缓冲区
  4. 块结束和继续流控制

    • 当一个块传输完成后,接收方再次发送流控制帧
    • 发送方继续发送下一个数据块,直到所有数据传输完成
  5. 传输完成确认

    • 如果配置了确认机制,接收方发送确认帧(AF)
    • 接收方和发送方向上层通知传输完成

4.2 重试机制

当启用重试机制时,FrArTp在检测到传输错误时可以重新发送数据块:

  1. 如果接收方在接收块过程中检测到错误,会在流控制帧中指示错误
  2. 发送方收到错误指示后,会从指定的序列号开始重新发送数据
  3. 为防止无限重试,重试次数由配置参数FrArTpMaxRn限制
  4. 重试机制还使用交替块机制,通过不同类型的连续帧(CF和CF2)区分不同数据块

5. FrArTp 状态机

5.1 连接状态机

在这里插入图片描述

FrArTp模块使用状态机管理每个连接的状态,主要状态包括:

  1. 空闲(IDLE)

    • 连接未活动状态
    • 可以接收传输请求或首帧
  2. 发送方状态

    • 传输中(TRANSMITTING):正在发送首帧、单帧或连续帧
    • 等待流控制(WAIT_FC):发送首帧后等待接收流控制帧
    • 等待流控制重传(WAIT_FC_OVFLW):接收到溢出流控制帧后的状态
    • 等待确认帧(WAIT_ACK):发送完所有数据后等待确认
  3. 接收方状态

    • 接收中(RECEIVING):正在接收连续帧
    • 发送流控制(SEND_FC):准备发送流控制帧
    • 发送确认帧(SEND_ACK):准备发送确认帧
    • 等待缓冲区(WAIT_BUFFER):接收缓冲区不足,等待资源
  4. 异常状态

    • 已取消(CANCELLED):传输已被取消
    • 错误(ERROR):发生错误

状态转换由事件触发,包括:

  • API调用(如FrArTp_Transmit、FrArTp_CancelTransmit)
  • 帧接收(如首帧、连续帧、流控制帧)
  • 超时(如等待流控制帧超时)
  • 缓冲区可用性变化

6. 配置参数

FrArTp模块的行为受多种配置参数控制,主要参数包括:

  1. 通道参数

    • ISO 15765-2兼容性配置
    • 寻址模式(1字节或2字节)
    • 帧格式限制
  2. 连接参数

    • 连接类型(1:1或1:n)
    • 确认机制和重试配置
    • 流控制参数(块大小、最小分离时间)
  3. 超时参数

    • 等待流控制帧超时
    • 等待连续帧超时
    • 等待确认帧超时
  4. PDU池配置

    • N-PDU大小
    • N-PDU地址类型

通过这些参数,可以灵活配置FrArTp模块以满足不同应用场景的需求。

7. 总结

FlexRay AUTOSAR 传输层(FrArTp)是AUTOSAR中的关键通信模块,提供了FlexRay网络上的分段传输和重组功能。它基于ISO 15765-2标准,但通过各种扩展功能提升了性能和灵活性。

FrArTp的主要特点:

  1. 支持大数据传输,通过分段和重组机制
  2. 提供流控制以优化资源使用
  3. 支持1:1和1:n通信模式
  4. 提供确认和重试机制以增强可靠性
  5. 灵活的配置选项以适应不同应用需求

足不同应用场景的需求。

7. 总结

FlexRay AUTOSAR 传输层(FrArTp)是AUTOSAR中的关键通信模块,提供了FlexRay网络上的分段传输和重组功能。它基于ISO 15765-2标准,但通过各种扩展功能提升了性能和灵活性。

FrArTp的主要特点:

  1. 支持大数据传输,通过分段和重组机制
  2. 提供流控制以优化资源使用
  3. 支持1:1和1:n通信模式
  4. 提供确认和重试机制以增强可靠性
  5. 灵活的配置选项以适应不同应用需求

通过本文对FrArTp架构、帧格式、通信过程和状态机的分析,可以更全面地理解AUTOSAR中FlexRay通信的实现机制和原理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

KaiGer666

慧眼~施主!!!

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

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

打赏作者

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

抵扣说明:

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

余额充值