LIN休眠唤醒及测试心得

news2024/10/6 6:42:13

上期LIN测试小课堂,我们分享了LIN总线帧结构及各场干扰,如何测试样件是否不响应错误的帧结构。

这次我们的介绍主题是LIN休眠唤醒,一起看看标准和差异性,开发和测试的关系,实际的案例分享也来了。

一、LIN控制器休眠唤醒类型介绍

虽新架构的发展促进着通信技术的升级换代,但作为车载通信技术的常青树之一的LIN通信,由于其自身的特点,将会继续发光发热。其中LIN的休眠唤醒作为整车休眠唤醒的重要组成部分,需引起开发和测试工程师足够的重视。本文将介绍此方面的内容,LIN总线是主从结构,下面将从LIN主/从节点分别展开。

1、主节点休眠唤醒

主节点的唤醒条件在LIN协议2.1规范中定义的是被唤醒信号唤醒,但是实际应用OEM多是依据自己的需求进行开发的。

常见的几种唤醒方式如下:
1.硬线唤醒(硬线唤醒源实质就是定义唤醒线的电平变化,如传统车的KL15上电)
2.网络唤醒(网络唤醒即是网络管理报文唤醒,此处网络管理报文指的是LIN的上层网络总线(CAN/FlexRay),LIN本身不存在网络管理报文,上层网络唤醒伴随LIN网络唤醒)
3.特定信号唤醒(例:车辆使用模式信号为特定值时LIN网络才能唤醒)
在这里插入图片描述

LIN Specification Rev 2.1en

规范描述在主节点不发送帧头时,从节点应发送唤醒信号来唤醒主节点。这种唤醒必须满足两个条件:
1.从节点必须支持发送唤醒信号
2.主节点能够被唤醒信号唤醒

但是实际测试中发现,从节点一般不支持发送唤醒信号唤醒(实车测试遇到过网络唤醒休眠异常情况,排查发现为从节点阳光雨量控制器不断发送唤醒信号导致的,即取消了该控制器能发送唤醒信号的功能)。随着局部网络唤醒的应用,主节点唤醒方式大多为网络唤醒,LIN网络做成与上层网络同睡同醒的机制。

主节点休眠的最终表现形式都是发送睡眠指令,当然休眠与唤醒本就是强关联,且主节点的唤醒休眠条件多是依据OEM自身需求而定,我们就不进行展开了。

2. 从节点休眠唤醒

从节点的唤醒条件同样为接收到唤醒信号,LIN协议2.1规范中描述从节点唤醒条件可能为接收到主节点发送同步间隔场,这是LIN通信机制的缘故,从节点进行通信必须接收到主节点发送的帧头才能发送从节点响应部分,而帧头可以充当唤醒信号,从节点在接收到唤醒信号完成初始化后即可正常通信。

在这里插入图片描述

LIN Specification Rev 2.1en

规范描述从节点的两种休眠条件如下:
1.接收到睡眠指令
2.总线空闲4-10S

正是由于从节点需求的通用性,我们才能总结出各零部件供应商的实现差异点,沉淀测试经验来优化我们的测试。其中从节点最典型的测试就是休眠唤醒遍历测试,下文将对此进行详细展开。

二、休眠唤醒测试案例分享

案例1:连续仿真发送从节点响应的某帧帧头时,样件会不断重复休眠唤醒的过程

造成该现象的根本原因是该零部件供应商除了上述两种休眠条件外还增加了另外一个休眠条件:检测主节点丢失(即接收到主节点的发送报文);我们测试休眠唤醒为了避免其它帧头对测试造成影响,所以选择该从节点响应的某一帧进行休眠唤醒测试,这就造成了主节点丢失的条件,从节点会进入休眠;休眠之后又会被周期仿真的帧头唤醒,所以就出现重复休眠唤醒的现象。

检测到主节点丢失休眠条件在各节点工作正常是不会产生任何影响,但可以在LIN总线短地的条件下使样件进入休眠,防止由于LIN线短地造成样件无法休眠导致整车馈电,此是在满足标准基础上的设计优化。当然,具体的问题要依据具体设计而定,有可能总线空闲的判断逻辑覆盖了低电平时情况,未检测到电平变化就识别为总线空闲,这样就无需增加休眠条件了。

