CAN设计流程中使用的VECTOR工具

更新时间:2023-05-06 06:09:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

CAN设计流程中使用的VECTOR工具在CAN网络的开发初级阶段,我们首先是面临着一个工程问题,比如说一个汽车ECU网络的开发。开发第一步,是需求分析的定义,即定义在这个网络里的通讯需求:需要有几个节点;在网络中定义发送多少个具体的报文(Message);数据分别是从哪个节点传送至哪个节点;每个报文的具体的组成--信号(Signal);同时为了描述一些外部的输入输出,就要加上环境变量。在这一过程中,我们可以利用到Vector公司的网络数据库工具CANdb++,利用它可以定义和管理分布ECU网络的通讯数据,能检查出概念定义的一些错误及时改正,网络设计也能得到优化。接下来,我们需要从功能建模,仿真分析,系统部分实现到系统的全部实现这几个步骤。而利用Vector 提供的CANoe能支持上面的四个开发步骤。我们将前两者综合成一个开发阶段因此提出开发分为三个阶段:

第一阶段是进行功能建模和仿真。这一过程,主要是针对有具体数据定义的报文的事件处理,也就是网络节点的行为定义,可借助CAPL很好的来实现。这是在CANoe的环境中的一种类似于C的语言,利用它可以对比如说一个报文的接收,环境变量的改变或错误的出现等事件进行处理。同时因为CANoe的开放性,我们能使用现有的成熟的算法、函数和模型来扩充自己函数的功能,复杂模型的建立甚至还可以通过其他的建模工具(如Matlab)。接下来就是利用软件进行系统的虚拟的仿真来检验功能的设计,在CANoe中将所设计的完整的软

1 / 15文档可编辑

件模拟节点系统进行离线的仿真,来检验各个节点功能的完善性以及网络的合理性。

第二阶段是系统部分的实现。在第一阶段结束后,我们能得到整个完整的系统功能模型。接下来我们开发自己的真实的控制器节点,利用总线接口和CANoe剩下的节点相连接,来测试自己节点的功能:如通信,纠错。这样,如果我们系统的节点是并行开发的,就可以不受其他节点开发步骤的影响。在这一阶段中,一些环境变量的获取可以通过不同的方法来实现从而模拟出一个真实的总线环境。

第三阶段是整个系统的集成。开发的最终阶段我们逐步把所有的节点都用真实的来代替实现,CANoe只是观察分析的工具了。在这个过程中,整个系统,包括各个功能节点都能详细的检查到。由于利用功能模块取代真实的网络节点能减少错误的发生,因为通过这两种状态的切换能检查其功能。

2 / 15文档可编辑

3 / 15文档可编辑 在开发的第二阶段和第三阶段,Vector 公司能为开发提供各种不同用处的工具。比如说针对具体的芯片和功能的源代码(有CANopen ,DeviceNet,J1939的源码);符合OSEK 的实时多任务操作系统OsCAN ;总线强大分析工具CANalyzer ;各种不同的硬件工具如网络示波器CANscope 、网络干扰生成器CANstress 等。

当系统都实现之后,有可能要对系统进行测试或者是对其进行标定。在这个方面Vector 又提供了测试和标定软件工具:CANape 。它可以利用现有的标定协议在控制器实时运行的情况下对一些需要标定的控制参数进行在线标定。CANdid 这是对CANopen 网络进行动态测试一种工具。还有多种不同功能的硬件工具。

CAN 网络仿真

可以采用德国Vector 公司提供的CANoe(CAN Open Environment)进行设计和开发,这样的开发平台也是在欧美各大汽车厂商广泛采用的。

CANoe (CAN Open Environment)是一套可用于CAN

开发设计所有阶段

的强力工具。由于它的开放性结构,因此可以用来解决所有CAN开发的复杂问题。它提供了多种图形或文字化的功能窗口或是仪器面板来对分布式网络进行仿真和分析。CANoe 因为其具有可编程功能,其中利用集成的CAPL(CAN Access Programming Language),一种基于事件的面向对象的可编程语言可以实现对网络节点的建模设计。也可以利用CANoe和其他建模工具如Matlab/Simulink的接口来实现建模。

利用CANoe进行CAN系统的设计一般分为三个开发阶段。三个阶段分别是:利用数字仿真进行网络需求分析和设计阶段;节点实现和半物理仿真阶段;全系统集成阶段。各开发阶段如图所示:

阶段1: 利用数字仿真进行网络需求分析和设计阶段

