This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、
客户存在一个问题需要您的帮助:
1.本手册下图中的结构是什么意思? 这不是寄存器配置位对吗? 如何将这些位与特定寄存器匹配? 例如 MsgVal、我可以在哪个寄存器中将其设置为0或1?
2.掩码的使用。
根据我的理解、需要首先启用掩码功能、即上表中的 UMASK 位需要设置为1、然后根据 MSGID 位数(11位或29位)设置滤波器配置位。
假设发送的 MSGID 为0x0003 (即最后两个位为1)和0X0007 (即最后三个位为1)
如果未启用 Mask 函数,则 CAN 网络节点的 CAN_setupMessageObject()函数的第三个输入参数配置为0x0003。 由于屏蔽功能未启用、该节点仍在同时接收两条 MSGID 为0x0003和0x0007的消息。 因此、接受的消息 ID 数据集(0x0003)不是有用的信息、不确定这种理解是否正确?
TI 的当前例程为单次发出/接收、但接收端具有显式 MSGID 集(与传输的 MSGID 一致)。 由于屏蔽函数被置位或者由于发送接收的 MSGID 是一致的、所以不清楚在这种情况下接收端是否能够接收数据。
在上面的示例中、如果你只想接受 MSGID 0X0003的数据、我应该将接收 MSGID 消息配置为0x0003并启用掩码并将 msgIDMask 设置为完全0XFFFFFFFF 吗?
据了解、如果您希望接收节点的某个位与其 MSGID 中的相应位密切匹配、则必须启用屏蔽并且相应位必须设置为1、对吗?
3.CAN_setupMessageObject()函数在当前 TI 例程中用于配置 CAN,但在哪里可以实现启用掩码函数?
您可以帮助检查此案例吗?
谢谢、此致、
本
结构指的是报文对象的结构。
[引用 userid="534511" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1196716/tms320f28075-can-filter-function "]这不是正确的寄存器配置位?它不直接对应于寄存器。 但是、该图中的每个"单元格"对应于某些寄存器中的位组。
[引用 userid="534511" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1196716/tms320f28075-can-filter-function ]'如何将这些位与特定寄存器匹配? 例如 MsgVal、我可以在哪个寄存器中将其设置为0或1? [/报价]MsgVal 是 IFxARB 寄存器的一部分。
[引用 userid="534511" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1196716/tms320f28075-can-filter-function ]2. 掩码的使用。[/quot]请参阅 www.ti.com/lit/SPRACE5中的说明 、如果您仍有疑问、请告知我。
[引用 userid="534511" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1196716/tms320f28075-can-filter-function ]3. CAN_setupMessageObject()函数在当前的 TI 例程中用于配置 CAN,但在哪里可以实现启用掩码函数? [/报价]它作为参数在 CAN_setupMessageObject()函数中传递。
您好、Haresh、
客户还有几个问题:
灰色字段具有专用寄存器、其他字段如何? Mtxd 和 MDir 对数据过滤有影响、它们是否需要配置? 但它们不是灰色字段、那么如何更改它们的值呢?
我可以说、如果邮箱想要接收消息、如果启用了屏蔽、Mtxd、MDir 和 msgIDMask 会产生影响、并且应该满足它们的要求吗?
此致、
本
Ben、
我将只能在下周早些时候作出答复。
您好、Haresh、
我是否可以知道有任何更新?
此致、
本
正确。
[引用 userid="534511" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1196716/tms320f28075-can-filter-function 如果未启用 Mask 函数,则 CAN 网络节点的 CAN_setupMessageObject()函数的第三个输入参数配置为0x0003。 由于屏蔽功能未启用、该节点仍在同时接收两条 MSGID 为0x0003和0x0007的消息。 因此、接受的消息 ID 数据集(0x0003)不是有用的信息、不确定这种理解是否正确? [/报价]如果屏蔽函数未被启用、那么发送的 MSGID 必须与接收报文对象的 ID 完全匹配。 例如,如果将接收报文对象的 ID 配置为0x0003,则只会接收 ID 为0x0003的报文。 节点不会接收 ID 为0x0007 (或除0x0003之外的任何 ID)的消息。
[引用 userid="534511" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1196716/tms320f28075-can-filter-function ]TI 的当前例程是单次发出/接收、但接收端具有显式 MSGID 集(与传输的 MSGID 一致)。 由于屏蔽函数被置位或者由于发送接收的 MSGID 是一致的、所以不清楚在这种情况下接收端是否能够接收数据。 [/报价]它真的很简单。 如果不使用掩码、ID 必须与位匹配。 如果要在同一接收消息对象中接收不同的 ID,则必须进行掩码过滤。 请看 C:\ti\c2000\C2000Ware_4_02_00_00\driverlib\f2807x\examples\CPU1\CAN\ CAN_EX10_mask.c 示例:
报文对象的 ID 配置为0x1F9FFFFA。 掩码过滤器配置为0x1F000000。 这意味着将收到 ID 为0x1Fxxxxxx 的任何消息。 xxxxxx 表示"无关"位;它们可以是任何值。 如果要接收所有 ID、只需使掩码值为0x00000000即可。
[引用 userid="534511" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1196716/tms320f28075-can-filter-function 在上面的示例中,如果只想接受 MSGID 0X0003的数据,我是否应该将接收 MSGID 消息配置为0x0003并启用掩码并将 msgIDMask 设置为 Full 0XFFFFFFFF? [/报价]如果您只想接受 MSGID 0x0003的数据、 只需将接收 MSGID 消息配置为0x0003、但不启用掩码。 您可以为相同的功能配置掩码、但不需要。 换言之,仅当您希望在同一接收消息对象中接收一组 ID 时,才配置掩码。
[引用 userid="534511" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1196716/tms320f28075-can-filter-function "]可以理解,如果您希望接收节点的某个位与 MSGID 中的相应位完全匹配,则必须启用掩码并将相应位设置为1,对吗?请看上面的答案、如果不清楚、请告诉我。
[引用 userid="534511" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1196716/tms320f28075-can-filter-function/4512587 #4512587]灰色 字段具有专用寄存器,其他字段又如何? Mtxd 和 MDir 对数据过滤有影响、它们是否需要配置? 但它们不是灰色字段、那么如何更改其值?MXtd 和 MDir 是 CAN_IFxMASK 寄存器的一部分。 其他位是 CAN_IFxARB、 CAN_IF1MCTL、 CAN_IF1DATA 和 CAN_IF1DATB 寄存器的一部分。 您可以通过对 IFX 寄存器进行编程来更改它们的值。 请参阅 C2000ware 示例。
[引用 userid="534511" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1196716/tms320f28075-can-filter-function/4512587 #4512587"]我能不能说,如果邮箱想要接收消息,如果启用了掩码,Mtxd、MDir 和 msgIDMask 会影响并应满足其要求?