AUTOSAR CAN-Tp协议

目录

一.单帧、首帧、连续帧、流控帧

单帧传输

SF单帧:

多帧传输

FF(首帧):

CF(连续帧):

FC(流控帧):


一.单帧、首帧、连续帧、流控帧

CAN诊断由发送端的请求与接收端的响应构成,诊断即为发送端与接收端数据往来。有的诊断一条消息完成,有的诊断需要多条消C息完成,毕竟在诊断中,一条 CAN 消息只包含 8 个字节长度。对于一条 CAN 诊断消息的分段发送问题,即为网络层需要讨论的内容。
CanTp 层传输的报文分为 SF(单帧)、 FF(首帧)、 CF(连续帧)、 FC(流控帧) 4 类。

单帧传输

SF单帧:

该诊断报文只需一条报文就可以实现(数据小于8个byte)

在发送端到接收端的请求仅为一条消息时,即为单帧(SingleFrame),单帧数据格式如图,单帧第一个字节 byte0 为 PCI, PCI 的高 4 位为 0, PCI 低四位为接下来准备传输的数据长度,从第二个字节 byte1 起为传输的数据(SID 也作为数据)。从单帧的数据格式可以看出,真正的数据部分最多为 Byte1 ~Byte7 共 7 个字节长度,即 CAN 诊断数据发送长度得小于等于 7 个字节。

多帧传输

需要传输的数据比较多,就需要多帧来传输,发送过程中需要把 N-SDU 分割成多帧 N-PDU 来发送。接收过程中把多帧 N-PDU 重组发给上层,多帧传输分为首帧和续帧。

PCI(Protocol Control Information)协议控制信息,包含了 PDU 单元类型和消息字节长度。(表面该报文是单帧、首帧、流控帧还是连续帧)

FF(首帧):

多帧发送时,第一帧报文叫做首帧

在多帧传输中,包括了首帧(FF)和连续帧(CF),接收端需要在收到首帧后回复流控(FC)。首帧格式如图所示,首帧第一个字节 PCI 的高四位为 1, PCI 低四位与第二个字节 LEN 合起来为接下来传输的数据长度,从第三个字节 byte2 起为传输数据。最大多帧长度为 4095 个字节。

CF(连续帧):

连续帧格式如图所示,连续帧第一个字节 PCI 的高四位为 2, PCI 的低四位为帧计数器,第二个字节 byte1 起为剩余传出的数据。例如首帧已经传输了Data0, Data1 ...至Data5,则第一个连续帧接着传输 Data6, Data7...至Data12,第二个连续帧接着传输 Data13, Data14...,以此类推直至所有数据传输结束。续帧 SN 从 0 开始,到 15 之后又返回 0 开始。(注意: FF 发完后的第一个 CF的 SN 为 1)

续帧 SN 从 0 开始,到 15 之后又返回 0 开始。(注意: FF 发完后的第一个 CF的 SN 为 1)
 

FC(流控帧):

接收端在收到首帧后,会发出一个流控帧,第一个字节 PCI 的高四位为 3,低四位为 FS(FlowStatus), FS 可以为 0 代表 ContinueToSend(CTS), 1 代表Wait(WT), 2 代表 Overflow (OVFLW), 3 – F 为预留,通常我们遇到的值为0。
流控帧的作用在于接收端告知发送端接收能力,包含 BlockSize(BS)和SeparationTimeMin(STmin)两个参数。
• BS 表示接收端允许发送端连续发送的最大连续 N_PDU 帧数 BS 为 0 的时候高速发送端可以发完剩余的全部 N-PDU BS 为 01 - 0xFF 时,表示发送端可以发的连续帧最大帧数。

• STmin 表示发送端发送连续帧的最小间隔时间。

流控帧的本质是接收端告诉发送端自己的接收能力。

网络层时间参数要求
CAN 诊断的数据传输不仅需要遵从上述格式要求,还有严格的时间要求。网络层涉及的时间参数有 N_As, N_Ar, N_Bs, N_Br, N_Cs 和 N_Cr。这些时间参数在传输过程的对应关系如图所示

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
AUTOSAR (Automotive Open System Architecture)是一种开放的、标准化的汽车软件架构,旨在提高汽车软件的可重用性和互操作性。其中,CAN (Controller Area Network)通信协议AUTOSAR标准中广泛使用的一种通信协议,用于实现车辆内部各个电子控制单元 (ECU) 之间的通信。 AUTOSAR标准中的CAN通信协议源码实现可以通过以下步骤进行分析: 1. 首先,需要了解CAN通信协议的基本原理和消息传输机制。CAN通信协议采用消息 (Message Frame) 的形式进行数据传输,其中包括标识符 (Identifier)、数据域 (Data Field)、控制域 (Control Field) 等字段。 2. 接下来,可以查看AUTOSAR标准中的CAN通信协议源码实现,了解其具体实现方式。通常情况下,CAN通信协议源码实现会包括以下几个方面: (1) CAN驱动程序 (CAN Driver):用于实现CAN控制器的初始化、发送和接收消息等功能。 (2) CAN TP (Transport Protocol):用于实现CAN消息的分段传输、重发机制等。 (3) CAN IF (Interface):用于实现CAN通信协议与上层应用程序之间的接口。 (4) CAN NM (Network Management):用于实现CAN网络的管理和监控。 3. 最后,可以通过调试工具等方式,对CAN通信协议源码进行测试和验证,并根据需要进行修改和优化。在进行修改和优化时,需要注意保持与AUTOSAR标准的兼容性,以确保软件的稳定性和可靠性。 总体来说,分析AUTOSAR标准中的CAN通信协议源码实现需要具备一定的CAN通信协议基础知识和软件开发经验,并需要结合具体的应用场景进行分析和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LJX

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值