备注 本自动翻译仅为阅读便利而提供。请参阅英文版本以获取最新和最准确的信息。

等待接收CAN帧,然后返回该帧。

按照下列步骤使用CAN输入读取CAN端口。

  1. 使用添加终端和设备对话框在CompactRIO配置中添加CAN模块。右键单击项目浏览器窗口中的CAN模块,选择“属性”来指定模块的配置属性。
  2. 通过在项目浏览器窗口的我的电脑下右键单击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项。
  3. 从FPGA I/O选板中选择I/O节点并放置到到FPGA VI程序框图。
  4. 右键单击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)。
  5. 右键单击I/O节点,然后选择转换为读取将I/O节点用于CAN输入。
  6. 右键单击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

节点输入

备注 本自动翻译仅为阅读便利而提供。请参阅英文版本以获取最新和最准确的信息。
  • 出错输入 —可选。默认情况下不显示。右键单击该节点,然后选择错误终端以启用。
  • 节点输出

    备注 本自动翻译仅为阅读便利而提供。请参阅英文版本以获取最新和最准确的信息。
  • 错误输出 —可选。默认情况下不显示。右键单击该节点,然后选择错误接线端以启用。 除非将输入超时(ms)设置为–1以无限期等待,否则必须使用错误接线端来确定CAN输入是否成功接收到CAN帧。
  • CANx —如果数据类型定义为(默认),CAN帧以簇的形式表示。有关簇元素,请参见下表。
  • 表 537. CANx簇元素
    数据类型 元素 说明
    时间标识高时间标识低 收到帧时的时间标识。时间标识在CAN帧的末尾获取。高和低U32表示一个U64时间标识。时间标识足够大,可以不用处理溢出。时间标识从0开始(相对)。CAN通信开始时,时间从0开始计时。分辨率为100 ns
    标识符 仲裁ID。

    如果清除了位29(十六进制的20000000),则该ID使用标准格式(11位)。

    如果设置了位29,则该ID使用扩展格式(29位)。

    类型 帧类型。
    • 数据帧:0
    • 远程帧:1
    • 总线错误:6
    • 收发器故障:7
    信息A 保留以备后用。
    信息B 保留以备后用。
    数据长度

    对于数据帧,此项表示数据中的字节数(0–8)。

    对于远程帧,表示请求的字节数。

    数据

    对于数据帧,提供数据字节。数组使用8字节固定大小。

    对于远程帧,数据中包含的值无效,应忽略。

    如果数据类型定义为数组6 U32,则CAN帧以包含6个U32值的数组形式表示,如下表所示。

    表 538. 包含6个U32值的数组
    最高有效字节 ... ... 最低有效字节
    时间标识(高U32)
    时间标识(低U32)
    标识符
    类型 信息A 信息B 数据长度
    数据[0] Data[1] Data[2] Data[3]
    Data[4] Data[5] Data[6] Data[7]

    上表中每个元素的含义与数据类型中的元素相同。