RITM-CAN RX
接收CAN消息。
blockType: CFunction
|
图书馆路径:
|
资料描述
要使用该块,请安装/更新支持包。 节奏块。
座 *RITM-CAN RX*它用于接收CAN消息。
参数
Параметры:
#
Интерфейс CAN: —
CAN端口用于接收消息
CAN 1 | CAN 2 | CAN 3 | CAN 4 | CAN 5 | CAN 6 | CAN 7 | CAN 8
Details
端口号在KPM"节奏"的情况下表示。
| 值 |
|
| 默认值 |
|
| 程序使用名称 |
|
| 可调谐 |
无 |
| 可计算 |
是 |
# Максимальное число сообщений: — 在1个计算步骤中从操作系统缓冲区传输到模型的最大消息数。
Details
| 默认值 |
|
| 程序使用名称 |
|
| 可调谐 |
无 |
| 可计算 |
是 |
# Шаг расчёта, с: — 在实时应用程序中接收CAN消息的计算步骤(以秒为单位)
Details
| 默认值 |
|
| 程序使用名称 |
|
| 可调谐 |
无 |
| 可计算 |
是 |
Фильтр:
# Filter ID: — 在操作系统级别过滤接收的消息
Details
要禁用过滤器并接收所有消息,请设置*过滤器ID*和*掩码*值 0. 过滤器操作的详细描述在CAN RX块中的消息过滤器一节中给出。
| 默认值 |
|
| 程序使用名称 |
|
| 可调谐 |
无 |
| 可计算 |
是 |
# Mask: — CAN消息标识符过滤器的位掩码
Details
指定接收到的CAN消息的标识符的哪些位参与OS级别的过滤。 如果满足条件,则接受消息: CAN_ID&Mask==Filter_ID&Mask.
* 0 在位 面具 --相应的位 CAN_ID 未勾选(跳过);
* 1 在位 面具 --相应的位 CAN_ID 必须匹配位 过滤器_id 否则,该消息被丢弃。
要禁用筛选器并接受所有消息,请安装 Filter_ID=0 和 面具=0. CAN标识符可以是11位长(标准)或29位长(扩展)。
| 默认值 |
|
| 程序使用名称 |
|
| 可调谐 |
无 |
| 可计算 |
是 |
CAN RX块中的消息过滤器
接收到的CAN消息的标识符的长度可以是29位(对于扩展帧格式)或11位(对于标准帧格式)。 CAN消息通过过滤器,并且仅当标识符的所有位都通过过滤器时才被接受。 如果消息标识符的至少一个比特未通过过滤器,则丢弃该消息。 *过滤器ID*和*掩码*设置允许您根据收到的CAN消息的标识符的单个位设置过滤器。
如果满足以下条件,则消息将通过筛选器:
CAN ID&Mask==过滤器ID&Mask,
其中*CAN ID*是接收到的CAN消息的标识符。
- 换句话说,过滤器可以以下列规则的形式表示
-
-
如果单个位的*Mask*值为零,则不过滤此位。 也就是说,该位在过滤器中不被检查并通过过滤器。
-
如果单个位的*Mask*的值为1,则通过该位的值执行过滤: **如果来自*CAN ID*的位和来自*Filter ID*的位匹配,则此位通过过滤器。 **如果来自*CAN ID*的位和来自*Filter ID*的位不同,则此位不通过filter。
-
过滤器操作示例
让下面的消息过滤器设置。:
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
