自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 汽车底盘域的学习笔记

底盘域分为。

2024-04-26 23:26:36 275

原创 CAN帧填充会不会影响帧ID仲裁?

可以看到帧1实际发送到总线上的是,13bit。需要注意这里的插入,是指增加了1bit,数据原有的bit不会被覆盖,一定要注意。帧1 ID = 显显显显显(此处必须插入1bit隐)隐隐隐隐隐(此处必须插入1bit显)显。可以看出,实际上填充位也参与仲裁,上面填充位参与仲裁了之后,进入下一位仲裁,此时帧1胜出。如果帧1帧2同时发送,则 仲裁到 第三位时,帧2胜出,获得发送权。帧1 ID = 显显显显显(此处必须插入1bit隐)显隐隐隐隐显。帧1 ID = 显显显显显(此处必须插入1bit隐)隐隐隐隐显显。

2024-04-17 11:06:48 148

原创 CANoe中关于NetworkHardwareConfiguration中的setup设置参数的详解

本文是以VN1640A中的CAN_FD工程为例,为大家讲解。1:首先打开相关配置重点讲解红色框中的参数,其他参数该如何设置,请参考我另外一篇文章“关于CANoe硬件及接口的学习笔记(VN1640A)”或自行查阅相关资料即可。

2024-04-16 13:21:34 718

原创 CANoe中LIN工程主节点的配置(如何切换调度表)

1)工程已经建立,simulation窗口已经配置好(包括且不限于通道mappin好,数据库文件已经添加)2)我已系统自带sampleCfg工程,作为例子。如下图。

2024-04-15 21:31:53 301

原创 CAN帧中的ACK位

所有接收到匹配CRC序列的节点(以及在FD帧中的匹配填充计数)应通过用显性比特覆盖发射机的隐性比特来在ACK时隙内发送ACK(它们发送ACK)。也就是说ACK是作用于底层的(实际作用于数据链路层)。它对自己能接受到的所有帧数据,都要发送ACK应答。此处“正确”的解释是:指帧结构,CRC校验,不存在问题。假设总线上存在一个节点Node1、它不发送数据,其他节点发送所有正确的帧,Node1都要发送ACK。

2024-04-15 21:21:35 370

原创 如何使用CANoe进行LINstress测试

能实现功能点击工程最底下的Stress Via LIN Stress IG(在工程左下角,也就是文章一开头介绍的五个主要部分)IG部分主要分为两个部分,如下图New添加自定义lin帧RawFrame主任务栏添加LDF库中定义的Remove在列表移除帧先单击要去除的帧,然后单击Remove这个按钮MoveUp向上移动帧位置基本没啥用MoveDown向下移动帧位置列表设置栏(帧序号)这个不重要ActionSendFrame暂时还没搞清楚这个是啥?不能选择和设置。

2024-04-15 21:20:16 793 3

原创 VN6501使用方法(学习笔记)

*1)status 绿色闪烁::表示器件和电脑正常链接,但是工程尚未开启,或者开启了simulation 或者Offline回放模式下。**2)status 绿色常亮::表示器件和电脑正常链接,但是工程开启,无错误**3)status 红色常亮::表示器件连接错误(首先检查,驱动有没有装好!再检查USB接口,再检查连接线是否异常)**4)橘黄色闪烁::表示开机自检的过程。从左往右看依次是**1)USB端口::与电脑连接**2)DB9的I/O端口::使用此端口用来输入输出。

2024-04-15 14:04:10 924

原创 抑制肯定响应位的解释与理解

Suppress positive response bit(抑制肯定响应位),此位=1时,服务器会对(需要进行正响应操作,予以忽略)

2024-04-01 13:59:36 401

原创 UDS诊断中的物理寻址和功能寻址

