CANoe入门之一 CANoe功能概述

01 CANoe功能概述

CANoe软件在汽车电子领域被广泛应用。

CANoe软件的全称是CAN Open Environment,它是一个专业的系统级总线和ECU仿真、分析、开发、测试工具。支持ECU或总线网络开发从需求分析到系统实现的全过程,包括模型创建、仿真、测试、诊断及通信分析等。

1.1 概述

CANoe是Vector公司推出的一款集总线仿真、测试、分析和诊断等功能为一体的图形化开发环境。

许多工程师都会用到CANoe的仿真、分析、测试和诊断功能,但大多仅限于与工作内容相关的部分,对于这些功能没有系统性认识,对某些便捷的功能和特性也并不了解。

因此,本文旨在帮助汽车电子行业工程师更全面地认识CANoe软件,以进一步提高开发及测试的效率和质量。

首先,我们先了解下CANoe有哪些变型,如下表所示:

变型描述
PRO包含所有完整功能
FUN支持运行已有工程,仅可编辑部分模块(如CAN IG),无法编辑CAPL
PEX支持运行已有工程,提供图形化用户界面,包含部分分析窗口。由于所支持的功能较少,真正使用的用户也比较少
Standalone需配合VN89/VT6000系列实时运行平台,将工程下载到对应硬件中脱离PC运行
NOA支持导入记录文件进行离线分析

根据上表,我们大致了解到,当前使用最多的主要是PRO和FUN版本的CAN变型,其余变型实际场景中用的都比较少。

CANoe不但能帮助用户开发和测试CAN/CAN FD/CAN XL总线,还能够通过各种插件来支持LIN、Ethernet、Flexray等总线系统以及SAE J1939、XCP、Car2x等协议。(如下图CANoe插件表格所示,仅列出部分)

在这里插入图片描述

1.1.1 CANoe主界面

如下图所示。单击左上角的Start图标,运行该仿真工程(CANoe中称为Start Measurement,也可以称为开始测量)。

在这里插入图片描述

1.1.2 CANoe选项卡和功能区

CANoe主界面主要有以下功能区部分:

  • File(文件):主要用于工程文件的相关操作及属性设定
  • Home(主功能区):主要包括测量组件、显示组件和其他组件
  • Analysis(分析):主要包括配置组件、总线分析组件和其他分析组件
  • Simulation(仿真):主要包括仿真组件和激励组件
  • Test(测试):主要包括测试单元组件和测试模块组件
  • Diagnostics(诊断):主要包括诊断相关的配置组件、控制组件和工具组件
  • Environment(环境):主要包括对象组件和其他组件
  • Hardware(硬件):主要包括硬件相关的通道组件、VT系统组件、传感器组件和I/O硬件组件
  • Tools(工具):包括网络组件和其他组件,主要是常见工具
  • Layout(布局):主要用于设置各子窗口的显示模式
    在这里插入图片描述

1.2 快速创建CANoe工程

1.2.1 创建仿真工程

打开CANoe工程,选择 File -> New,选择合适的模板创建工程。

如下图所示,CANoe按照总线类型,给我们提供了一些快速创建工程的模板。这些模板主要包括总线类型、通信速率、通道数目等内容。模板中配置的信息在创建的工程中都可以自定义添加或修改。

在这里插入图片描述

1.2.2 配置仿真工程

1. 通道配置
根据实际需求调整软件的通道类型及通道数目配置,选择 Hardware -> Channel Usage配置。

配置的软件通道通常需要与真实的硬件通道进行映射,因此,按照实际需求选配软件通道类型和数目后,还要确保通道类型和数目与连接的硬件匹配。在Channel Usage对话框中配置通道后,还需要在Simulation Setup窗口中添加对应的总线网络。

在这里插入图片描述
在这里插入图片描述

