在汽车电子开发中,以太网通信仿真已成为ECU测试、诊断和网络分析的关键环节。TSMaster作为一款强大的汽车电子仿真和测试工具,为工程师提供了高效的以太网通信解决方案。本手册将带您深入解析TSMaster的以太网通信配置、报文收发、协议仿真及自动化测试技巧,助您快速上手并提升开发效率。
本文关键词:TSMaster,以太网通信仿真
符号说明
本文中所用到的一些样式和符号,可以参考以下表格说明。


功能概要
目前用户在软件开发时,面临着如下需要以太网通信仿真的场景:
- 多ECU通信,进行功能验证:真实ECU未开发完全;
- 模拟复杂通信工况和故障,测试系统的鲁棒性:真实ECU构造该类场景困难;
- 汽车软件升级,验证与其它版本兼容性:需不同版本的真实ECU;
- 不同的供应商提供的ECU通信、协作验证:不同供应商ECU协作不便;
- 其它开发/测试等问题。
基于以上用户问题,TSMaster开发者为用户开发了以太网通信仿真模块。该仿真模块使用以太网通讯协议,旨在高度模拟真实ECU之间的通信,为用户提供全面且有效的解决方案。
以太网通信仿真模块模拟真实ECU发送和接收通信报文的过程,验证软件在处理不同类型报文时的准确性和稳定性。该模块可灵活模拟各种通信故障场景,满足系统鲁棒性测试需求。比如,模拟网络延迟、数据包丢失、错误报文注入等故障情况,帮助开发者测试软件在复杂通信工况下的应对能力。
Windows 窗体
以太网通信仿真模块主要包含以下三个功能区:
- 工具栏
- 节点显示
- 报文列表
3.1 工具栏
常用功能显示集合。

窗体图标说明如下:

3.2 节点显示
显示数据库的节点。鼠标悬浮在节点显示上,双击2次可勾选或取消勾选该节点。

3.3 报文列表
显示数据库中的所有报文。

报文列表每列数据说明如下:

示例
此章节包含以太网通信仿真使用的相关内容。
4.1 导入以太网数据库
支持以下导入以太网数据库(arxml\xml)方式:
▲ 拖拽数据库文件到TSMaster软件内,即可默认加载到数据库对应的总线类型通道1上,然后在TSMaster软件内,可以修改该数据库绑定到指定通道上,操作如下图所示:


▲ 在TSMaster中,点击【分析】->【数据库】->选择对应总线->右击对应通道,添加数据库,如下图所示:

经过上述操作,已经成功将数据加入TSMaster软件中。
4.2 以太网通信仿真配置
4.2.1 通道选择
在TSMaster中,选中【硬件】->【通道选择】,在弹出的界面,选择Ethernet的通道,可选择虚拟通道或真实硬件通道。
实际操作如下图所示:

4.2.2 勾选通用配置
在TSMaster中,选中【硬件】->【TCP/IP协议栈】,在弹出的界面,选择通用配置,勾选“保持运行过程中动态创建的配置,否则在断开连接的时候会被清除掉”。

4.3 以太网通信仿真
4.3.1 配置报文
在TSMaster中,选中【仿真】->【以太网通信仿真】。在弹出的界面,勾选报文,配置“Interval(ms)”的值,配置后会按照周期时间发送报文。可配置“Data”的值。

4.3.2 启动仿真
在TSMaster中,点击启动连接。选中【仿真】->【以太网通信仿真】,在弹出的界面,点击启动仿真。

4.3.3 Ethernet报文信息抓包
在TSMaster中,选中【分析】->【报文信息】。可在弹出的Ethernet报文信息界面中,查看到仿真发送的报文。

在抓包后,可点击“Detail View1”显示数据栏1,即下图红框的按键;然后点击报文,可在左侧显示解析的信息;解析信息如下:


可点击“Detail View2”显示数据栏2,即下图红框的按键;然后点击报文,可在左侧显示解析的信息;上半部分是显示解析出的字段;下半部分是十六进制和ASCII码显示的原始数据;上半部分的解析如下:


4.4 故障模拟
4.4.1 模拟网络延迟
在以太网通信仿真界面,修改Interval(ms)的值,可以设置报文发送的周期;修改Phase(ms)的值,可以设置报文发送相位;如下图设置发送周期500ms,发送相位100ms,从而模拟出网络延迟。

