车载网络测试 - UDS诊断篇 - CAN与OSI七层模型

目录

为什么会介绍OSI七层模型?

CAN规范与OSI模型

1、Physical Layer 1

2、Data Link Layer 2

3、Network Layer 3 & Transport Protocol Layer 4

4、Transport Protocol Layer 4

5、Session Layer 5 & Presentation Layer 6 & Application Layer 7


为什么会介绍OSI七层模型?

        好久没有更新文章了,实在是太累了最近;偶尔有时间也是想着给自己放个假思考下人生,转眼间,人生已经过去一小半了,即将变成曾经自己眼中的中年男人,然而随着年龄的增加,身体也因为这些年的加班、熬夜一直在走下坡路,逐渐的想走向躺平的状态;不过想想身上的担子,还是要继续努力,人嘛,总归要为自己的付出代价的;

        以上纯属瞎扯,今天主要介绍下CAN诊断在OSI七层模型中各个layer中我们想要学习所需要的了解的协议规范吧,为什么要介绍这块呢?

        以下纯属个人观点,大家感觉对的话就一起探讨下,如果感觉不对,那我也没办法了;你如果有更好的学习方法,也希望分享以下给我,我也想学习。把CAN总线或者以后大家有机会接触LIN总线、Ethernet总线等等,这些内容都是比较抽象的,而我们学习有具象的东西会更加的快速,否则学习难度将呈现指数难度增加;当我们把不容易接触到的总线协议放在了常见的OSI七层模型中之后,我们将会更加容易的去记住一些关键信息,有助于我么掌握这门知识,以及建立我们的本身的知识体系,这也是我们第一部分我个人认为对的一个答案。

CAN规范与OSI模型

        今天咱们主要介绍在前装开发中使用的总线协议,也就是下图中的第二列介绍的内容。

1、Physical Layer 1

        CAN的物理层相关的定义都是集中在ISO 11898相关的文档中,这些文档大家可以在ISO官方网站进行购买ISO - International Organization for Standardization,不过这种比较贵,我们大部分人是负担不起的;那就可以选择淘宝几块或者十几块就能解决,非常便捷;这块对应我们测试交付中的物理层测试,如果物理层测试存在疑问,可以在这里进行查找源头。不过由于这块一般是由硬件工程师和硬件测试工程师负责,作为软件出身的我有点无能为力,大家有兴趣的话可以去深入研究一下。

2、Data Link Layer 2

        数据链路层,个人感觉数据链路层和物理层差异并不明显,特别是是在做CAN总线的这个过程中,测试工程师一般都会把数据链路层和物理层归结为一个层级 -- 物理层,因此如果是硬件工程师或者硬件测试工程师,就多去了解一下吧,软件测试工程师感觉没必要花费太多精力在这里,毕竟术业有专攻嘛1

3、Network Layer 3 & Transport Protocol Layer 4

        网络层和传输层,为什么把这2个层级归为一个层级呢?这也是由于它本身的特性所决定的,这2个层级软件测试工程师接触最多的协议就属ISO 15765 - 2了,他主要定义了CANTP层的传输逻辑,当然CAN通信测试的实际上也是这块的内容,测试工作中常说的诊断协议栈和通信协议栈底层配置,就是说的这里。说道这里了,不得不提一下车载行业软件的开发流程,我们常听说的供应商一般是指车上各个ECU的供货厂家,这里面又根据不同的类型进行了分门别类;另外一种供应商是做底层协议栈的,最出名的就是大家比较熟悉的Vector、ETAS、EB;当然这三个都是全球知名的;我们国内也有:东软瑞驰、经纬恒润和普华基础软件,这些年我们国产软件也在逐步的变强,希望有朝一日我们能够超越全球,做到第一。

        扯远了,第三层和第四层,作为软件测试工程我们主要关注的就是CAN的通信层测试和CAN诊断的TP层测试,这2块一定要把握好,基本没什么问题了。

4、Transport Protocol Layer 4

        传输层,这里主要对应的是ISO 14229 - 2,而在这里我们常见的测试主要就是诊断服务测试,这里面包括:会话切换服务 - 10;测量读取服务 - 22;设置写入配置服务 - 2E;重启服务 -  11;线程控制服务 - 31;IO控制服务 - 2F;安全解锁服务 - 27;刷写使用的上传下载、确认等服务 - 35/36/37等等。

        另外的测试就是我们常说的ID测试,包括DID、Routine ID、IO Control ID等测试,这块协议层的测试将包含大量的测试用例,我们有机会可以进行一个更进一步的详细了解。

5、Session Layer 5 & Presentation Layer 6 & Application Layer 7

        剩下的这3层就有点难以细说了,一般跟诊断最相关的就是,诊断功能了,一般都在这层实现,诊断协议栈一般都会预留各个功能的接口函数,功能开发工程师只需要在对应函数下填写实际的功能即可,大大的缩减了开发时间非常的方便。

        好了,今天这篇文章的闲扯就到这里了,主要是作为一个介绍性文章,算是一个普及类的,如果文章有哪些说的不对,欢迎指正!!!

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0基础学习PyFlink——使用DataStream进行字数统计

大纲 sourceMapSplittingMapping ReduceKeyingReducing 完整代码结构参考资料 在《0基础学习PyFlink——模拟Hadoop流程》一文中,我们看到Hadoop在处理大数据时的MapReduce过程。 本节介绍的DataStream API,则使用了类似的结构。 source 为了方便&…

深度学习之基于YoloV5火灾烟雾报警系统(GUI界面)

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、火灾烟雾报警系统四. 总结 一项目简介 YoloV5 是深度学习中用于目标检测的一种算法,可以对输入的图像进行识别,标识出…

【计算机网络笔记】传输层——可靠数据传输之流水线机制与滑动窗口协议

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