诊断物理寻址:物理地址是针对网络中具体的ECU。功能寻址:是针对网络中多个或所有ECU。(准确来说是功能请求报文的ID对应多个ECU)如一个车身域网络中,存在3个ECU,(车身域控制器,娱乐系统域控制器,远程网络系统域控制器),我们需要分别为这三个控制器分配三个物理诊断寻址。1:如0x618(请求报文ID)=车身 ,0x658服务器应答报文ID2:0x628 (请求报文ID)=娱乐, 0x668服务器应答报文ID3:0x638(请求报文ID) = 远程网络, 0x678服务器应答报文ID。

2024-03-29 11:14:04 577 1

原创 物理寻址和功能寻址,服务器不同的应答策略和NRC回复策略

从服务器的角度来说,当服务器检查出客户端发出的请求信息,存在以下错误时(假设长度,顺序,条件,解锁等信息均正确)1:0x11与0x7F,服务不支持时,不予回复2:0x12与0x7E,子功能不支持时,不予回复3:0x31,参数(如DID)不支持时,不予回复。

2024-03-29 10:20:37 1073

原创 这么理解面向对象的编程

很多资料和书籍,首先都会向读者尝试解释,什么叫做面向对象的编程。然后巴拉巴拉的说一堆,编者还觉得自己已经竭尽所能,苦口婆心的用最易懂的方式尝试解释清楚,什么叫做面向对象的编程。结果恰恰事与愿违,只留下一脸懵逼的读者。

2024-03-27 11:08:23 167

原创 UDS诊断中的NRC

我总结了一张表格:详细解释了NRC的分布情况和NRC的触发条件。

2024-03-26 20:50:29 376

原创 根据标准化开发流程---解析LIN总线脉冲唤醒的测试方法和用例设计思路

本文从标准化开发流程的角度,以LIN总线脉冲唤醒为切入点。从测试工程师的角度来讲测试工作应当如何展开(结合我干测试总结出来的测试经验)。希望大家都能从中有收获!!!1:了解脉冲唤醒“当总线处于休眠状态时,主/从机节点都可以向总线上发送唤醒信号(显性电压),唤醒信号持续。

2024-03-07 23:01:49 997

原创 CAPL编程实例_网关转发数据正确性检查

报文0x110 :Byte0=0开始 到Byte0=0xFF结束,然后Byte0置0。Byte1又按照Byte0的规则依次发送。转发到CAN2 0X210 [10 23 45 00 00 00 00 00]1:本代码实现,有一个重要前提,就是转发帧和被转发帧,数据结构上是一模一样的。如:CAN1: 0X110 [10 23 45 00 00 00 00 00]1:实现模拟发送 我们要实现覆盖所有数据转发的完整性测试,以下规则。且报文需要按照固定周期发送。

2024-03-07 14:07:19 384

原创 CAPL编程实例(如何实现固定ID范围报文的循环发送,以达到期待的总线负载率)

1:实现固定ID报文如0x100-0x200的报文发送,并可以设置一个期望达到的总线负载率。2:检测总线负载率的检测,并可以调节总线负载率。

2024-03-07 13:42:54 526

原创 CAN总线的拓扑类型和CAN收发器(原理讲解)

从原理上来讲CAN_H拉升电压,或CAN_L拉低电压的原理。以上是TJA1145AT的俯瞰图,此芯片是NXP比较先进的CAN收发器,带SPI总线系统。回到正题,CAN_H和CAN_L收发器是通过内部MOS管的导通或关闭,来实现总线上的不同电压。如图所示:当Mos1和MOS2时,Vcc-分压电阻-地的通路关闭,CAN_H与CAN_L电压相同,则显示隐性电压。当当Mos1和MOS2时,,Vcc-分压电阻-地的通路闭合,经过电阻分压CAN_H电压升高,CAN_L电压降低,形成显性电压。

2024-03-06 14:01:06 563

原创 CAN总线物理层--显性隐性电压要求(以及实际测试中的注意事项)

实际测试物理层电压时,还需要根据上表中的一些知识。做一些前期准备。1:首先要确定物理层采用的规范2:确定总线类型为双绞线,需要硬件工程师提供总线长度,电阻率,等线束参数3:保证总线时闭环,且链接120欧姆的电阻(85欧姆-130欧姆)。4:需确定总线电阻率,为70m欧姆/m(常见测试设备,可能没有这么高的精度,需要和相关工程师或供应商确定)5:确定总线上,节点个数,

