当前位置: 首页 > news >正文

AUTOSARCAN-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。这些时间参数在传输过程的对应关系如图所示

相关文章:

AUTOSARCAN-Tp协议

目录 一.单帧、首帧、连续帧、流控帧 单帧传输 SF单帧: 多帧传输 FF(首帧): CF(连续帧): FC(流控帧): 一.单帧、首帧、连续帧、流控帧 CAN诊断由发送端…...

【设计模式】组合模式实现部门树实践

1.前言 几乎在每一个系统的开发过程中,都会遇到一些树状结构的开发需求,例如:组织机构树,部门树,菜单树等。只要是需要开发这种树状结构的需求,我们都可以使用组合模式来完成。 本篇将结合组合模式与Mysq…...

恒林家居引入纷享销客CRM系统,领跑家居行业营销数字化进程

近日,恒林家居股份有限公司((股票代码:603661以下简称为“恒林家居”)携手纷享销客在湖州召开了CRM项目启动会。双方领导及核心项目人员齐聚一堂,展开了深度交流并达成了重要共识。 作为家居行业的领军企业…...

多线程-锁的种类

1 作用 Java中的锁主要用于保障多并发线程情况下数据的一致性。在多线程编程中为了保障数据的一致性,我们通常需要在使用对象或者方法之前加锁,这时如果有其他线程也需要使用该对象或者该方法,则首先要获得锁,如果某个线程发现锁正在被其他线程使用,就会…...

Hive 和 HDFS、MySQL 之间的关系

文章目录 HiveHDFSMySQL三者的关系 Hive、MySQL 和 HDFS 是三个不同的数据存储和处理系统,它们在大数据生态系统中扮演不同的角色,但可以协同工作以支持数据管理和分析任务。 Hive Hive 是一个基于 Hadoop 生态系统的数据仓库工具,用于管理和…...

【面试题】如何实现数组去重的?有几种方式?

前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 【国庆头像】- 国庆爱国 程序员头像!总有一款适合你! 1. 方法一:利用两层循环数组的splice方法 通过两层循环对数组…...

使用TCP方式拉取Canal数据

1 Canal对接Kafka联调 1.1 配置修改 canal.properties 修改 zk: canal.zkServers 10.51.50.219:2181instance.properties 开启配置项: canal.mq.dynamicTopic 是 Canal 的 MQ 动态 Topic 配置项: test_javaedge_01 是kafka 的 topicte…...

Docker安装mysql实战说明

安装前准备 在安装MySQL之前,你需要确保已经正确安装和配置了Docker,可以通过以下命令检查Docker是否已正确安装: docker --version如果Docker已经成功安装,你将看到Docker的版本信息。 下载mysql的镜像 Docker Hub是一个存储…...

前端DOM操作精解:基础概念、方法与最佳实践

引言 本文将深入探讨前端开发中的DOM操作,包括基础概念、常用方法和最佳实践。通过清晰易懂的解释和实际案例分析,我们将一起了解如何最有效地使用DOM操作来提升前端应用的用户体验。 一、DOM操作入门 在深入探讨DOM操作之前,我们先要理解…...

python sorted函数详解2023.9.11

sorted函数详解 1. 输入和输出2. key传入函数 1. 输入和输出 help(sorted) Help on built-in function sorted in module builtins: sorted(iterable, /, *, keyNone, reverseFalse)Return a new list containing all items from the iterable in ascending order.A custom k…...

Spring Reactive:响应式编程与WebFlux的深度探索

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...

Qt应用开发(基础篇)——工具按钮类 QToolButton

一、前言 QToolButton类继承于QAbstractButton,该部件为命令或选项提供了一个快速访问按钮,通常用于QToolBar中。 按钮基类 QAbstractButton QToolButton是一个特殊的按钮,一般显示文本,只显示图标,结合toolBar使用。它…...

【数据结构面试题】栈与队列的相互实现

目录 1.队列实现栈 1.1创建栈 1.2判断是否为空 1.3入栈 1.4出栈 1.5获取栈顶元素 1.6完整代码 2. 用栈实现队列 2.1创建队列 2.2判断是否为空 2.3入队列 2.4出队列 2.5获取队头元素 2.6完整代码 1.队列实现栈 用队列实现栈https://leetcode.cn/problems/impleme…...

华为认证和红帽认证哪个比较好考呢

华为认证和红帽认证的考试难度、学习内容、适用范围等方面都有所不同,因此哪个比较好考要视具体情况而定: 考试难度:红帽认证的考试难度较高,需要考生具备较高的技术水平和实践经验;而华为认证则更注重基础知识的考察…...

[Java]_[中级]_[使用okhttp3和HttpClient代理访问外部网络]

场景 Java的http库常用的有HttpClient和Okhttp3, 如果公司有限制网络访问&#xff0c;需要代理才可以访问外网&#xff0c;那么如何使用代理Proxy&#xff1f; <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient<…...

ubuntu 20.04 docker 安装 mysql

要在Ubuntu 20.04上安装Docker并运行MySQL容器&#xff0c;您可以按照以下步骤操作&#xff1a; 1.更新系统包列表&#xff1a; sudo apt update2.安装Docker&#xff1a; sudo apt install docker.io3.启动Docker服务并设置其开机自启动&#xff1a; sudo systemctl start…...

C++在C语言基础上的优化

目录 一、命名空间 1、命名空间的定义 2、命名空间的使用 二、输入&输出 三、缺省参数 1、缺省参数的概念 2、缺省参数的分类 四、函数重载 五、引用 1.引用的概念 2.引用的特性 3、引用和指针的区别 六、内联函数 七、基于范围的for循环 一、命名空间 命名空…...

分享一个python实验室设备预约管理系统 实验室设备维修系统源码 lw 调试

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…...

兵者多诡(HCTF2016)

环境:https://github.com/MartinxMax/CTFer_Zero_one 题目简介 解题过程 登录首页 提交png图片上传抓包&#xff0c;可以看到是向upload文件提交数据 在fp参数中尝试伪协议读取home.php文件 http://127.0.0.1:88/HCTF2016-LFI/home.php?fpphp://filter/readconvert.base64…...

【JAVA-Day04】Java关键字和示例:深入了解常用关键字的用法

Java关键字和示例&#xff1a;深入了解常用关键字的用法 摘要Java 关键字、标识符和命名规范一、Java 关键字常用关键字DEMO1. 示例代码使用 if 和 else 关键字&#xff1a;2. 示例代码使用 for 循环&#xff1a;3. 示例代码使用 switch 关键字&#xff1a;4. 示例代码使用 wh…...

Minica 源码解读:深入理解证书生成的核心算法

Minica 源码解读&#xff1a;深入理解证书生成的核心算法 【免费下载链接】minica minica is a small, simple CA intended for use in situations where the CA operator also operates each host where a certificate will be used. 项目地址: https://gitcode.com/gh_mirr…...

LingBot-Depth实操手册:Gradio API返回JSON结构解析与字段含义

LingBot-Depth实操手册&#xff1a;Gradio API返回JSON结构解析与字段含义 1. 引言&#xff1a;为什么需要了解API返回结构 当你使用LingBot-Depth处理深度图像时&#xff0c;最让人困惑的可能就是API返回的那一串JSON数据。这些数据到底代表什么&#xff1f;每个字段有什么含…...

Phi-3-mini-128k-instruct实战案例:中小企业技术文档自动解析与结构化提取

Phi-3-mini-128k-instruct实战案例&#xff1a;中小企业技术文档自动解析与结构化提取 1. 项目背景与价值 对于中小企业而言&#xff0c;技术文档管理一直是个令人头疼的问题。工程师们经常需要从大量PDF、Word文档中提取关键信息&#xff0c;手动整理成结构化数据。这个过程…...

从CCD到CMOS:HDR成像技术20年发展史与未来趋势

从CCD到CMOS&#xff1a;HDR成像技术20年演进与实战解析 在摄影器材展上&#xff0c;一位资深摄影师正用指尖轻抚不同年代的相机传感器——从2003年尼康D2H的CCD模块到2023年索尼A7RV的背照式CMOS&#xff0c;这个动作恰好勾勒出HDR技术演进的二十年轨迹。动态范围&#xff08;…...

Qwen3-4B-Instruct-2507从入门到精通:Chainlit界面定制化教程

Qwen3-4B-Instruct-2507从入门到精通&#xff1a;Chainlit界面定制化教程 1. 引言&#xff1a;为什么选择Qwen3-4B-Instruct-2507&#xff1f; 如果你正在寻找一个既强大又轻量、既能快速部署又能灵活定制界面的AI模型&#xff0c;那么Qwen3-4B-Instruct-2507绝对值得你深入了…...

降AIGC哪家强?2026零成本保姆级教程:DeepSeek/Kimi/豆包专属降重指令实测与差异解析

很多时候大学生写论文逻辑太严谨、话术太规范&#xff0c;反而会导致AI率过高&#xff0c;且一旦AI率过高&#xff0c;轻则退回重改&#xff0c;重则取消答辩资格&#xff0c;这后果谁都担不起。 为了帮大家有效降低aigc率&#xff0c;这周我专门针对目前市面上最主流的三款大…...

GEO 优化系统实战指南:从架构设计到算法落地

1. GEO优化系统架构设计实战 第一次接触GEO优化系统时&#xff0c;我被各种空间计算概念搞得晕头转向。直到真正动手搭建系统才发现&#xff0c;架构设计就像搭积木&#xff0c;只要掌握关键模块的组装逻辑&#xff0c;就能构建出稳定高效的地理优化引擎。下面分享我在多个项目…...

SPIRAN ART SUMMONER优化指南:如何调整参数让生成的图片更符合预期

SPIRAN ART SUMMONER优化指南&#xff1a;如何调整参数让生成的图片更符合预期 1. 理解SPIRAN ART SUMMONER的核心参数 SPIRAN ART SUMMONER作为一款基于Flux.1-Dev模型的图像生成工具&#xff0c;其参数设置直接影响最终输出效果。与普通AI绘画工具不同&#xff0c;它融入了…...

Nuxt4 官网访问来源统计的实现

今天我遇到一个值得记录的问题&#xff0c;场景是这样的&#xff1a;官网后台需要做访问统计&#xff0c;我得把访问来源和访问目标的 URL 传递给后端。绕了好一阵子&#xff0c;才终于理清楚。 项目结构上&#xff0c;Nuxt 4 负责官网展示&#xff0c;后端是 Java 服务。核心…...

在WSL2 Ubuntu 22.04上搞定RK3568 SDK编译:我遇到的8个坑和填坑方法

在WSL2 Ubuntu 22.04上搞定RK3568 SDK编译&#xff1a;我遇到的8个坑和填坑方法 作为一名长期在Windows环境下工作的嵌入式开发者&#xff0c;第一次尝试在WSL2中编译RK3568 SDK的经历简直像是一场噩梦。从环境配置到最终构建成功&#xff0c;我踩遍了几乎所有可能的坑。这篇文…...