4.4.2 模拟数据包丢失
在以太网通信仿真界面,不勾选对应的报文,在仿真时就不会发送,从而模拟数据包丢失的情况。

4.4.3 模拟数据错误报文
在以太网通信仿真界面,可修改Data字段,设置错误值,从而模拟数据错误报文的发送。

接口
5.1 API列表
5.1.1 eth_rbs_set_pdu_phase_and_cycle_by_name

5.1.2 eth_rbs_configure

5.1.3 eth_rbs_activate_all_networks

5.1.4 eth_rbs_activate_network_by_name

5.1.5 eth_rbs_activate_node_by_name

5.1.6 eth_rbs_activate_pdu_by_name

5.1.7 eth_rbs_set_signal_value_by_element

5.1.8 eth_rbs_set_signal_value_by_address

5.1.9 eth_rbs_get_signal_value_by_element

5.1.10 eth_rbs_get_signal_value_by_address

5.1.11 eth_rbs_start

5.1.12 eth_rbs_is_running

5.1.13 eth_rbs_stop

5.2 API使用案例
在本章节中,将展示如何调用API来实现一系列功能,涵盖勾选发送报文、设定报文发送周期、设置报文数据值以及启动仿真等操作。
5.2.1 初始化环境
参考章节4.1与4.2的内容,按照其中的指引依次完成以太网数据库的导入、对应通道的选择以及配置项的勾选等操作。
5.2.2 如何调用API
在【设计】 -> 【C小程序】模块中添加C小程序编辑器。添加完成后,该编辑器支持调用章节5.1中所提及的全部API。

在C小程序编辑器里,存在多种事件类型,下面以程序启动事件为例进行说明。可以通过右键操作来添加程序启动事件,将所需代码逻辑编写在该事件对应的代码区域内。如此一来,当程序启动运行时,这些代码逻辑便会自动执行。

5.2.3 代码说明
在新增的程序启动事件代码区域编辑以下示例代码,该代码的功能是周期性地发送指定报文,并且在发送过程中动态修改报文的发送值。具体逻辑如下:
1)勾选名为“PDUTXDemo1_0”的PDU报文,使其处于激活状态。
2)对“PDUTXDemo1_0”报文进行参数设置,将其相位设定为0ms,发送周期设定500ms。
3)设置名为”SignalDemo1_0_0″的信号值为1。
4)启动以太网通信仿真,开始报文周期性发送。
5)仿真启动后,进入循环操作,交替设置名为”SignalDemo1_0_0″的信号值为0和1。
6)结束循环操作后,停止仿真以太网通信仿真。

5.2.4 编译与执行
在C小程序编辑器里,当你点击“编译”按键,编辑器会立即开始对代码进行编译处理。编译完成后,系统会明确给出编译结果提示,显示“编译成功”或者“编译失败”。
若提示编译失败,需要仔细查看具体的提示信息,根据这些信息定位并修改代码中存在的错误,然后再次尝试编译。
若提示编译成功,编辑器将自动生成与代码对应的可执行文件,后续可运行该文件来验证程序的功能。

因为以太网通信仿真启动需基于TSMaster启动连接,所以执行上述生成的可执行文件之前,必须先确保TSMaster已启动并完成启动连接操作。只有在TSMaster处于已启动连接状态时,执行该可执行文件才不会出现运行异常。

在C小程序编辑器界面中,点击“运行”按键,便会执行该可执行文件。

5.2.5 执行结果
启动可执行文件后,可以在以太网通信仿真界面查看相关信息。该界面呈现的内容与示例代码中调用API进行的设置完全一致,具体包括:已勾选的对应报文、设置好的报文发送周期、报文中信号值的具体数值,同时还能看到以太网通信仿真已成功启动。

与此同时,在【Ethernet 报文信息】界面里,你能够观察到正在发送的报文。报文中的数据值处于循环变化状态,这正是示例代码里通过循环交替将信号值设置为0和1所呈现出的效果。循环结束后,会停止以太网通信仿真;至此,示例代码完成全部执行流程。

小贴士:
1、软件下载:
点击下方软件下载链接,直接下载安装,建议下载 beta 版本:
2、软件升级:
在电脑有互联网连接的前提下,可以在软件内检查升级至最新版本。
注:大红鹰dhy登录界面智能技术支持邮箱:support@tosunai.cn,欢迎大家前来咨询!(须注明公司及联系方式)