CANoe学习笔记一

news2024/11/30 8:38:57

目录

摘要

1、CANoe工程的新建

2、通过Trace工具查看交互的报文内容

3、通过Logging保存日志文件

4、创建IG发送报文

5、通过Graphics界面抓取信号波形

6、加载cdd文件

7、过滤报文ID的接收

8、其他


摘要


        CANoe是德国Vector公司为汽车总线的开发而设计的一款总线开发环境,全称叫CAN open environment。同Vspy一样,CANoe集合了网络监控、数据获取/记录、节点仿真、诊断、自动测试等功能;其丰富的功能和配置选项使其也是常见于汽车电子行业。接下来,我们以9.0版本为例,针对CANoe的常用操作进行介绍,具体分为以下几点:

        1、CANoe工程的新建
        2、通过Trace工具查看交互的报文内容
        3、通过Logging保存日志文件
        4、创建IG发送报文
        5、通过Graphics界面抓取信号波形
        6、加载cdd文件
        7、过滤报文ID的接收
        8、其他


             

1、CANoe工程的新建


        打开CANoe软件,在工具栏的”File”中点击”New”,双击选择创建的模板 ,再保存创建的cfg工程文件。如下:


2、通过Trace工具查看交互的报文内容

 
        (1)、运行工程:通过点击左上角的开始按键(闪电形状的按键)运行工程;此时会弹出选择CAN通道的界面;若不知道选择哪个通道,可查看“Simulation Setup“界面的”Channels”,如下图。当然这个通道是可以更换的,在”Channels”下进行操作即可。

        (2)、使用Trace工具:”Analysis”下打开”Trace”,若此时CAN上有报文在发送,即可在这个界面下查看到。界面如下图所示,这里对Trace界面下经常用到的几点进行下阐述:

