《AUTOSAR谱系分解(ETAS工具链)》之CanTp

《AUTOSAR谱系分解(ETAS工具链)》之CanTp

1. 单帧和多帧

CAN-TP帧类型可分为 单帧和多帧。

单帧(SF) : Single Frame,数据长度小于等于7个Byte(标准CAN是7Byte,CAN-Fd是63Byte)时,使用单帧进行传输

多帧可分为 首帧(FF)/流控帧(FC)/连续帧(CF),数据长度大于等于8个Byte(标准CAN是8Byte,CAN-FD是64Byte)时,使用多帧进行传输

首帧(FF):First Frame

流控帧(FC): Flow Control

连续帧(CF): Consecutive Frame

2. 传输层协议控制信息(N_PCI)字段

在这里插入图片描述

SequenceNumber(SN)的取值:

0~F;

通常,首帧的SN值为0(虽然首帧数据中没用SN,但依然将SN值当作是0)。首帧后的第一个连续帧的SN值为1,之后每遇到一个连续帧,SN值加1。当SN=15后再遇到一个连续帧时,其值变为0,依次类推。SN的值不受流控帧(FC)的影响;

FlowStatus(FS)的取值:

0 -> 继续发送;

1 -> 等待;

2 -> 溢出;

3~F -> 保留字段;

BlockSize(BS)的取值:

0 -> 接收方向发送端告知:接收端后续将不会再发送流控帧响应,发送端也不需要等待流控帧,发送端直接发送余下的连接帧数据;

01~FF -> 接收方向发送端告知:接收端能接收的连续帧大小,单位:字节;

SeparationTime minimum(STmin)的取值:

00~7F -> 0~127毫秒;

80~F0 -> 保留字段;

F1~F9 -> 100~900微秒;

FA~FF -> 保留字段;

3. 多帧时序

  1. Sender -> 发送首帧

  2. Receiver -> 回复流控帧

  3. Sender -> 发送连续帧(根据流控帧确认发送连续帧的间隔和次数)

  4. Receiver -> 收到指定数量的连续帧后,再次回复流控帧

  5. Sender -> 发送连续帧(根据流控帧确认发送连续帧的间隔和次数)

4. 时间参数

在这里插入图片描述

传输层:

缩写解释
BSECU发送流控帧后,Tester被允许发送连续帧最大帧数目
STminECU发送流控帧后,Tester被允许发送连续帧的最大帧间隔

网络层:

缩写解释
N_AsTester传输CAN数据帧至ECU的最大时间
N_BsTester首帧发送成功后到流控帧接收成功的最大时间
N_CsTester在接收流控帧后到发送连续帧的最大时间
N_ArECU传输流控帧至Tester的最大时间
N_BrECU接收到首帧到开始发送流控帧的时间
N_CrECU成功发送流控帧后到收到连续帧的最大时间

会话层:

缩写解释
S3_TesterTester为了保持一个ECU或者多个ECU节点同时保持在非默认会话下的时间间隔
S3_SeverECU未接收到任意诊断报文时维持在非默认会话下的时间间隔

应用层:

缩写解释
P2_ClientTester成功发送完请求消息后等待服务器响应超时设置
P2*_ClientTester接收到否定响应码为0x78的否定响应后等待ECU发送响应时的增强型超时设置
P2_SeverECU收到请求后发出响应的实际时间
P2*_SeverECU发送0x78否定响应到发出响应的实际时间
P3_ClientPyhTester在收到物理寻址的肯定响应下允许发送下一条物理寻址请求的最小时间间隔
P3_ClientFunTester在收到功能寻址的肯定响应下允许发送下一条功能寻址请求的最小时间间隔

N_Ar: network layer timing parameter Ar
N_As: network layer timing parameter As
N_Br: network layer timing parameter Br
N_Bs: network layer timing parameter Bs
N_Cr: network layer timing parameter Cr
N_Cs: network layer timing parameter Cs
N_Data: network data
N_PCI: network protocol control information
N_PCItype: network protocol control information type
N_PDU: network protocol data unit
N_SA: network source address
N_SDU: network service data unit
N_TA: network target address
N_TAtype: network target address type
N_USData: network layer unacknowledged segmented data transfer service name
NWL: network layer