案例2:样件在接收到睡眠指令后偶发性不能进入休眠

测试用例我们一般遍历测试接收到睡眠指令后等待300-1100ms样件是否都能正常进入休眠;

造成该问题的根本原因是样件在接收到睡眠指令后有一个预休眠处理,时间为500ms(功能设计于数据保存),在预休眠期间样件不会识别任何帧头;所以只要是遍历等待时间小于500ms,依据自动脚本等待时间代码的时间叠加,就造成样件偶发不能进入休眠的现象。

由于特殊样件有特定的需求,这种情况我们就会优化我们的测试方法。同时在此基础上可以延伸出等待总线空闲临界点的休眠唤醒测试的新场景。

总而言之,测试设计以具体需求设计为基础,用以高效发现问题,以及评估设计合理性,这是一个消化吸收、总结沉淀、扩展延伸的过程,需要对设计需求有深入的理解,需要关注和了解具体的实现方法,需要在测试过程中实践和分析。

三、小结

通过上述的介绍,相信大家对LIN唤醒休眠有了一定的了解。由于LIN主节点多是OEM根据自己的需求进行开发,就没有对主节点的唤醒休眠测试进行展开;如果大家想了解常见的唤醒方式(同睡同醒),可参照AUTOSAR网络管理部分的分享内容。

北汇信息作为国内多家整车厂(吉利、长城、奇瑞捷豹路虎、一汽红旗)认证的第三方测试企业,提供CAN/CAN FD/LIN/FlexRay/车载以太网等的测试服务,欢迎垂询!


喜欢本篇文章的话记得💬评论💖点赞⭐收藏
➕更多技术文章直播课程,敬请持续关注北汇信息➕
⬇️业务咨询请私信北汇信息或在官网留言⬇️
📩📩📩

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

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

相关文章

编译原理—语义分析、语法制导翻译、翻译模式、中间代码生成

编译原理—语义分析、语法制导翻译、翻译模式、中间代码生成语法制导翻译语法制导定义(属性文法)翻译模式后缀式图示表示法构建表达式的语法树中间代码的种类三地址码四地址码对比举例中间代码产生的场景说明语句的翻译举例嵌套说明语句的翻译方案相关定义举例过程嵌套声明记录…

BDP FL-PEG5-炔丙基,2093197-93-2,BDP FL-PEG5-propargyl是一种 BDP FL 接头

BDP FL-PEG5-propargyl ​中英文名: CAS号:2093197-93-2| 英文名:BDP FL-PEG5-propargyl |中文名:BDP FL-五聚乙二醇-炔基, BDP FL-PEG5-炔丙基BDP FL-PEG5-propargyl ​物理参数: CASNumber:20…

微信小程序基础学习(5):使用 npm包、全局数据共享、分包

1. 使用 npm包 1.1 小程序对 npm 的支持与限制 目前,小程序中已经支持使用 npm 安装第三方包,从而来提高小程序的开发效率。但是,在小程序中使用 npm 包有如下 3 个限制: 不支持依赖于 Node.js 内置库的包。不支持依赖于浏览器…

查看进程信息(ps、top) + 操作后台进程(jobs、bg、fg)

目录 1、查看进程信息 (1) 查看进程快照 —— ps (2) 查看进程的动态信息 —— top (3) 查看进程的详细信息 —— /proc 2、操作后台进程 (1) 将进程转为后台 (2) 将后台进程转为前台运行 fg (3) 查看后台进程 jobs 1、查看进程信息 (1) 查看进程快照 —— ps 所谓…

Word控件Spire.Doc 【图像形状】教程(3) :在 C#/VB.NET 中的指定位置插入图像

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

【无标题】接口测试遇到的典型bug纪录

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

Java#22(内部类)

目录 一.内部类 1.什么是内部类? 2.什么时候用? 3.特点 二.成员内部类,静态内部类,局部内部类(稍微了解即可) 1.获取成员内部类对象的两种方式? 2.外部类成员变量和内部类成员变量重名时,在内部类如何访问? 2.静态内部类 3.局部内部类 三. 匿名内部类…

verdi基础操作

