CAN输入
- 更新时间2025-10-09
- 阅读时长6分钟
备注 本自动翻译仅为阅读便利而提供。请参阅英文版本以获取最新和最准确的信息。
等待接收CAN帧,然后返回该帧。
按照下列步骤使用CAN输入读取CAN端口。
- 使用添加终端和设备对话框在CompactRIO配置中添加CAN模块。右键单击项目浏览器窗口中的CAN模块,选择“属性”来指定模块的配置属性。
- 通过在项目浏览器窗口的我的电脑下右键单击FPGA目标,选择新建»FPGA I/O,然后添加CAN»NI 9852»CAN0(或CAN»NI 9853»CAN0)或CAN»NI 9852»CAN1(或CAN»NI 9853»CAN1)到FPGA I/O列表,为CAN创建FPGA I/O项。
- 从FPGA I/O选板中选择I/O节点并放置到到FPGA VI程序框图。
- 右键单击FPGA I/O节点并选择选择FPGA I/O»CAN»NI 9852»CAN0(或选择FPGA I/O»CAN»NI 9853»CAN0)或选择FPGA I/O»CAN»NI 9852»CAN1(或选择FPGA I/O»CAN»NI 9853»CAN1)。
- 右键单击I/O节点,然后选择转换为读取将I/O节点用于CAN输入。
- 右键单击I/O节点,然后选择属性并选择数据类型。
使用CAN输入之前需先在CAN端口上启动通信。在模块配置中启用自动开始,或调用开始方法启动通信。
CAN高级端口配置对话框中的输入超时(ms)指定等待接收新帧的时间。如果指定输入超时(毫秒)为0,则“CAN输入”节点只检查是否有新帧到达(不阻止)。
有关CAN输入如何与其他CAN节点进行仲裁的信息,请参阅仲裁。
备注 您可以将多个CAN输入端口添加到FPGA I/O节点,还可以通过右键单击FPGA I/O节点并选择添加元素,将模拟和数字输入添加到同一个FPGA I/O节点。右键单击所创建的I/O名称,然后选择选择FPGA I/O以指定I/O名称。如果每个节点使用多个输入,LabVIEW将从顶部输入开始依次执行。如果等待输入时某个输入被阻塞,则后续输入也会被延迟。例如,如果使用同一个CAN输入节点读取CAN0和CAN1,则该节点会先等待CAN0接收到帧,然后再等待CAN1接收到帧。使用独立的CAN输入节点访问每个CAN端口更为高效。
属性对话框
备注 本自动翻译仅为阅读便利而提供。请参阅英文版本以获取最新和最准确的信息。
数据类型选择CAN输入节点返回的CAN帧的类型。可用值为Cluster(默认)和Array of 6 U32。
使用簇数据类型的好处有:
- 简化程序框图(易于使用)
- 如果只使用程序框图(不用前面板),可更快速高效。
Array of 6 U32数据类型的优势,以及一次一个地向主机VI握手传递整数的优势如下:
- 更快地与主机VI交互数据
- 需要较少的FPGA门
如需有关在LabVIEW FPGA中使用簇和数组的更多信息,请参阅Using Clusters and Arrays in LabVIEW FPGA Application Note。
节点输入
备注 本自动翻译仅为阅读便利而提供。请参阅英文版本以获取最新和最准确的信息。
节点输出
备注 本自动翻译仅为阅读便利而提供。请参阅英文版本以获取最新和最准确的信息。
| 数据类型 | 元素 | 说明 |
|---|---|---|
|
|
时间标识高,时间标识低 | 收到帧时的时间标识。时间标识在CAN帧的末尾获取。高和低U32表示一个U64时间标识。时间标识足够大,可以不用处理溢出。时间标识从0开始(相对)。CAN通信开始时,时间从0开始计时。分辨率为100 ns。 |
|
|
标识符 | 仲裁ID。 如果清除了位29(十六进制的20000000),则该ID使用标准格式(11位)。 如果设置了位29,则该ID使用扩展格式(29位)。 |
|
|
类型 | 帧类型。
|
|
|
信息A | 保留以备后用。 |
|
|
信息B | 保留以备后用。 |
|
|
数据长度 |
对于数据帧,此项表示数据中的字节数(0–8)。 对于远程帧,表示请求的字节数。 |
|
|
数据 |
对于数据帧,提供数据字节。数组使用8字节固定大小。 对于远程帧,数据中包含的值无效,应忽略。 如果数据类型定义为数组6 U32,则CAN帧以包含6个U32值的数组形式表示,如下表所示。 |
| 最高有效字节 | ... | ... | 最低有效字节 |
|---|---|---|---|
| 时间标识(高U32) | |||
| 时间标识(低U32) | |||
| 标识符 | |||
| 类型 | 信息A | 信息B | 数据长度 |
| 数据[0] | Data[1] | Data[2] | Data[3] |
| Data[4] | Data[5] | Data[6] | Data[7] |
上表中每个元素的含义与簇数据类型中的元素相同。