canoe入门教程_简易手工制作

canoe入门教程_简易手工制作转载自http://blog.michiru.me/posts/canoe-tutoiral-part-1.html简介CANoe是什么如果你和我一样接触了点车辆电子开发的话,你可能会听说过CANoe。CANoe是德国VectorInformatik出品的开发软件,主要用于主机厂(OEMs),或者ECU供应商进行CAN网络,或者CAN相关ECU的开发、分析、仿真、测试和

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

转载自 http://blog.michiru.me/posts/canoe-tutoiral-part-1.html

简介

CANoe是什么

如果你和我一样接触了点车辆电子开发的话,你可能会听说过CANoe。CANoe是德国Vector Informatik出品的开发软件,主要用于主机厂(OEMs),或者ECU供应商进行CAN网络,或者CAN相关ECU的开发、分析、仿真、测试和诊断。当然,CAN 总线主要应用与汽车。所以 Vector Informatik(简称 Vector )可以算是一家车辆电子技术公司。和 Vector 做类似事情的公司还有 Phoenix Contack、Robert Bosch、Siemens、Magix 等等。我目前所在的单位选择 Vector 的 CANoe 是有理由的,尽管我不知道(汗

CANoe能做什么

庞大的机器中,很有可能含有许多电子控制器(称为ECU,Electronic Control Unit)。如果是汽车,他们很有可能使用CAN总线进行通讯。比如发动机控制器、车身控制器、仪表盘。CANoe有两个主要功能,

  1. CANoe提供了一个由计算机控制的仿真CAN网络,以及仿真网络上的仿真CAN总线设备。并且配合外设CAN收发器,CANoe还能够将这段虚拟网络与真实网络连接起来。

  2. CANoe能够分析、记录网络上的消息。这样就能知道任何设备向任何设备发送的信息。给出各种图表和报告,例如总线占用率、某个信号值随时间的变化等等。将这些信息展示给用户,用于对器件或者网络的诊断。

简单来说,仿真和分析。

CANoe

比如,我们现在要设计一个CAN网络,包含若干ECU。那么在我们的一份设计书中,就会列出,各个ECU向外发送哪些消息、分别使用什么ID、值代表什么意思、哪些ECU会接收哪条消息,以及这些消息是否是周期信号,等等。在开发的初期,我们可能没有任何ECU。那么使用CANoe仿真整个网络(所有设备),这样就能了解你设计的网络会不会有什么问题。最极端的问题的例子就是总线上设备太多消息太多占满了总线负载。

此外,根据这一份设计,我们能提取出某个ECU相关的消息,形成各个ECU独立的设计书。随着开发的进展,我们按照其中某ECU设计书实现了一个真正的ECU,叫ECU1。会周期性的向ECU2汇报状态,并且接受ECU3给予的控制信号。那么我们将其接入真实的CAN网络(只有ECU1的网络),并连接到CANoe的仿真网络(含有仿真的ECU2、ECU3……),通过CANoe的分析和图表功能,我们就能知道ECU1是否如设计般的工作——消息的周期是否正确,发送的数据是否准确,是否能够正常相应控制指令……

接下来我们相继开发出了ECU2、ECU3。我们都将其接入CAN网络。相应的,CANoe中仿真的设备越来越少。通过CANoe来观察、分析网络,并提供一部分网络功能,就能顺利进行开发。直到最后一个ECU接入真实网络后,并经过CANoe分析无误后,我们就完成了整个网络。

之后,CANoe仍然可以担当CAN网络的监视者,向我们汇报数据。或者,在必要时向CAN网络发送消息,控制任何设备。

CANoe教程

安装与运行

这里没有太多值得说明的。从官网下载CANoe的安装包,如果你已经有了DirectX和.Net的话,可以选择体积小一些的版本。之后解压安装即可。安装时可以选择安装试用版,这不需要任何软件或者硬件许可证(一般是Vector自家的CAN收发器),但试用版只能使用仿真网络。如果你有许可证,务必安装非试用版。安装的最后会询问你需要的安装的CAN收发器硬件驱动,对于我来说是VN1630的硬件驱动(同样由Vector出品),试用版当然就什么都不用选了。

如果一切顺利,可以直接运行CANoe了。第一次运行,CANoe可能会警告你电脑设置了休眠、设置了动态鼠标、设置了Aero等等影响性能的选项;或者没有硬件许可证之类的,可以不予理会。

先忍忍,在实际上开始任何工作之前,看看这些内容:

界面

和其它复杂的大程序一样,CANoe窗口下有许多子窗口。默认会打开的是CANoe最重要的两个窗口,Simulation SetupMeasurement Setup。分别对应我在第二节介绍的CANoe的两个功能。如果没有看到的话,注意CANoe窗口下方、状态栏之上,有几个小按钮。默认是Trace、Configuration、Analysis,它们被称为Desktop。因为CANoe子窗口有点多,因此通过Desktop来管理。点击Configuratin,打开这个预设的Desktop。

  • Simulation Setup:仿真网络的设计,在这里添加、设置、删除仿真节点。
  • Measurement Setup:这里打开和设置图表、报告、记录等窗口。

另一个有用的窗口是Write,它显示程序的输出。关掉其它可能会影响你注意力的窗口,有了这三个,我们就可以开始工作了。窗口们都可以从菜单栏的View打开。

附加工具

菜单栏Tools下,有最重要的两个工具:CAPL Browser和CANdb++ Editor忽略其它:

  • CAPL Browser: CANoe使用的开发语言CAPL的编辑器,同时可以编译。
  • CANdb++ Editor: CAN数据库编辑器,编辑仿真和分析功能所需要的CAN消息数据库。

可以都打开看看,然后不保存任何内容关掉。

CANoe相关文件格式

这三种是最重要的文件,还有一些其它格式的文件,可以先不在意。

  • .cfg:CANoe项目配置文件,可以理解为工程文件;
  • .dbc:CAN数据库文件;
  • .can:仿真节点程序源代码,编译后生成.cbf

简易工作流程

  • 使用File > New Configuration新建一个CANoe项目配置文件。
  • 打开Simulation Setup窗口,为仿真网络添加CAN数据库。
  • 在Simulation Setup内添加仿真节点。
  • 为仿真节点编写程序,语言可以使用CAPL或者.Net。
  • 选择全仿真网络(Simulated bus)或者真实网络(Real bus),半仿真同样使用Real bus。
  • 运行CANoe,开始仿真或者分析。
  • 通过Measurement Setup打开各个窗口观察CAN网络,通过Write窗口观察仿真程序的输出。
  • 结束

新建配置文件

首先让我们来规划一下文件结构:

<Project>
  database\
    *.dbc
  log\
  node\
    *.can
  panel\
    *.xvp
  *.cfg

Jetbrains全家桶1年46,售后保障稳定

database下存放数据库文件.dbclog下存放所有的log文件,node目录下存放CAPL程序源代码.canpanel存放Panel设计文件。

打开CANoe,使用File > New Configuration...来新建一个CANoe项目。模板使用CAN_500kBaud_1ch.tcn,它表示默认CAN总线波特率设置为500kbps,只有1个频道(Channel)。文件名为can.cfg

因为我们还没有CAN数据库,到里这里我们还没有办法开始工作。下一篇文章中我应该会解释一下CAN数据库是什么。

补充

CANoe的全名是CAN open environment ,但是作为Vector的核心产品之一,CANoe并不那么开放。CANoe的许可信息集成在Vector的CAN收发器内,这使你只能购买使用Vector的收发器;开发语言CAPL和数据库格式也都是他自己的;为数不多的提供的软件接口有Matlab和LabView。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214264.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • foremost windows_windows上安装foremost – kalibb

    foremost windows_windows上安装foremost – kalibb做CTF题需要这工具来提取文件里的隐藏文件,网上大部分是linux版本,之前好不容易找了一个exe文件结果还不能用。找了很长时间终于找到了:用这个原代码你自己就可以编译出exe,如果懒得编译的话里面的binary里就有编译好的,直接用这个就好可以把前两个文件复制到一个安全的文件夹,方便以后使用,不要误删就好。分离文件的步骤:1.将所要解密的文件放入foremost所在的目录;进入foremos…

    2025年6月2日
    0
  • 低通滤波器matlab代码_matlab设计fir低通滤波器

    低通滤波器matlab代码_matlab设计fir低通滤波器##一、获取代码方式**获取代码方式1:**完整代码已上传我的资源:[【滤波器】基于matlab低通滤波器(LPF)设计【含Matlab源码323期】](https://download.csdn.net/download/TIQCmatlab/31349826)

    2025年7月4日
    0
  • elasticsearch集群搭建对服务器硬件_elasticsearch集群搭建

    elasticsearch集群搭建对服务器硬件_elasticsearch集群搭建一、ElasticSearch集群1.1搭建集群Elasticsearch如果做集群的话Master节点至少三台服务器或者三个Master实例加入相同集群,三个Master节点最多只能故障一台Master节点,如果故障两个Master节点,Elasticsearch将无法组成集群.会报错,Kibana也无法启动,因为Kibana无法获取集群中的节点信息。由于,我们使用只有一台虚拟机,所以我们在虚拟机中安装三个ES实例,搭建伪集群,而ES启动比较耗内存,所以先设置虚拟机的内存3G和CPU个数4个

    2022年10月10日
    0
  • javaweb分页显示_java分页查询原理思路

    javaweb分页显示_java分页查询原理思路效果图如下:实现步骤:1.创建实体User.class,参考代码如下:publicclassUser{ privateStringname; privateintage; privateStringgender; publicStringgetName(){ returnname; } publicvoidsetName(Stri…

    2022年9月1日
    3
  • Linux 查看内存使用情况

    Linux 查看内存使用情况

    2022年2月13日
    37
  • python取余什么意思_python中取余

    python取余什么意思_python中取余首先取响应头里的编码,如果是几种中文编码之一,则认为中文网页,如果不是中文编码,也不是几种unicode方案之一,则不是中文.否则再在标签里找charset,如果有并且为几种中文编码之一,则是中文如果不是中文编码,也不是几种unicode方案之一,则不是中文.否则对body的内容(如果考虑性能问题,可以不对整个body,只对前N个字节)用正则洗标签过滤所有ASCII码字符,剩余部分…

    2022年4月25日
    74

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号