主要内容

使用PIL进行代码验证和验证

这个例子向您展示了如何使用德州仪器C2000处理器的嵌入式编码器支持包来使用PIL进行代码验证和验金宝app证。

简介

在本例中,您将学习如何配置Simulink模型以运行processor -In- loop (PIL金宝app)仿真。在PIL模拟中,生成的代码在Texas Instruments C2000处理器上运行。将PIL仿真结果传输到Simulink中,验证仿真结果与代码生成结果的数值等价性。金宝appPIL验证过程是开发周期的关键部分,它可以确保部署代码的行为与设计相匹配。

这个例子介绍了如何配置一个Simulink模型来生成和验证代码:金宝app

  • 公益诉讼块

  • 太平船型

  • 顶级模特公益诉讼

所需的硬件

要运行此示例,您将需要以下硬件:基于德州仪器C2000处理器的板,具有串行USB功能

德州仪器的controlCard提供了USB串行功能。这允许从目标到您的主机进行串行通信。在本例中,我们将使用这个串行连接从Simulink交换数据到目标。金宝app

部分单板不提供FTDI芯片,在对接台上使用FTDI,并使用USB串口线在上位机和目标硬件之间建立串口连接。您也可以使用计算机的COM1端口与单板建立RS-232串行连接。看到建立与目标硬件的串行通信有关在目标计算机和主机计算机之间建立串行连接的详细信息。

任务1 -为PIL模拟选择一个串行通信接口

德州仪器C2000的嵌入式编码器支持包金宝app支持串行通信接口PIL over serial。

建立串口连接后,找到与目标硬件相关联的COM端口。

有关如何配置虚拟COM端口的更多信息,请参阅这个页面.注意USB串口的COM端口号显示在您的Windows设备管理器下的端口“(COM & LPT)”

1.将目标硬件连接到主机

2.配置Serial以运行PIL。有关更多信息,请参阅外部模式和PIL的串行配置

任务2 -使用PIL块验证子系统生成的代码

这个例子展示了如何使用PIL块进行子系统代码验证。用这种方法:

  • 您可以验证为子系统生成的代码

  • 您必须在模型中使用PIL块,如模型中的注释所示;确保避免将您的模型保存在这种状态下,因为您将失去您原来的子系统

1.打开公益诉讼块模型。此模型配置用于TI短笛F2806x目标。您可以通过更改配置参数>硬件实现窗格中的目标硬件,将模型配置为在其他TI C2000处理器或TI C2000 Concerto C28x核心上运行。的目标是创建PIL块控制器子系统,您将在德州仪器C2000处理器上运行。

2.按照上面任务1中的步骤选择PIL通信接口。

3.创建一个PIL块控制器子系统,详见用SIL和PIL模拟测试生成的代码

4.如模型中的注释所示,将创建的PIL块放置在模型中。

5.运行PIL模拟,如用SIL和PIL模拟测试生成的代码

6.,可以在原始和PIL块子系统之间切换手动开关块。双击数值的差异块来看看模拟的区别控制器子系统和运行在目标处理器上的PIL块。

任务3 -使用PIL验证引用的模型代码

这个例子展示了如何通过运行PIL模拟来验证为引用模型生成的代码。用这种方法:

  • 您可以验证为引用模型生成的代码

  • 您可以轻松地在正常和PIL模拟模式之间切换Model块

1.打开太平船型模型。此模型被配置为TI短笛F2806x目标。要将模型配置为在其他TI C2000处理器上运行,可以在配置参数>硬件实现窗格中更改目标硬件。该模型包含两个model块,它们都指向相同的引用模型。您将配置一个Model块以PIL模拟模式运行,另一个以正常模式运行。

2.按照上面任务1中的步骤选择PIL串行通信接口。

3.配置并运行CounterA模型块在PIL仿真中解释用SIL和PIL模拟测试生成的代码

4.当模型开始运行时,Scope1显示在TI Piccolo F2806x处理器上运行的PIL模拟输出Scope2显示正常模式模拟输出。

任务4 -验证顶级模型代码使用PIL

这个例子展示了如何通过运行PIL模拟来验证为模型生成的代码。用这种方法:

  • 您可以验证为顶级模型生成的代码

  • 您可以轻松地在正常和PIL模拟模式之间切换整个模型

1.打开顶级模特PIL模型。此模型配置用于TI短笛F2806x目标。

2.按照上面任务1中的步骤选择PIL串行通信接口。

3.运行顶层模型PIL仿真,如中所述用SIL和PIL模拟测试生成的代码

4.PIL模拟完成后,alogsOut变量在基本工作空间中创建。的logsOut数据包含PIL仿真结果。您可以访问记录的信号数据count_a而且count_b使用如下命令:

  • count_a = get(logsOut,'count_a');

  • count_a.Values.Data

  • count_b = get(logsOut,'count_b');

  • count_b.Values.Data

总结

本例介绍了使用PIL的代码验证工作流