[CP_AUTOSAR]_CanTp帧格式(单帧/首帧/连续帧/流控帧)


  本文主要内容来自于《ISO 15765-2》,基于CAN的诊断,Part2:网络层服务。该部分定义了基于CAN网络的车辆诊断系统通信链路(链路部分可以参考ISO 11898文档)上的一些共性需求。尽管为了诊断系统服务,该标准也能够满足其它的基于CAN 并且需要网络层协议的系统。为了达到这个目的,基于OSI模型(将通讯系统分成了7层,自下到上分别是物理层 -> 数据链路层 -> 网络层 -> 传输层 -> 会话层 -> 展示层 -> 应用层),将ISO 15765 - 3部分与OSI第7层对应;本文即将介绍的ISO 15765 - 2部分,其与OSI第3层对应;ISO 11898与OSI第1,2层对应。
  ISO 15765各部分与OSI的对应关系详见下表:

OSI汽车制造厂商的增强型诊断OBD
诊断应用用户自定义ISO-15031-5
应用层ISO 15763-3ISO-15031-5
展示层N/AN/A
会话层ISO 15765-3N/A
传输层N/AN/A
网络层ISO 15765-2ISO-15031-5
数据链路层ISO 11898-1ISO-15765-4
物理层用户自定义ISO-15765-4

1、术语解释

  一些术语的解释说明:
  BS,Block Size;
  CF,Consecutive Frame,连续帧;
  FC,Flow Control,流控帧;
  FF,First Frame,首帧;
  SF,Single Frame,单帧;
  STmin,Separation Time Min,最小帧间隔;
  SN,Sequence Number,帧序列号;

2、网络服务层

  网络层提供了分段、重组、数据传输流控制方法,其主要任务是传输超出了一帧大小的数据内容,超出一帧的数据会被分割为多帧,每一个部分都是以一个CAN帧的格式去发送。
  下图为消息未被拆分的例子:
在这里插入图片描述
  下图为消息被拆分的例子:
在这里插入图片描述
  流控帧,即Flow Control Frame用来调整发送端的发送能力,来适应接收端网络层的接收能力。比如,一个ECU最高可以接收5ms帧周期的报文,则发送端应该调整发送报文的帧周期。该流控帧的策略仍然能够适用于诊断网关和子网。

3、网络层协议

3.1、网络层协议:

  1、发送和接收的消息最多为4095个字节;
  2、发送和接收完成或者是失败,需要汇报;

3.2、单帧发送

  当发送的消息数据字节数最多不超过6个(6个字节是为了防止扩展或者混合的地址)或者7个(7个字节是普通地址)时,则会采用单个N_PDU来发送,叫做单帧。
  如下图所示:左侧发送一个单帧报文,右侧接收一个单帧报文。

在这里插入图片描述

3.3、多帧发送

  当消息长度太长时,则需要分割为多个N-PDUs,这些N-PDUs被称为首帧(FirstFrame,N-PDUs的第一帧)和连续帧(ConsecutiveFrame,首帧之后所有的N-PDUs)。
  接收多个N_PDU消息的一方,可以通过使用流控帧的协议数据单元(FC N_PDU)的流控机制来调整传输吞吐量以适应其能力。消息长度超出了7个字节(这里以普通地址模式举例)会被分割为如下部分:
  1、— FF N-PDU,首帧 协议数据单元,此部分包含了6个字节的数据
  2、— 一个或者多个连续帧 协议数据单元,CF N_PDU,每一帧包含了7个字节的数据,只有最后一帧才有可能不足7个字节,为剩余的数据字节。
  下图展示了发送方对于多字节消息的分割,以及接收方对于多字节消息的整理过程。

在这里插入图片描述
  发送的消息长度包含在首帧中,发送方对所有连续帧报文进行编号,则有利于接收方按照同样的顺序整合消息。
  下图为流控机制,由于不同的网络节点能力不同,该机制可以允许接收端告知发送端自身的接收能力。这种能力定义如下:
  1、BlockSize (BS),块的大小:接收方允许发送方发送的最大的N-PDU数量;
  2、SeparationTimeMin(STmin):发送两个CF N-PDUs的最小间隔时间,即帧间隔;
在这里插入图片描述

4、协议控制信息(PCI)规范

  每一个N-PDU都由N-PCI来标识。具体规范见下表所示:
在这里插入图片描述
   N-PCI的类型值定义如下:

Hex值描述
0SingleFrame
对于未被拆分的消息,网络层协议将消息的长度嵌入了PCI字节中。SF可以被用来支持可以适配在一条CAN报文中的消息发送
1FirstFrame
首帧只是用来支持那些无法适配单条CAN报文的消息,比如分割的消息。
2ConsecutiveFrame
一接收到流控帧,接受的网络层应该可以整合接收到的数据字节,直到所有的消息被接收。
3FlowControl
流控帧用来调节发送给接收端CF N-PDUs的传输速率。
4 - FReserved

