CAN-TP传输协议详解

关注公众号,点击公众号主页右上角“ ··· ”,设置星标,实时关注智能汽车电子与软件最新资讯

来源:车端
作者:江睦令

01.CAN-TP协议概述

ISO 传输协议位于 OSI 层模型的第四层(传输层)。传输协议的主要任务是传输由于长度而不能作为单个协议数据单元 (PDU) 传输的消息。包含大包数据【通过分段在单个 PDU 中传输】的消息通过传输协议被分段并分成多个单独的 PDU。因此,为了像 CAN 一样发送数据,设计了 CAN-TP 协议。ISO 15765-2 CAN-TP 协议是一种国际标准传输层协议,用于在 CAN 连续帧上发送超过 8 字节的数据,ISO TP 定义了一种传输方法,允许通过 CAN 总线发送多达 4095 个字节。为此,要发送的消息是分段成一帧帧的 CAN 帧。
ISO-TP 最常见的应用是基于UDS 传输诊断消息,但也广泛用于其他特定应用的 基于CAN帧的大包信息的传输。

02.CAN-TP的寻址格式

CAN-TP 是在 CAN 堆栈上实现的,因此为了识别它,有两种类型的寻址:

  • 基本寻址。
  • 扩展寻址。

基本寻址【BASIC ADDRESSING】:CAN-TP 协议的基本寻址模式称为普通寻址模式,我们通过CAN Identifier识别是普通的CAN 报文还是CAN-TP报文。也就是说将有一些特定的标识符用于 CAN-TP,如果接收到这些标识符的任何消息,则服务器将理解为此消息为 TP 消息。这种寻址方式的优点是可以将完整的 8 个字节的数据包作为数据发送。

扩展寻址【EXTENDED ADDRESSING】:这种寻址模式是将CAN 数据字段的第一个字节将用于地址的附加元素的一种 CAN-TP 寻址模式,这种寻址方式导致报文数据的有效负载减少一个字节。

03.CAN-TP的帧类型

CAN-TP基于Can帧,可以进一步分为以下四种帧类型:

  1. 单帧【Single Frame】
  2. 首帧【First Frame】
  3. 连续帧【Consecutive Frame】
  4. 流控制帧【Flow Control Frame】

3.1 单帧(SF)

如果数据有效载荷为 7 字节或小于 7 字节,则单帧将用于 CAN-TP 协议中的数据传输。其中数据字段的第一个字节用于寻址。该字节再次分为两部分,其中 MSB 4 位用于寻址称为 PCI(协议信息)的 TP 帧类型。LSB 4 位用于 DLC(数据长度代码)。

图1 CAN-TP:单帧格式

3.2 首帧FIRST FRAME (FF)

首帧是CAN-TP协议中多帧消息包的初始消息。当必须传送超过 6 或 7 个字节的分段数据时使用它。第一帧包含完整数据包的长度以及初始数据。在 FF 中,前 2 字节用于 PCI,其中第 1 字节的 MSB 4 位用于帧类型,LSB 4 位和下一个 1 字节(总共 8+4 = 12 位) ) CAN 数据字段用于 DLC(2^12 = 4095 个数据字节)。所以在FF中,第一次只能传输6个字节的数据。这个帧负责向接收者发送关于他将要发送多少总数据字节的信息。


图2 CAN-TP:首帧格式

3.3 连续帧 (CF)


传输协议或 CAN-TP 协议的主要任务是传输这样的消息【由于长度而不能作为单个协议数据单元 (PDU) 传输的】,这样的消息被分段在多帧单独的 PDU消息中。


图 3 CAN-TP:连续帧格式


在 CF 中,第一个字节用于 PCI 字节,而 MSB 4 位定义为帧类型,LSB 4 位定义为序列号。序列号始终从 1 开始,并随着发送的每一帧而递增(如 1、2、…、15、0、1、…),这样的方式可以检测丢失或丢弃的帧。每个连续的帧都从 0 开始,注意:最开始的首帧中的第一组数据将被视为第 0 个数据。所以第一组CF(连续帧)从“1”开始。之后,当它到达“15”时,它将通过重置从“0”开始。


3.4 流控制帧 (FC)

CAN-TP 协议的流控制机制用于配置发送方以匹配接收方的属性(定时、可用接收缓冲区、接收准备情况)。流控制帧 (FC) 始终由接收端发送,以便根据接收端的属性来决定发送端发送数据的方式。

图 4 CAN-TP:流控制帧格式

在 FC 中,第一个字节的 MSB 4 位定义为帧类型,LSB 4 位定义流控制标志。


