CAN设计流程中使用的VECTOR工具
更新时间:2024-02-03 14:19:01 阅读量: 教育文库 文档下载
- pcb设计流程推荐度:
- 相关推荐
CAN设计流程中使用的VECTOR工具
在CAN网络的开发初级阶段,我们首先是面临着一个工程问题,比如说一个汽车ECU网络的开发。开发第一步,是需求分析的定义,即定义在这个网络里的通讯需求:需要有几个节点;在网络中定义发送多少个具体的报文(Message);数据分别是从哪个节点传送至哪个节点;每个报文的具体的组成--信号(Signal);同时为了描述一些外部的输入输出,就要加上环境变量。在这一过程中,我们可以利用到Vector公司的网络数据库工具CANdb++,利用它可以定义和管理分布ECU网络的通讯数据,能检查出概念定义的一些错误及时改正,网络设计也能得到优化。接下来,我们需要从功能建模,仿真分析,系统部分实现到系统的全部实现这几个步骤。而利用Vector提供的CANoe能支持上面的四个开发步骤。我们将前两者综合成一个开发阶段因此提出开发分为三个阶段:
第一阶段是进行功能建模和仿真。这一过程,主要是针对有具体数据定义的报文的事件处理,也就是网络节点的行为定义,可借助CAPL很好的来实现。这是在CANoe的环境中的一种类似于C的语言,利用它可以对比如说一个报文的接收,环境变量的改变或错误的出现等事件进行处理。同时因为CANoe的开放性,我们能使用现有的成熟的算法、函数和模型来扩充自己函数的功能,复杂模型的建立甚至还可以通过其他的建模工具(如Matlab)。接下来就是利用软件进行系统的虚拟的仿真来检验功能的设计,在CANoe中将所设计的完整的软件模拟节点系统进行离线的仿真,来检验各个节点功能的完善性以及网络的合理性。
第二阶段是系统部分的实现。在第一阶段结束后,我们能得到整个完整的系统功能模型。接下来我们开发自己的真实的控制器节点,利用总线接口和CANoe剩下的节点相连接,来测试自己节点的功能:如通信,纠错。这样,如果我们系统的节点是并行开发的,就可以不受其他节点开发步骤的影响。在这一阶段中,一些环境变量的获取可以通过不同的方法来实现从而模拟出一个真实的总线环境。
第三阶段是整个系统的集成。开发的最终阶段我们逐步把所有的节点都用真实的来代替实现,CANoe只是观察分析的工具了。在这个过程中,整个系统,包括各个功能节点都能详细的检查到。由于利用功能模块取代真实的网络节点能减少错误的发生,因为通过这两种状态的切换能检查其功能。
在开发的第二阶段和第三阶段,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语言的基于事件来描述行为的原理。举个例子,模型可以描述当某一节点收到一个报文的时候(事件),利用程序对数据进一步进行处理并且结果作为一个控制变量输出。用户必须指定输入输出变量以便网络节点的时间行为和报文累计的仿真。通过仿真来检验各个节点功能的完善性以及网络的合理,可以监控网络负载和延迟。 阶段2::节点实现和半物理仿真;
在第一阶段设计之后,通常网络的各个节点是由不同的开发者承担设和开发的,而且这些开发是并行独立进行的。对于这样一种并行工程各个节点的开发通常需要一个全系统的测试环境。这样就可以利用到前一阶段所得到的全数字仿真系统,利用总线的实时接口和CANoe剩下的节点相连接,来测试自己节点的功能:如通信,纠错。对于并行开发的节点,就可以不受其他节点开发步骤的影响。在这一阶段中,一些环境变量的获取可以通过不同的方法来实现从而模拟出一个真实的总线环境。 阶段3::全系统集成
在开发的最后阶段,所有的真实网络阶段按顺序的一步步连接起来实现全系统。CANoe只是监控和观察分析的工具了。在这个过程中,整个系统,包括各个功能节点都能详细的检查到。由于利用功能模块取代真实的网络节点能减少错误的发生,因为通过这两种状态的切换能检查其功能。
前面所讲到的节点的输入输出信号可以借助环境变量来描述。利用CANoe可以区分连续的或是离散的变量。例如开关的位置可以用离散的环境变量表示,发动机的转速或是温度则可以用连续环境变量表示。 控制面板为环境变量提供一个友好的用户接口,可以模拟一个直观的车辆运行外部环境如汽车仪表显示等。用户还可以自己进行开发仪表界面来适应自己特殊需求。在仿真过程中,环境变量可以进行显示也可以进行修改。
另外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。可无论我按哪个按键它都是是将第一个报文发出去,我就是将这个按键的触发事件及对应的报文给删去,当我运行程序时还是发第一个报文所对应的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,就会发现CANoe的几乎所有监测、统计功能,在CANalyzer中同样有)。CANoe的主要功能是针对网络开发全过程的仿真,这个仿真包含了对通讯协议(CANdb Editor)的仿真和对每个节点功能定义的仿真(CAPL)。而上述所有监测工具只是用来帮助工程师在仿真或者测试过程中方便直观的获得各种统计信息和数据监视。
其次,对于团队工作而言,也是看是处于整个开发流程的哪个阶段。CANoe可以应用与开发流程的几乎全部阶段,但是我个人认为,最主要的应用还是在最初的网络的全局设计阶段。在这个阶段,只需要确定协议及每个节点的功能定义,而不需要很多的软硬件开发工作。这个和普通的系统或者节点开发还是有区别的。另外,CAPL语言所针对的也是网络中各节点通讯功能的实现,例如在整车动力系统网络中,发动机ECU的算法就不是CAPL语言所能简单实现的。
因此,在团队开发工作中,CANoe起到的是整体设计仿真验证和测试的作用,无需多个子团队参与到CANoe的开发工作中;但是,一旦CANoe的仿真环境搭建好之后,又是每个子团队都可以充分利用的一个很好的仿真测试环境。
请教CANoe中PANEL EDITOR的问题
我们用PANEL EDITOR进行仪表界面编辑时,打开或存储编辑文档时,PANEL EDITOR编辑环境总是莫名其妙的就消失了,文档也没有存上,在台式机和笔记本上都是这样的问题,请问这是什么原因,是什么地方设置不当的原因? A:您说的这个问题比较奇怪。
是说在打开一个事先存储的界面文件,或者存储一个新建的界面文件时,Panel Edtior都会自动关闭么? 还是说建立的界面文件没有出现在仿真环境中?
如果是后者,请打开菜单中的Panel\\Config Panels,在对话框中通过Add按钮选择你所存储的界面文件,并通过Display按钮让你选择的界面文件显示在仿真环境中。
如果是前者,倒真的是个奇怪的问题,你可以通过邮件或者电话和恒润公司的工程师联系。 chjfu@hirain.com, 010-82011456-821 Q:ErrorFrame
在使用can-analzyer时,log中出现了ErrorFrame的帧,它是如何产生的,怎样消除这个不需要的帧? A: 产生错误帧的原因有很多,例如CAN规范中定义的错误就有:
应答错误,位错误,格式错误,填充错误和CRC错误,任何一个错误都会产生错误帧。 而这些错误帧都会被CANoe记录。
要消除这些帧,必须检查你的网络排除造成错误的故障;如果您仅仅是不需要在Log中记录这些帧,可以在Log模块之前添加一个Filter,选择Stop Filter,将错误帧过滤掉,这样在Log文件里就看不到错误了。
但是在Trace和 Bus statistics仍然可以看到错误。当然你也可以用同样的办法过滤掉错误帧 Q:CANoe只能安装到一台计算机上吗?
我们公司购买的CANoe设备为什么只能在一台计算机上安装?其他计算机安装后提示licence或者用户名等不对??
A: CANoe可以安装多台计算机,但是CANoe 的License绑定在CAN卡上,因此同时只能有一套CANoe在使用(无CAN卡CANoe无法启动)。
您在第一篇帖子中不是说“其他计算机安装后提示licence或者用户名等不对”,我以为是安装完成了。 如果是安装过程中的问题,请注意以下几点:
1。先安装CAN卡驱动,即插上CAN卡,按计算机提示安装驱动
2。安装CANoe,注意当提示输入用户名成和产品序列号以及License时,按CANoe安装光盘包装上的信息填写,尤其是用户名,确保每个点和空格都和包装上的信息一致。 如果还有问题,可以直接和我们的技术支持联系。support_dept@hirain.com
Q: CAN总线负载如何计算??
CAN总线负载如果计算的?并且每个can帧最大传输需要多少位?
A: 简单的说,某个时间长度内,总线处于工作状态的百分比就是总线负载。
CAN帧(标准帧)由起始位(SOF,1bit),ID(11bit),RTR(1bit),IDE(1bit),保留位(1bit),DLC(4bit),数据场(0~8 Byte),CRC(2 byte),ACK(2bit),帧结束(7 bit)和帧间隔(3 bit)构成。自己用加法算一下咯。当然在实际传输时还要考虑填充位的影响
Q: 大家是否遇到到CAN帧丢失?
我在做接收端的时候遇到过CAN帧不能全部接收到,发送丢失现象,大家是否遇到过?如果避免呢?
A: 能否详细描述这个现象。
在接收节点收到严重干扰的时候,有时可能会出现丢帧现象。我所说丢帧是指:当发送节点成功发送1000个报文时,接受节点正确接收的节点可能只有不到1000个这样的现象。
这种现象的原因是接收节点本身设计上软硬件缺陷,因而在干扰,或者高负载情况下工作不正常。 因为不清楚你所说的丢帧是否和我说的一样,所以希望了解更详细的信息。 是的
我在第一次设计节点的时候确实没有考虑到这个问题!其实我CAN已经接收到了,但是我没有及时的处理!也许设定个合理的Buffer会好点!
Q: 请教关于CANoe使用问题
在现场使用CANoe与其他控制器互相通信时,偶尔会收到Errorframe祯,但系统运行正常,请教此时对此现象应该如何分析,错误出在哪一方面,是属于CAN底层通信错误、现场干扰、还是上层协议制定的问题,请指教如何分析,谢谢:)
A: CANoe是无法知道错误帧的类型,如果您需要查看错误出现的原因,需要使用CANscope进行观察。
Q: CANoe 问题,急
在我运行例子时,write 窗口出现CAN board:tx queue is full-dvErr:3014 dvBufferState:0 以前我们没有出现这种情况,难道是CAN卡有问题了
A: 你的CANoe肯定运行在Real Bus的模式下。在这种模式中,所有的CAN报文的发送和接收是通过真实的CAN收发器(也就是所用的CANcab,CANpiggy)通过真实CAN总线进行。也就是说,在这种模式下,你设置的发送报文如果没有收发器来发送,或者没法被其他节点接收,就会出现你说的发送队列堆满的现象。
为解决这个问题,或者将你使用的CAN通道连接到你真实的总线网络,或者将CAN卡的两个通道互相连接,实现自发自收。
还有一种简单的方法,就是将CANoe运行在Simulated Bus模式下。在选择Config菜单-Option项,选中左栏的Simulation,在右栏中将Working Mode改为Simulated Bus。
Q: 请教CANoe使用过程中的问题
1、我们打开PANEl EDITOR进行新文件存储新文件或打开已有的文件时,总是莫名其妙的退出PANEl EDITOR,我们是哈工大的用户,请告知原因,是什么没设置正确。
2、请问CANoe发出的数据贞在默认情况下都是标准贞,怎么才能设置硬件,使CANoe发出的数据贞格式变成扩展贞的格式。
A: 对于第一个问题而言,我反复在CANoe里面操作Panel Editor,但是未发生你所描述的现象,这和设置应该没有关系,可能和系统有关,重新启动电脑或换一台电脑试试,看看是否还是发生该现象? 对于第二个问题而言,硬件都是支持标准帧或扩展帧的的收发的,你只需要在CANdb中定义消息用那一种帧,具体定义的位置在CANdb++ Editor中Message的Define/Type中可选用CAN standard/CAN extended 谢谢指导第2个问题,现在已经清楚了,只要在ID后加上X就表示扩展贞。
但是对于第一个问题,我是在好几个电脑上都是这个问题,笔记本和台式机上都是,都是WINXP系统,笔记本是P3 800,台式机是赛扬1.8G,内存都是256M,现在是打开或保存文件都是莫名其妙的退出软件,除非我们在PANEL EDITOR里把Vector这个图标拉出来,拉大,仍改一下,再删掉,在存储文件就不会关闭了,但是打开就不可以,我只能每次都用文件下拉菜单的以前保留的几个文档打开,相当不方便。庆邦族考虑一下是什么问题??谢谢
我在Windows XP和Windows 2000两个系统都测试了一下,没什么问题。请问一下你的Panel Editor的版本是多少?我测试的版本是Panel Editor Version 2.3(CANoe 4.1)和3.0(CANoe 5.0)。
Q: 请教CAN实时性的问题 请教一下各位高手:
CAN通信中一个重要的指标是信息传递的实时性问题,从信息写进缓存到节点接收到为止的时间延迟,请问有没有具体的方法来测试总线的实时性,CANoe可以做吗?谢谢各位高手:) A: CANoe目前没有一种现成的手段用于你所说的实时性测试。
为了完成你所说的实时测试需要在所有发送/接受节点间建立时钟同步,否则无法对你所说的时间延迟作出准确测量。Vector的CAN接口卡之间,以及CAN卡的两通道间都提供了同步机制,关于这点可以咨询恒润公司的相关工程师得到详细资料。
另外,对你所说的CAN总线实时性的概念,我的观点如下:
在总线负载率不高,总线通讯顺畅的情况下,任何信息都可以在无竞争,无干扰的情况下进行传输。那么,从信息写入缓存到节点接受到的时间只和收发节点的控制器(如SJA1000)型号,收发器(如PCA82C251)型号,总线波特率(Bit/second),信息(Message)长度——主要由标准帧(11位标识符)、扩展帧(29位标识符)以及数据场长度(DLC)决定——相关,并且将是个比较固定的值。
但是在环境比较复杂时,例如电磁干扰,电气故障等会造成信息无法被正确接受,那么发送节点反复重发是否要记入实时性?
另外,在出现总线竞争的情况下,总线的仲裁机制会使优先级别较低的信息被延时发送,而这是由于系统设计,主要是应用层协议设计所带来的问题。
因此保障总线实时性的关键在于完善的硬件设计保障信息的抗干扰特性,优化的系统设计保障总线的低负载率,在这种情况下,总线的实时性是可以得到可预测的保障。
我在Windows XP和Windows 2000两个系统都测试了一下,没什么问题。请问一下你的Panel Editor的版本是多少?我测试的版本是Panel Editor Version 2.3(CANoe 4.1)和3.0(CANoe 5.0)。
Q: 请教CAN实时性的问题 请教一下各位高手:
CAN通信中一个重要的指标是信息传递的实时性问题,从信息写进缓存到节点接收到为止的时间延迟,请问有没有具体的方法来测试总线的实时性,CANoe可以做吗?谢谢各位高手:) A: CANoe目前没有一种现成的手段用于你所说的实时性测试。
为了完成你所说的实时测试需要在所有发送/接受节点间建立时钟同步,否则无法对你所说的时间延迟作出准确测量。Vector的CAN接口卡之间,以及CAN卡的两通道间都提供了同步机制,关于这点可以咨询恒润公司的相关工程师得到详细资料。
另外,对你所说的CAN总线实时性的概念,我的观点如下:
在总线负载率不高,总线通讯顺畅的情况下,任何信息都可以在无竞争,无干扰的情况下进行传输。那么,从信息写入缓存到节点接受到的时间只和收发节点的控制器(如SJA1000)型号,收发器(如PCA82C251)型号,总线波特率(Bit/second),信息(Message)长度——主要由标准帧(11位标识符)、扩展帧(29位标识符)以及数据场长度(DLC)决定——相关,并且将是个比较固定的值。
但是在环境比较复杂时,例如电磁干扰,电气故障等会造成信息无法被正确接受,那么发送节点反复重发是否要记入实时性?
另外,在出现总线竞争的情况下,总线的仲裁机制会使优先级别较低的信息被延时发送,而这是由于系统设计,主要是应用层协议设计所带来的问题。
因此保障总线实时性的关键在于完善的硬件设计保障信息的抗干扰特性,优化的系统设计保障总线的低负载率,在这种情况下,总线的实时性是可以得到可预测的保障。
正在阅读:
CAN设计流程中使用的VECTOR工具02-03
浅议启发性原则在幼儿教育中的运用03-20
2014-2015学年第一学期八年级数学期中复习试题06-07
初夏的色彩作文500字07-09
励志图强 报效祖国 演讲稿09-30
《论语》中有关“仁义礼智信”的名句02-20
中国人民保险公司船舶保险投保单样式三08-18
青年志愿者周年庆策划书09-21
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 流程
- 工具
- 使用
- VECTOR
- 设计
- 浅谈在新时代如何发挥委员主体作用
- 西理工编译原理试题集1-7
- ERP系统原理和实施1~6章课后答案及 练习题 - 图文
- 电子秤stm32程序
- 小学德育工作总结2016
- 计算机局域网的组建 - 终稿陈玲
- 化学危险品安全技术说明书
- 企业如何开展网络营销
- 2017年上半年湖南省建筑工程C证安全员试题
- 人美版《美术》5年级下册19课 - 昨天、今天和明天
- 成核剂项目立项报告
- 2014年人教版小学数学一年级下册全册教案
- 第5章ANSYS水利工程应用实例分析
- 以先进典型为榜样,增强进取精神心得体会
- Vontu DLP数据防泄漏方案模版
- 答案 中国美术史试题4套
- 探索发现—生命(课后题)
- 育婴员中级操作技能考核复习提纲(带部分答案) - 最新(2) - 图文
- 中小学心理健康教育课程标准
- JavaScript习题(带答案)