2. 通信配置
对于CAN和CAN FD通信,还需要对通信相关的参数进行配置,以确保其能够与真实ECU或真实网络通信。选择 Hardware -> Network Hardware,打开Network Hardware Configuration窗口进行配置。一般需要对Mode(CAN/CAN FD),Baud rate(配置与真实ECU一致的通信速率)、Sample Point(配置与真实ECU一致的采样点)。

需要注意的是,CAN FD模式要分别设置仲裁场及数据场通信速率,也就说,CAN FD会涉及到波特率切换,因此尤其需要注意其采样点的配置。

在这里插入图片描述

知识点1
传统CAN: 整个报文帧(从帧起始到帧结束)都使用同一个波特率(例如 500 kbps)。
CAN FD: 采用双波特率:
(1)仲裁段波特率:报文帧的开始部分(帧起始、仲裁场、控制场)使用较低的波特率(例如 500 kbps)。这部分决定了哪个节点赢得总线访问权,需要与网络上所有节点(包括可能不支持FD的传统CAN节点)兼容。
(2)数据段波特率: 一旦赢得仲裁,从数据场开始(包括数据场、CRC场、ACK场、帧结束等),通信切换到更高的波特率(例如 2 Mbps, 5 Mbps, 甚至更高)。这部分用于高速传输实际数据。

知识点2
采样点的重要性:当波特率大幅度提高(例如从 500 kbps 跳到 2 Mbps)时,信号在物理线缆上的行为会发生显著变化:
(1)信号边沿更陡峭: 上升/下降时间更短。
(2)信号反射更显著: 高速信号更容易受到线路阻抗不匹配的影响,产生反射。
(3)信号衰减更大: 高频分量衰减更快。
(4)电磁干扰更敏感: 高速信号更容易受到外部噪声干扰。
这些变化会影响总线信号的形状和稳定性。

采样点是CAN控制器在一个位时间(Bit Time) 内读取总线电平(显性/隐性)的具体时刻。它通常用一个位时间的百分比来表示(例如 75%, 87.5%)。
理想情况下,采样点应该设置在一个位时间的稳定区域,避开信号边沿(转换区)和可能存在的振荡/噪声区域。如果在信号尚未稳定(如仍在边沿)或受到干扰/振荡影响时采样,控制器可能会将显性位误读为隐性位,或将隐性位误读为显性位,最终导致CRC错误、格式错误、应答错误等,报文传输失败。

知识点3
为什么CAN FD尤其需要注意采样点配置?
仲裁段和数据段工作在不同的波特率下,信号特性不同。一个适合低速仲裁段的采样点设置(例如87.5%),在高速度的数据段下可能不再位于稳定区域。
高速数据段位时间大大缩短(例如2 Mbps下位时间只有500 ns,而500 kbps下是2000 ns),意味着留给信号稳定下来的时间窗口更小。因此,CAN FD要求分别为仲裁段波特率和数据段波特率配置各自独立的、合适的采样点。
仲裁段采样点: 通常可以沿用或接近传统CAN的设置(如75%-90%),因为速度相对较低,兼容性是主要考虑。
数据段采样点: 通常需要设置得更靠前(例如50%-70%)。这是因为:高速下信号稳定得更快(相对位时间比例而言);需要预留更多时间给位时间后期可能出现的信号振荡(ringing)或反射去衰减,避免它们影响到采样点;更靠前的采样点给了控制器更多时间在帧结束前完成CRC计算和ACK处理。

3. 通道分配

选择 Hardware -> Network Hardware -> Driver,打开Vector Hardware Config窗口进行通道分配。选择具体的物理通道,单击右键并选择应用程序,分配通道,同时,可在该界面确认每个通道对应的硬件PIN脚定义,确保线束连接正确。
此外,也可以通过 Hardware -> Channel Mapping进行快速通道分配。

在这里插入图片描述

在这里插入图片描述

4. 数据库配置
数据库的作用是在进行总线数据分析时解析报文、信号等内容,在进行总线仿真时可基于数据库的定义快速创建仿真工程,在进行网络测试时也会涉及对数据库内容的处理。

