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

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

转载自 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 Setup和Measurement 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

database下存放数据库文件.dbc;log下存放所有的log文件,node目录下存放CAPL程序源代码.can,panel存放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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 单片机声源定位_基于stm32交通灯源代码

    单片机声源定位_基于stm32交通灯源代码stm32声源定位本科毕业设计(论文)基于STM32单片机声源方向识别器设计与实现摘要近年来,基于麦克风阵列的声源定位系统被广泛地应用于电话会议、视频会议、语音增强、助听器等系统中,因此受到了越来越多的关注,已经成为一大研究热点。在各种声源定位方法中,基于到达时延估计的双步定位法原理简单,运算量小,精度相对较高,有利于实时实现,因此它的应用也最为广泛,本文着重研究了该方法。本文首先给出了麦克风阵列…

    2022年9月22日
  • 微信小程序自定义组件

    微信小程序自定义组件

    2021年6月11日
  • 获取不同机型外置SD卡路径

    获取不同机型外置SD卡路径

    2022年1月19日
  • java中的io流知识总结_java数据流

    java中的io流知识总结_java数据流无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。内容概要JavaIO流的设计不得不让人拍案叫绝,佩服设计者鬼斧天工的手法。如果你是Java初学者,我敢保证第一次接触Java的IO类,一定会”狂晕!”,倒不是因为它有多么难学而是太多,而且及其让人有种“不识庐山…

    2022年10月20日
  • S如何解决安卓DK无法下载Package问题

    S如何解决安卓DK无法下载Package问题

    2022年1月13日
  • 银行风控模型

    银行风控模型风控催生原因对于银行来说,现今互联网贷款和信用卡办理面临的主要难题是数据和风控。站在银行或金融机构角度,自然而然是想获得更多的信息和数据,但是在收集数据这方面又是比较无力的。加上当下的发展趋势,消费贷以及贷款审批速度都要求快。如何在快的的过程中对客户进行一个全面的审查,得出一个合理的结果呢?如果没有详细的数据对客户进行评估,这势必会提高放贷的风险。风控概述所谓风控,是指多银行贷款资金的…

    2022年6月13日

发表回复

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

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