精华内容
下载资源
问答
  • CANoe

    2020-11-19 17:11:58
    CANoe busoff

    CANoe busoff

    在这里插入图片描述

    展开全文
  • CANoe常用操作(CANoe系列其一)

    万次阅读 多人点赞 2019-05-04 17:27:56
    CANoe常用操作(CANoe系列其一)摘要1、CANoe工程的新建2、通过Trace工具查看交互的报文内容3、通过Logging保存日志文件4、创建IG发送报文5、通过Graphics界面抓取信号波形6、加载cdd文件7、过滤报文ID的接收8、其他...

    摘要

            CANoe是德国Vector公司为汽车总线的开发而设计的一款总线开发环境,全称叫CAN open environment。同Vspy一样,CANoe集合了网络监控、数据获取/记录、节点仿真、诊断、自动测试等功能;其丰富的功能和配置选项使其也是常见于汽车电子行业。接下来,我们以9.0版本为例,针对CANoe的常用操作进行介绍,具体分为以下几点:

            1、CANoe工程的新建
            2、通过Trace工具查看交互的报文内容
            3、通过Logging保存日志文件
            4、创建IG发送报文
            5、通过Graphics界面抓取信号波形
            6、加载cdd文件
            7、过滤报文ID的接收
            8、其他

    在这里插入图片描述

                 

    1、CANoe工程的新建

            打开CANoe软件,在工具栏的”File”中点击”New”,双击选择创建的模板 ,再保存创建的cfg工程文件。如下:
    在这里插入图片描述

    2、通过Trace工具查看交互的报文内容

            (1)、运行工程:通过点击左上角的开始按键(闪电形状的按键)运行工程;此时会弹出选择CAN通道的界面;若不知道选择哪个通道,可查看“Simulation Setup“界面的”Channels”,如下图。当然这个通道是可以更换的,在”Channels”下进行操作即可。
    在这里插入图片描述
            (2)、使用Trace工具:在”Analysis”下打开”Trace”,若此时CAN上有报文在发送,即可在这个界面下查看到。界面如下图所示,这里对Trace界面下经常用到的几点进行下阐述:

    • Trace界面提供了多种过滤方式,但一般常用的是通过信号ID进行过滤。具体过滤操作可点击”ID”右上角的图标进行设置(将鼠标移到”ID”处时会显示出)。
    • 可以通过点击下图标志3处的这个图标改变报文的显示模式(将同一ID的报文逐条显示或者只显示最后一次的此ID的报文)
    • 下图标志1处的图标表示清空当前”Trace”界面的报文显示
    • 下图标志2处的图标表示停止/更新”Trace”界面的报文显示

    在这里插入图片描述

    3、通过Logging保存日志文件

            前面我们介绍了查看正在交互的报文信号,那当我们需要保存整个报文交互过程,以便后续的分析操作时;我们则可以通过打开Logging功能,将整个报文交互的信息保存下来。具体操作如下:

            (1)、日志文件保存设置:打开”Analysis”下的”Measurement Setup”,此时界面下图所示。
    在这里插入图片描述
            右键上图红框中的”Logging”,点击”Logging File Configuration”。此时界面如下图,在这里进行日志文件的保存设置。
    在这里插入图片描述
            (2)、使能Logging功能:经过前面的操作我们完成了日志文件的保存设置;当我们需要保存日志文件时,则可以通过双击下图红框的暂停箭头,打开Logging功能
    在这里插入图片描述
            此时Logging图标状态如下图所示,截止关闭CANoe工程之前,所有的报文交互信号将被记录保存下来;当然在中间过程可以点击下图红框圈起来的暂停按键停止记录。
    在这里插入图片描述

    4、创建IG发送报文

            在完成工程的创建后,此时的界面如下图所示。在”Simulation Setup”界面下,我们可对当前网络进行结点的添加、交互生成器IG的添加、dbc的添加等设置工作。这里我们介绍下如何通过创建IG发送报文信号。
    在这里插入图片描述
            (1)、右键”Interactive Generators”,选择”Insert Interactive Generators Block CAN”;此时界面如下图所示;
    在这里插入图片描述
              双击上图中创建出来的CAN IG,此时界面如下图所示。
    在这里插入图片描述
            (2)、右键”CAN IG”界面下上面窗格的空白部分,添加要发送的报文信号。有以下的三种选择:

    • 从dbc文件中导入要发送的信号(Add Frame From Database);

    • 添加CAN FD信号(Add CAN FD Frame) ;

    • 添加CAN信号(Add CAN Frame)

      Ps:关于CAN FD (CAN with Flexible Data rate)与CAN主要有以下的两点区别:
      1、可变速率:CAN FD采用了两种速率;从控制场中的BRS(速率转换开关位)位到ACK场之前(含CRC分界符)为可变速率;其余部分为原CAN总线用的速率。
      2、CAN FD对数据场的长度作了很大的扩充,DLC最大支持64个字节,在DLC小于等于8时与原CAN总线是一样的。
      

            (3)、创建自定义的报文发送点击”Add CAN Frame”,此时会添加一条CAN信号;如下图所示,填入要发送的报文ID和信号内容;可选择点击发送或者周期循环发送。此时,可以通过”Trace”面板查看报文是否已经发送
    在这里插入图片描述
            (4)、从dbc中导入要发送的报文:我们也可以从已有的dbc中导入要发送的报文信号进行发送;但这样需要我们先在当前CAN网络导入dbc文件;具体操作如下:

    • 导入dbc:在”Simulation Setup”界面下,右键”Database”,选择”Add”,导入dbc文件(注意需在CANoe工程Stop状态下操作)。界面如下:

    在这里插入图片描述

    • 导入dbc文件中的报文:回到IG界面,右键点击” Add Frame From Database”,如下图,在前面步骤导入的dbc文件下的“Frames“中,选择要导入的报文信号(可一次添加多条报文进来)
      在这里插入图片描述
    • 报文发送:完成dbc报文导入后,我们就可以在IG界面对导入的报文进行发送操作了;界面如下:
      在这里插入图片描述

    5、通过Graphics界面抓取信号波形

            5.1、在”Analysis”下打开”Graphics” 功能界面;此时界面如下:

    在这里插入图片描述

            5.2、添加要查看的报文信号
            (1)、添加用户自己定义的信号:若当前工程没有导入dbc、或者dbc中没有要查看的报文信号,可通过自己定义信号变量进行查看。操作如下:
            在”Graphics”界面下右键,选择”User Defined Signals”,此时会弹出参数设置界面,此时界面如下:
    在这里插入图片描述
            对应写入要查看的报文ID、信号起始位、信号长度;点击OK,即可显示出总线上该信号的波形,此时界面如下图
    在这里插入图片描述
            (2)、从dbc文件中导入信号:在”Graphics”界面下右键,选择”Add Signals”,此时会弹出信号选择界面如下图(注意工程里是要已经有添加dbc文件的了);可以直接在”Signals”里选择信号;也可在”Frames”找到对应报文,再选择要查看的信号。
    在这里插入图片描述
            5.3、关于多个信号时的显示设置
            (1)、如下图,在信号比较少时,可以点击红框图标(y坐标的显示模式设置),选择”Show Signals in Separate Diagrams”,在独立的坐标里显示信号值。
    在这里插入图片描述
            各个信号的y坐标范围可以直接双击进行设置,界面如下:
    在这里插入图片描述
            (2)、当要查看的信号比较多时,则选择”Show All Y-Axis”,此时的显示界面如下:
    在这里插入图片描述
                 

    6、加载cdd文件

            6.1、关于cdd文件
            cdd是诊断数据库文件,描述了诊断应用的范围和数据格式,用于优化整个诊断开发过程。Cdd文件的编辑操作是通过”CANdelaStudio”这个诊断协议开发软件来完成。
            6.2、加载cdd文件步骤
            (1)、在CANoe工程”Stop”的状态下,点击工具栏”Diagnostics”下的“Diagnostic ISO TP”,此时界面如6.1所示;
    在这里插入图片描述
            (2)、右击”CAN”,选择第一个”Add Diagnostic Description”,选择要导入的cdd文件,导入cdd文件后的界面如图6.2所示。
    在这里插入图片描述
            6.3、通过诊断控制台调用cdd文件中的报文进行发送

            点击工具栏”Diagnostics”下的”Diagnostic Console”,此时界面如下图所示;便可直接通过诊断控制台调用cdd文件中配置好的诊断报文信息进行发送;不用再去自己在IG中创建报文。

    在这里插入图片描述

    7、过滤报文ID的接收

            7.1、通过”Network Hardware Configuration”进行报文过滤

            在前面的第2小节里,我们描述了如何通过”Trace”查看交互的报文内容;并简要介绍了相应的过滤操作,其中主要用到的是通过ID进行报文过滤。但”Trace”下的过滤只是将其他显示报文屏蔽不显示而已。打开Logging工具查看保存的文件,其他过滤的报文还是有接收记录着的。若我们想要直接过滤掉某些报文ID的接收,则可以通过在”Network Hardware Configuration”下进行设置。具体步骤如下:
            (1)、在CANoe工程“Stop”的状态下,点击工具栏”Hardware”下的”Network hardware”;此时界面如下图所示
    在这里插入图片描述
            (2)、根据当前工程选用的CAN通道进行过滤设置,若不清楚当前工程选用通道,可在“Simulation Setup“界面的”Channels”进行查看。
            (3)、设置完成后,此时在”Trace”界面下,以及保存下来的日志文件中,都已经将其他报文过滤掉了(注意若是通过IG创建的发送报文,是不会被过滤掉的

            7.2、通过在”Measurement Setup”界面下插入过滤器进行报文过滤

            (1)、如下图,在工程”Stop”的状态下,点击要进行过滤操作的界面窗口前右击 红框内的图标,选择”Insert Event Filter”,其前面会出现 "CFB"的标志(兰框内的图标);(这里是以在”Trace”窗口进行过滤操作为例)
    在这里插入图片描述
            (2)、双击上图中的"CFB"图标,进入CAN过滤的设置界面,按照需求进行过滤设置,此时界面如下图所示:
    在这里插入图片描述
            (3)、此时运行工程,打开”Trace”界面,则可以看到除了指定的这几条报文,其他报文都已被屏蔽掉了。但注意,由于我们前面的例子中加入的CAN过滤器是在”Trace”窗口前面加的,所以其效果也只在”Trace”窗口下有效只对当前插入过滤器的模块有效);此时Logging模块下还是有对其他报文进行记录的。所以,若我们想要生成的工作日志也过滤掉其他报文,则要在”Logging”文件前也加上CAN过滤器,如下:
    在这里插入图片描述

    Ps:除了前面提到的插入CAN过滤器,在”Measurement Setup”界面下的任意窗口,右击前面的 正方形图标,还可以选择其他一些功能模块,如CAN CAN通道的过滤器、CAPL程序等。如下:
    

    在这里插入图片描述

    8、其他

            8.1、利用工具栏”Analysis”下的”Statistics”可以对各类消息帧的发送频率、总线负载、控制器状态等信息进行统计(在工程”Stop”状态下,在”Statistics”下可以新建总线统计窗口,报文直方图( Frame Histogram )等),窗口如下图所示。由于平时用的不多,这里不做详细阐述了。
    在这里插入图片描述
            8.2、利用工具栏”Analysis”下的”Data”可以对信号值、变量值的大小进行查看监控,并保存信号的日志文件(mdf格式)。窗口如下图所示:
    在这里插入图片描述
            8.3、”measurement setup”窗口和”simulation setup”窗口(如下图)是CANoe的主要窗口,进行数据流规划。需重点掌握这两个窗口的学习。

    在这里插入图片描述

    展开全文
  • 介绍CANoe9.0 产品应用手册,详细介绍CANoe工具使用,节点网络测试与仿真等用法
  • canoe教程

    2018-12-01 17:04:51
    canoe教程 CANoe-入门三部曲
  • 介绍CANoe9.0 产品应用手册,详细介绍CANoe工具使用,节点网络测试与仿真等用法
  • CANoe的基本使用,如何建立一个完整的网络,包含各个窗口的用法等
  • CANOE相关资料

    2018-04-18 14:57:03
    CANOE学习资料CANOE学习资料CANOE学习资料CANOE学习资料
  • canoe培训资料

    2018-05-14 15:55:22
    canoe培训资料,canoe培训资料,canoe培训,canoe培训资料
  • canoe功能介绍

    2018-05-14 15:50:26
    canoe功能介绍,canoe功能介绍,canoe功能介绍,canoe功能介绍
  • CANoe应用手册,canoe使用教程源码.zip
  • CANoe测试入门

    2018-10-08 05:26:47
    概述 CANoe测试特点 CANoe测试系统 CANoe测试属性集
  • CANoe .NET编程手册

    2020-12-14 18:24:15
    CANoe .NET编程手册 CANoe .NET编程手册 CANoe .NET编程手册 CANoe .NET编程手册 CANoe .NET编程手册
  • CANoe使用大全

    2018-10-08 05:21:32
    CANoe介绍 { 整车网络开发流程 { CANoe基本功能 { 软硬件配置 { CANoe中的基本概念 CANoe主要功能 { 创建CANoe配置 { 数据库使用 { 分析评估窗口的使用 { 创建面板 { 使用环境变量
  • CANoe之CAPL编程(CANoe系列其三)

    万次阅读 多人点赞 2019-07-02 19:42:28
    CANoe之CAPL编程(CANoe系列其三)摘要1、CAPL概述1.1、CAPL语言特性1.2、CAPL的程序结构1.3、CAPL的数据类型1.4、CAPL事件类型概述2、CAPL事件类型2.1、系统事件2.2、CAN控制器事件2.3、CAN消息事件2.4、时间事件...

    1、CAPL概述

            与Vspy的"C Code Interface"一样;在CANoe的使用中,一样提供了我们进行二次编程开发的工具——”CAPL Browser”。通过CAPL的编程,我们可以在节点上完成更为复杂的功能需求。操作如下:在CANoe工程的”Simulation Setup”界面下的左侧的网络节点中,点击铅笔形状的图标,进入CAPL编辑界面(若当前节点还没有创建对应的CAPL程序,则此时会先提示输入CAPL程序名,并保存为.can后缀的文件

    在这里插入图片描述

    1.1、CAPL语言特性

    • CAPL(Communication Access Programming Laguage)语言是类C语言,语法其实与C语言很相似,但同时又包含了一些C++的特性,如this指针、事件等;
    • 应用于Vector CAN工具节点的编程,是基于事件建模的语言;
    • 可以使用write()函数进行调试,用于将调试信息输出到CANoe的write窗口上;
    • 通过output()函数进行指定报文的发送
    • 通常是通过环境变量事件与CANoe面板进行关联,实现交互;
    • 提供调用dll文件的方法(操作见"关于CAPL中对dll的调用操作"一文);这样保证了对由其他语言封装好的程序模块的调用;
              

    1.2、CAPL的程序结构

            如下,一个完整的CAPL程序的结构包含了头文件、全局变量、事件函数、自定义函数;当然不是每个因素都要有,视具体程序功能确定。

    在这里插入图片描述
            

    1.3、CAPL的数据类型

    在这里插入图片描述
            

    1.4、CAPL事件类型概述

            CAPL是基于事件建模的语言,从1.2小节对CAPL的程序结构的介绍也可以看出,关于CAPL的运用主要就是在于熟悉其事件的使用;其常用的事件如下:
    在这里插入图片描述
            接下来,我们对CAPL的几种事件类型进行进一步的介绍
            

    2、CAPL事件类型

            

    2.1、系统事件

            在CAPL的系统事件中,有preStart、start、preStop、stopMeasurement这4种。我们可以根据需要在相应的系统事件函数接口中定义想要进行的操作;当工程运行时,下述系统事件的发生顺序依次是

    preStart-->start-->preStop-->stopMeasurement
    

            关于系统事件的定义格式如下

    on preStart   	  			/*系统事件,初始化时执行*/
    {
     	resetCan();      			/*CAPL接口函数,用于复位CAN控制器*/
    }
    
    on start        			/*系统事件,工程开始时执行*/
    {
     	write(“Just A Try”);    	/*write()函数将字符串信息在”write”窗口输出*/
    }
    
    
    on preStop    				/*系统事件,工程预备停止时执行;发生在stopMeasurement事件前面*/
    {
      	write("The Project Will Stop!);
    }
    
    on stopMeasurement  		/*系统事件,工程停止时执行*/
    {
      	write("The End!\n");
    }
    

            

    2.2、CAN控制器事件

            当硬件对CAN控制器检测到相应动作发生时执行;以BusOff事件为例,格式如下:

    	on busOff       /*CAN控制器事件:硬件检测到BusOff时执行*/
    	{
    	  	write("BusOff Error!");
    	}
    

            

    2.3、CAN消息事件

            通过”on message”定义消息事件,该事件会在指定的报文消息被接收时被调用。关于消息事件的定义格式示例如下

    on message 123         		/*接收到123(10进制)这个ID的报文时执行*/
    on message 0x441       		/*接收到0x441(16进制)这个ID的报文时执行*/
    on message BCM 	       		/*接收到BCM(工程dbc文件中的报文名)这个报文时执行*/
    on message*	      			/*接收到任意报文时都执行(注意*与message之间没有空格)*/
    on message 0x300-0x444	 	/*接收到这个范围内的ID报文时执行*/
    {
      	write(“Received %x”,this.id);	 /*打印接收到的报文id*/
      	write(“Received Message %d in total!,count)}
    

            以上是关于消息事件的定义格式,关于消息的索引及发送操作我们通过下例介绍:
            假设VoiceStatus是我们工程dbc文件中定义的一个报文,该报文包括了VoiceType和VoiceOperation这两个信号;其中,VoiceType这个变量占据第1个字节;VoiceOperation占据第2、3个字节;则关于消息的索引,通过报文的信号(msg.VoiceType这样)去操作如下

    void TxMsg_VoiceStatus(void) 
    {
        message VoiceStatus msg;         /*将工程中dbc中定义的VoiceStatus这条报文取名为msg*/
        msg.VoiceType = @VoiceType;      /*对应赋值给到报文的信号,通过报文别名"msg."调出*/
        msg.VoiceOperation = @VoiceOperation;
        output(msg);                     /*通过output指令发送该报文*/
    }
    

            也可以直接通过后接数据类型(msg.byte(0)这样)去操作,此时操作如下

    void TxMsg_VoiceStatus(void) 
    {
        message VoiceStatus msg;         /*将工程中dbc中定义的VoiceStatus这条报文取名为msg*/
        msg.byte(0) = @VoiceType;        /*报文第1个数据字节*/
        msg.word(1) = @VoiceOperation; ; /*报文从第1个字节开始的一个字(2个字节)*/
        output(msg);                     /*通过output指令发送该报文*/
    }
    
    

            

    2.4、键盘事件

            通过”on key”定义键盘事件,该事件会在我们按下指定按键时执行;关于键盘事件的定义格式示例如下

    on key ‘a’      	/*在小写输入法下,按下键盘的’A’键时执行*/
    on key ‘A’      	/*在大写输入法下,按下键盘的’A’键时执行*/
    on key ‘ ’      	/*按下键盘的空格键时执行,注意单引号中间是有空格的*/
    on key 0x20     	/*按下键盘的空格键时执行*/
    on key F2      	    /*按下键盘的’F2’键时执行*/
    on key CtrlF3      	/*同时按下键盘的’Ctrl’键和’F3’键时执行*/
    on key*      		/*按下键盘的任意键时都会执行(注意*与key之间没有空格) */
    {
      	write(“The Key Is Press”)}
    
    

            

    2.5、时间事件

            通过”on timer”定义时间事件;该事件会在设定的时间到达时执行。关于时间事件的定义格式及使用示例如下

    variables
    {
      msTimer Timer1;    		/*在variables中声明一个以ms为单位的定时器变量Timer1*/
    }
    
    on start
    {
      setTimer(Timer1,100);     /*将Timer1的定时时间设定为100ms,并启动它*/
    }
    
    on timer Timer1  	 		/*定义的Timer1时间事件,每100ms执行一次*/
    {
      setTimer(Timer1,100);     /*启动下一个周期循环*/
    }
    
    on key ‘a‘		 			/*键盘事件,按下键盘’A’键时执行*/
    {
      cancelTimer(Timer1);	 	/*停止Timer1这个100ms执行一次的定时器*/
    }
    
    

            

    2.6、错误帧事件

            通过”on errorFrame ”定义错误帧事件;该事件会在硬件检测到错误帧时执行。关于错误帧事件的定义格式示例如下

    on errorFrame       /*错误帧事件:硬件检测到错误帧时执行*/
    {
      write("The error has occur"); 
    }
    

            

    2.7、环境变量事件

            通过”on envVar”定义环境变量事件;该事件会在指定的环境变量值有新的输入时执行(环境变量常常用于关联上一个面板控件,当我们对控件进行操作时,对应改变关联上的环境变量值;而此时我们在CAPL中关于该环境变量的事件就会被调用;以此完成交互操作)。关于环境变量事件的定义格式示例如下

    on envVar BCM_HightBeamAlarm    /*环境变量事件:指定的环境变量值有输入时执行*/
    {
    	  byte num=0;
    	  num = getValue(this);     /*可以使用getValue(环境变量名/this关键字)获取指定的环境变量的值*/
    	  if(num == 1)
    	  {
    	    write("The envVar is %d",@BCM_HightBeamAlarm);  
    	  }
    	  else
    	  {
    	    putValue(this,1);/*使用putValue(环境变量名/this关键字,设定的值)改变指定的环境变量的值;直接赋值的话,格式是@BCM_HightBeamAlarm = 1; */
    	    write("Change envVar to %d",@BCM_HightBeamAlarm);
    	  }
    }
    
    

            关于在CAPL中对环境变量的操作中,getValue()与putValue()是常用的接口函数。其函数格式如下,具体介绍及示例也可以通过神键"F1"召唤帮助文档,在"CAPL"相关章节中进行学习。
    在这里插入图片描述

    在这里插入图片描述
            
            Ps:关于环境变量的定义是在dbc文件中完成的;CANoe工程导入该dbc文件即可使用其定义的环境变量了。环境变量的创建如下:
    在这里插入图片描述

            

    2.8、系统变量事件

            通过”on sysvar”定义系统变量事件;该事件会在指定的系统变量值有新的输入时执行,其格式及使用方法与前一小节的环境变量基本一致;差别只在于环境变量是在dbc文件中定义的;而系统变量的定义如下
            点击工具栏的”Environment”下的”System Variables”;此时界面如下,右键空白处,选择”New”进行新建;在弹出的窗口对新建的系统变量进行参数设置。
    在这里插入图片描述
            关于系统变量事件的定义格式示例如下:

    	on sysvar SysVar1	 /*系统变量事件:指定的系统变量值有新的输入时执行*/
    	{
    	  	write("The SysVar1 is %d",@SysVar1);
    	}
    

            

    展开全文
  • CANoe快速入门

    2018-12-13 20:14:19
    汽车常用工具CANoe的详细使用方法,是快速入门CANoe的经典教程
  • CANoe仿真入门

    2018-10-28 22:26:05
    CANoe仿真入门,详细介绍了CANoe工具在开发过程中的应用
  • canoe工具介绍

    2018-11-05 16:21:24
    介绍了canoe工具的使用方法,可以详细的按照介绍进行canoe工具学习
  • CANoe使用教程,有助于使用Vector公司的CAN工具
  • CANoe FDX Protocol手册

    2020-06-22 10:36:26
    CANoe FDX 协议手册 CANoe FDX (Fast Data eXchange) is a protocol for simple, fast, real-time exchange of data between CANoe and other systems via an Ethernet connection. The protocol enables other ...
  • CANoe的简单功能估计大家都用到滚瓜烂熟了,那就趁机认识一下Multi CANoe吧! Multi CANoeCANoe的一种特殊操作模式。它允许多个CANoe实例在不同的计算机上同时运行,所有CANoe实例可以通过Vector硬件同步功能来...

    CANoe的简单功能估计大家都用到滚瓜烂熟了,那就趁机认识一下Multi CANoe吧!

    Multi CANoe是CANoe的一种特殊操作模式。它允许多个CANoe实例在不同的计算机上同时运行,所有CANoe实例可以通过Vector硬件同步功能来达到时间同步,每个CANoe实例都有自己的用户操作界面,参考如下示意图:

    Multi CANoe系统示意图    图片源于Vector

    该功能主要通过扩展CANoe的性能以满足一些超大型系统的测试需求。例如,上层车辆所有网络的所有ECU的交互仿真,需要同一信号在多台设备上同时运行;又或者一个测试工程需要分布在多台设备上协调运行,这时就是Multi CANoe应用的高光时刻。

    对于Multi CANoe的功能实现,首先需要了解以下几个重要配置:

     

    时间同步配置

    几乎所有Vector VN接口都可以通过同步线来实现时间同步(只需硬件具备同步接口)。其中一个接口在这条线上发出一个脉冲后,同时被其他所有连接的接口检测到。但是,连接的硬件接口数量越多,会导致发送时间就相对越长,因此当需要多个CANoe实例集成的接口设备时,建议使用Vector SYNCbox同步盒补偿延时,同步盒的使用如下图所示:

     

    使用Multi SYNCbox的VN接口同步   图片源于Vector

     

    • 同步运行机制

    要保证在所有计算机上同时启动CANoe,需要简单了解下内部的同步运行机制:

    ① 在任何CANoe实例上点击“开始运行”时,都会首先发送启动请求给主机(发送同步脉冲的设备);

    ② 主机向所有CANoe实例发送启动命令;

    ③ 每一个CANoe实例就会开始其当前配置,并将此状态报告给主机,在此阶段,所有驱动程序开始运行,但CANoe尚未处理任何事件;

    ④ 当主机检测到所有CANoe实例均已达到此状态,它通过硬件接口发送同步脉冲;该脉冲就是所有实例的时间戳 0时刻。此时所有的CANoe实例开始处理驱动程序事件。

     

    上面介绍了同步运行方式,那么数据交互又是如何实现的呢?别走开,精彩继续!

     

     

     

    数据交互配置

    原则上,在CANoe实例上运行的配置是完全彼此独立的。但是,时间同步功能可以使主CANoe产生同步脉冲并分配给其他CANoe实例,那么也同样有方法可以使多CANoe实例之间实现信息交互,为此,可以将CANoe配置为在Multi CANoe模式下的隐藏FDX连接(以太网)。

    具体就是Multi CANoe使用Windows IP堆栈进行数据交换,但要确保所有计算机在同一个IPv4子网中,设置如下:

    Windows网络适配器的IPv4设置

     

    版本和Licensing配置

    对于Multi CANoe操作,所有计算机上安装的CANoe版本必须相同,特别是主版本,SP修补程序版本必须相同。

    Multi CANoe要求是CANoe pro或run的license,所以SUT所需的每个总线类型Option也都需要同样的CANoe pro或run license。每增加一台计算机为slave,都需要一个相同版本的CANoe license(RT Rack除外,它具备独有的Slave license)。

    例:SUT具有CAN,LIN和以太网总线的3个子系统,则需要三台计算机分别满足不同的总线需求,这将需要如下的license配置:

    软件版本及license

     

    操作实践

    如果搞清了上述配置,话不多说,利用手边现有设备操练起来。

    我们先用两台计算机模拟该Multi CANoe的操作模式。

    • STEP1:硬件连接

    准备两台电脑安装有相同版本的CANoe软件(SP包也要相同),两个内部集成license为pro的相同版本的接口卡;CAN通信端口分别连接对应被测设备(或者通道互联,进行报文交互),两个接口卡的同步口可直接用同步线连接。

    硬件接口卡配置

     

    • STEP2:总线接口配置

    在每台Multi CANoe计算机上分别配置Vector网络接口,对于硬件同步的物理连接,需要在CANoe的硬件配置对话框中,确定Multi CANoe主计算机的哪个接口将发出脉冲(即VN设备接口上的硬件通道发送脉冲)。

    CANoe的硬件同步口发送脉冲设置

    在此示例中,CANoe的"CAN1"通道用于同步源。在控制面板/CANoe硬件配置中,可以看到该通道映射到哪个硬件接口。

    Vector硬件配置中的通道分配

    STEP3:网络配置

    两台电脑分别打开网络设置,确认IP地址信息,确保二者在IPv4相同子网段中,此IP地址可以更改,并保存;

    Windows网络适配器设置

    正确配置Windows网络适配器后使用网线连接,然后分别打开对应的软件工程,可以在CANoe的Option配置选项内,点击Multi CANoe配置对话框,选择激活“Enable Multi CANoe”,如果输入的IP地址在当前Windows IP配置中不可用,那么就会出现图标标示处的红色×表示CANoe实例无法访问,如下图所示

    IP配置不可用信息显示

     “ CANoe Option” IP配置可用信息显示及导入导出功能

    重要说明:在所有运行的计算机上,Multi CANoe实例的IP地址列表必须相同。因此,此处设有导入和导出功能,如上图所示,将配置文件共享用于其他实例导入。每个CANoe都要相互了解所有实例。且此处不支持动态IP地址。

    STEP4:信息交互设置

    Multi CANoe的最大优势在于它可以无限制地扩展。所有的计算是在各自独立的计算机上完成的,如果需要更多的计算能力或更多的通道,只需添加计算机个数。

    Multi CANoe实例,CANoe之间的信息共享很重要。例如,模拟点火状态可能需要在几个总线实例中同时运行,并且分别由不同的计算机处理;或者一个测试可能分布在多个CANoe实例上,他们需要协调下一步应该执行哪个测试步骤。为此,可以设计将系统变量应用在其中,我们所需要做的,就是简单配置系统变量的“Multi CANoe Write Access”属性:

    系统变量的多CANoe设置

    将这样的系统变量定义保存到文件中,并使其他所有的Multi CANoe实例皆引用该文件。那么,具有“master”权限的实例在更改该变量后,数值的变化会立即被其他CANoe实例看到;但也莫要将大量总线信号映射到此类系统变量,可能会导致负载率的增加。

    STEP5:数据分析显示

    完成了上述的操作,最后我们来展示下使用Multi CANoe功能的优越性。

    首先,对两台计算机上的实例工程demo1和demo2,按照以上STEP1- STEP3配置,运行程序,可以观察到以下报文信息:

    Master主机Trace窗口报文信息

    Slave 节点Trace窗口报文信息

    在两个Trace窗口中, Master 和Slave可以按照自定义的周期进行交互通信,且两个工程的同步时间,只存在us级别的延时,使其达到了多台设备报文交互同步的目的。

    其次,对两台计算机上现有的实例工程demo3和demo4(二者具备相同的系统变量),按照以上STEP1- STEP4配置并运行,可以观察到以下报文信息:

    对相同系统变量进行属性配置“Multi CANoe Write Access”后,两个工程实例不仅能同步运行,还可以同步控制系统变量关联的panel面板控件更改数值,实现同步仿真;

    多系统变量的配置显示

    Master主机的panel面板控制

    对比Slave 节点的panel面板被控操作

    上述两图对比可以看到,当Master主机操作面板控件后,Slave节点会同步显示控件的变化,并且控件关联的系统变量的数值也会同步显示在各自的分析窗口中,如此,系统变量的简单应用,就可以使多台设备同步共享同一参数状态,来满足各个子系统的不同需求。

    以上demo的功能应用较为简单,但是大家完全可以按照相同设置去模拟操作功能更为完善的大型整车系统,实现整车多ECU的同步交互仿真的需求。

    那么今天就Multi CANoe的简单应用,给各位学霸们介绍到这里,希望能够帮助大家更好的认识和使用CANoe,挖掘出更多的CANoe隐藏功能,简化大家的工作流程,提高工作效率。最后也欢迎各位在评论下方与怿星积极的交流沟通,一起探讨Vector工具的福利功能。

    展开全文
  • CANoe快速入门.pdf

    2021-03-20 22:35:01
    CANoe快速入门,适合CANoe初学者学习
  • CANoe入门

    2021-05-17 17:13:08
    CANoe常用操作 CANoe是德国Vector公司为汽车总线的开发而设计的一款总线开发环境,全称叫CAN open environment。CANoe集合了网络监控、数据获取/记录、节点仿真、诊断、自动测试等功能;其丰富的功能和配置选项使其...
  • Canoe 入门

    2019-07-03 16:15:50
    CANoe是Vector公司的针对汽车电子行业的总线分析工具,现在我用CANoe7.6版本进行介绍,其他版本功能基本差不多。 硬件我使用的是CAN case XL. 1,CANoe软件的安装很简单,先装驱动,再装软件。安装完成,插上USB,...
  • CANoe CAN analyzer 7.1

    2020-10-21 09:12:56
    完整的分析工具。CANalyzer相当于CANoe的一个子功能软件,具体CANalyzer与CANoe有哪些不同,此更多下载资源、学习资料请访问CSDN下载频道.
  • CANoe快速入门,canoe快速入门教程,C,C++源码
  • CANoe Demo工程

    2018-09-21 17:01:07
    附件是基于CANoe软件CAPL语言编写的demo脚本,模拟车载诊断仪发送诊断请求。CAPL软件里面包含报文、定时器的定义和使用简例。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,612
精华内容 1,044
关键字:

CANoe