CANoe简易教程1

来源:互联网 发布:淘宝客佣金问题 编辑:程序博客网 时间:2024/05/07 22:51

转载自 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

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。

1 0