2024-03-04 10:06:47 628

原创 C语言--修饰符(auto、extern、static)与变量(局部变量+全局变量)和函数的关系

*1):database.c中使用extern时用来声明外部全局变量,变量已经在main.c中定义,指示编译器去main.c去查找。但是注意:x变量在main.c中,x在定义赋初值时,也是可以添加extern的,且不会报错。为了方便描述,我创建了一个工程,工程包含了两个源文件,main.c和database.c。database.c中声明格式 :(声明时必须要说明引用的数据类型,和变量名,缺一不可)使用时,发现y没有再mian.c中定义,才会报错 如。**2)在引用的编辑单元database.c里,

2024-03-01 17:03:36 374

原创 CAPL中的自定义函数

*示例1)int fun_1(int a);**示例2)fun_2(int a);这两种都是CAPL中合法的自定义函数。不过示例2中,默认返回类型为void。重载函数概念:即在同一作用域中中,同时定义多个函数名相同的自定义函数。有c基础的,应该都知道,同一个工程中除非使用static限定函数,不然同名函数在编译时会出现错误。重载函数的定义和声明格式要求函数名相同,但是形参个数,参数类型,参数排列顺序,存在差异。return a*b;

2024-02-29 22:58:02 1054

原创 CAPL编程学习笔记--关于on 事件的详细解释

目前本人使用的CANoe15自带的编译器**2):大括号内,可以调用CAPL自带的库函数,和用户自定义的函数扩展:on 事件的本质是,是通过回调函数实现的下表总结了各种ON事件,以及他们的作用和应用场景。

2024-02-29 21:40:54 627

原创 OBD诊断和UDS诊断的区别和联系

而USD全称为unified diagnostic services。统一诊断,又称为Enhancesdiagnostic增强型诊断。什么是UDS和OBD诊断,首先我们看OBD(on-boad diagnostic)车载诊断系统,1:什么是UDS和OBD诊断?

2024-02-28 14:24:34 471

原创 CANoe学习笔记--MeasurementSetup的配置和使用

需要注意上图中间类似继电器开关的选项,通过点击会切换开关状态,开关向上闭合,表明数据流是处于Offline状态下已经记录的log文件。在此界面中我们可以根据工程需要添加,删除,修改,配置多种模块和功能,CANoe的官方文档又将这些模块或功能点分为两个大的分类。此模块主要用来显示,如总线波特率,错误帧,标准帧,远程帧发送速率,各个节点发送帧数量,CANoe控制器的状态,发送器延迟等参数。数据是像流水一样,定向的向左移动,图形化的界面,把分析测量过程中的各个模块,图形化的展示在界面上。对象和自定义信号等。

2024-02-28 13:39:18 614

原创 CAPL中基本数据类型详解-基本数据类型和系统变量

赋完初值后,编译器根据初始化时,赋值给数组的元素个数,定义了数组的长度,后续对数组的,改写,删除,添加,等操作均不能改变数组的大小。Multi-CANoe Write Access,这个选项其实就是将系统变量,与CANoe硬件(如VN1640,VN 5620强制绑定)写权限,只有此CANoe才有写权限,一般情况下,推荐也不勾选。且需要了解的是,Data好像类似于整形数组,但是CAPL中支持的整形数组,必须是固定长度的。表中标红的是CAPL中新添加的数据类型,本质上是一些c中的类型变量的平替。

2024-02-27 21:09:19 1236 2

原创 车身电子域的电压模式管理(总结)

车身电子器件的功能各种各样,但是绕不开的一个功能就是电压模式的跳变,具体跳变的步骤没有通用的标准强制规定,可以由整车制造商和相关零部件供应商自行管理。功能正常是指,网络管理正常,睡眠唤醒正常,输入输出端口正常,AD采样正常,传感器。需要一般情况下,只记录电压故障相关的DTC。1:一切功能均关闭,且有时需要在过压状态下,样件。1:如果样件挂载较大电流的负载,通讯支持,诊断。1:功能正常,输出正常,通讯支持,诊断正常。

