使用基于 C2000 的硬件对串行数据进行编码和解码
本示例展示了如何使用 C2000™ Microcontroller Blockset 和基于 TI™ C2000 的硬件对串行数据进行编码和解码。
简介
在这个示例中,Simulink 模型执行以下操作:
在传输端,使用 Protocol Encoder 模块将多个字段编码到数据包中,并使用 C28x SCI Transmit 模块传输生成的 uint8 字节流。
在接收端,使用 C28x SCI Receive 模块接收字节流,并使用 Protocol Decoder 模块解码成各个字段。SCI Receive 模块的状态输出指示有新数据可用,用于触发包含 Protocol Decoder 模块的已启用子系统。
在该模型中,SCI 模块 B 的 Tx 引脚向 TI Delfino F28379D LaunchPad 的 SCI 模块 B 的 Rx 引脚发送串行数据。
该模型配置为以基于 XCP 的外部模式运行。有关外部模式的更多信息,请参阅 Signal Monitoring and Parameter Tuning over XCP on Serial。
打开 c2000_encode_decode_packet 模型。

本示例中提供的模型已预先配置为适用于 TI Delfino F28379D LaunchPad。您可以在 Simulink 模型的硬件板参数下提供的任何 TI 板上运行此模型。有关如何更改硬件板参数的更多信息,请参阅此示例的步骤 2:为连接硬件配置模型部分。
所需硬件
要运行此示例,您必须具备以下硬件:
Texas Instruments™ Delfino F28379D LaunchPad
连接线
USB 数据线
第一步:将 F28379D Launchpad 上的 TX 和 RX 引脚连接起来
1.使用 USB 连接线将 TI Delfino F28379D LaunchPad 连接到您的计算机。
2.将 SCI B 模块的 Tx 引脚(GPIO18 引脚)连接到 SCI B 模块的 Rx 引脚(GPIO19 引脚)。这是一个环回连接。
第二步:配置连接硬件的模型
1.打开 c2000_encode_decode_packet 模型。该模型配置为在基于 XCP 的外部模式下运行。
2.要配置模型,请在 Simulink® 工具栏的硬件选项选项卡中点击硬件设置。
3.在“配置参数”对话框中,选择硬件实现。
4.从硬件板列表中,选择您正在使用的基于 TI C2000 的处理器。
5.在 Target Hardware Resources 下,点击 SCI_B 选项卡并配置属性,包括波特率和引脚分配。

如果您使用其他 GPIO 引脚进行通信,请相应地更改引脚分配参数值选择。
6.点击应用。点击确定关闭对话框。
第三步:在 Simulink 模型中配置模块
本示例中使用的数据包结构如下:

双击模块,并在“模块参数”对话框中验证指定的参数值。

对于其他模块,参数如下:
Block | Parameter Name | Value
---------------------------------------------------------------------------------
Constant | Interpret vector parameters as 1-D | selected
| Sample time | inf
SCI Transmit | SCI module | B
SCI Receive | SCI module | B
| Data type | uint8
| Data length | 10
| Sample time | 0.1
Display Status | Format | shortSCI Receive 模块的数据长度参数的值设置为 10,即以下值的总和:
Header size (1 byte) + Data1 (1 byte) + Data2 (2 bytes) + Data3 (4 bytes) + Checksum (1 byte) + Terminator (1 byte)
第四步:以基于 XCP 的外部模式运行模型
您可以以基于 XCP 的外部模式仿真该模型,该模式会将模型作为 C 代码部署到硬件上。该代码从硬件获取实时数据。
设置基于 XCP 的外部模式
1.要配置模型,请在 Simulink 工具栏的硬件选项选项卡中点击硬件设置。
2.在“配置参数”对话框中,选择硬件实现。
3.在 Target Hardware Resources 下,点击外部模式选项卡,并分别为 Communication interface 和 SCI 模块参数选择 XCP on Serial 和 SCI_A。选择与连接 C2000 处理器的计算机主机 COM 端口对应的值。

4.点击应用。点击确定关闭对话框。
暂停时间(位于仿真选项卡下)已设置为 inf。
在基于 XCP 的外部模式下运行模型
1.要在目标硬件上运行应用程序时调节此模型的参数并监控信号,请在硬件选项卡上点击监控并调节。
模型窗口的左下角显示 Simulink 在硬件上准备、下载和运行模型时的状态。
在每个时间步,Constant 模块中指定的数据被编码为 uint8 字节流(数据包),并通过 TX1 引脚传输到基于 C2000 的处理器的 RX1 引脚。您可以在 Display encoded data 模块中看到根据数据包结构生成的 uint8 字节流。
RX1 引脚接收 uint8 字节流,该字节流使用 Protocol Decoder 模块进行解码,并在 Display Decoded data 模块上显示。观察 Display Decoded data 模块中的输出,该输出将与传输端 Constant 模块中给出的值相同。
2.尝试更改连接到 Protocol Encoder 模块的输入端的 Constant 模块中的值,并观察 Protocol Decoder 模块是否解码相同的值。
3.要停止运行模型,点击停止。
其他可以尝试的操作
尝试使用块属性指定不同的数据包结构,并观察
Display模块中的编码数据和解码数据。