Trace界面提供了多种过滤方式,但一般常用的是通过信号ID进行过滤。具体过滤操作可点击”ID”右上角的图标进行设置(将鼠标移到”ID”处时会显示出)
可以通过点击下图标志3处的这个图标改变报文的显示模式(将同一ID的报文逐条显示或者只显示最后一次的此ID的报文
下图标志1处的图标表示清空当前”Trace”界面的报文显示
下图标志2处的图标表示停止/更新”Trace”界面的报文显示


3、通过Logging保存日志文件


        前面我们介绍了查看正在交互的报文信号,那当我们需要保存整个报文交互过程,以便后续的分析操作时;我们则可以通过打开Logging功能,将整个报文交互的信息保存下来。具体操作如下:

        (1)、日志文件保存设置:打开”Analysis”下的”Measurement Setup”,此时界面下图所示。

        右键上图红框中的”Logging”,点击”Logging File Configuration”。此时界面如下图,在这里进行日志文件的保存设置。

        (2)、使能Logging功能:经过前面的操作我们完成了日志文件的保存设置;当我们需要保存日志文件时,则可以通过双击下图红框的暂停箭头,打开Logging功能

        此时Logging图标状态如下图所示,截止关闭CANoe工程之前,所有的报文交互信号将被记录保存下来;当然在中间过程可以点击下图红框圈起来的暂停按键停止记录。


4、创建IG发送报文

 
        在完成工程的创建后,此时的界面如下图所示。在”Simulation Setup”界面下,我们可对当前网络进行结点的添加、交互生成器IG的添加、dbc的添加等设置工作。这里我们介绍下如何通过创建IG发送报文信号。

        (1)、右键”Interactive Generators”,选择”Insert Interactive Generators Block CAN”;此时界面如下图所示;

          双击上图中创建出来的CAN IG,此时界面如下图所示。

        (2)、右键”CAN IG”界面下上面窗格的空白部分,添加要发送的报文信号。有以下的三种选择:

  1. 从dbc文件中导入要发送的信号(Add Frame From Database);
  2. 添加CAN FD信号(Add CAN FD Frame) ;
  3. 添加CAN信号(Add CAN Frame)

Ps:关于CAN FD (CAN with Flexible Data rate)与CAN主要有以下的两点区别:

  • 1、可变速率:CAN FD采用了两种速率;从控制场中的BRS(速率转换开关位)位到ACK场之前(含CRC分界符)为可变速率;其余部分为原CAN总线用的速率。
  • 2、CAN FD对数据场的长度作了很大的扩充,DLC最大支持64个字节,在DLC小于等于8时与原CAN总线是一样的。


        (3)、创建自定义的报文发送:点击”Add CAN Frame”,此时会添加一条CAN信号;如下图所示,填入要发送的报文ID和信号内容;可选择点击发送或者周期循环发送。此时,可以通过”Trace”面板查看报文是否已经发送

        (4)、从dbc中导入要发送的报文:我们也可以从已有的dbc中导入要发送的报文信号进行发送;但这样需要我们先在当前CAN网络导入dbc文件;具体操作如下:

导入dbc:在”Simulation Setup”界面下,右键”Database”,选择”Add”,导入dbc文件(注意需在CANoe工程Stop状态下操作)。界面如下:


导入dbc文件中的报文:回到IG界面,右键点击” Add Frame From Database”,如下图,在前面步骤导入的dbc文件下的“Frames“中,选择要导入的报文信号(可一次添加多条报文进来)

报文发送:完成dbc报文导入后,我们就可以在IG界面对导入的报文进行发送操作了;界面如下:

5、通过Graphics界面抓取信号波形


        5.1、在”Analysis”下打开”Graphics” 功能界面;此时界面如下:

        5.2、添加要查看的报文信号
        (1)、添加用户自己定义的信号:若当前工程没有导入dbc、或者dbc中没有要查看的报文信号,可通过自己定义信号变量进行查看。操作如下:
        在”Graphics”界面下右键,选择”User Defined Signals”,此时会弹出参数设置界面,此时界面如下:

        对应写入要查看的报文ID、信号起始位、信号长度;点击OK,即可显示出总线上该信号的波形,此时界面如下图

        (2)、从dbc文件中导入信号:在”Graphics”界面下右键,选择”Add Signals”,此时会弹出信号选择界面如下图(注意工程里是要已经有添加dbc文件的了);可以直接在”Signals”里选择信号;也可在”Frames”找到对应报文,再选择要查看的信号。

        5.3、关于多个信号时的显示设置
        (1)、如下图,在信号比较少时,可以点击红框图标(y坐标的显示模式设置),选择”Show Signals in Separate Diagrams”,在独立的坐标里显示信号值。

        各个信号的y坐标范围可以直接双击进行设置,界面如下:

        (2)、当要查看的信号比较多时,则选择”Show All Y-Axis”,此时的显示界面如下:

             

6、加载cdd文件


        6.1、关于cdd文件
        cdd是诊断数据库文件,描述了诊断应用的范围和数据格式,用于优化整个诊断开发过程。Cdd文件的编辑操作是通过”CANdelaStudio”这个诊断协议开发软件来完成。
        6.2、加载cdd文件步骤
        (1)、在CANoe工程”Stop”的状态下,点击工具栏”Diagnostics”下的“Diagnostic ISO TP”,此时界面如6.1所示;

        (2)、右击”CAN”,选择第一个”Add Diagnostic Description”,选择要导入的cdd文件,导入cdd文件后的界面如图6.2所示。

        6.3、通过诊断控制台调用cdd文件中的报文进行发送

        点击工具栏”Diagnostics”下的”Diagnostic Console”,此时界面如下图所示;便可直接通过诊断控制台调用cdd文件中配置好的诊断报文信息进行发送;不用再去自己在IG中创建报文。

7、过滤报文ID的接收


        7.1、通过”Network Hardware Configuration”进行报文过滤

        在前面的第2小节里,我们描述了如何通过”Trace”查看交互的报文内容;并简要介绍了相应的过滤操作,其中主要用到的是通过ID进行报文过滤。但”Trace”下的过滤只是将其他显示报文屏蔽不显示而已。打开Logging工具查看保存的文件,其他过滤的报文还是有接收记录着的。若我们想要直接过滤掉某些报文ID的接收,则可以通过在”Network Hardware Configuration”下进行设置。具体步骤如下:
        (1)、在CANoe工程“Stop”的状态下,点击工具栏”Hardware”下的”Network hardware”;此时界面如下图所示

        (2)、根据当前工程选用的CAN通道进行过滤设置,若不清楚当前工程选用通道,可在“Simulation Setup“界面的”Channels”进行查看。
        (3)、设置完成后,此时在”Trace”界面下,以及保存下来的日志文件中,都已经将其他报文过滤掉了(注意若是通过IG创建的发送报文,是不会被过滤掉的

        7.2、通过在”Measurement Setup”界面下插入过滤器进行报文过滤

        (1)、如下图,在工程”Stop”的状态下,点击要进行过滤操作的界面窗口前右击 红框内的图标,选择”Insert Event Filter”,其前面会出现 "CFB"的标志(兰框内的图标);(这里是以在”Trace”窗口进行过滤操作为例)

        (2)、双击上图中的"CFB"图标,进入CAN过滤的设置界面,按照需求进行过滤设置,此时界面如下图所示:

        (3)、此时运行工程,打开”Trace”界面,则可以看到除了指定的这几条报文,其他报文都已被屏蔽掉了。但注意,由于我们前面的例子中加入的CAN过滤器是在”Trace”窗口前面加的,所以其效果也只在”Trace”窗口下有效(只对当前插入过滤器的模块有效);此时Logging模块下还是有对其他报文进行记录的。所以,若我们想要生成的工作日志也过滤掉其他报文,则要在”Logging”文件前也加上CAN过滤器,如下:


Ps:除了前面提到的插入CAN过滤器,在”Measurement Setup”界面下的任意窗口,右击前面的 正方形图标,还可以选择其他一些功能模块,如CAN CAN通道的过滤器、CAPL程序等。如下:


8、其他


        8.1、利用工具栏”Analysis”下的”Statistics”可以对各类消息帧的发送频率、总线负载、控制器状态等信息进行统计(在工程”Stop”状态下,在”Statistics”下可以新建总线统计窗口,报文直方图( Frame Histogram )等),窗口如下图所示。由于平时用的不多,这里不做详细阐述了。

        8.2、利用工具栏”Analysis”下的”Data”可以对信号值、变量值的大小进行查看监控,并保存信号的日志文件(mdf格式)。窗口如下图所示:

        8.3、”measurement setup”窗口和”simulation setup”窗口(如下图)是CANoe的主要窗口,进行数据流规划。需重点掌握这两个窗口的学习。

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

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

相关文章

nuxt3.0学习-四、nuxt3.0的middleware(中间键)、composables(可组合物)以及Plugins(插件目录)

Nuxt3.0中间键了解地址 Nuxt提供了一个可定制的路由中间件框架,您可以在整个应用程序中使用它,非常适合在导航到特定路由之前提取要运行的代码; 路由中间件有三种: 匿名(或内联)路由中间件,直…

最佳 AI 生产力工具:更聪明地工作,而不是更努力地工作

在20世纪50年代,AI 在内存耗尽之前几乎无法完成跳棋游戏。 快进七个激动人心的十年,可以理解自然语言的人工智能系统——大型语言模型 (LLM)——正在成为我们数字工具箱中的重要工具。 在今天的文章中,我们梳理了一些提高生产力的最佳人工智…

【SpringBoot】 设置随机数据 用于测试用例

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 设置随机数据——常用于测试用例 SpringBoot设…

Research Day 2023:Succinct ZKP最新进展

1. 引言 主要见Ying Tong在Research Day 2023上视频分享: Advances in the Efficiency of Succinct Proofs - Ying Tong ZKP技术可用于: 1)Verifiable virtual machine:如各种zkEVM和zkVM。2)verifiable cloud com…