4.1、单帧的N-PCI参数定义

   下表提供了SF N-PCI字节信息的总览
在这里插入图片描述

4.1.1、单帧的数据长度(SF-DL)

   参数信息见下表:

Hex值描述
0Reserved
1 - 6SingleFrame DataLength (SF_DL)
扩展或混合地址下最多是6个字节。
7SingleFrame DataLength (SF_DL) with normal addressing
正常地址下,SF_DL = 7
8 - F无效

  当网络层接收到的单帧数据长度为0时,会自动忽略单帧消息;在普通地址下,网络层接收到超过7个字节长度的单帧,或者扩展或混合地址下超过6个字节的单帧消息,会自动忽略单帧消息。

4.2、首帧的N-PCI参数定义

   下表提供了FF N_PCI字节信息的总览
在这里插入图片描述

4.2.1、首帧的数据长度(FF_DL)

   参数信息见下表:

Hex值描述
0 - 6Invalid
7FirstFrame DataLength (FF_DL) with extended addressing or mixed addressing
在扩展或混合地址下,FF_DL = 7
8 – FFFFirstFrame DataLength (FF_DL)
12Bit大小的数据长度,最大支持4095个字节。

  当网络层接收到的首帧的数据长度超出了接收范围时,会丢弃掉接收的消息,并将参数FlowStatus = Overflow;在普通地址下,网络层接收到的首帧消息中包含的数据字节长度,少于8个字节长度的单帧,或者扩展或混合地址下少于7个字节的,会自动忽略此消息。

4.3、连续帧的N-PCI参数定义

   下表提供了CF N_PCI字节信息的总览
在这里插入图片描述

4.3.1、序列号(SN)

   SN被CF N_PDU用于指定连续帧的顺序,SN值变化如下:
   值得注意的是,跟随在FF之后的CF的序列号应该被设置为1,发送一条新的CF,序列号都应该递增1,超过15时,下一条CF序列号应该循环处理变为0。
   参数信息见下表:
在这里插入图片描述
  当网络层接收到错误序号的CF N_PDU时,应当有对应的错误处理措施,该帧也应该被丢弃。

4.4、流控帧的N-PCI参数定义

   下表提供了FC N_PCI字节信息的总览
在这里插入图片描述

4.4.1、FlowStatus (FS),流控状态参数定义

  下表为流控状态参数定义。

Hex值描述
0  ContinueToSend (CTS)
ContinueToSend参数是可编码的,即设置N-PCI 字节1中的低4位为0。这意味着发送方可以一直发送连续帧,接收方也准备好去接收连续帧的最大值。
1  Wait (WT)
Wait 参数是可编码的,即设置N-PCI 字节1中的低4位为1。这意味着发送方需要持续等待一个新的流控帧的N-PDU,并且重新计时N_BS计时器。
2  Overflow (OVFLW)
Overflow 参数是可编码的,即设置N-PCI 字节1中的低4位为2。这意味着发送方应该停止发送分割好的消息,并开始N_USData.confirm服务,同时设置参数<N_Result>=N_BUFFER_OVFLW。该N-PCI FlowStatus 参数值只能跟在首帧 N-PDU后面,并且是FF DL所表示的消息长度超出了接收体的缓存空间。
3 – FReserved

   流控帧错误处理:FC N_PDU消息包含了无效的FS参数值,那么网络层应该采取错误处理方法。该消息应该被丢弃,并且网络层应该开始同时设置参数<N_Result>=N_BUFFER_OVFLW。

4.4.2、BlockSize (BS)参数定义

  BS参数是FC N-PCI的第2个字节。BS的值表示了每个Block中的连续帧的实际个数。而最后一个Block的连续帧被拆分之后,是可能少于Block所规定的数目的。
  下表为BlockSize (BS)参数定义。

Hex值描述
 00 BlockSize (BS)
BS参数设置为0表示发送方不要发送任何的消息。
01 - FFBlockSize (BS)
该范围的BS参数值表示接收方可以接收发送方的最大连续帧的数量。

4.4.3、SeparationTime (STmin)参数定义

  STmin参数是FC N-PCI的第3个字节。该时间由接收方指定,在发送过程中由发送方保持时间间隔。
  下表为STmin参数定义。

Hex值描述
00 - 7FSeparationTime (STmin) range: 0 ms – 127 ms
单位是毫秒。
80 - F0Reserved
F1 - F9SeparationTime (STmin) range: 100 μs – 900 μs
单位是100微秒。
FA - FFReserved

  STmin时间统计:连续帧传输完成开始计时,下一个连续帧请求传输时结束计时。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值