可以使用eCAN块进行通信吗
此示例展示如何使用eCAN块在目标硬件和主计算机之间建立CAN通信,用于德州仪器™C2000™处理器的嵌入式Coder®支持包。金宝app
简介
使用这个例子,你将:
了解如何使用目标硬件上的eCAN传输和接收块以及主机上的车辆网络工具箱™(VNT) CAN传输和接收块在目标硬件和主机计算机之间建立通信。
演示在目标硬件上使用接收过滤接收带有标准id和扩展id的特定消息。
演示如何使用轮询和中断方法在目标硬件上接收数据。
先决条件
完成以下教程:
硬件要求:
任何带CAN模块的德州仪器™C2000™板
矢量CAN硬件
请注意:如果您试图在Launchpad上运行此示例,请将TX和RX引脚连接到矢量CAN设备。如使用控制卡,则须使用收发器(TCAN EVM收发器)在矢量CAN设备和控制卡之间是必需的。
任务1 -主机与目标硬件之间的CAN通信
在此任务中,您将分两部分将计数器数据从主机传输到目标硬件。
当目标硬件接收到来自主机的新消息时,它将使用不同的消息ID将该数据传输回主机。
然后主机显示发送和接收的CAN信号。
目标模型
1.打开目标模型。
open_system (“c28x_CAN_comm.slx”);
2.配置的示例模型TI短笛F28069M发射台
.若要选择不同的目标硬件,请在Simulink®编辑器中浏览到金宝app配置参数>硬件实现>硬件板.
3.导航到硬件实现>目标硬件资源>eCAN_A确保你设置了波特率来1 mbps
.
4.模型被配置为在采样时间接收数据0.05秒
并在接收到消息后,使用不同的消息ID传输相同的数据。
5.以下是eCAN为目标模型完成块配置。双击块,打开块参数配置。如果要在其他硬件板上运行此示例,请确保指定的参数值相同。
接收到的长度用作输入,以提取从主机传输的特定数据。
6.点击构建、部署和启动在硬件按TAB键Ctrl + B构建并下载可执行文件。
运行主机模型
1.打开主机模型。
open_system (“c2000_host_CAN_comm.slx”);
2.将设备配置为CAN配置、CAN发送和CAN接收块。确保您设置了波特率
来1 mbps在CAN配置块。
请注意:
本例中的模型使用
矢量VN1610
硬件。但是,您可以将您的模型连接到其他受支持的硬件。金宝app根据您的配置选择CAN设备和通道。
主机上的CAN配置、CAN传输和CAN接收模块来自车辆网络工具箱™库。
3.设置停止时间来正点击运行下拉菜单,并启用模拟踱来踱去以确保与目标实时通信。
4.点击运行.
5.观察并比较从目标硬件接收到的CAN数据和从主机发送的CAN数据。
任务2 -在目标硬件上使用接受过滤来接收特定的消息
在本任务中,您将在主机和目标模型中执行以下操作:
宿主
以不同的速率向目标发送多个标准消息和扩展消息。
从目标接收消息并进行比较。
目标
使用两种方法(轮询和中断)从主机接收标准消息和扩展消息。
使用ID过滤只从主机接收所需的消息。
将接收到的数据发送回ID不同的主机进行比较。
目标模型
1.打开目标模型。
open_system (“c28x_CAN_acceptance_filtering.slx”);
2.配置的示例模型TI短笛F28069M发射台
.若要选择不同的目标硬件,请在Simulink编辑器中浏览到金宝app配置参数>硬件实现>硬件板.
3.导航到硬件实现>目标硬件资源>eCAN_A确保你设置了波特率来1 mbps
.
4.目标硬件使用轮询方法以0.001的速率接收标准ID消息,使用中断方法接收扩展ID消息(使用ECAN1INTA接收)。
5.以下是eCAN为目标模型完成块配置。双击块,打开块参数配置。如果要在其他硬件板上运行此示例,请确保指定的参数值相同
eCAN接收块配置为接收标准消息,如下所示:
eCAN接收块配置为接收扩展消息,如下所示:
6.在接收到新消息时,目标硬件将使用更新后的消息id传输接收到的数据。有多个CAN传输块用于发送不同的标准或扩展消息消息标识符取决于从CAN接收块接收到的消息。
7.点击构建、部署和启动在硬件按TAB键Ctrl + B构建并下载可执行文件。
运行在主机模式
1.打开主机模型
open_system (“c2000_host_CAN_acceptance_filtering.slx”);
2.将设备配置为CAN配置、CAN发送和CAN接收块。请确保在CAN配置块中将波特率设置为1Mbps。
3.该模型被配置为使用不同的标准id和扩展id传输三种消息。
4.CAN传输块被配置为使用传输消息标准的id
在以下抽样率下:
Hex2dec ('0x00000371'):在0.005
Hex2dec ('0x00000372'):在0.007
Hex2dec ('0x00000374'):在0.009
5.CAN传输块被配置为使用传输消息扩展的id
在以下抽样率下:
hex2dec('0x1C00000B'):在0.005
hex2dec('0x1C000003'):在0.007
hex2dec('0x1C000007'):在0.009
6.主机模型有两个Receive块,一个接收所有标准消息,另一个以采样时间0.001s的速率接收所有扩展消息。
7.设置停止时间来正点击运行下拉菜单,并启用模拟踱来踱去.
8.点击运行
9.在显示块中观察主机上接收到的CAN数据。接收到的数据与目标硬件上接收到的不同id的消息的数据对应。
验收过滤行为分析
在目标模型中配置了标准消息类型的eCAN接收块
消息类型:
标准
消息标识码掩码:
hex2dec(“0 x00000007”)
消息标识符:
hex2dec(“0 x00000001”)
随着消息标识码掩码设置为hex2dec(“0 x00000007”)
的最后3位消息标识符考虑进行过滤。
这3位消息标识符设置为1
,因此,它只接收带有标准ID的消息hex2dec(“0 x00000371”)在目标硬件上。
在目标模型中配置了扩展消息类型的eCAN接收块
消息类型:
扩展
消息标识码掩码:
hex2dec(“0 x00000007”)
消息标识符:
x00000003 hex2dec(“0”)
随着消息标识码掩码设置为hex2dec(“0 x00000007”)
的最后3位消息标识符考虑进行过滤。
这3位消息标识符设置为3.
因此,它只接收带有扩展id的消息hex2dec(“0 x1c00000b”)而且hex2dec(“0 x1c000003”)在目标硬件上。
当目标接收到这些消息时,它将修改后的消息id的相同数据传输给主机进行比较。在目标硬件中修改的消息id如下所示:
主机根据目标硬件上过滤的id接收这些对应的id和数据,并显示它们。
其他可以尝试的事情
在eCAN接收块,配置为接收标准消息,则更改消息标识符参数
Hex2dec ('0x00000002')或Hex2dec ('0x00000004')
,在目标硬件上分别接收标准id为hex2dec('0x00000372')或hex2dec('0x00000374')的消息。在配置为接收扩展消息的eCAN接收块中,更改消息标识码掩码参数
hex2dec(“0 x00000003”)
,以接收所有带有扩展id的邮件。