开发第一步,进行系统全部功能及分布式设计并且明确网络节点的层次。这就包括定义报文和选择总线的波特率。然后必须明确单个节点的网络行为(例如周期发送或更复杂的协议)。接下来,可以通过CANoe 建立各个网络节点的模型进行仿真来预估在设定波特率情况下的总线负载和延迟。为了进一步精确的研究,可以通过CANoe建立整个系统的动态功能模型。这包括了网络节点的根据变量输入输出和报文收发的特定行为。这用到了CAPL语言的基于事件来描述行为的原理。举个例子,模型可以描述当某一节点收到一个报文的时候(事件),利用程序对数据进一步进行处理并且结果作为一个控制变量输出。用户必须指定输入输出变量以便网络节点的时间行为和报文累计的仿

4 / 15文档可编辑

真。通过仿真来检验各个节点功能的完善性以及网络的合理,可以监控网络负载和延迟。

阶段2::节点实现和半物理仿真;

在第一阶段设计之后,通常网络的各个节点是由不同的开发者承担设和开发的,而且这些开发是并行独立进行的。对于这样一种并行工程各个节点的开发通常需要一个全系统的测试环境。这样就可以利用到前一阶段所得到的全数字仿真系统,利用总线的实时接口和CANoe剩下的节点相连接,来测试自己节点的功能:如通信,纠错。对于并行开发的节点,就可以不受其他节点开发步骤的影响。在这一阶段中,一些环境变量的获取可以通过不同的方法来实现从而模拟出一个真实的总线环境。

阶段3::全系统集成

在开发的最后阶段,所有的真实网络阶段按顺序的一步步连接起来实现全系统。CANoe只是监控和观察分析的工具了。在这个过程中,整个系统,包括各个功能节点都能详细的检查到。由于利用功能模块取代真实的网络节点能减少错误的发生,因为通过这两种状态的切换能检查其功能。

前面所讲到的节点的输入输出信号可以借助环境变量来描述。利用CANoe可以区分连续的或是离散的变量。例如开关的位置可以用离散的环境变量表示,发动机的转速或是温度则可以用连续环境变量表示。

控制面板为环境变量提供一个友好的用户接口,可以模拟一个直观的

5 / 15文档可编辑

车辆运行外部环境如汽车仪表显示等。用户还可以自己进行开发仪表界面来适应自己特殊需求。在仿真过程中,环境变量可以进行显示也可以进行修改。

另外CANoe还包括一些可以进行CAN的上层协议设计开发和分析的功能,如加入CANoe Option J1939就可以进行基于J1939的分析了。利用其数据库编辑工具CANdb++可以建立基于J1939协议的数据库,然后将优化精简过后的数据库数据录入到数据库文件中,将来所有的开发设计都基于这样一个数据库。

因此,利用CANoe强大的仿真分析功能,第一步可以在实验室环境下建立离线的数字仿真全系统模型,将设计的协议在计算机进行一个测试和验证。来进一步优化网络设计。

Q:有关J1939协议的问题

在应用层使用J1939协议采用CANoe和Matlab/Simulink软件能实现离线仿真吗?我想开发一个节点(比如AMT)J1939协议能在一台PC 机上进行测试和验证吗

A: 可以,CANoe实现网络通信的仿真,配合Matlab/Simulink则可以实现整个网络系统(包含AMT动态控制)的仿真

Q:请教个关于CANoe的问题。

现遇到这么个问题:

两个节点通讯,节点1通过两个按键分别发两个不同报文给节点2。可无论我按哪个按键它都是是将第一个报文发出去,我就是将这个按键的触发事件及对应的报文给删去,当我运行程序时还是发第一个报

6 / 15文档可编辑

文所对应的ID,只是数据域对应的数据不正确。请问这个问题该怎样解决,是不是我那儿设的不正确。请答复一下,谢谢了!

A: 在CAPL中进行报文定义时可用message进行定义,但是在针对J1939进行报文定义时用PG(Parameter Group)命令

Q: 请教如何在CANoe LIN仿真的simulation setup 界面中定义主机节点和从机节点?是否仅有在数据库中定义一种方法?另外LIN 的报文发送是否必须在数据库中定义进度表?如果不定义是否还有其他发送LIN报文的方法?

A: 我先简要回答一下你的问题吧,因为时间久了。

从主节点定义是需要在数据库中定义的。先需定义进度表,或者你可以试一下Gernerate模块

Q:对于CANOE的一些担心

CANOE功能的确比较丰富,但大部分功能属于监测性质,而如果仅仅需要总线监测,其实有很多价廉物美的实现方案;而对于其独有的总线网络系统的仿真开发功能(目前尚未发现其他软件有此功能),虽然表面上对开发很有用,但其开发过程的操作和实现过于独立(一个人一台PC即可),不利于团队工作,不知道在大型复杂系统开发中怎样能协调团队开发与CANOE软件独立性的矛盾,从而有效利用人力,缩短开发周期呢?