不同总线数据库文件的格式也不同,例如,CAN/CAN FD常见的数据库格式是DBC或ARXML,LIN总线是LDF或ARXML,FlexRay和Ethernet是XML或ARXML。各种总线的数据库在软件中的配置都是类似的。
在这里插入图片描述

1.2.3 保存仿真工程

工程配置完成后就可以进行保存,建议在工程文件路径下通过子文件夹的方式存放需要使用到的各类文件,如数据库文件、CAPL脚本文件、记录文件和面板文件等。

在实际工作中,经常会遇到版本兼容问题,那么此时在保存高版本工程时,可以根据需要选择低版本进行保存,以便使用低版本时也能打开。具体操作是 File -> Save As,在保存类型中切换到对应版本即可。

在这里插入图片描述

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

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

相关文章

项目管理核心八项(软件篇)

2025年09月11日23:50:33:进来常思,写代码也五六年了,后面的路该何去何从呢? 项目管理核心八项一、项目管理之“建立开发人员 backup 机制”二、待补充一、项目管理之“建立开发人员 backup 机制” “建立开发人员 backup 机制” 是…

springboot redisson 分布式锁入门与实战

Spring Boot3 Redisson 项目地址 https://gitee.com/supervol/loong-springboot-study (记得给个start,感谢) Redisson 介绍 在分布式系统中,多节点部署的应用对共享资源(如数据库记录、缓存键、文件)的…

使用 Tkinter + Requests 实现地理信息安全系统学习时长助手

✨重磅!盹猫的个人小站正式上线啦~诚邀各位技术大佬前来探秘!✨ 这里有: 硬核技术干货:编程技巧、开发经验、踩坑指南,带你解锁技术新姿势!趣味开发日常:代码背后的脑洞故事、工具…

构建一个优雅的待办事项应用:现代JavaScript实践

构建一个优雅的待办事项应用:现代JavaScript实践本文将介绍如何使用现代JavaScript(ES6)和DOM操作创建一个功能完整的待办事项应用,无需任何外部库或框架。功能概述添加新任务标记任务为完成/未完成编辑任务内容删除任务过滤任务&…

【数据可视化-111】93大阅兵后的军费开支情况———2024年全球军费开支分析:用Python和Pyecharts打造炫酷可视化大屏

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

3.2.Maven-概述-介绍安装

一.介绍:二.安装:Maven的安装比较简单,因为他是绿色版的软件,官方给我们提供Maven的安装包就是一个zip压缩包,在进行Maven安装以及配置的时候,主要进行如下4步操作:第一步:把官方提供…

Kafka面试精讲 Day 14:集群扩容与数据迁移

【Kafka面试精讲 Day 14】集群扩容与数据迁移 在“Kafka面试精讲”系列的第14天,我们将深入探讨 Kafka 运维中最关键的操作之一:集群扩容与数据迁移。随着业务增长,原始 Kafka 集群可能面临磁盘不足、吞吐瓶颈或节点负载不均等问题&#xff…

字节一面 面经(补充版)

什么是RabbitMQ,特点是什么怎么理解保障消息的一致性String、StringBuffer、StringBuilder解释一下线程安全先操作数据库再删缓存还是先删缓存再操作数据库这种办法能杜绝数据不一致问题吗解释一下AOP介绍Redis的特点(Redis比较快)Redis为什么…

【MFC】对话框属性:Absolute Align(绝对对齐)

前言 本文介绍对话框属性中的Absolute Align(绝对对齐),同时给出相关示例便于理解。 目录1 位置2 详解3 示例1 位置 首先介绍一下这个属性在哪里。 在资源视图中双击对话框节点,打开该对话框; 鼠标右键工作区空白处,单击属性&…

【从0开始学习Java | 第17篇】集合(中-Set部分)

文章目录Java集合之Set:无序不重复的元素容器一、Set接口的核心特性二、常用实现类及底层原理1. HashSet:基于哈希表的高效实现2. LinkedHashSet:保留插入顺序的哈希实现3. TreeSet:基于红黑树的排序实现三、实现类对比与选择建议…