领跑云原生安全赛道!安全狗云甲获信通院多项荣誉认可

6月6日,ICT 中国2023高层论坛-云原生产业发展论坛在北京成功举办。 作为国内云原生安全领导厂商,安全狗受邀出席此次活动。 据悉,此次论坛主要包含论坛开幕式、成果发布、产业发展等三大部分。云原生领域领军智库、院士专家、企业高层等多位…

企业培训直播场景下嘉宾连线到底是如何实现的?

企业培训直播场景下,进行音视频连线的嘉宾,都拥有面向学员教学的权限,支持多位老师/专家异地同堂授课,那么,这种嘉宾连线到底是如何实现的? 企业培训,如何做到不受时间和地点限制,实…

数据单一触发数据库锁

【引言】 作为一名数据库开发人员或者管理员,那么你一定知道数据库锁在维护数据一致性中的作用。但是,你有没有想过,什么情况下会触发数据库锁呢? 本文将讲述一种常见的情况——数据单一触发数据库锁,并且分享如何避…

KDZD绝缘油介质损耗电阻率测试仪特点

一、概述 测试仪依据GB/T5654-2007《液体绝缘材料相对电容率、介质损耗因数和直流电阻率的测量》设计制造。用于绝缘油等液体绝缘介质的介质损耗因数和直流电阻率的测量。 一体化结构。内部集成了介损油杯、温控仪、温度传感器、介损测试电桥、交流试验电源、标准电容器、高阻计…

