CanTp概述

本文介绍了CanTp在AUTOSAR平台中的角色,作为CAN传输层,它负责数据分段、重组和错误检测。CanTp依据ISO15765标准运作,包括OEM诊断和OBD诊断的两种规范。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CanTp概述

CAN传输协议(CAN Transport Protocol,CanTp)在AUTOSAR经典平台的通信服务中详细描述,CanTp模块是AUTOSAR基本软件模块之一,从层次上描述,CanTp也指CAN传输层,下图展示CanTp在AUTOSAR通信栈中的位置 。

AUTOSAR通信栈
CanTp应用在基于Can的UDS诊断开发中,CanTp是PDU路由模块(PDU Router,PduR)和CAN接口(CAN Interface,CanIf)模块之间的模块。CanTp模块的主要目的是对长度大于8字节或长度大于64字节(在CAN FD情况下)的CAN I-PDUs进行分段和重组。PduR可决定是否使用传输协议CanTp。由于CanTp只处理传输协议帧(即SF, FF, CF和FC pdu),因此根据N-PDU ID, CanIf必须将I-PDU转发给CanTp或PduR。

CanTp提供的服务

根据AUTOSAR基本软件架构,CanTp提供以下服务:

  • 数据分段
  • 数据重组
  • 数据流控制
  • 错误检测
  • 发送取消
  • 接收取消

CanTp参考的标准-ISO 15765

AUTOSAR决定将基本软件模块规范建立在现有标准的基础上,因此AUTOSAR CanTp规范是基于国际标准ISO 15765。ISO 15765包含四个部分:

  • ISO 15765-1:一般要求与用例定义
  • ISO 15765-2:传输协议和网络层服务
  • ISO 15765-3:基于Can的统一诊断服务UDS实现
  • ISO 15765-4:系统排放相关要求

ISO 15765中描述了两个适用的CanTp规范:用于OEM增强诊断的ISO 15765-2和用于OBD诊断的ISO 15765-4。关于CAN传输层,ISO 15765-4与ISO 15765-2基本一致,但也有一些不兼容的地方。通过CAN传输层的配置,来解决在ISO 15765-2和ISO 15765-4之间不兼容的问题。

03-08
### CANTP 协议概述 CANTP (Controller Area Network Transport Protocol) 是一种用于车载网络通信的传输层协议,主要用于解决 CAN 总线上传输较长消息的需求。当单个 CAN 报文无法承载完整的应用层数据时,CANTP 提供了一种机制来分段发送并重新组装这些报文。 #### 数据帧类型 1. **单帧 SF (Single Frame)** 当待传送的应用层数据不超过 7 字节时,可以直接通过单帧进行传输[^1]。 2. **首帧 FF (First Frame)** 如果应用层数据超过 7 字节,则先发送一个首帧通知接收方即将开始多帧传输,并告知后续所需传输的数据量大小。 3. **连续帧 CF (Consecutive Frame)** 随着首帧之后发出的一系列携带实际有效负载的部分或全部剩余字节序列化后的子集。 4. **流控帧 FC (Flow Control Frame)** 接收端用来控制发送速率的一种反馈信号;它允许接收者指定何时继续接收到更多来自发送者的连续帧以及每次可以接受多少数量的新到达的消息块。 ```c // 示例:处理不同类型的数据帧逻辑伪代码 void processFrame(uint8_t frameType, uint8_t* data){ switch(frameType){ case SINGLE_FRAME: handleSingleFrame(data); break; case FIRST_FRAME: startMultiFrameTransfer(data); break; case CONSECUTIVE_FRAME: continueReceivingFrames(data); break; case FLOW_CONTROL_FRAME: adjustTransmissionRate(data); break; } } ``` #### 关键参数配置 为了确保可靠性和效率,在实现 CANTP 时需考虑以下几个重要参数: - `N_As` 和 `N_Ar`: 定义了最大超时时间间隔,分别对应于发送和接收操作。 - `N_Bs`, `N_Br`: 控制重传次数上限及其等待周期。 - `STmin`: 设置最小分离时间,即两个连续帧之间最短的时间间隙。 - `BS(Block Size)`: 表示一次可接收的最大连续帧数目。 #### 应用场景 CANTP 广泛应用于现代车辆内部不同电子控制单元(ECUs)间的交互过程之中,尤其是在执行远程诊断命令期间尤为关键。此外,某些特定品牌如大众、奥迪在美国市场上的部分车型采用了基于 SAE J2819 的 TP2.0 版本作为其诊断通讯的标准方案[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值