主要内容

F28M3x协奏曲上ARM、C28x与上位机的串行数据通信

这个例子向您展示了如何使用德州仪器C2000处理器的嵌入式编码器支持包在主机计算机和目标计算机之间金宝app进行串行数据交换,以及在ARM和c28x核心之间进行串行数据交换。

在本例中,您将学习如何使用存在于F28M3x Concerto处理器的两个核心之间的串行内部环回,在主机和目标之间以及ARM Cortex M3和C28x核心之间执行数据交换。

F28M3x协奏曲处理器支持ARM Cortex M3核心和C金宝app28x核心之间的数据交换,通过UART4到SCI-A内部环回,这是2个外围设备之间的物理连接。ARM Cortex M3核心上的UART4外设和C28x核心上的SCI-A外设需要配置为在两种模型中以相同的波特率运行,如下所示。UART4和SCI-A之间的内部环回可以从ARM模型中通过浏览到配置参数>硬件实现>目标硬件资源>UART4.因此,请确保UART4波特率与内部环回的C28x SCI-A波特率相匹配。

先决条件

我们建议填写开始使用F28M3x协奏曲处理器的嵌入式编码器支持包金宝app

所需的硬件

要运行这个例子,你需要以下硬件:

  • F28M36协奏曲控制卡或

  • F28M35协奏曲控制卡

德州仪器的控制卡提供了USB串行功能。这允许通过USB连接到主板,从目标计算机到主机计算机的串行通信。

ARM Cortex M3 UART4到C28x SCI-A内部环回

在本任务中,您将在Concerto处理器的C28x Core上运行一个模型,该模型通过串行内部环回将数据发送到运行在ARM Cortex M3 Core上的模型。每1毫秒,6个字节从C28x SCI-A通过内部环回传输到ARM UART4。数据包括1字节的包头,2字节的16位ADC值,2字节的16位自由运行计数器和1字节的包终止符。ARM模型被配置为一旦接收到6个字节就产生一个中断。如果找到匹配的报头和终止符,ARM模型中的UART4串行接收块将输出ADC和自由运行的计数器值。如果在正确的位置没有找到报头和终止符,则块输出值为0,并且根据数据包中发现的潜在报头和终止符重新同步中断。在中断服务程序中,ADC数据和空闲计数器值被发送到连接到主机的UART0。任务2解释了这一步。

1.打开ARM UART模型.此模型配置用于TI协奏曲F28M35x (ARM Cortex-M3)目标。来配置要在其上运行的模型TI协奏曲F28M36x (ARM Cortex-M3),在“配置参数>硬件实现”区域框中修改硬件板。

2.在“配置参数—>硬件实现—>目标硬件资源—> UART4”中,通过配置开启M3 UART4 ~ C28 SCI-A环回功能.当启用该参数时,ARM核心上的UART4与C28x核心上的SCIA物理连接,并允许两个核心之间的串行通信。内部环回配置由ARM模型控制,不需要C28x模型中的特定设置。内部环回是一个物理连接,不需要任何GPIO进行通信。这使您可以选择发送和接收的gpio为None。这允许其他外设使用这些引脚。

3.请配置UART4外设的波特率,确保与C28x Model SCI-A外设的波特率一致。内部环回支持较高的串行波特率。在这些示例模型中,波特率设置为9.375 Mbps,这是硬件可实现的最大值。

4.单击“应用”,关闭配置参数窗口。

5.打开C28x SCI模型.此模型配置用于TI协奏曲F28M35x (C28x)目标。来配置要在其上运行的模型TI协奏曲F28M36x (C28x),在“配置参数>硬件实现”区域框中修改硬件板。C28x型号上不需要设置内部环回。

6.通过为SCI-A外设选择合适的期望波特率来匹配UART4最接近的可实现波特率。本例以9.375 Mbps为例。

7.单击“应用”,关闭配置参数窗口。

8.构建、加载和运行这两个模型。您可以通过Task 2监视发送的数据,并验证模型是否正确运行。

open_system (“f28m35x_c28_send”);

向主机发送数据

运行在ARM核心上的模型通过UART0将数据传输到主机。您可以通过USB电缆通过虚拟COM端口连接到controlCARD,在您的主机上访问UART0数据。有关如何配置虚拟COM端口的详细信息,请参见这个页面.注意USB串口的虚拟COM端口号,显示在Windows设备管理器的端口“(COM & LPT)”下,你将需要它来配置你的主机接收程序。

1.ARM模型每1ms通过UART0外设向主机发送一次数据。Simulink的周转时间不允许在主机上运行的金宝app代码以这种速率接收数据。主机可以以较慢的速度处理大型数据集。ARM模型被构造为每60ms添加一个报头和终止符。主机程序将期望每60毫秒在串行缓冲区中出现244字节。这种技术在Simulink中效果最好。金宝app

2.Concerto控制卡的USB串行功能允许最大波特率为6Mbps。您可以在“配置参数->硬件实现”页签的“UART0”窗格中配置波特率和串口连接使用的gpio。这个示例模型使用6Mbps的波特率以及PE5_GPIO29和PE4_GPIO28分别在UART0上进行发送和接收。这些引脚通过控制卡上的USB设备连接到串行。

3.方法读取数据并绘制数据主机模式.该模型需要DSP系统工具箱和仪表控制工具箱。在主机型号的“Serial Configuration”区域框中输入虚拟COM端口号和波特率。在Serial Receive块中,将COM端口号与虚拟COM端口号匹配。属性中指定的值与标头和终止符匹配ARM UART模型.请注意,长度和采样时间将确保模拟每60毫秒获得一个新帧,尽管ARM UART模型每毫秒发送一个新的数据点。这确保了主机上的模拟周转时间足够。虽然Simu金宝applink可以很容易地每60毫秒获得一个244字节的帧,但它不能在主机上以1毫秒的速度周转,一次获得一组样本。该模型在工作区中创建了一个名为serial_received_data的变量,您可以使用它来查看和分析数据。请注意,MATLAB被设置为使用行-主序,而目标使用列-主序,这解释了需要用串行接收块转置接收到的数据。

open_system (“f28m35x_m3_receive”);open_system (“Host_read_f28m35”);

在建立模型时要记住的事情

确保ARM Cortex M3模型中的UART 4外设与C28x模型中的SCI-A外设最接近的可实现波特率匹配。

close_system (“f28m35x_m3_receive”, 0);close_system (“f28m35x_c28_send”, 0);close_system (“Host_read_f28m35”, 0);