©2008.HiRainTechnologies.Allrightsreserved.CANoe快速入门©2007.HiRainTechnologies.Allrightsreserved.Slide:CANoe概述CAN总线开发工具仿真测试分析记录2©2007.HiRainTechnologies.Allrightsreserved.Slide:CANoe组成功能强大、操作简单CANoe数据库支持CANdb++Editor可编程CAPL虚拟仪表PanelEditor&PanelDesigner3©2007.HiRainTechnologies.Allrightsreserved.Slide:4第一阶段–网络设计和仿真仿真验证CANoeSimulationSetupMeasurementSetupCANoe在总线开发中的作用(1)数据库CANdb++EditorDBCCANdatabase硬件接口卡&“狗”CANcaseXL/CANcardXL©2007.HiRainTechnologies.Allrightsreserved.Slide:CANoe在总线开发中的作用(2)5第二阶段–节点设计物理网络物理网络硬件接口CANCANtransceivertransceiverMCUMCUCANCANcontrollercontrollerphys.busCANdb++Editor*.dbcCANoe仿真网络仿真网络仿真节点仿真节点11仿真节点仿真节点22simulatedrest-of-bus©2007.HiRainTechnologies.Allrightsreserved.Slide:CANoe在总线开发中的作用(3)6第三阶段–系统集成物理节点物理节点11物理节点物理节点22CANCANtransceivertransceiverMCUMCUCANCANcontrollercontrollerAnalysis硬件接口©2007.HiRainTechnologies.Allrightsreserved.Slide:基本术语——报文(消息)与信号7报文:enginedata(ID100)ID100B0B1B2CRC信号发动机温度(第三字节,0-6位)未用(第三字节,第七位)发动机转速(第一,二字节)转换规则发动机转速:rpm=1*Bitvalue(0xFF代表错误)发动机温度:ºC=2*Bitvalue–50(0x7F代表错误)©2007.HiRainTechnologies.Allrightsreserved.Slide:基本术语——环境变量与系统变量环境变量节点的I/O信号可用于面板或真实I/O系统变量节点内部参数或需要观测的某个数值例如:系统变量1=报文1.信号1-报文2.信号28©2007.HiRainTechnologies.Allrightsreserved.Slide:准备工作(1/5)CANoe确认CAN卡license信息控制面板-VectorHardware9©2007.HiRainTechnologies.Allrightsreserved.Slide:准备工作(2/5)CANoe新建配置工程10©2007.HiRainTechnologies.Allrightsreserved.Slide:CANoe通道数设置Configuration-OptionsConfigurationSettings-ChannelUsage11准备工作(3/5)©2007.HiRainTechnologies.Allrightsreserved.Slide:CANoe通道配置Configuration-HardwareConfiguration-Driver12准备工作(4/5)©2007.HiRainTechnologies.Allrightsreserved.Slide:CANoe波特率设置Configuration-HardwareConfiguration13准备工作(5/5)©2007.HiRainTechnologies.Allrightsreserved.Slide:CAN总线开发StepOne:新建数据库DBC文件编辑工具启动CANoeFile-OpenCANdbEditor点击14©2007.HiRainTechnologies.Allrightsreserved.Slide:创建一个新的CAN数据库File-CreateDatabase…选择模板,鼠标双击或按[OK]按钮指定数据库文件类型、文件名及保存目录按[Save]按钮。一个新数据库创建完成15©2007.HiRainTechnologies.Allrightsreserved.Slide:创建对象(信号、报文、节点、环境变量和ECU)在Overview窗口左边选择所需创建对象的类型右键点击对象类型,在快捷菜单中选择New…使用配置对话框设置所创建对象的系统参数值点击[确定]按钮,一个新对象便创建完毕16©2007.HiRainTechnologies.Allrightsreserved.Slide:复制已有对象Copy-Paste选择已有对象Ctrl+c选择对象类型Ctrl+v17©2007.HiRainTechnologies.Allrightsreserved.Slide:修改/编辑已有对象直接双击18©2007.HiRainTechnologies.Allrightsreserved.Slide:对象链接(1/2)信号与报文之间的连接发送报文与节点之间的连接鼠标拖拽或Copy-Insert19©2007.HiRainTechnologies.Allrightsreserved.Slide:对象链接(2/2)接收报文与节点之间的连接通过信号间接定义双击节点,选择MappedRxSig.页签点击Add…,选择接收信号点击OK点击确定20©2007.HiRainTechnologies.Allrightsreserved.Slide:通信矩阵View-CommunicationMatrix…显示信号、消息、及网络节点的关系以信号为行,网络节点为列消息名显示于表中,对应了包含的信号与发送/接收的节点21©2007.HiRainTechnologies.Allrightsreserved.Slide:数值表(1/2)新建数值表View-ValueTalbes右键点击空白处,选择New…在对话框中输入数值,点击确定新的数值表创建完成22©2007.HiRainTechnologies.Allrightsreserved.Slide:数值表(2/2)分配数值表数值表可以分配给信号或环境变量23©2007.HiRainTechnologies.Allrightsreserved.Slide:一致性检查File-ConsistencyCheck24©2007.HiRainTechnologies.Allrightsreserved.Slide:在CANoe中添加数据库View-SimulatioinSetup25添加数据库©2007.HiRainTechnologies.Allrightsreserved.Slide:Excise126I/O接口应用程序总线接口I/O接口应用程序总线接口影响1)分析网络,建立数据库Howmanynodes?Howmanymessages?Howmanysignals?2)新建CANoe配置工程,并加入数据库文件©2007.HiRainTechnologies.Allrightsreserved.Slide:CAN总线开发StepTwo:仿真建模27节点节点11节点节点22CANbus仿真建模节点行为定义,eg:报文发送和接收报文发送简单→发生器模块实现复杂→CAPL编程实现报文接收CAPL编程实现©2007.HiRainTechnologies.Allrightsreserved.Slide:EasysimulationSimulationSetupView-SimulationSetup发生器交互式发生器28©2007.HiRainTechnologies.Allrightsreserved.Slide:发生器模块29©2007.HiRainTechnologies.Allrightsreserved.Slide:30发生器模块©2007.HiRainTechnologies.Allrightsreserved.Slide:31发生器模块©2007.HiRainTechnologies.Allrightsreserved.Slide:32交互式发生器模块©2007.HiRainTechnologies.Allrightsreserved.Slide:ComplexsimulationSimulationSetupView-SimulationSetupCAPL节点33©2007.HiRainTechnologies.Allrightsreserved.Slide:CAPL编程CAPL(CANAccessProgrammingLanguage)类C语言仿真单个节点和整个网络外部环境测试面向事件的编程语言总线事件键盘事件时间事件环境变量事件34©2007.HiRainTechnologies.Allrightsreserved.Slide:CAPLBrowser35标题栏菜单条工具条浏览树窗格编译信息窗格状态条全局变量编辑窗格CAPL程序编辑窗格©2007.HiRainTechnologies.Allrightsreserved.Slide:CAPL事件36事件类型事件类型事件名事件名程序执行条件程序执行条件事件过程语法结构事件过程语法结构**系统事件PreStartCANoe初始化时执行onpreStart{…}Start测量开始时执行onstart{…}StopMeasuremet测量结束时执行onstopMeasurement{…}CAN控制器事件BusOff硬件检测到BusOff时执行onbusOff{…}ErrorActive硬件检测到ErrorActive时执行onerrorActive{…}ErrorPassive硬件检测到ErrorPassive时执行onerrorPassive{…}WarningLimit硬件检测到WarningLimit时执行onwarningLimit{…}CAN消息事件自定义接收到指定的消息时执行onmessageMessage{…}时间事件自定义定时时间朝过时执行ontimerTimer{…}键盘事件自定义键值指定的键被下时执行onkeyKey{…}错误帧事件ErrorFrame硬件每次检测到错误帧时执行onerrorFrame{…}环境变量事件自定义指定的环境变量值改变时执行onenvVarEnvVar{…}©2007.HiRainTechnologies.Allrightsreserved.Slide:CAPL基本语法类C语言,语法与C语言基本相同注释//放置在需要注释的语句之前,注释单行/*注释起始符,其后的内容被注释*/注释结束符,结束由‘/*’开始的注释分号程序结束标识大括号函数体37counter=counter+1;if(counter==256){counter=0;stop();}©2007.HiRainTechnologies.Allrightsreserved.Slide:数据类型38数据类型名称注释无符号整型byte1个字节word2个字节dword4个字节有符号整型int2个字节long4个字节浮点型float8个字节double8个字节CAN报文message定时器timer秒msTimer毫秒单个字符char1个字节©20