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, 如果公司有限制网络访问,需要代理才可以访问外网,那么如何使用代理Proxy? <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient<…...
ubuntu 20.04 docker 安装 mysql
要在Ubuntu 20.04上安装Docker并运行MySQL容器,您可以按照以下步骤操作: 1.更新系统包列表: sudo apt update2.安装Docker: sudo apt install docker.io3.启动Docker服务并设置其开机自启动: sudo systemctl start…...
C++在C语言基础上的优化
目录 一、命名空间 1、命名空间的定义 2、命名空间的使用 二、输入&输出 三、缺省参数 1、缺省参数的概念 2、缺省参数的分类 四、函数重载 五、引用 1.引用的概念 2.引用的特性 3、引用和指针的区别 六、内联函数 七、基于范围的for循环 一、命名空间 命名空…...
分享一个python实验室设备预约管理系统 实验室设备维修系统源码 lw 调试
💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…...
兵者多诡(HCTF2016)
环境:https://github.com/MartinxMax/CTFer_Zero_one 题目简介 解题过程 登录首页 提交png图片上传抓包,可以看到是向upload文件提交数据 在fp参数中尝试伪协议读取home.php文件 http://127.0.0.1:88/HCTF2016-LFI/home.php?fpphp://filter/readconvert.base64…...
【JAVA-Day04】Java关键字和示例:深入了解常用关键字的用法
Java关键字和示例:深入了解常用关键字的用法 摘要Java 关键字、标识符和命名规范一、Java 关键字常用关键字DEMO1. 示例代码使用 if 和 else 关键字:2. 示例代码使用 for 循环:3. 示例代码使用 switch 关键字:4. 示例代码使用 wh…...
Android请求网络报错:not permitted by network security policy
一、错误记录 https的接口请求正常的, 请求http的接口时报错:not permitted by network security policy 二、问题分析 原因: 由于 Android P(版本27以上) 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。如果当…...
python报错:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1
python报错:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1 问题分析 说明:requests包引入了urllib3,而新版本的urllib3 需要OpenSSL 1.1.1以上版本,否则报错: ImportError: urllib3 v2.0 only supports Ope…...
如何使用adb command来设置cpu频率和核数
透過ADB Shell設定CPU開核與freq的command與用法如下: # Disable PPM echo 0 > /proc/ppm/enabled # Enable PPM (Default) echo 1 > /proc/ppm/enabled echo 0 > /proc/ppm/enabled Fixed # Core for each cluster echo X Y > /proc/ppm/policy/ut_fix_core_num …...
236. 二叉树的最近公共祖先
236. 二叉树的最近公共祖先 题目-中等难度示例1. dfs 题目-中等难度 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p…...
Git常见问题:git pull 和 git pull --rebase二者区别
git pull 和 git pull --rebase 都是从远程仓库获取最新的更改并将其合并到本地分支。但它们之间的区别在于合并方式。以下是它们之间的主要区别: git pull: 当你执行 git pull 时,Git 会执行以下两个操作: git fetchÿ…...
关于HarmonyOS元服务的主题演讲与合作签约
一、感言 坚持中,总会有很多意想不到的收获。 前几次参与HDC时更多的是观众、开发者、专家的身份,以参观、学习、交流为主。 通过几年的努力,和HarmonyOS功能成长,在2023年的HDC大会中,有了我的演讲,并带领…...
cache 学习
好文章: Cache的基本原理 - 知乎...
SSM - Springboot - MyBatis-Plus 全栈体系(六)
第二章 SpringFramework 四、SpringIoC 实践和应用 3. 基于 注解 方式管理 Bean 3.1 实验一:Bean 注解标记和扫描 (IoC) 3.1.1 注解理解 和 XML 配置文件一样,注解本身并不能执行,注解本身仅仅只是做一个标记,具体的功能是框…...
【Flutter】引入网络图片时,提示:Failed host lookup: ‘[图片host]‘
在使用 NetworkImage 组件加载外部图片时,提示 Failed host lookup: [图片host] 错误。 排查方向 1、清理缓存 解决方案: 尝试flutter clean清空缓存后重新安装依赖flutter pub get重新构建项目flutter create . 走完上述三个步骤后,再次…...
Python基础教程:索引和切片
前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 索引(下标) 索引又称下标,用来表示可迭代对象中的某个元素的位置。 用正整数表示的索引值,从左向右定位,从 0 开始计数,如 0,1&#…...
客户关系管理的定义/网站seo思路
http://blog.csdn.net/libing403/article/details/73158972我们要讨论3个问题:fseek()和ftell()函数的工作原理、如何使用二进制流、如何让程序可移植。fseek()与ftell()的工作原理头文件:#include定义函数:intfseek(FILE * stream, long off…...
自己做的网站可以上架烟吗/网络推广运营优化
在使用TeamFoundation进行团队管理开发时,遇到一个问题。 问题描述:在团队项目门户网站中,使用日历栏时,可以进入到日期界面,当点进某一天想要填写日志时,报网页错误。当用管理员账户进入门户网中ÿ…...
免费的网站推广 外贸/网络优化的三个方法
php Undefined index和Undefined variable的解决方法$act$_POST[act];用以上代码总是提示Notice: Undefined index: act in F:\windsflybook\post.php on line 18另外,有时还会出现引用内容Notice: Undefined variable: Submit ......等一些这样的提示原因ÿ…...
网站建设售后支持/ui培训
做软件兼容性测试主要考虑以下问题: 1、与操作系统的兼容性 如果一个软件可以在多种操作系统上运行,需要测试它在同一操作系统平台的不同版本上的兼容性。 2、与数据库的兼容性 如果软件需要支持不同的数据库,通常需要针对不同的数据库产…...
网站如何兼容大多浏览器/国际新闻大事
环境:win10,64位 进入下载:微软官网downlord 注意:64位系统要同时安装x86和x64才可以,arm无需下载...
网站页面建设规划文案/2021谷歌搜索入口
如果是评估版本,则需要先把评估版本升级为正式版本,才能正确的使用。 1.管理员模式运行cmd,输入命令:DISM /online /Get-CurrentEdition,得到结果: 部署映像服务和管理工具 版本: 10.0.14393.0 映像版本: 10.0.14393.0 当前版本为…...