主要内容

使用Arduino硬件编码和解码串行数据

这个例子展示了如何使用Simulink®Support Pa金宝appckage金宝app for Arduino®Hardware来对串行数据进行编码和解码。

金宝app支持的硬件

  • Arduino超级2560

  • Arduino兆理应

  • Arduino Uno

  • Arduino由于

  • Arduino MKR1000

  • Arduino MKR WIFI 1010

  • Arduino零

  • Arduino达芬奇

  • Arduino Nano 33物联网

  • Arduino Nano 33 BLE Sense

介绍

在这个例子中金宝app仿真软件模型,执行以下操作:

  • 在接收端,字节流使用串行接收块并解码成单个字段使用协议解码器块。Serial Receive块的状态输出,表示有新的数据可用,用于触发启用的包含Protocol Decoder块的子系统。

在这个模型中,TX1引脚将串行数据发送到Arduino硬件的RX1引脚。

此模型被配置为在外部模式下运行。有关外部模式的更多信息,请参见调优和监控在硬件上运行的模型

open_system (“arduino_encode_decode_packet”);

本例中提供的模型是为Arduino Mega 2560板预先配置的。你可以在任何一块板上运行这些模型金宝app支持的硬件通过改变硬件板参数。金宝app有关如何更改的更多信息硬件板参数,请参阅步骤2:配置Arduino硬件模型这个例子的一部分。

先决条件

在开始这个示例之前,我们建议您完成以下内容:

所需的硬件

要运行此示例,您必须拥有以下硬件:

  • 金宝app支持Arduino电路板

  • 连接电线

  • USB电缆

步骤1:在Arduino硬件上连接TX和RX引脚

1.用USB线将Arduino板连接到电脑上。

2.将TX1引脚连接到Arduino硬件的RX1引脚。这个连接是一个环回连接。

步骤2:配置Arduino硬件模型

1.打开金宝app仿真软件模型模型。此模型被配置为在外部模式下运行。

2.要配置模型,单击硬件设置硬件选项卡。金宝app

3.在“配置参数”对话框中,选择硬件实现

4.硬件板列表,选择您正在使用的Arduino板类型。

5.列表下目标硬件资源中,选择串行端口属性

串口1波特率参数设置为9600.在此例中,波特率为串口1波特率,因为TX1和RX1引脚对应Arduino硬件的Serial port 1。如果您使用其他串口引脚进行通信,请指定相应串口的波特率。

6.点击应用.点击好吧关闭对话框。

步骤3:在Simulink模型中配置块金宝app

本例中使用的报文结构是:

双击块,验证块参数对话框中指定的参数值。

对于其他块,参数是:

块名称| |参数值  --------------------------------------------------------------------------------- 常数|向量参数解释为一维样本时间| | |选择正串行传输|串口| 1 |发送模式|编写串行接收| | 1 | |端口号数据类型uint8 | | | | 10个样本时间长度数据0.1显示状态| Format | short

的值数据长度设置Serial Receive block的参数为10,即这些值的和:

报头大小(1字节)+ Data1(1字节)+ Data2(2字节)+ Data3(4字节)+ Checksum(1字节)+ Terminator(1字节)

请注意:由于TX1引脚接在RX1引脚上,指定串行端口参数的串行传输块和端口号参数的串行接收块,1

步骤4:使用连接的I/O验证模型设计

在生成代码并在Arduino上部署模型之前,您可以使用Connected I/O在Normal模式下模拟模型,以验证模型设计。当您模拟模型时,TX1引脚将数据传输到Arduino硬件的RX1引脚。模型和Arduino之间的这种通信不需要任何代码生成或模型部署,从而加快了仿真过程。有关连接I/O的更多信息,请参见通讯与硬件在正常模式模拟使用连接的I/O

使用Connected I/O在Normal模式下模拟模型:

1.在模型工具栏中模拟选项卡,设置仿真模式为正常的

2.要在Connected I/O模式下运行此模型,请在硬件选项卡,模式部分中,选择连接输入输出然后点击运行IO

当Simulink在您的计算机上准备、下载和运行模型时,模型窗口的左下角显示状态。金宝app

在每个时间步骤中,常数块被编码成uint8字节流(包),并通过TX1引脚传输到你的Arduino硬件的RX1引脚。你可以看到uint8字节流产生的数据包结构在显示编码数据块。

RX1引脚接收uint8字节流解码使用协议解码器块并显示在显示解码数据块。请观察显示解码数据块中的值将与常数在传输端阻塞。尝试在常数块,观察显示块的变化。

3.断开RX1引脚上的电线。显示解码数据现在输出块0.的值0显示IsNew块表示在给定的时间步长没有接收到新的数据。如果再次重新连接,可以看到显示解码数据块恢复。

4.要停止运行模型,请单击stop。

步骤5:在外部模式下运行模型

在Connected I/O中成功模拟模型后,在External模式中模拟模型。与Connected I/O不同,模型是作为C代码部署在硬件上的。代码从硬件获取实时数据。

停止时间(在模拟选项卡)已经被设置为

1.当应用程序在目标硬件上运行时,要在此模型中优化参数和监视信号硬件选项卡,模式部分中,选择机上运行然后点击监视和优化

当Simulink在硬件上准备、下载和运行模型时,模型窗口的左下角显示状态。金宝app

2.要停止运行模型,请单击stop。

其他可以尝试的事情

  • 尝试使用块属性指定不同的包结构,并观察编码数据和解码数据显示块。