玩转Docker | 使用Docker部署dufs文件管理工具

玩转Docker | 使用Docker部署dufs文件管理工具 前言 一、 dufs介绍 Dufs简介 核心特性 📁 静态文件服务 💾 文件夹打包下载 📤 拖拽上传文件/文件夹 ✏️ 文件在线创建、编辑与搜索 ⏳ 断点续传与部分传输 🔐 细粒度访问控制 🔒 HTTPS 安全传输 🌐 WebDAV 兼容支持…

【混合开发】vue+Android、iPhone、鸿蒙、win、macOS、Linux之android 把assert里的dist.zip 包解压到sd卡里

一图胜千言 上一篇有 <!-- 读写外部存储 --> <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"android:maxSdkVersion"28"/> <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE&qu…

线程的创建.销毁

线程线程的创建在 C 中&#xff0c;线程的创建核心是通过std::thread类实现的&#xff0c;其构造函数需要传入一个可调用对象&#xff08;Callable Object&#xff09;作为线程入口。可调用对象包括普通函数、lambda 表达式、函数对象&#xff08;functor&#xff09;、类的成员…

MySQL基础全面解析

MySQL作为最流行的关系型数据库管理系统之一&#xff0c;是每一位开发者必备的核心技能。本文将系统性地解析MySQL的基础知识&#xff0c;结合关键概念与实战应用&#xff0c;帮助您构建扎实的数据库基础。1. SQL与NoSQL的本质区别SQL&#xff08;结构化查询语言&#xff09;数…

4、幽络源微服务项目实战:后端公共模块创建与引入多租户模块

前言 上节我们将电网巡检系统的前端vue2项目创建、配置&#xff0c;并构建了最基础的多租户界面&#xff0c;本节来继续构建后端的公共模块、多租户模块&#xff0c;并将公共模块引入到多租户模块中。 创建公共模块和多租户模块 在back父工程下创建两个Module&#xff0c;和…

STM32学习路线开启篇:芯片简介与课程简介

编写不易,请多多指教,觉得不错可以关注一下,相互学习 前言 一、课程配套资源 1、面包板 2、面包板专用的跳线 3、面包板的飞线 4、杜邦线 5、STM32F103C8T6最小系统板 6、0.96寸的OLED显示屏模块 7、电位器 8、按钮 9、LED灯 10、STLINK 11、USB转串口(TTL)模块 12、源蜂鸣器模…

图像直方图

图像直方图就是用来统计图像像素值分布的。灰度图分布读取灰度图phone cv2.imread(phone.png, cv2.IMREAD_GRAYSCALE) a phone.ravel() plt.hist(a, bins256) plt.show()如何可以获得当前像素值分布读取各通道的像素值分布img cv2.imread(phone.png) colors (b, g, r) for …

分类别柱状图(Vue3)

效果图&#xff1a;需求&#xff1a;男女年龄段占比<template><div class"go-ClassifyBar01"><v-chartref"vChartRef":option"option"style"width: 100%; height: 800px"></v-chart></div> </templa…

Apache Dubbo学习笔记-使用Dubbo发布、调用服务

Apache Dubbo经常作为一个RPC框架来使用&#xff0c;这篇文章主要介绍使用Dubbo配合注册中心来发布和调用服务。 Apache Dubbo和Spring Boot、JDK的版本对应关系。 Dubbo 分支最新版本JDKSpring Boot组件版本详细说明3.3.x (当前文档)3.3.08, 17, 212.x、3.x详情- 版本变更记录…

Python学习——字典和文件

前面python的学习中我们已经学习了python的函数和列表元组相关的内容&#xff0c;接下来我们来学习剩下的python语法&#xff1a;字典和文件 相关代码已经上传到作者的个人gitee&#xff1a;楼田莉子/Python 学习喜欢请点个赞谢谢 目录 字典 创建字典 查找key 新增/修改元素 …