流量控制标志流控制(FC)帧由接收节点发送到发送节点,用于传输流控。流控制帧包含 3 个字节,它们共同构成 CAN-TP 协议中的 PCI。第一个字节从高四位开始,值为 3,表示为流控制帧。在第一个字节的四个最低有效位中显示了一个流状态(FS),来通知分段传输是清除发送 (CTS)、等待还是溢出(Wait or Overflow.)。


第二个字节 BS 代表 Block Size,表示一个消息块中需要发送多少个连续帧。最后一个字节STmin显示要注意的连续帧之间的最小时间间隔。


ISO-TP 帧总是 8 字节长,不需要的字节用 0xAA 或 0x55 填充字节填充。

04.TP消息数据传输方式

CAN-TP协议的数据传输方式有两种:单帧数据传输和多帧数据传输。单帧数据传输(Unacknowledged Unsegmented Data Transfer)和多帧数据传输(Unacknowledged Segmented Data Transfer)。在一个 CAN 帧中,最多有 8 个数据字节的用户数据。ISO TP 消息的数据长度最大可以达到 4095 字节。如果 ISO TP 消息长度超过 8 个数据字节的数据长度,UDS消息必须分段。

图5 单帧数据传输

图6 多帧数据传输

05.CAN-TP 错误处理

5.1 时序错误

在 CAN-TP 协议中,发送端和接收端都使用定时器监控数据传输。接收端监视发送端发送连续帧所需的时间。如果这需要很长时间,则中止传输并丢弃已传输的数据。同样地,发送端监视接收端发送流控制帧的时间。如果检测到超时,则再次中止传输并且丢弃已传输的数据。帧的最大等待时间为一秒。

5.2 帧格式错误

除了时序错误之外,还必须识别帧格式中的错误。如果检测到错误的 PDU,则忽略该帧,或者如果正在传输,则取消它。帧格式中可能出现的错误是连续帧中的序列号不正确、消息长度无效、流控制帧中的流状态无效或 PDU 类型无效。除了单帧和物理寻址的首帧的非预期到达的帧总是被忽略,功能寻址的首帧、连续帧和流量控制总是被忽略。

06.例子解析

下面是一个多帧传输的实例,具体解析可参考我的文章《CanTp 模块分段传输报文消息》

STEP1:首帧:客户端 - 服务器

10 64 xx xx xx xx xx xx

STEP2:流控制帧:服务器到客户端

30 0A 14 xx xx xx xx xx

STEP3:连续帧:客户端 - 服务器

20 xx xx xx xx xx xx

21 xx xx xx xx xx xx xx

22 xx xx xx xx xx xx xx

23 xx xx xx xx xx xx xx

24 xx xx xx xx xx xx xx

25 xx xx xx xx xx xx xx

26 xx xx xx xx xx xx xx

27 xx xx xx xx xx xx xx

28 xx xx xx xx xx xx xx

29 xx xx xx xx xx xx xx

STEP4:流控制帧:服务器到客户端

30 00 14 xx xx xx xx xx

STEP5:连续帧:客户端到服务器

20 xx xx xx xx xx xx21 xx xx xx xx xx xx xx22 xx xx xx xx xx xx23 xx xx 00 00 00 00

关注公众号,点击公众号主页右上角“ ··· ”,设置星标,实时关注智能汽车电子与软件最新资讯