我用ChatGPT写2023高考语文作文(一):全国甲卷

2023高考全国甲卷语文作文题目: 人们因技术发展得以更好地掌控时间,但也有人因此成了时间的仆人。 这句话引发了你怎样的联想与思考?请写一篇文章。 要求:选准角度,确定立意,明确文体,自拟标题&…

Linux系统下SQLite创建数据库, 建表, 插入数据保姆级教程

1,创建数据库: sqlite test.db 我这边是sqlite2版本, 直接使用命令sqlite test.db创建一个名称为test的数据库; test是你自定义是数据库名, 创建好数据库后, 接下来开始创建表格 2.创建表格, 就是常规的sql建表语句 CREATE TABLE ids_logs ( english_details TEXT, chines…

LeetCode_数据结构设计_中等_173.二叉搜索树迭代器

目录 1.题目2.思路3.代码实现(Java) 1.题目 实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(TreeNode root):初始化 BSTIterator 类的一个…

便捷工具箱(更新中)

遇到问题怎么办?不慌,我可以帮你解决 1.浏览器视频播放速度一般只有0.5x,1.0x,1.5x,2.0x四种选项,对于我们来说是不够用的,那该怎么办呢?别慌,有代码。 解决办法&#x…

Python3+Selenium2完整的自动化测试实现之旅(一):自动化测试环境搭建

引言 大多数人可能认为自动化测试很难,但是在我的实践中,我发现只要有正确的工具和环境,自动化测试其实并不困难。 本文将带领大家了解如何使用Python3和Selenium2搭建自动化测试环境,让你在未来的测试工作中事半功倍。作为一名…

安卓逆向 -- SO文件逆向分析

接上节课内容 安卓逆向 -- Frida环境搭建(HOOK实例) 安卓逆向 -- FridaHook某车udid的加密值 安卓逆向 -- FridaHook分析3DES加密值 一、上节课我们找到了get3deskey函数来自原生函数 二、解压apk文件,去lib文件里找到libnative-lib.so文件 三、将so文件拖入ida…

企业通常会采用什么方式与媒体建立关系?

传媒如春雨,润物细无声,大家好,我是51媒体网 胡老师。 媒体机构包括电视台、广播电台、报纸、杂志、网络媒体,视频媒体等。企业与媒体建立联系,可以提升品牌曝光度、塑造公众形象、传递企业信息、增加市场认知和促进业…

阿里云丁宇:云上开发成为主流,Serverless 定义新范式

今天,阿里云峰会粤港澳大湾区在广州开幕,阿里巴巴研究员、阿里云智能云原生应用平台总经理丁宇在论坛发言,他表示: Serverless 引领云上开发新范式,通过丰富的原子化服务,全托管、高弹性、免运维的优势&am…

【libdatachannel】俩client本机基于juice与QtSignalServer的ICE交互2

打印日志太多,【libdatachannel】俩client本机基于juice与QtSignalServer的ICE交互 1 死活发不出来。 客户端一系列的状态切换。 kY3k alloc: (location: 04259598) freed alloc: (location: 042629E0) allocated alloc: (location: 04262A50) allocated alloc: …

这才是打开Java面试的正确方式,秋招互联网大厂Java面试八股来袭

金三银四过后招聘旺季就到了,不知道大家是否准备好了,面对金九银十的招聘旺季,如果没有精心准备那笔者认为那是对自己不负责任;就我们 Java 程序员来说,多数的公司总体上面试都是以自我介绍项目介绍项目细节/难点提问基…

跳跳鱼视频处理大师Mac版,使用方法介绍

现在是短视频的时代,每个人都想通过视频来实现自己的营销目的,因此对于视频的使用非常的频繁,这也要求这方面的从业者需要掌握一些基础的视频处理技巧,这对我们在工作上会有很大的帮助。但是专门用于苹果电脑上的音频处理软件非常…

狂野java-MongoDB基本使用

NoSQL(非关系型数据库) 为什么使用NoSQL 扩容,操作简单分布式计算易扩展,因为 数据之间无关系无需建立字段,自定义数据格式支持大数据量,高性能(细粒度Cache) 缺点 有限的查询是…