UDS诊断网络层ISO15765-2(CAN)

news2025/1/14 0:56:03

诊断协议那些事儿

本文为诊断协议那些事儿专栏文章,从一个 ECU 到另一个 ECU,或外部诊断设备和一个 ECU 之间的通信,不仅依赖前文介绍的诊断寻址方式,更需要关注数据的传输,依赖网络层、传输层协议去完成,特别是要传输的数据超过了单个CAN 帧的长度,则需要提供拆包、组包的方法。

关联文章:
UDS的OSI模型
ISO14229各Part介绍:第三部分:CAN实施的统一诊断服务(UDSonCAN)
诊断寻址方式


文章目录

  • 诊断协议那些事儿
  • 一、网络层功能
  • 二、帧类型
    • ①单帧报文传输:
    • ②多帧报文传输:
  • 三、N_PCI结构
    • N_PCIType值的定义
    • 诊断消息流示例
  • 四、流控帧参数
    • FS含义:发送方否可以继续传输消息
    • BS含义:在授权继续发送其余的 N_PDU 下,接收方允许发送方发送最大的 N_PDU 个数。
    • STmin含义:表示发送方发送的两个连续帧之间的最小时间间隔。
  • 五、连续帧参数
    • SN:连续帧的序列号
  • 总结


一、网络层功能

网络层协议协议有如下功能:
①应用层诊断服务数据——CAN数据帧
②将数据从发送方传递给接收方
③多帧数据传输:发送/接收最多 4095 个字节的数据信息
④错误处理/时间管理:保证数据传输的可靠性
⑤报告发送/接收完成状态。
net

二、帧类型

基于CAN总线实现的UDS协议,诊断帧有两种不同的分类方式,按照寻址方式可以分为物理寻址、功能寻址,按照帧类型可以分为单帧、首帧、流控帧、连续帧。
下图为举例总线上各个ECU以及诊断设备的寻址ID:
fun
对于帧的类型,通过需要发送的数据长度来确定。在正常寻址模式下,当数据长度小于等于7byte,则用单帧的形式发送,当数据长度大于7byte,数据需要分多帧才能发送完成,则需要使用到首帧、流控帧、连续帧,不同帧的机制如下图所示:

①单帧报文传输:

单帧
(扩展及混合地址情况下)最多发送6字节或(正常地址情况下)7 字节数据,按照 N_PDU 格式发送信息,称为单帧(SF)。

②多帧报文传输:

多帧
首帧是指发送的第一帧,目的是把前7byte数据发送给接收方,并告知接收方数据没有发完,然后接收方会回一帧流控帧,告知发送方是否可以接着发送,并且告知接收方一次最多能接收的数据量,以及发送方接下来发送的数据帧(连续帧)之间的时间间隔要求。

三、N_PCI结构

N_PCI:Network_Protocol Control Information
SF:SignalFrame
FF:FirstFrame
CF:ConsecutiveFrame
FC:FlowControl
N_PCI

N_PCIType值的定义

N_PCIType

诊断消息流示例

msg

四、流控帧参数

FS含义:发送方否可以继续传输消息

0 :FC.CTS(继续发送)。让发送方继续发送接下来的连续帧,表示接收方已经准备好了接收最大为BS数量的连续帧。
1 :FC.WAIT(等待)。发送方等待下一帧流控帧并重置自己的计时。一般用于接收方没有处理完上一次接收到的连续帧。
2 :FC.OVFLW(缓存溢出)。发送方打算发送的数据长度超过了接收方的储存能力。用于指示拆分数据的首帧中字节个数信息超过了接收者可存储的信息总量。

BS含义:在授权继续发送其余的 N_PDU 下,接收方允许发送方发送最大的 N_PDU 个数。

1~FF:表示发送方在发送BS数值的连续帧之后,需要等待接收方的流控帧。
0:表示不需要任何流控帧,直接发送全部数据。

STmin含义:表示发送方发送的两个连续帧之间的最小时间间隔。

00 ~ 7F单位为ms;F1 ~ F9表示0.1~0.9ms;
0表示按照发送方最快的速度发送。
STmin

五、连续帧参数

SN:连续帧的序列号

CF N_PDU 中参数 SN 用以说明连续帧的顺序。
SN
注:
①第一个流控帧编号(SN)后的连续帧设置为 1;
②连续帧编号(SN)的值不受流控帧的影响;
③当连续帧编号(SN)到达值 15 时,它在下一个连续帧中重置为 0;


总结

以上就是今天要讲的内容,后续将针对实际项目开发过程中遇到的问题进一步深入展开,欢迎读者关注、点赞,并提供宝贵意见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/19329.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]java毕业设计社团管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

2022.11.09第6次Javaweb上机——实现登录欢迎页面

前情回顾 Myeclipse的安装教程_科大云炬的博客-CSDN博客 【JavaWeb第1次上机练习】安装Tomcat并在本地浏览器成功运行第一个Hello world网站_科大云炬的博客-CSDN博客 【第2次JavaWeb上机练习】_科大云炬的博客-CSDN博客 第3次 JavaWeb上机练习:Servlet基础作业…

python工作任务流flow实时框架:prefect

python工作任务流flow实时框架:prefect prefect是一个python的工作任务流调度实时框架,prefect可以快速构建平台系统复杂模块间工作流的监测。当平台系统模块之间的调用链越来越复杂时候,任务执行起来,已经很难盘点清楚程序逻辑和…

删除链表中重复元素的问题

目录 一、删除所有重复元素,使每个元素只出现一次 1.1带头链表解法 1.2 递归方法 二、删除所有重复数字结点,只留下不同数字 2.1带头链表解法 2.2 递归方法 一、删除所有重复元素,使每个元素只出现一次 给定一个已排序的链表的头 hea…

