目录
为什么会介绍OSI七层模型?
CAN规范与OSI模型
1、PhysicalLayer 1
2、DataLinkLayer 2
3、NetworkLayer 3 &TransportProtocolLayer 4
4、TransportProtocolLayer 4
5、SessionLayer 5 &PresentationLayer 6 &ApplicationLayer 7
为什么会介绍OSI七层模型?
好久没有更新文章了,实在是太累了最近;偶尔有时间也是想着给自己放个假思考下人生,转眼间,人生已经过去一小半了,即将变成曾经自己眼中的中年男人,然而随着年龄的增加,身体也因为这些年的加班、熬夜一直在走下坡路,逐渐的想走向躺平的状态;不过想想身上的担子,还是要继续努力,人嘛,总归要为自己的付出代价的;
以上纯属瞎扯,今天主要介绍下CAN诊断在OSI七层模型中各个layer中我们想要学习所需要的了解的协议规范吧,为什么要介绍这块呢?
以下纯属个人观点,大家感觉对的话就一起探讨下,如果感觉不对,那我也没办法了;你如果有更好的学习方法,也希望分享以下给我,我也想学习。把CAN总线或者以后大家有机会接触LIN总线、Ethernet总线等等,这些内容都是比较抽象的,而我们学习有具象的东西会更加的快速,否则学习难度将呈现指数难度增加;当我们把不容易接触到的总线协议放在了常见的OSI七层模型中之后,我们将会更加容易的去记住一些关键信息,有助于我么掌握这门知识,以及建立我们的本身的知识体系,这也是我们第一部分我个人认为对的一个答案。
CAN规范与OSI模型
今天咱们主要介绍在前装开发中使用的总线协议,也就是下图中的第二列介绍的内容。
1、PhysicalLayer 1
CAN的物理层相关的定义都是集中在ISO 11898相关的文档中,这些文档大家可以在ISO官方网站进行购买ISO – International Organization for Standardization,不过这种比较贵,我们大部分人是负担不起的;那就可以选择淘宝几块或者十几块就能解决,非常便捷;这块对应我们测试交付中的物理层测试,如果物理层测试存在疑问,可以在这里进行查找源头。不过由于这块一般是由硬件工程师和硬件测试工程师负责,作为软件出身的我有点无能为力,大家有兴趣的话可以去深入研究一下。
2、DataLinkLayer 2
数据链路层,个人感觉服务器托管网数据链路层和物理层差异并不明显,特别是是在做CAN总线的这个过程中,测试工程师一般都会把数据链路层和物理层归结服务器托管网为一个层级 — 物理层,因此如果是硬件工程师或者硬件测试工程师,就多去了解一下吧,软件测试工程师感觉没必要花费太多精力在这里,毕竟术业有专攻嘛1
3、NetworkLayer 3 &TransportProtocolLayer 4
网络层和传输层,为什么把这2个层级归为一个层级呢?这也是由于它本身的特性所决定的,这2个层级软件测试工程师接触最多的协议就属ISO 15765 – 2了,他主要定义了CANTP层的传输逻辑,当然CAN通信测试的实际上也是这块的内容,测试工作中常说的诊断协议栈和通信协议栈底层配置,就是说的这里。说道这里了,不得不提一下车载行业软件的开发流程,我们常听说的供应商一般是指车上各个ECU的供货厂家,这里面又根据不同的类型进行了分门别类;另外一种供应商是做底层协议栈的,最出名的就是大家比较熟悉的Vector、ETAS、EB;当然这三个都是全球知名的;我们国内也有:东软瑞驰、经纬恒润和普华基础软件,这些年我们国产软件也在逐步的变强,希望有朝一日我们能够超越全球,做到第一。
扯远了,第三层和第四层,作为软件测试工程我们主要关注的就是CAN的通信层测试和CAN诊断的TP层测试,这2块一定要把握好,基本没什么问题了。
4、TransportProtocolLayer 4
传输层,这里主要对应的是ISO 14229 – 2,而在这里我们常见的测试主要就是诊断服务测试,这里面包括:会话切换服务 – 10;测量读取服务 – 22;设置写入配置服务 – 2E;重启服务 – 11;线程控制服务 – 31;IO控制服务 – 2F;安全解锁服务 – 27;刷写使用的上传下载、确认等服务 – 35/36/37等等。
另外的测试就是我们常说的ID测试,包括DID、RoutineID、IOControlID等测试,这块协议层的测试将包含大量的测试用例,我们有机会可以进行一个更进一步的详细了解。
5、SessionLayer 5 &PresentationLayer 6 &ApplicationLayer 7
剩下的这3层就有点难以细说了,一般跟诊断最相关的就是,诊断功能了,一般都在这层实现,诊断协议栈一般都会预留各个功能的接口函数,功能开发工程师只需要在对应函数下填写实际的功能即可,大大的缩减了开发时间非常的方便。
好了,今天这篇文章的闲扯就到这里了,主要是作为一个介绍性文章,算是一个普及类的,如果文章有哪些说的不对,欢迎指正!!!
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 图形界面四则运算计算器(Python+PyQt5)
(1) 导入所需的库和模块。 (2) 创建一个名为`Calculator`的类,继承自`QMainWindow`。 (3) 在`Calculator`类的`__init__`方法中,调用`initUI`方法初始化界面。 (4) 在`initUI`方法中,设置窗…