【CANoe】Doip配置&CAPL代码调用

CANoe Doip配置与CAPL代码调用

1. 在Test Setup中建立测试节点

2. 在Simulation - TCP/IP Stack对测试节点中如下配置

        a. 在TCP/IP Stack中选中此测试节点,若"CANoe TCP/IP Stack"中的配置符合此节点的测试要求,则可以选择“Use shared CANoe TCP/IP stack”,如果不符合则需要单独设置,则勾选“Individual TCP/IP stack”

        

        b. 若有需要则配置VLAN(此例子需要,所以我配置了)        

        c. 在VLAN上添加IP地址,不重复就行,IP的第三位需要和VLAN的值一致      

        d. MAC地址的配置,查看是否有MAC地址的要求,若有,则需要在Ethernet1 - MAC Address中填入正确的MAC地址

3. 配置诊断模块,在“Diagnostic/ISO TP”中的"Ethernet Networks"- "Ethernet1"中新建Diagnostic Description

        a. 配置基础的ECU qualifier, SA的dll,Log.address等信息

        b. 配置Adapter(选择步骤二的“TestModule_XXX”作为Adapter),能让诊断发送时直接使用VLAN和对应的IP地址

        c. 使用诊断控制台单独发送,如下显示:

                解析:        

                10 03是发送的命令

                ID显示的是0E80发送给078F,即配置的Tester的逻辑地址和ECU的逻辑地址,回复的时候则相反

                从Diagnostics的界面只能看到IP地址看不到VLAN,换个模式从以太网帧的形势看,查看VLAN被标记出来了。            

                至于CAPL的代码调用,只需要diagSetTarget(步骤二的ECUQualifier)即可,由于和CAN诊断一样都是使用的CDD且都是ECUQualifier调用,使用方式也都是一样的。

                例子中CAN总线和Ethernet中都是带诊断的,直接挂载的,诊断代码可以复用哦,只要区分使用哪个ECUQualifier即可。

                       

### CANoe中测试DoIP协议的详细步骤和配置方法 在CANoe中测试DoIP(Diagnostic over IP)协议需要完成一系列配置和操作,以下内容涵盖了从环境搭建到测试运行的具体步骤。 #### 1. 环境准备 确保安装了支持DoIP功能的CANoe版本,并导入相关的配置文件。可以通过项目地址[^1]下载示例配置文件,用于快速搭建测试环境。 #### 2. 配置DoIP路由激活请求 在CAPL脚本中实现对DoIP路由激活请求的配置。以下是具体步骤: - 打开CAPL Browser并加载CAPL文件。 - 在CAPL代码中添加`#include "Diagnostics\CCI_DoIP.cin"`指令以引用DoIP CCI参考实现[^2]。 - 定义变量`int cIsTester`和`char gECU[]`,分别表示测试设备的角色和目标ECU的限定符。 - 在主函数中调用`DoIP_SetRoutingActivationOEMSpecific()`函数设置OEM特定值。 ```capl includes { #include "Diagnostics\CCI_DoIP.cin" // 引用DoIP CCI实现 } variables { int clsTester = 1; // 测试设备标识 char gECU[8] = "ABS_ESP"; // ECU限定符 } on start { DoIP_SetRoutingActivationOEMSpecific(1, 0x99887766); // 设置OEM特定值 diagConnectChannel(gECU); // 建立诊断通道 } ``` #### 3. 连接诊断通道 通过`diagConnectChannel()`函数建立与目标ECU的诊断连接。同时使用`testWaitForDiagChannelConnected()`函数等待通道进入连接状态。 #### 4. 发送诊断请求 定义诊断请求并发送。例如,启动默认会话的请求可以通过以下方式实现: ```capl testcase tcSendRequest() { diagRequest ABS_ESP.DefaultSession_Start req; req.SendRequest(); // 发送请求 TestWaitForDiagRequestSent(req, 2000); // 等待请求发送完成 TestWaitForDiagResponse(req, 2000); // 等待响应接收完成 } ``` #### 5. 运行测试用例 完成上述配置后,在CANoe环境中运行生成的测试用例。通过监控测试结果验证DoIP协议的一致性[^3]。 #### 6. 调试与优化 根据测试结果进行必要的调试和优化,确保测试环境能够准确模拟实际车辆网络环境[^3]。 ### 示例代码总结 以下为完整的CAPL代码示例,用于实现DoIP协议测试的基本功能: ```capl includes { #include "Diagnostics\CCI_DoIP.cin" // 引用DoIP CCI实现 } variables { int clsTester = 1; // 测试设备标识 char gECU[8] = "ABS_ESP"; // ECU限定符 } on start { DoIP_SetRoutingActivationOEMSpecific(1, 0x99887766); // 设置OEM特定值[^2] diagConnectChannel(gECU); // 建立诊断通道 testWaitForDiagChannelConnected(gECU, 3000); // 等待通道连接 } testcase tcSendRequest() { diagRequest ABS_ESP.DefaultSession_Start req; req.SendRequest(); // 发送请求 TestWaitForDiagRequestSent(req, 2000); // 等待请求发送完成 TestWaitForDiagResponse(req, 2000); // 等待响应接收完成 } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值