Linux的账号管理

本章的学习感觉如果不做系统管理员,作为简单了解就可以了 前面介绍了,用户,组,other三个角色, 每个用户创建都会有uid与之对应,创建的用户基本信息在一下两个文件中,也是我们要介绍的内容&…

【webrtc】 对视频质量的码率控制的测试与探索

目录 环境设置 transport-cc goog-remb (webrtc中的两种码率算法) 修改成remb算法 测试 效果 后续 可参考工程 环境设置 要到meshx上操作 telnet 112 然后执行factory_env show |grep meshx_ip 之后telnet meshx_ip 用户名admin 密码****.119 执行一下r…

Python自动化运维监控——批量监听页面发邮件(自由配置ini文件+smtplib)

一、程序样式 1.listen.ini配置文件 2.监控页面 3.日志 二、核心点 smtplib库:这里使用了smtp.qq.com与smtp.163.com两个发送邮件的地址,使用邮箱用户名与授权码来实现登录,端口都使用465,最后抛出异常,finally里…

计算机网络与技术——数据链路层

😊计算机网络与技术——数据链路层 🚀前言☃️基本概念🥏封装成帧🥏透明传输🥏差错检测 ☃️点对点协议PPP🥏PPP协议的特点🥏PPP协议的帧格式🔍PPP异步传输时透明传输(字…

Linux纯C串口开发

为什么要用纯C语言 为了数据流动加速,实现低配CPU建立高速数据流而不用CPU干预,避免串口数据流多次反复上升到软件应用层又下降低到硬件协议层。 关于termios.h 麻烦的是,在 Linux 中使用串口并不是一件最简单的事情。在处理 termios.h 标头…

Vue入门——核心知识点

简介 Vue是一套用于构建用户界面的渐进式JS框架。 构建用户界面:就是将后端返回来的数据以不同的形式(例如:列表、按钮等)显示在界面上。渐进式:就是可以按需加载各种库。简单的应用只需要一个核心库即可,复杂的应用可以按照需求…

Golang Gin 接口返回 Excel 文件

文章目录 1.Web 页面导出数据到文件由后台实现还是前端实现?2.Golang Excel 库选型3.后台实现示例4.xlsx 库的问题5.小结参考文献 1.Web 页面导出数据到文件由后台实现还是前端实现? Web 页面导出表数据到 Excel(或其他格式)可以…

【算法挑战】设计一个支持增量操作的栈(含解析、源码)

1381.设计一个支持增量操作的栈 https://leetcode-cn.com/problems/design-a-stack-with-increment-operation/ 1381.设计一个支持增量操作的栈 题目描述方法 1: 用数组或链表模拟栈 数组复杂度分析链表复杂度分析代码 方法 2: 空间换时间 图解复杂度分析代码 题目描述 请…

与云栖的浪漫邂逅:记一段寻找云端之美的旅程

云端之旅 2023 年的云栖大会如约而至,这次云栖大会也是阿里新任掌门蔡老板当任阿里巴巴董事局主席以来的第一次。大会与以往有很多不一样的地方,其中 AIGC 更是本届大会的重点议题!你会感叹,阿里还是猛啊! 我逛了下展…

算法学习打卡day40|343. 整数拆分、96.不同的二叉搜索树

343. 整数拆分 力扣题目链接 题目描述: 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n 2 输出: 1 解释: 2 1 …

一条 SQL 是如何在 MyBatis 中执行的

前言 MyBatis 执行 SQL 的核心接口为 SqlSession 接口,该接口提供了一些 CURD 及控制事务的方法,另外还可以通过 SqlSession 先获取 Mapper 接口的实例,然后通过 Mapper 接口执行 SQL,Mapper 接口方法的执行最终还是委托到 SqlSe…

Unity屏幕中涂鸦

LineRenderer LineRenderer是Unity中的一个组件,用于在场景中绘制简单的线段。 LineRenderer组件允许你通过设置一系列顶点来定义线段的形状和外观。它会根据这些顶点自动在场景中绘制出线段。 下面是LineRenderer的一些重要属性和方法: positionCou…

栈及其栈的模拟实现和使用

1. 栈(Stack) 1.1 概念 栈 :一种特殊的线性表,其 只允许在固定的一端进行插入和删除元素操作 。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO ( Last In First Out )的原则…

初识FFmpeg

前言 无意间见到群里的小伙伴展示视频工具。功能比较多,包括视频编码修改,画质处理,比例处理、名称提取,剪辑、标题拆解。因此开始了FFmpeg学习。以下摘自百度百科的解释。 FFmpeg是一套可以用来记录、转换数字音频、视频&#xf…

【Proteus仿真】【Arduino单片机】简易电子琴

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用无源蜂鸣器、按键等。 主要功能: 系统运行后,按下K1-K7键发出不同音调。 二、软件设计 /* 作者:嗨小易&a…

视频平台跨网级联视频压缩解决方案

一、 简介 视频监控领域对带宽有着较大的需求,这是因为视频流需要实时占用网络带宽资源。视频监控的传输带宽是组网结构的基础保障,关系到视频监控的稳定性、可靠性和可拓展性等因素。例如,720P的视频格式每路摄像头的比特率为2Mbps&#xff…

【机器学习合集】模型设计之网络宽度和深度设计 ->(个人学习记录笔记)

文章目录 网络宽度和深度设计1. 什么是网络深度1.1 为什么需要更深的模型浅层学习的缺陷深度网络更好拟合特征学习更加简单 2. 基于深度的模型设计2.1 AlexNet2.2 AlexNet工程技巧2.3 VGGNet 3. 什么是网络宽度3.1 为什么需要足够的宽度 4. 基于宽度模型的设计4.1 经典模型的宽…