CAN RX
它用于接收CAN消息。
类型: EngeeFunction
|
图书馆中的路径:
|
资料描述
要使用该块,请安装/更新支持包。 设备。
座 CAN RX 它用于接收CAN消息。
CAN RX块中的消息过滤器
接收到的CAN消息的标识符的长度可以是29位(对于扩展帧格式)或11位(对于标准帧格式)。 CAN消息通过过滤器,并且仅当标识符的所有位都通过过滤器时才被接受。 如果消息标识符的至少一个比特未通过过滤器,则丢弃该消息。 设置 Filter ID: 和 Mask: 允许您根据接收到的CAN消息的标识符的单个位设置过滤器。
如果满足以下条件,则消息将通过筛选器:
CAN ID & Mask == Filter ID & Mask,
其中CAN ID是接收到的CAN消息的标识符。
- 换句话说,过滤器可以以下列规则的形式表示
-
-
如果值为 Mask: 如果单个位为零,则不过滤此位。 也就是说,该位在过滤器中不被检查并通过过滤器。
-
如果值为 Mask: 对于单个比特,它等于一,则通过该比特的值执行滤波。:
-
如果位是从CAN ID和位是从 Filter ID: 如果它们匹配,则该位通过滤波器。
-
如果位是从CAN ID和位是从 Filter ID: 如果它们不同,则该位不通过滤波器。
-
-
过滤器操作示例:
让下面的消息过滤器设置。:
FilterID = 0b0100;
Mask = 0b0110;
具有CAN标识符0x4、0x5和0xC的消息通过过滤器并被接受:
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, 0x2 和 0x6 它们不穿过过滤器而被丢弃:
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
参数
主组
# Port: — CAN端口用于接收消息
Details
| 默认值 |
|
| 程序使用名称 |
|
| 可调谐 |
无 |
| 可计算 |
是 |
# Число сообщений: — 在1个计算步骤中从操作系统缓冲区传输到模型的最大消息数
Details
| 默认值 |
|
| 程序使用名称 |
|
| 可调谐 |
无 |
| 可计算 |
是 |
# Filter ID: — 在操作系统级别过滤接收的消息
Details
要禁用过滤器并接收所有消息,请设置 Filter ID: 和 Mask: 如何 0. 过滤器操作的详细描述在CAN RX块中的消息过滤器部分中给出。
| 默认值 |
|
| 程序使用名称 |
|
| 可调谐 |
无 |
| 可计算 |
是 |
# Mask: — 在操作系统级别过滤接收消息的掩码
Details
过滤器掩码确定CAN标识符的哪些位在过滤接收的消息时参与检查。:
-
如果掩码位的值为
0,那么标识符的相应位不被检查并且被认为通过过滤器。 -
如果掩码位的值为
1,然后将CAN消息标识符的位与相应的位进行比较 Filter ID: . 如果值不匹配,则丢弃该消息。
要禁用过滤器并接收所有消息,请设置 Filter ID: 和 Mask: 如何 0. 过滤器操作的详细描述在CAN RX块中的消息过滤器部分中给出。
| 默认值 |
|
| 程序使用名称 |
|
| 可调谐 |
无 |
| 可计算 |
是 |