智能汽车电子与软件 专注于汽车电子领域的信息交融平台,涵盖汽车电子行业资讯、市场动态、技术干货、知识见解、行业趋势等资讯深度覆盖。
评论
  • 本文介绍瑞芯微RK3588主板/开发板Android12系统下,APK签名文件生成方法。触觉智能EVB3588开发板演示,搭载了瑞芯微RK3588芯片,该开发板是核心板加底板设计,音视频接口、通信接口等各类接口一应俱全,可帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。工具准备下载Keytool-ImportKeyPair工具在源码:build/target/product/security/系统初始签名文件目录中,将以下三个文件拷贝出来:platform.pem;platform.
    Industio_触觉智能 2024-12-12 10:27 101浏览
  • 时源芯微——RE超标整机定位与解决详细流程一、 初步测量与问题确认使用专业的电磁辐射测量设备,对整机的辐射发射进行精确测量。确认是否存在RE超标问题,并记录超标频段和幅度。二、电缆检查与处理若存在信号电缆:步骤一:拔掉所有信号电缆,仅保留电源线,再次测量整机的辐射发射。若测量合格:判定问题出在信号电缆上,可能是电缆的共模电流导致。逐一连接信号电缆,每次连接后测量,定位具体哪根电缆或接口导致超标。对问题电缆进行处理,如加共模扼流圈、滤波器,或优化电缆布局和屏蔽。重新连接所有电缆,再次测量
    时源芯微 2024-12-11 17:11 128浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-12 10:13 65浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-11 17:58 99浏览
  • RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。RK3506核心板主要分为三个型号,各型号间的区别如下图:​图 1  RK3506核心板处理器型号场景1:显示HMIRK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开
    万象奥科 2024-12-11 15:42 104浏览
  • 首先在gitee上打个广告:ad5d2f3b647444a88b6f7f9555fd681f.mp4 · 丙丁先生/香河英茂工作室中国 - Gitee.com丙丁先生 (mr-bingding) - Gitee.com2024年对我来说是充满挑战和机遇的一年。在这一年里,我不仅进行了多个开发板的测评,还尝试了多种不同的项目和技术。今天,我想分享一下这一年的故事,希望能给大家带来一些启发和乐趣。 年初的时候,我开始对各种开发板进行测评。从STM32WBA55CG到瑞萨、平头哥和平海的开发板,我都
    丙丁先生 2024-12-11 20:14 89浏览
  • 全球智能电视时代来临这年头若是消费者想随意地从各个通路中选购电视时,不难发现目前市场上的产品都已是具有智能联网功能的智能电视了,可以宣告智能电视的普及时代已到临!Google从2021年开始大力推广Google TV(即原Android TV的升级版),其他各大品牌商也都跟进推出搭载Google TV操作系统的机种,除了Google TV外,LG、Samsung、Panasonic等大厂牌也开发出自家的智能电视平台,可以看出各家业者都一致地看好这块大饼。智能电视的Wi-Fi连线怎么消失了?智能电
    百佳泰测试实验室 2024-12-12 17:33 101浏览
  • 一、SAE J1939协议概述SAE J1939协议是由美国汽车工程师协会(SAE,Society of Automotive Engineers)定义的一种用于重型车辆和工业设备中的通信协议,主要应用于车辆和设备之间的实时数据交换。J1939基于CAN(Controller Area Network)总线技术,使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps,用于车载电子控制单元(ECU)之间的通信和控制。小北同学在之前也对J1939协议做过扫盲科普【科普系列】SAE J
    北汇信息 2024-12-11 15:45 125浏览
  • 在智能化技术快速发展当下,图像数据的采集与处理逐渐成为自动驾驶、工业等领域的一项关键技术。高质量的图像数据采集与算法集成测试都是确保系统性能和可靠性的关键。随着技术的不断进步,对于图像数据的采集、处理和分析的需求日益增长,这不仅要求我们拥有高性能的相机硬件,还要求我们能够高效地集成和测试各种算法。我们探索了一种多源相机数据采集与算法集成测试方案,能够满足不同应用场景下对图像采集和算法测试的多样化需求,确保数据的准确性和算法的有效性。一、相机组成相机一般由镜头(Lens),图像传感器(Image
    康谋 2024-12-12 09:45 109浏览
  • 铁氧体芯片是一种基于铁氧体磁性材料制成的芯片,在通信、传感器、储能等领域有着广泛的应用。铁氧体磁性材料能够通过外加磁场调控其导电性质和反射性质,因此在信号处理和传感器技术方面有着独特的优势。以下是对半导体划片机在铁氧体划切领域应用的详细阐述: 一、半导体划片机的工作原理与特点半导体划片机是一种使用刀片或通过激光等方式高精度切割被加工物的装置,是半导体后道封测中晶圆切割和WLP切割环节的关键设备。它结合了水气电、空气静压高速主轴、精密机械传动、传感器及自动化控制等先进技术,具有高精度、高
    博捷芯划片机 2024-12-12 09:16 100浏览
  • 应用环境与极具挑战性的测试需求在服务器制造领域里,系统整合测试(System Integration Test;SIT)是确保产品质量和性能的关键步骤。随着服务器系统的复杂性不断提升,包括:多种硬件组件、操作系统、虚拟化平台以及各种应用程序和服务的整合,服务器制造商面临着更有挑战性的测试需求。这些挑战主要体现在以下五个方面:1. 硬件和软件的高度整合:现代服务器通常包括多个处理器、内存模块、储存设备和网络接口。这些硬件组件必须与操作系统及应用软件无缝整合。SIT测试可以帮助制造商确保这些不同组件
    百佳泰测试实验室 2024-12-12 17:45 101浏览
  • 天问Block和Mixly是两个不同的编程工具,分别在单片机开发和教育编程领域有各自的应用。以下是对它们的详细比较: 基本定义 天问Block:天问Block是一个基于区块链技术的数字身份验证和数据交换平台。它的目标是为用户提供一个安全、去中心化、可信任的数字身份验证和数据交换解决方案。 Mixly:Mixly是一款由北京师范大学教育学部创客教育实验室开发的图形化编程软件,旨在为初学者提供一个易于学习和使用的Arduino编程环境。 主要功能 天问Block:支持STC全系列8位单片机,32位
    丙丁先生 2024-12-11 13:15 73浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