使用CANoe搭建LIN通信网络

Step 1. 创建LIN工程

将Vector的盒子连接到电脑,打开CANoe,菜单栏选择File -> New,在Available Templates中双击LIN,跳出如下界面。
在这里插入图片描述

Step 2. 配置LDF文件及LIN通信报文

Stpe 2.1 配置报文及信号

在菜单栏中选择Tools -> LDF Explorer,跳出如下界面,创建New File
在这里插入图片描述

首先点击New Unconditional Frame添加新的无条件帧。
在这里插入图片描述

在如下界面中对LIN报文进行配置

  • Name:帧名称;
  • Length[Byte]:帧长度;
  • ID:帧ID,以十进制表示;
  • Publisher:帧的发送单元;
  • Subscriber:帧的接收单元;
  • Signal Mapping:信号矩阵;
    在这里插入图片描述

点击Create and Map Signal,创建信号矩阵及定义信号,跳出如下界面。
Signal Properties选项卡内配置

  • Name:信号名称;
  • Initial Value:初始值;
  • Signal Type:信号类型,分为Scalar和Byte Array;
  • Length[Bit]:信号长度,最多8bit;

Physical选项卡内配置

  • Minimum[raw]:最小物理量;
  • Maximum[raw]:最大物理量;
  • Unit:该物理量对应的单位;
  • Factor:放大系数;
  • Offset:物理量的补偿;

Publisher/Subscriber Relations选项卡内配置

  • ECUs:发送单元;
  • Subscriber(s):接收单元;

Mapping选项卡内配置

  • Position on Frame[Bit]:该信号在报文中的起始位。
    在这里插入图片描述
    在报文中添加信号后如下图所示。
    在这里插入图片描述

Step 2.2 配置调度表

在菜单栏如下位置选择Create Schedule Table,添加帧的调度表。
在这里插入图片描述

Unconditional Frames中创建的无条件帧拖动到调度表中,如下图所示。
在这里插入图片描述

Step 2.3 配置时序

选择Nodes/Frames,点击左侧方框中的主节点名称,这里是LIN_Master,并选择调度表中的报文。此时右侧方框如下图所示,根据客户需求分别修改Delay(时隙)Timebase(基时)Jitter(偏移)
在这里插入图片描述

Step 2.4 检查及保存配置

保存配置,然后在菜单栏如下位置点击LIN Consistency Checker,进入LDF文件的错误检查。
在这里插入图片描述

出现如下界面后,选择Start the consistency check开始检查。如果存在错误或者警告,左侧栏中会提示相应的问题。
在这里插入图片描述

关闭LDF Explorer,回到主界面。在右侧方框内,右击Databases,选择Add,将保存的LDF文件导入进来,如下图所示。
在这里插入图片描述

Step 3. 添加和配置CAPL模块

在菜单栏中选择Tools -> CAPL Browser,跳出如下界面。
在这里插入图片描述

编写相关的CAPL代码,并保存。
回到主界面,右击Simulation Setup中的红蓝线,选择Insert Network Node,如下图所示。
在这里插入图片描述

CANoe与CANalyzer所不同的是,CANoe可以连接多个从节点,而CANalyzer只能接一个从节点。
这里以一个主节点和一个从节点为例,因此添加两个网络节点(Network Node)。
在这里插入图片描述

右击其中一个节点,选择Configuration进行配置,配置界面如下图所示。
在这里插入图片描述

Settings选项卡内配置

  • Title:标题,对节点命名;
  • Network node:节点网络,选择该节点是主节点还是从节点,或者是哪一个从节点;
    在这里插入图片描述
  • State:节点状态,simulated是仿真节点,off是真实节点;

Node specification选项卡内配置

  • File:选择CAPL文件路径;
  • Edit:编辑CAPL文件;
  • Compile:编译CAPL文件;

配置界面中其余的选项卡可以不做操作,配置完成后主界面如下图。
在这里插入图片描述

Step 4. 运行工程

Home菜单栏中点击黄色闪电图标Start,开始运行,如下图所示。
在这里插入图片描述

相关报文信息会显示在Trace界面上,若需要其他的显示监控界面,可在Analysis菜单栏中选择添加。

Q&A

Q1. 向从节点发送VDCM指令需要同时判断按键1和按键2的变量值,而按键事件(即系统变量事件)中只能判断其中一种按键(系统变量)状态,无法同时判断两种按键(系统变量)状态。
图4

A1. CANoe的CAPL是事件触发的,与C语言不同的是,它没有main函数。解决方法是开启1ms或10ms的定时器,在定时器内循环检测多个按键变量(系统变量)的值,模拟C/C++主函数中的while(1)循环。

Q2. 使用CANoe/CANalyzer的Panel Designer设计Panel时,特别是在点击Toolbox中的工具后,会出现死机、无响应的情况。
A2. 使用了有道词典的屏幕取词功能,导致软件冲突。解决方法是关闭取词软件(如金山词霸、有道词典等)。

Q3. 使用message关键字定义LIN报文变量,编译器报警,报文变量无法正常使用。
在这里插入图片描述

A3. 在CANoe9.0中CAN报文变量使用message关键字定义,LIN报文变量linmessage关键字定义。在CANoe11.0中CAN报文变量和LIN报文变量均使用message关键字定义,默认为CAN报文变量。解决方法是根据CANoe版本选择相应的报文关键字。

猜你喜欢

转载自blog.csdn.net/baoli8425/article/details/116932885