● 发送方:
– N_As:从数据发送到数据被确认发送的最大间隔时间,如果超过这个时间则中断发送。

– N_Bs:从数据确认发送到收到流控帧的最大间隔数据,如果超过这个时间则中断发送。

– N_Cs:从流控帧接收或CF确认发送到数据请求发送成功的最大时间间隔,如果超过这个时间则中断发送。

● 接收方:
– N_Ar:从数据(FC)请求发送到数据发送成功的最大数据间隔,如果超过这个时间则中断接收。

– N_Br:从FF或者CF确认发送到FC请求的最大时间间隔,如果超过这个时间则中断接收。

– N_Cr:从CF接收到下一个CF接收或者FC接收的最大时间间隔,如果超过这个时间则中断接收。

对于OEM配置,一般N_As为0.07,N_Bs为0.15,N_Cs为0.05,N_Ar为0.07,N_Br为0.05,N_Cr为0.15。

BS:Block Size即块大小,收到一帧流控帧后发送连续帧的最大数量,用来限制连续发送连续帧的最大数量,如为0则没有限制可以一直发,直到数据发送完毕。

STmin:SeparationTime minimum即连续帧发送的最小时间间隔,代表了接收方的接收能力。

5. 常见缩写

DLC(Data Length Code) 数据长度码(CAN PDU中描述SDU长度的部分)
Mtype 报文类型
N_AI 网络地址信息(见ISO 15765-2)
N_Ar 在接收端,CAN帧(任何N-PDU)的传输时间(见ISO 15765-2)
N_As 在发送端,CAN帧(任何N-PDU)的传输时间(见ISO 15765-2)
N_Br 直到传输下一个流控帧N-PDU的时间 (见ISO 15765-2)
N_Bs 接收到下一个流控帧N-PDU的时间(见ISO 15765-2)
N_Cr 接收到下一个连续帧N-PDU的时间(见ISO 15765-2)
N_Cs 传输下一个连续帧N-PDU的时间(见ISO 15765-2)
N_Data 传输层的数据信息
N_PCI 传输层的协议控制信息
N_SA 网络源地址(见ISO 15765-2)
N_TA 网络目标地址(见ISO 15765-2),
N_TAtype 网络目标地址类型(参见ISO 15765-2)
PDU (Protocol Data Unit) 协议数据单元。在分层系统中,X层的PDU包含该层的SDU与协议控制信息。(X)-PDU = (X)-SDU+(X)-PCI。X层的PDU为其下层X-1层的SDU,即(X)-PDU = (X-1)-SDU
SDU (Service Data Unit) 服务数据单元。在分层系统中,由给定层的服务用户发送的一组数据,并将其传输给对等服务用户,同时保持语义不变
FS (Flow Status) 流状态

6. ETAS工具链下的AUTOSAR配置

CanTpConfig:
在这里插入图片描述

物理寻址接收相关配置:
在这里插入图片描述

功能寻址接收相关配置:
在这里插入图片描述

发送相关配置:
在这里插入图片描述

CanTpGeneral:

在这里插入图片描述

注意:

为了保证与所有上层关于帧数据长度的要求完全兼容(例如OBD要求数据长度始终设置为8字节,而UDS没有),填充激活可以在每个N-SDU的预编译时配置,通过使用CanTpRxPaddingActivation用于Rx N-SDU或CanTpTxPaddingActivation用于Tx N-SDU。
在填充和不填充模式下,CanTp模块只将使用过的数据字节传输到上层。
填充字节的值可以通过配置参数:

/AUTOSAR_CanTp/EcucModuleDefs/CanTp/CanTpGeneral/CanTpPaddingByte

进行配置。

《AUTOSAR谱系分解(ETAS工具链)》之总目录

  • 22
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值