使用SCI块的串行通信
此示例展示如何使用SCI块在目标硬件和使用德州仪器™C2000™处理器的嵌入式Coder®支持包的主机计算机之间建立串行通信。金宝app
简介
使用这个例子,你将:
使用目标硬件上的SCI发送和接收块以及主机上的Instrumentation Control Toolbox™串行发送和接收块,在目标硬件和主机计算机之间建立通信。
在目标硬件上使用SCI发送和接收模块,在主机上使用MATLAB®脚本,在目标硬件和主机之间建立通信。
使用轮询和中断方法来接收目标硬件上的数据。
先决条件
完成以下教程:
建立与目标硬件的串行通信.C2000™处理器有不同的控制卡版本。在一些控制卡中,SCI_A模块引脚直接连接到USB对接站,其他控制卡上有用于RS-232通信的MAX32xx芯片。
所需的硬件
任何德州仪器C2000板
任务1 -使用主机上的串行发送和接收块在主机计算机和目标硬件之间进行串行通信
在此任务中,您使用主机上的Simulink®模型将计数器数据从主机传输到目标硬件。金宝app当目标硬件接收到轮询数据时,它将相同的数据传输回主机。然后,主机显示发送和接收的信号。
目标模型
1.打开目标模型。
open_system (“c28x_sci_comm.slx”);
2.示例模型是为TI Piccolo F28069M发射台配置的。若要选择不同的目标硬件,请在Simulink®编辑器中浏览到金宝app配置参数>硬件实现>硬件板.
3.导航到硬件实现>目标硬件资源>SCI_A并设置波特率来115200
.
4.该模型被配置为接收数据头而且《终结者》的采样时间0.001秒
并传输相同的数据。
5.下图显示了目标模型的SCI块配置。双击块,打开块参数配置。如果要在其他硬件板上运行此示例,请确保指定的参数值相同。
需要考虑的事项
在配置SCI Receive块时,必须考虑以下事项。在本例中,c28x_sci_comm模型配置为等待数据接收为阻塞模式设置超时。
阻塞模式—选择等待数据接收参数和设置超时来
正
.在这种模式下,如果FIFO中没有数据可读,块将等待无限长的时间,直到有数据可读为止。超时阻塞模式—选择等待数据接收参数和设置超时来
任何大于0的有限值
.在这种模式下,如果FIFO中没有数据可读,块将检查FIFO状态,直到达到超时时间。如果在该时间内FIFO中没有数据可读取,则SCI接收块将其状态输出为超时。非阻塞模式—不选择等待数据接收参数。在这种模式下,SCI接收块读取数据,如果数据在FIFO中可用;否则,块输出其状态为资料不可用.
为了接收长度大于FIFO长度的数据,使用阻塞模式或带超时的阻塞模式。这确保了在读取整个FIFO后获得FIFO中剩余数据的额外时间。
在启用或不启用超时的阻塞模式下,在等待数据读取时可能会遇到任务溢出。
6.点击构建、部署和启动在“硬件”页签或按下Ctrl + B构建并下载可执行文件。
运行主机模型
1.打开主机模型。
open_system (“c2000_host_serial_comm.slx”);
2.要查看计算机上可用COM端口的列表,请选择启动>控制面板>设备管理器>端口(COM和LPT).
3.配置设备主机串行设置,主机串行传输,主机串行接收块。确保您设置了波特率来115200
在主机串行设置块中。
4.设置停止时间来正
点击运行下拉菜单,并启用模拟踱来踱去以确保与目标实时通信。
5.点击运行.
6.比较从目标硬件接收到的串行数据和从主机传输的串行数据。
任务2 -在主机上使用MATLAB脚本实现主机与目标硬件的串行通信
在这个任务中,你将传送uint8数据从主机到目标硬件使用MATLAB®脚本在主机上。当目标硬件在中断时接收到数据时,它将相同的数据传输回主机。然后主机在MATLAB命令窗口中显示接收到的数据。
目标模型
1.打开目标模型。
open_system (“c28x_sci_comm_interrupt.slx”);
2.示例模型是为TI Piccolo F28069M发射台配置的。若要选择不同的目标硬件,请在Simulink®编辑器中浏览到金宝app配置参数>硬件实现>硬件板.
3.导航到硬件实现>目标硬件资源>SCI_A确保你设置了波特率来115200
.
4.目标硬件在中断时接收数据。SCIA_RX用于在中断级别1上接收。
5.下面是目标模型的SCI块配置。双击块,打开块参数配置。遵循本节需要考虑的事项从任务1.如果要在其他硬件板上运行此示例,请确保指定的参数值相同。在本例中,c28x_sci_comm_interrupt模型配置为等待数据接收为阻塞模式设置超时。
6.在接收到新的数据时,中断被触发,目标硬件传输接收到的数据。
7.点击构建、部署和启动在“硬件”页签或按下Ctrl + B构建并下载可执行文件。
使用MATLAB脚本在主机上运行
1.要在主机上使用MATLAB脚本运行模型,请使用串行通讯端口作为输入参数和波特率作为可选的输入参数。如果没有提供波特率,则默认为a115200
采用波特率。
2.要查看计算机上可用COM端口的列表,请选择启动>控制面板>设备管理器>端口(COM和LPT).
3.在MATLAB命令提示符下运行以下命令。提供计算机的COM端口号。例如,
c2000HostSCICommunication (COM7, 115200);
4.提供uint8数据作为响应提示符的输入。
5.在MATLAB命令窗口中接收到相同的数据。
其他可以尝试的事情
使用Simulink主机模型发送和接收计数器数据金宝appc2000_host_serial_comm在运行c28x_sci_comm_interrupt在目标上。
使用c2000HostSCICommunicationMATLAB脚本发送和接收uint8数据,同时运行c28x_sci_comm在目标上。