Android App开发实战项目之模仿美图秀秀的抠图工具(附源码 简单易懂 可直接使用)

需要图片集和源码请点赞关注收藏后评论区留言~~~ 所谓抠图神器,就是从一副图片中扣出用户想要的某块区域 一、需求描述 美图的修图功能如此强大,离不开专业的图片加工技术,抠图便是其中重要的一项功能。在App界面底部点击抠图按钮&#xff…

mysql查询:行转列与列转行

目录 1. 行转列 1.1 什么是行转列 1.2 准备工作 1.3 行转列的实现原理 2. 列转行 2.1 什么是列转行 2.2 准备工作 2.3 列转行的实现原理 3. 总结 1. 行转列 1.1 什么是行转列 从表面理解,就是表里存储在行上的数据,在查询结果里展示在列上面。举…

基于stm32单片机随机数自动摇号抽奖系统

资料编号:099 下面是相关功能视频演示: 99-基于stm32单片机随机数自动摇号抽奖系统(源码仿真全套资料)采用stm32单片机作为主控,LCD1602显示,通过按键来重置生成随机数,类似于摇号和抽奖系统 …

如何实现广义的元交易(Meta Transaction)

在合约内启用元交易是一个强大的补充。要求用户持有ETH来支付Gas一直以来都是而且仍然是新用户进入的最大挑战之一。如果只是简单的点击,谁知道现在会有多少人在使用以太坊? 但有时,解决方案可以在你的合约中加入元交易能力。实现起来可能比你想象的要容易。 什么是元交易?…

(带你分分种学会linux的文件类型和软硬链接)linxu的文件类型(硬链接和软链接详解)

文章目录一,时区部分1,时区状态的展示2,列出所有时区二,linux的文件类型1,列出目录和文件类型2,查看文件类型和状态并且修改用户密码3,文件类型表4,文件的三次修改时间三,linux的软硬…

记录Manjaro Linux安装nvidia显卡驱动失败的经历

我的Manjaro: 2022.11.19的最新系统,通过manjaro-kde-21.3.7-220816-linux515.iso安装,然后通过pacman -Syyu更新的我的设备: CPU intel 12700H,大小核架构,使用系统默认的linux5.15内核会发现启动firefox浏览器的速度…

LeetCode 142. 环形链表 II

题目链接:https://leetcode.cn/problems/linked-list-cycle-ii/ 思路如下: 用两个指针 fast, slow 同时从起点开始走,fast 每次走两步,slow 每次走一步。 如果过程中 fast 走到 null,则说明不存在环。否则当 fast 和…

基于Python3.6配置开发环境

前言 最近在CTF上遇到了瓶颈,本人不会python,导致有些题做不出来。而且python的实用性实在太强了,所以就找了一个培训机构的课程边学习边实践。现将经验总结,分享给大家。 正文 1、配置python安装路径和环境变量 怎么下载pyth…

【Acwing】最短路+二分 通信线路

340. 通信线路 - AcWing题库 题意: 思路: 首先因为贪心,免费升级的肯定是最贵的那几根 因此这道题可以简化为: 给定一张图,求结点1到结点N的所有路径中第K1大的边权的最小值 可以发现我们要求剩下的边中最大值的最…

Qt程序打包成安装包exe

本章介绍把Qt开发的程序打包成安装包的方法,程序打包成install.exe,可双击安装,有默认安装路径,也可以选择安装目录,自动生成桌面快捷方式和开始菜单选项,可以在操作系统–>设置–>应用程序里看到&am…

【响应式布局】使用 flexbox 实现简单响应式布局

场景和需求 屏幕 > 540px&#xff0c;前两个部分展示两列&#xff0c;屏幕 < 540px&#xff0c;前两个部分展示一列屏幕 < 540px&#xff0c;第一部分要反转展示屏幕 > 769px&#xff0c;第三个部分展示三列屏幕 < 769px&#xff0c;第三个部分展示一列 效果图…

java计算机毕业设计自习室管理系统(附源码、数据库)

java计算机毕业设计自习室管理系统&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…

java进阶编程思想(七天)

编程核心思想基本框架第一天&#xff08;继承&#xff09;第二天&#xff08;抽象和接口&#xff09;第四天&#xff08;多态、DATA、Object、正则&#xff09;第五天&#xff08;遍历、Set、斗地主游戏案例&#xff09;第六天第七天b站链接:懂不懂我意思明不明白哈哈哈基本框架…

声明式事务@Transactional

事务 事务管理在 Web 系统开发中是非常重要的&#xff0c;可以在一定程度上保证数据的一致性。Spring提供了非常优秀的事务管理机制&#xff0c;主要分为&#xff1a; 编程式事务声明式事务 编程式事物 在代码中手动的管理事务的提交、回滚等操作&#xff0c;代码侵入性比较…

【毕业设计】66-基于物联网技术的智能家居系统的研究(仿真工程、原理图、低重复率设计文档、答辩PPT)

【毕业设计】66-基于物联网技术的智能家居系统的研究&#xff08;仿真工程、原理图、低重复率设计文档、答辩PPT&#xff09; 文章目录【毕业设计】66-基于物联网技术的智能家居系统的研究&#xff08;仿真工程、原理图、低重复率设计文档、答辩PPT&#xff09;资料下载链接任务…

代码随想录算法训练营第58、59天 | 739. 每日温度 496.下一个更大元素 I 503.下一个更大元素II 42. 接雨水

代码随想录系列文章目录 单调栈篇 文章目录代码随想录系列文章目录739. 每日温度496.下一个更大元素 I503.下一个更大元素II42.接雨水双指针解法dp解法单调栈解法单调栈具体的处理逻辑739. 每日温度 题目链接 暴力解法&#xff0c;双指针&#xff0c;超时, 因为数据长度是100…