tag 标签: PiL测试

相关帖子
相关博文
  • 热度 7
    2023-5-8 10:10
    974 次阅读|
    0 个评论
    直到现在,PiL测试的安装都并不便捷。 使用 TPT 19 ,您可以获得一些 PiL 测试( 处理器在环测试 ) 的新特性。在 C 平台上,您现在可以直接为您的 PiL 构建目标代码,并在 目标 板上或仿真环境中执行它。 为了在模拟环境中执行 测试 ,您需要 T PT 中的 Trace32 支持包和 Lauterbach 的 Trace32 许可证。在 Trace32 中,您可以选择使用模拟 环境而不是目标板进行测试 。 这为您节省了购买、安装和维护硬件的费用。 这项功能主要适用于谁?该功能 主要 面向 那些交付并负责 把 应用程序 作为 目标代码 的人。 软件应用程序开发人员希望在交付之前确保为目标编译的代码在行为上与他们的模型或代码相同。 我们的解决方案的最大优点是 : TP T 中 已经为 MiL 和 SiL 测试阶段创建的测试用例和评估可以很容易地重用。 优点 : 使用执行平台中的背靠背测试特性, 对每个时间步,每个接口, 您 都 可以自动将 MiL / SiL 测试执行与 PiL 测试进行比较。 在背靠背测试中,偏差被自动标记为失败,在报告中,您可以立即看到失败的原因。 听起来很不错, 对吧 ? 欢迎 联系北汇信息 获取 T PT19 试用。
  • 热度 6
    2022-12-15 10:17
    1001 次阅读|
    0 个评论
    PiL测试实战(下)| PiL阶段的闭环测试
    上篇我们介绍了单元级软件的PiL测试( PiL测试实战(上) 模型生成代码的单元级PiL测试-面包板社区 (eet-china.com) ) ,对于集成级的PiL测试,其流程和单元阶段基本一致。然而,对于一些带有反馈控制逻辑的集成测试(如电机控制器MCU),PiL阶段会将控制算法(Controller Model)刷入目标板,那如何带着位于PC端的Plant Model一起进行闭环测试呢? 图1 PiL阶段的闭环测试流程 下面我会为以一个座舱温度控制(ClimateControl)软件为例,为大家展示基于TPT Fusion-Platform的PiL阶段闭环测试解决方案。 ClimateControl软件功能介绍 ClimateControl软件可以通过设定温度和当前座舱温度自动的控制汽车座舱的空调、暖风开启/关闭以及风机的转速,从而实现自动调节座舱温度的功能。其中Controller Model为主要控制逻辑的实现。 为了对Controller Model的功能在仿真条件下进行验证,我们搭建了模拟座舱环境的Plant Model,Plant Model通过一些预设条件以及Controller Model的控制来模拟座舱温度的变化。其中Plant Model输出的座舱温度信号会反馈到Controller Model实现反馈控制。 图2 ClimateControl控制逻辑示意图 在进行PiL测试时,我们会将Controller Model进行代码生成、编译并刷入目标板,而Plant Model依然在PC端运行。那么如何实现不同环境下的Controller Model和Plant Model之间的通讯呢? TPT Fusion-Platform Fusion-Platform是TPT提供的控制软件的软件集成平台。它允许将多个软件模块(称为“节点”)相互连接,并将它们作为单个系统执行。Fusion节点一个接一个地处理,共享Fusion平台内存,进行数据交换。 这些节点可以支持dll、UDE、Trace32、XiL API、CAN等类型的平台,因此可以很方便的实现不同环境下的软件间的通讯。 图3 TPT Fusion-Platform 基于TPT Fusion-Platform的强大功能,我们可以很方便的实现ClimateControl软件的闭环测试,即:位于目标板的Controller Model(PLS UDE节点)+位于PC端的Plant Model(dll节点)。 测试环境配置 首先我们需要在TPT中新建一个Fusion-Platform。并对运行步长、最大运行时间进行简单的配置。 Custom Node dll节点配置 对于Plant Model,由于需要在PC端运行,我们可以将其转成dll的格式(TPT提供了把模型生成dll的tlc文件,并且可以在TPT端实现从模型到dll的一键生成)。在Fusion-Platform新建一个Custom Node dll节点,并加载dll文件,导入接口信号。 图4 Custom Node dll节点配置 图5 Plant Model的接口信息 PLS UDE节点配置 Controller Model我们需要将其进行代码生成、编译后刷入目标板。TPT可以通过UAD与目标板进行通讯,因此我们需要在Fusion-Platform中再新建一个PLS UDE节点。PLS UDE节点中的接口信号可以通过c文件导入,其他配置过程和我们上篇中的PLS UDE Platform的配置过程完全一致。 图6 PLS UDE节点配置 不同环境间的信号Mapping 在我们配置好Fusion-Platform的节点之后,便可以实现不同节点之间的信号交互。但是由于不同节点之间的信号接口数量、接口名称存在不一致的情况,因此我们需要做一些简单的信号Mapping工作: 仅在一个节点中存在的信号(例如发动机转速信号,仅存在于Plant Model):需在另一个节点中对该信号进行Hidden; 两个节点中均存在但名称不同的信号(例如反馈信号,Controller Model中为“IntTemp_K”,Plant Model中为“IntTemp_K_”):需要在“External_Name”中设置其外部名称进行Rename。 图7 信号Mapping 闭环测试的实现 做好这些配置工作之后,我们便可以在TPT中搭建测试用例,来进行闭环测试了。TPT会同时调起两个不同环境下的节点,实现PiL阶段的闭环测试。 这里我在TPT中搭建了一个简单的测试场景:外界温度-5摄氏度,座舱设定温度18摄氏度。我们可以运行测试用例在TPT中观测各信号的变化情况。 图8 “-5到18摄氏度”升温测试 图9 信号变化情况 通过信号窗口可以看出,当座舱温度低于设定温度时,Controller Model会控制暖风机使能信号使能,打开暖风机。与此同时,Plant Model会通过发动机转速、扭矩等信息计算出座舱温度变化并反馈至Controller Model,实现闭环反馈控制。 so...这个方案是不是很完美?感兴趣的小伙伴快来试一试吧。
  • 热度 6
    2022-11-11 10:17
    1099 次阅读|
    0 个评论
    前言 对于嵌入式代码,为了测试软件能否在目标芯片上实现预期的功能,通常需要进行PiL测试(Processor-in-the-Loop-Testing)。 目前市面上较为常见的嵌入式软件调试工具有PLS UDE和LAUTERBACH Trace32等。UDE和Trace32可以很好的完成软件调试的工作,当然,我们也可以通过将TPT(基于模型的自动化测试工具,可覆盖MiL到ViL全阶段的测试)和这些调试工具进行集成,更高效、快捷的实施PiL阶段的自动化测试。 通过TPT我们可以很方便的实现MiL/SiL的测试工程在PiL阶段的完全复用。下面,我将以lights_control(车灯控制)模型生成的代码为例,为大家演示如何基于TPT进行单元级代码的PiL测试。 图1 TPT与调试器集成 测试准备 本次被测代码是基于模型开发的单元级软件,将模型转成代码后编译成elf文件刷写到目标板进行测试。涉及到的测试环境及版本信息如下: 测试工程:MiL阶段搭建的单元测试工程(TPT工程可完全复用) 测试工具:TPT + PLS UDE 调试器:PLS UAD2Next 目标板: Infineon TC233LP 其中目标板和UAD之间使用JTAG口通讯,UAD和PC端通过USB进行连接。 图2 硬件连接 首先我们需要搭建一个可以正常运行的UDE工程,以便于后面通过TPT调用进行PiL测试。 图3 搭建的UDE工程 配置测试环境 在PiL测试过程中,TPT需要将测试用例数据发送到UDE,并读取UDE从目标板读到的输出信号数据进行评估。因此,我们需要搭建测试环境将TPT和UDE链接起来。为方便测试环境的搭建,TPT提供了能满足各阶段测试的测试平台,这里我们需要配置一个PLS UDE Platform。 图4 TPT PLS UDE Platform 1. 设置用例运行步长(和MiL保持一致)及用例最大运行时间 2. 加载搭建好的UDE工程 3. 加载被测的elf文件 4. 选择源代码所在文件夹 5. 设置断点 6. 设置信号读/写动作 设置断点 为方便对代码中的变量进行读/写操作,需要在程序中设置一些断点。这里我们可以在TPT端直接进行断点的设置,TPT会将断点信息发送至UDE。TPT可以支持诸如普通断点(指定断点位置)、条件断点等类型,并支持多控制器、多核断点的设置。 一般来说,我们只需要设置两个简单的断点即可满足单元级别软件的测试。通过指定代码行,我们定义了如下所示的两个断点: 程序入口(step_in): 进入Step函数时的断点,用于Write; 程序出口(step_out): 跳出Step函数时的断点,用于Read。 图5 设置断点 为了让程序能够持续运行以便于我们能持续给入连续变化的信号,我们需要在TPT中设置一个断点的循环,防止程序在断点的位置停止。 图6 断点循环过程 图7 TPT中设置断点循环动作 设置信号读/写动作 设置好断点之后,我们需要在TPT中设置输入/输出信号的动作。这里我们在断点step_in的位置把输入信号设置为write,在断点step_out的位置把输出信号设置为read。设置好后,TPT即可把测试用例信息在断点step_in灌入目标板,当step函数运行完成后在断点step_out把输出信号回采进行评估。 图8 TPT中设置信号动作 MiL/SiL测试工程的快速复用 由于我们在MiL/SiL阶段已经完成了对测试工程的搭建,得益于TPT提供的信号mapping的功能,我们只需要对信号做简单的mapping即可实现测试工程的完全复用。 图9 TPT中信号mapping 做完这些配置工作之后,我们即可运行测试工程,完成PiL测试,并生成相应的PiL测试报告。 图10 测试执行 通过对该单元级代码的测试,不难发现,TPT在实现不同测试阶段的测试工程复用方面有着巨大的优势——单元级软件测试可实现同一测试工程覆盖MiL/SiL/PiL所有阶段,这无疑大大降低了我们的测试成本和周期。并且TPT在复杂测试用例信号编写、复杂场景评估、创建回归测试、实现自动化测试等方面都有着很大的优势。 敬请期待下篇:带有Plant Model的PiL测试该如何做?