AnyMath 文档

CAN RX

接收CAN消息。

模块类型: EngeeFunction

库中的路径:

/Interfaces/CAN/CAN RX

资料描述

要使用该块,请安装/更新支持包。 设备

CAN RX 它用于接收CAN消息。

CAN RX块中的消息过滤器

接收到的CAN消息的标识符的长度可以是 29 位(用于扩展帧格式)或 11 位(对于标准帧格式)。 CAN消息通过过滤器,并且仅当标识符的所有位都通过过滤器时才被接受。 如果消息标识符的至少一个比特未通过过滤器,则丢弃该消息。 参数 过滤器 ID:掩码 允许您根据收到的CAN消息的标识符的单个位设置过滤器。

如果满足以下条件,则消息将通过筛选器:

CAN ID & Mask == Filter ID & Mask,

其中CAN ID是接收到的CAN消息的标识符。

换句话说,过滤器可以以下列规则的形式表示

如果值为 *掩码 如果单个位为零,则不过滤此位。 也就是说,该位在过滤器中不被检查并通过过滤器。

如果值为 *掩码 对于单个位等于1,则通过该位的值执行过滤: 如果来自CAN ID的位和来自 *过滤器 ID: 如果它们匹配,则该位通过滤波器。 如果来自CAN ID的位和来自 *过滤器 ID: 如果它们不同,则该位不通过滤波器。

过滤器操作示例

让下面的消息过滤器设置。:

FilterID = 0b0100;
Mask     = 0b0110;

带有CAN标识符的消息 0x4, 0x50xC 它们通过过滤器并被接受:

CAN_ID = [0b0100 0b0101 0b1100];
can_msg_passed = bitand(CAN_ID, Mask) == bitand(FilterID, Mask)
can_msg_passed =

  1×3 logical array

   1   1   1

带有CAN标识符的消息 0x1, 0x20x6 它们不穿过过滤器而被丢弃:

CAN_ID = [0b0001 0b0010 0b0110];
can_msg_passed = bitand(CAN_ID, Mask) == bitand(FilterID, Mask)
can_msg_passed =

  1×3 logical array

   0   0   0

港口

输出

# 消息计数 — 收到的讯息数目
标量,标量

Details

接收到的消息数必须小于参数值。 Число сообщений: . 如果操作系统缓冲区中有更多消息,它们将在下一个计算步骤中传递给模型。

数据类型

UInt32

复数支持

非也。

# 信息 — 信息
轮胎

Details

类型的接收消息的数组 CAN_MESSAGE_BUS

数据类型

N.公共标志

复数支持

非也。

参数

参数

# 端口: — CAN端口

Details

接收消息的CAN端口。

默认值

"can0"

程序使用名称

m_port

可调谐

可计算

# Число сообщений: — 传输的最大消息数

Details

在一个计算步骤中从操作系统缓冲区传输到模型的最大消息数。

默认值

1

程序使用名称

m_messages

可调谐

可计算

# 过滤器 ID: — 在操作系统级别过滤接收的消息

Details

要禁用过滤器并接收所有消息,请设置参数 过滤器 ID:掩码 价值 0. 过滤器操作的详细描述在CAN RX块中的消息过滤器部分中给出。

默认值

0x00

程序使用名称

m_filter

可调谐

可计算

# 掩码 — 在操作系统级别筛选接收消息的掩码

Details

过滤器掩码确定CAN标识符的哪些位在过滤接收的消息时参与检查。:

如果掩码位的值为 0,那么标识符的相应位不被检查并且被认为通过过滤器。 *如果掩码位的值为 1,然后将CAN消息标识符的位与相应的位进行比较 *过滤器 ID: . 如果值不匹配,则丢弃该消息。

要禁用过滤器并接收所有消息,请设置参数 过滤器 ID:掩码 价值 0. 过滤器操作的详细描述在CAN RX块中的消息过滤器部分中给出。

默认值

0x00

程序使用名称

m_mask

可调谐

可计算

# Потоковое получение данных: — 控制用于接收CAN消息的流模式

Details

使用流模式接收CAN消息。

如果选择此选项,则块以流模式运行:消息被累积(在模型的步骤之间),然后在每个步骤中以块形式发出,块受参数限制 *Число сообщений: ,其余的将在下一个计算步骤中转移。

*如果选择此选项,消息将"一步一步"接收,而不累积流:块仅在计算步骤时接收消息。

默认值

false (关掉)

程序使用名称

m_stream

可调谐

可计算

# Шаг расчёта, с: — 用于接收CAN消息的计算步骤

Details

计算步骤以秒为单位,用于在实时应用程序中接收CAN消息。

默认值

-1

程序使用名称

m_sample_time

可调谐

可计算