2024-02-27 10:31:45 344

原创 空指针和Void指针的基本概念和用法

先来了解栈概念:栈是一种特殊的线性表,其只允许在固定的一端插入和删除操作。

2024-02-26 18:45:00 1949

原创 【C语言】指针变量未初始化

我们知道:全局变量未赋初值,编译器会直接赋值为0;局部变量如果未赋初值,则会维持上一状态保存在该地址上的值,这个值是随机的。把这个值赋值给局部变量是没有意义的。但是指针变量是如何解决不赋初值?指针变量和普通变量一样的方式。

2024-02-22 17:24:08 653

原创 函数指针概念的理解要点

这两个括号,第一个是将*p扩起来,告诉编译器,我是一个指针变量,第二个括号告诉编译器,我指向的是函数的地址,且我还能实现传递参数。对于某些有基础的同学也需要注意,此种方式中,不能在CmpFun函数中利用形参,int(*p)(int x,int y)再次对CmpFun实现调用,这样就陷入无限死循环。主函数中通过调用CmpFun函数,p作为实参传递到CmpFun函数中的形参int(*p)(int x,int y)。此处容易出现一个隐藏性很深的错误,当函数指针声明时,采用 int(*p)(int x,

2024-02-20 17:51:43 505

原创 一起来攻克回调函数(学习笔记)

看第二个参数:size_t mun,是表明该需要排列数组或字符串的个数。第三个参数:size_t width ,是表明需要排列数组或字符,每一个元素的Byte数,如int arr1[],这个参数就是4,char arr2[],z这个参数就是1。最后一个参数:一个函数指针,

2024-02-19 21:27:09 866

原创 C语言中关于#include的一些小知识

如果是你自己编写的头文件,那么如果没加唯一包含标识的话,那么编译器会编译报错的。如果是系统自带的头文件,由于其每个头文件都加了特殊标识,所以即使你包含两遍,也不会有问题。上面的代码片段会首先判断HEADER_FILE_NAME_H是否被定义,若未定义则进行后续操作;#ifndef HEADER_FILE_NAME_H // 定义了一个名为HEADER_FILE_NAME_H的标记符号。#define HEADER_FILE_NAME_H // 当第一次包含该头文件时,将此标记设置为已定义状态。

2024-02-19 20:41:37 1524

原创 CANoe学习笔记——窗口类型

CANoe中的窗口类型,共分为三种窗口有多种类型,每种类型都定义了特定的窗口行为。通过点击窗口顶部的区域,可以更改窗口类型。如下图,先点右单击顶部空白区域,出现2中显示的菜单我们可以根据需要,改变窗口类型。下面简单介绍三种不同的窗口类型。

2024-02-01 19:39:26 528

原创 CANoe学习笔记—关于cfg工程界面的分类

创建一个工程过程中,如何规划好界面设置,对于后续使用和维护起到了非常好的作用。故整理下。

2024-02-01 16:24:18 645

原创 CANoe实际项目中文件夹的规划

本人,之前设计了一个CANoe工程,由于工程设计之初没有设计好文档的归纳分类,导致文件查找起来非常费劲。为了避免以后出现文件混乱,不可查找的问题,故特此归纳说明。建立工程时:第1步就应该设计好文档的结构,并在相关文件夹中,提前存放好,工程建立必须的文件(如dbc文件。第2步,开始设计工程,并配置文件存放进工程的相关文件夹第3步,如果工程设计遇到特殊文件,或添加特殊需求,导致文件没有非常合适的文件夹放置。CANoe也支持,保存阶段新建文件夹。

2024-01-31 22:02:16 440

原创 DTC相关知识点补充

3:一般整车中,启动点火3s内,不进行DTC诊断,这是因为传统燃油车,车辆启动时电流非常大,会产生非常大的甩电压负荷。如果有大佬做新能源项目的,麻烦告知,新能源车型上是否还需要,启动3s内,不检测DTC。2:历史DTC存储的个数,大于E2E(非易失性存储器)中所能存储最大值时,一般按照时间顺序删除最早记录的历史DTC,类似于先进先出的结构。1:历史DTC存储个数最大值应该不小于10个,且断电后不会清除历史DTC。

2024-01-31 19:00:00 393

原创 如何理解汽车诊断中的,诊断故障代码DTC

UDS诊断中,DTC故障内码,分为三个字节,分为高中低三个字节如我们读取DTC时,会直接读取到三个字节的十六进制数字 如依次从高字节到低字节为0x43 0xE7 0x11 ,叫做故障内码,或我自己称为DTCraw值此处是DTC High Byte的bit5&bit40x00ISOSAE标准定义故障码,此处表示的是国际标准组织和SAE定义的标准故障码。此处需注意,并没有强制规定,必须满足0x01制造商自定义类型故障码(主要由主机厂和供应商决定)0x10ISOSAE保留码0x11。

2024-01-30 22:45:00 1698

原创 关于LIN总线,同步间隔段最大时间及各种间隔符最大时间的解释,与说明

如果问!LIN同步间隔段的最小长度?大多数同学会一口答出">13bit位的显性位"那如果问!最大长度是多少?则很少有同学会会突然懵逼!资料上给出的答案,下图上限应保证帧的最大传输时间T在规定范围之内。1.1:THeader_Maximum是什么东西*)先看整体的结构1: 同步间隔段:需要明确一点,很多资料,介绍帧结构时。如果按照此标准,那么同步间隔段,至少>=14个bit的时间(2:同步段10bit位+至少一个隐性位的字节间隔3:受保护ID10bit,+应答间隔。

2024-01-18 00:48:19 769

原创 如何测量LIN网络波特率误差

本文是我基于LIN2.1规范得出的结论,暂且无法确认是否一定正确!如果描述有误,恳请大佬能指正!不胜感激。前提:之前做项目的时候,遇到关于LIN波特率误差的测试!因为对相关概念了解的不全面,导致用例编写的不好!客户也一直提出疑问。今天恰好有时间,重新梳理了一遍LIN规范中关于波特率误差的部分。做一个总结是指主节点设定的波特率和实际发出来的波特率的误差。这里设定需要分为两种情况,

2024-01-17 23:23:30 1045 1

原创 C语言中的浮点数存储

知其然,还要知其所以然。有人会问?那既然这样,为什么不使用E为有符号数,一样可以表示负数,还很方便明了。为什么IEEE754要设计出这样的规范,记住一个准则,就是任何规范都不会有多余的设计和理念,也不会故意去制造复杂化的逻辑。一切都是平衡下的,最佳产物。先说结论回到这个公式:(-1)^S*M*2^E,当E为负整数时,0

2024-01-15 16:40:43 945

原创 CANoe中最常见的文件类型

xml和HTML是必须xml格式的testmodule才能产生,且需要在配置中添加.xslt文件才行。此文件是配置在xml格式的testmodule的specification。.cco/.img/.op2是MOST常见的格式,该总线常用于音影娱乐。CANdeal标准输出的诊断描述文件,一般在CANoe中使用的最多。下的文件,各有特色,分别适用于不同的场景。注意,这两种格式的关系是,有Html,必然存在。xslt文件是文件安装时,自带的文件夹,路径为。此格式是,CANoe系统自带的报告浏览器。

2024-01-12 14:14:54 560

原创 CANoe中的signalGenerators

CANoe中的signalGenerators

2024-01-10 15:42:46 930

原创 CANoe中的AutoSequence

CANoe中Automation的用法

2024-01-09 19:00:00 1103 3

UDS诊断中的NRC(详细解释表格总结)

NRC的表格

2024-03-26

CANoe文件夹分类(模板文件)

本资源是我根据实际项目经验,写的一个测试分类的文件夹(大家可以根据世纪星需要,添加或删除部分)

2024-03-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除