看波形: 1.代码里选中,再按鼠标中键拖进去 2.选中,ctrlw 3.用get signal 在波形框中,按照鼠标左键再左右移动,可以放大这一部分的波形,还有下面的功能键可以用 删除波形: 按delete或者cut掉…

如何压缩图片200k以下?

“图片过大无法上传”,“因您上传的图片大小超过限制”这样的提示大家都有遇到过吧?这就是告诉我们现在的图片需要压缩一下才能继续使用了,否则我们就无法使用当前照片了。 那有很多平台,特别是上传一些证件照的时候,要…

北京筑龙获爱分析采购数字化报告大满贯, 领跑供应链协同市场

2022年11月21日,国内领先的数字化市场研究咨询机构爱分析发布了《2022爱分析采购数字化厂商全景报告》(以下简称《报告》)。北京筑龙凭借专业的数字化技术、采购供应链数字化经验以及在政企数字化领域积累的丰富项目实践经验,成功…

微信小程序商城搭建步骤_我们来说说微信小程序商城开发的作用

比如下面我推荐的这个就有很多不错的各行业商城小程序模板,新手也能轻松搭建的那种!(见我主页) 但要想把商城小程序运营到能稳定赚钱,就需要商家结合自身的实际,去指定合适的推广策略。下面就讲讲如何实现线…

第4章 配置集成第3方log4net日志中间件

在上一章中虽然已经把第3方log4net日志中间件定义到了当前程序中,但是并没有把第3方log4net日志中间件的功能配置并集到当前程序中,即当前程序还不能通过第3方log4net日志中间件把日志数据信息持久化到指定的文件或表中,本章即将实现当前程序…

SpringBoot2.X与redis Lettuce集成踩坑

起因 最近项目上发现一个问题,redis cluster集群有一台机崩了之后,后台服务的redis会一直报错,无法连接到redis集群。通过命令查看redis集群,发现redis cluster集群是正常的,备用的slave机器已经升级为master。 于是初…

c<7>存储

目录 1&#xff0c;局部变量 1,auto 2,static 2&#xff0c;全局变量的储存类型 3,register 4,extern 作用&#xff1a; 1&#xff0c;局部变量 #include <stdio.h> int main() {int fAuto(int a);int fStatic(int a); //函数声明int a 1, i; //自动局部变…

去了家新公司,技术总监不让用 IntelliJ IDEA想离职了

最近有个小伙伴微信和我说&#xff0c;新去的一家公司&#xff0c;技术团队全部规定要用的 Eclipse 开发&#xff0c;技术总监不让用 IntelliJ IDEA&#xff0c;付费也不行&#xff0c;说想离职了&#xff0c;问我该怎么办。 首先听到这件事情的时候&#xff0c;我表示十分理解…

关于消息队列的那些事

目录为什么需要消息队列1.异步处理2.服务解耦3.流量控制消息队列1.两种模型2.基本原理3.常见问题本篇文章参考文献如下&#xff1a; 面试题&#xff1a;如何保证消息不丢失&#xff1f;处理重复消息&#xff1f;消息有序性&#xff1f;消息堆积处理&#xff1f; (qq.com) 超详…

【数据通信】具有路由 WSN 模拟器的随机方式移动(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

Yolov5的类激活图

在本教程中&#xff0c;我们将了解如何将 EigenCAM&#xff08;无梯度方法之一&#xff09;用于 YOLO5。 这是https://github.com/jacobgil/pytorch-grad-cam/blob/master/tutorials/Class Activation Maps for Object Detection With Faster RCNN.ipynb 中 适用于 YOLO5的教程…

堆排序(算法实现)

文章目录堆排序-算法实现1. 向上调整和向下调整比较2. 堆排序1. 升序2. 降序堆排序-算法实现 前面介绍了堆的基本功能实现(https://blog.csdn.net/m0_46343224/article/details/127986662)&#xff0c;了解了堆&#xff0c;这里用堆实现排序 1. 向上调整和向下调整比较 思考&a…

1. pip和conda的区别

Pip 或者 conda的时候经常被混合使用&#xff0c;这两者也通常被认为是几乎相同的&#xff0c;尽管他们的很多功能是重叠的&#xff0c;但它们的设计和使用目的不同。所以这次参考官方的解释&#xff0c;来进行如下总结和归纳&#xff1a;附上官方解释&#xff1a;conda和pip的…