A: 首先,我不同意你所说的“CANoe大部分功能属于监测性质”。的确,CANoe提供了很丰富的总线统计,报文统计、跟踪和数据监测的功能,但是CANoe的主要功能并不在此(你可以对比以下CANalyzer,

7 / 15文档可编辑

就会发现CANoe的几乎所有监测、统计功能,在CANalyzer中同样有)。CANoe的主要功能是针对网络开发全过程的仿真,这个仿真包含了对通讯协议(CANdb Editor)的仿真和对每个节点功能定义的仿真(C APL)。而上述所有监测工具只是用来帮助工程师在仿真或者测试过程中方便直观的获得各种统计信息和数据监视。

其次,对于团队工作而言,也是看是处于整个开发流程的哪个阶段。CANoe可以应用与开发流程的几乎全部阶段,但是我个人认为,最主要的应用还是在最初的网络的全局设计阶段。在这个阶段,只需要确定协议及每个节点的功能定义,而不需要很多的软硬件开发工作。这个和普通的系统或者节点开发还是有区别的。另外,CAPL语言所针对的也是网络中各节点通讯功能的实现,例如在整车动力系统网络中,发动机ECU的算法就不是CAPL语言所能简单实现的。

因此,在团队开发工作中,CANoe起到的是整体设计仿真验证和测试的作用,无需多个子团队参与到CANoe的开发工作中;但是,一旦C ANoe的仿真环境搭建好之后,又是每个子团队都可以充分利用的一个很好的仿真测试环境。

请教CANoe中PANEL EDITOR的问题

我们用PANEL EDITOR进行仪表界面编辑时,打开或存储编辑文档时,PANEL EDITOR编辑环境总是莫名其妙的就消失了,文档也没有存上,在台式机和笔记本上都是这样的问题,请问这是什么原因,是什么地方设置不当的原因?

A:您说的这个问题比较奇怪。

8 / 15文档可编辑

是说在打开一个事先存储的界面文件,或者存储一个新建的界面文件时,Panel Edtior都会自动关闭么?

还是说建立的界面文件没有出现在仿真环境中?

如果是后者,请打开菜单中的Panel\Config Panels,在对话框中通过Add按钮选择你所存储的界面文件,并通过Display按钮让你选择的界面文件显示在仿真环境中。

如果是前者,倒真的是个奇怪的问题,你可以通过邮件或者电话和恒润公司的工程师联系。

, 010-82011456-821

Q:ErrorFrame

在使用can-analzyer时,log中出现了ErrorFrame的帧,它是如何产生的,怎样消除这个不需要的帧?

A: 产生错误帧的原因有很多,例如CAN规范中定义的错误就有:

应答错误,位错误,格式错误,填充错误和CRC错误,任何一个错误都会产生错误帧。

而这些错误帧都会被CANoe记录。

要消除这些帧,必须检查你的网络排除造成错误的故障;如果您仅仅是不需要在Log中记录这些帧,可以在Log模块之前添加一个Filte r,选择Stop Filter,将错误帧过滤掉,这样在Log文件里就看不到错误了。

9 / 15文档可编辑

但是在Trace和 Bus statistics仍然可以看到错误。当然你也可以用同样的办法过滤掉错误帧

Q:CANoe只能安装到一台计算机上吗?

我们公司购买的CANoe设备为什么只能在一台计算机上安装?其他计算机安装后提示licence或者用户名等不对??

A: CANoe可以安装多台计算机,但是CANoe 的License绑定在CAN 卡上,因此同时只能有一套CANoe在使用(无CAN卡CANoe无法启动)。您在第一篇帖子中不是说“其他计算机安装后提示licence或者用户名等不对”,我以为是安装完成了。

如果是安装过程中的问题,请注意以下几点:

1。先安装CAN卡驱动,即插上CAN卡,按计算机提示安装驱动

2。安装CANoe,注意当提示输入用户名成和产品序列号以及Licens e时,按CANoe安装光盘包装上的信息填写,尤其是用户名,确保每个点和空格都和包装上的信息一致。

如果还有问题,可以直接和我们的技术支持联系。

Q: CAN总线负载如何计算??

CAN总线负载如果计算的?并且每个can帧最大传输需要多少位?A: 简单的说,某个时间长度内,总线处于工作状态的百分比就是总线负载。

CAN帧(标准帧)由起始位(SOF,1bit),ID(11bit),RTR(1bit),IDE(1bit),保留位(1bit),DLC(4bit),数据场(0~8 Byte),C RC(2 byte),ACK(2bit),帧结束(7 bit)和帧间隔(3 bit)构

10 / 15文档可编辑

本文来源:https://www.bwwdw.com/article/b6je.html

Top