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

写入待传输的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项。有关在CompactRIO配置中创建和添加FPGA I/O的详细信息,请参阅新建FPGA I/O对话框(FPGA模块)。
  3. 从FPGA I/O选板中选择I/O节点并放置到到FPGA VI程序框图。
  4. 右键单击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端口上启动通信。要启动通信,请在模块配置中启用自动开始,或调用开始方法。

从LabVIEW FPGA到模块CAN端口的通信路径以FIFO方式实现。CAN输出节点等待FIFO中出现可用元素,然后将帧写入FIFO。如果FIFO中不存在其他CAN帧,则CAN帧将立即开始传输。

CAN输出不会等待请求的传输在网络上完成(确认)。如果要一次传输一个CAN帧,请先调用CAN输出,然后调用等待传输完成(I/O方法)。

如果要尽快传输所有CAN帧,可将多个帧写入输出FIFO。CAN模块会尽快将这些帧提交给SJA1000控制器,因此会产生接近100%的总线负载。

输出FIFO满时,CAN输出节点等待出现可用元素,然后将帧写入FIFO。CAN高级端口配置对话框中的输出超时(毫秒)指定等待新元素变为可用的时间,该元素在先前CAN输出的帧成功传输到网络后即变为可用。如果将输出超时(毫秒)设置为0,当没有新元素可用时,CAN输出节点将返回错误状态TRUE(错误)(非阻塞)。返回错误时,请稍后再次尝试发送该CAN帧。

除CAN输出节点外,输出超时(毫秒)也适用于大多数方法和属性。例如,如果输出超时(毫秒)为0,则输出FIFO已满时,“中止传输”方法将返回错误。有关从LabVIEW FPGA到CAN端口的输出路径的更多信息,请参阅仲裁
备注 可以将多个CAN输出端口添加到FPGA I/O节点,还可以右键单击FPGA I/O节点并选择添加元素,将模拟输出和数字输出添加至同一FPGA I/O节点。右键单击所创建的I/O名称,然后选择选择FPGA I/O以指定I/O名称。如果一个节点使用多个输出,则LabVIEW将从最上面的输出开始依次执行。如果等待输出时有输出被阻止,则后续输出也将延迟。

属性对话框

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

选择写入CAN输入节点的CAN帧的数据类型。可用的值为Cluster(默认)和Array of 6 U32

使用数据类型的好处有:

  • 简化程序框图(易于使用)
  • 如果只使用程序框图(不用前面板),可更快速高效。

使用Array of 6 U32数据类型,并一次将一个整数握手发送到主机VI,其优势包括:

  • 更快地与主机VI交互数据
  • 需要较少的FPGA门

有关簇和数组使用的详细信息,请参阅Using Clusters and Arrays in LabVIEW FPGA Application Note

节点输入

备注 本自动翻译仅为阅读便利而提供。请参阅英文版本以获取最新和最准确的信息。
  • 错误输入 —可选。默认情况下不显示。右键单击该节点,然后选择错误接线端以启用。
  • CANx —如果数据类型定义为(默认),则CAN帧表示为一个簇。有关簇元素,请参见下表。
  • 表 539. Canx簇元素
    数据类型 元素 说明
    时间标识(高) 忽略。传输请求总是尽快发生(不定时)。
    时间标识(低) 忽略。传输请求总是尽快发生(不定时)。
    标识符

    仲裁ID。

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

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

    此CAN标识符的表示法与NI-CAN相同。

    类型 帧类型。
    • 数据帧:0
    • 远程帧:1
    信息A 保留以备后用。
    信息B 保留以备后用。
    数据长度

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

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

    数据

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

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

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

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

    节点输出

    备注 本自动翻译仅为阅读便利而提供。请参阅英文版本以获取最新和最准确的信息。
  • 错误输出 —可选。默认情况下不显示。右键单击该节点,然后选择错误接线端以启用。 除非将输出超时(毫秒)设置–1(即无限期等待),否则必须使用错误接线端来确定CAN输出是否成功提交了要传输的CAN帧。