主要内容

同步两个国家仪器®帧捕捉器

这个例子展示了如何使用图像采集工具箱™和两个国家仪器RTSI支持的帧捕捉器同步开始图像采集。

通常需要非常紧密地同步两个或多个帧捕捉器。例如,您可以在昂贵或不可能复制的实验期间录制同步视频。由于实验的性质,使用RTSI来确保您的国家仪器PCI-1409和pci -1430帧抓取器之间最可靠的连接是有益的。

配置PCI-1409

通过图像采集工具箱,创建视频输入对象进行视频录制,并设置采集参数。

%创建对象。vid1409 = videoinput (“倪”1);%设置为每个触发器获取大约一秒的帧。vid1409。FramesPerTrigger = 30;

您可以使用其中一张卡来触发另一张卡,但是本例使用pci -1430来触发PCI-1409。查看哪些触发设置可用于PCI-1409。

%查看可能的设置。triggerinfo (vid1409)
有效的触发器配置:TriggerType: TriggerCondition: TriggerSource:` immediate ` ` none ` ` manual ` ` none ` ` none ` ` hardware ` ` fallingEdge ` ` external0 ` ` hardware ` ` fallingEdge ` ` external1 ` ` hardware ` ` fallingEdge ` ` external2 ` ` hardware ` ` fallingEdge ` ` rtsi0 ` ` hardware ` ` fallingEdge ` ` rtsi1 ` ` hardware ` ` fallingEdge ` ` rtsi2 ` ` hardware ` ` fallingEdge ` ` rtsi3 ` ` hardware ` ` fallingEdge ` ` rtsi0 ` ` hardware ` ` fallingEdge ` ` rtsi2 ` ` hardware ` ` fallingEdge ` ` rtsi3 ` ` hardware ` ` fallingEdge ` ` rtsi3 ` ` hardware ` `'rtsi4' 'hardware' 'fallingEdge' 'rtsi5' 'hardware' 'fallingEdge' 'rtsi6' 'hardware' 'risingEdge' 'external0' 'hardware' 'risingEdge' 'external1' 'hardware' 'risingEdge' 'external2' 'hardware' 'risingEdge' 'external3' 'hardware' 'risingEdge' 'rtsi0' 'hardware' 'risingEdge' 'rtsi1' 'hardware' 'risingEdge' 'rtsi1' 'hardware' 'risingEdge' 'rtsi1' 'hardware' 'risingEdge' 'rtsi1' 'hardware' 'rtsi2' 'hardware' 'risingEdge' 'rtsi0' 'hardware' 'risingEdge' 'rtsi1' 'hardware' 'risingEdge' 'rtsi2' 'hardware' ''risingEdge' 'rtsi3' 'hardware' 'risingEdge' 'rtsi4' 'hardware' 'risingEdge' 'rtsi5' 'hardware' 'risingEdge' 'rtsi6'

设置视频输入对象为硬件触发关闭的RTSI线1上升沿。

%设置触发配置。triggerconfig (vid1409“硬件”“risingEdge”“rtsi1”);

配置作为pcie - 1430

创建视频输入对象,用于录制视频,并设置采集参数和采集开始时驱动RTSI1的高电平。

%创建对象。vid1430 = videoinput (“倪”2);%设置为每个触发器获取大约一秒的帧。vid1430。FramesPerTrigger = 30;

为了驱动PCI-1409的RTSI线,需要在pci -1430上设置正确的线路和极性。此外,您需要确定什么帧捕捉器事件将驱动RTSI线。通过查看以“DriveLine”和“drivepolar”结尾的设备特定源属性,你可以看到一个可用的事件列表:

获取当前选择的源。src = getselectedsource (vid1430);%显示属性及其可能的设置。集(src)
一般设置:标签设备特定属性:收购donedriveline: [{none} | external0 | rtsi0 | rtsi1 | rtsi2 | rtsi3 | rtsi4 | rtsi5 | rtsi6]收购donedriveline:[{一}| external0 | rtsi0 | rtsi1 | rtsi2 | rtsi3 | rtsi4 | rtsi5 | rtsi6] AcquisitionInProgressDrivePolarity: [{activeHigh} | activeLow] ExternalTriggerLineFilter:[从| {}]FrameDoneDriveLine:[{一}| external0 | rtsi0 | rtsi1 | rtsi2 | rtsi3 | rtsi4 | rtsi5 | rtsi6] FrameDoneDrivePolarity:[{activeHigh} | activeLow] FrameStartDriveLine:[{一}| external0 | rtsi0 | rtsi1 | rtsi2 | rtsi3 | rtsi4 | rtsi5 | rtsi6] FrameStartDrivePolarity: [{activeHigh} | activeLow] HSyncDriveLine:[{一}| external0 | rtsi0 | rtsi1 | rtsi2 | rtsi3 | rtsi4 | rtsi5 | rtsi6] HSyncDrivePolarity: [{activeHigh} | activeLow] RTSITriggerLineFilter:[关闭| {on}] VSyncDriveLine: [{none} | external0 | rtsi0 | rtsi1 | rtsi2 | rtsi3 | rtsi4 | rtsi5 | rtsi6]

在这种情况下,您希望在进行采集时将RTSI线1推高。这确保了一旦收购开始,这条线就会被抬高。要做到这一点,你需要将正在进行中的收购驱动线设置为“rtsi1”:

%设置在开始采集时驱动RTSI1升高。src。AcquisitionInProgressDriveLine =“rtsi1”;

查看上面的输出,您可以看到正在进行中的获取事件的极性已经设置为'activeHigh',所以您不需要设置它。

请注意,您可以驱动的最大行数取决于硬件,并且可能在不同设备之间有所不同。

此时,您被设置为在PCIe-1430启动时从每个设备获取大约1秒的帧。

开始图像采集

您现在可以启动PCI-1409视频输入对象,并查看它正在等待硬件触发器。

开始(vid1409);vid1409
基于PCI/PXI-1409的视频输入对象综述。采集渠道:0、1、2、3通道可用。采集参数:“通道0”是当前选择的源。每个触发器使用选定的源30帧。'img1'视频数据将被记录在START。每1帧抓取第一个帧。在触发器上记录数据到“内存”。触发器参数:1个“硬件”触发器。状态:等待1的触发器1。0帧从开始。 0 frames available for GETDATA.

现在您可以显示pci -1430视频输入对象的摘要,并看到它被设置为在启动时立即触发。

vid1430
使用“pci -1430”的视频输入对象概述。采集源:通道0可用。采集参数:“通道0”是当前选择的源。每个触发器使用选定的源30帧。'img0_Port0'视频数据将被记录在START。每1帧抓取第一个帧。在触发器上记录数据到“内存”。触发器参数:START上的1个“immediate”触发器。状态:等待启动。0帧从开始。 0 frames available for GETDATA.

当您启动pci -1430视频输入对象时,它将立即被触发并开始采集。此时,帧捕捉器将通过RTSI线路1向另一个帧捕捉器发送一个信号,这将导致PCI-1409几乎同步开始。

开始(vid1430)%等待两个对象,直到你完成获取。等待(vid1430),等待(vid1409)

显示收购的摘要

如果您现在显示一个摘要,您将看到两个设备都获得了帧。

vid1409
基于PCI/PXI-1409的视频输入对象综述。采集渠道:0、1、2、3通道可用。采集参数:“通道0”是当前选择的源。每个触发器使用选定的源30帧。'img1'视频数据将被记录在START。每1帧抓取第一个帧。在触发器上记录数据到“内存”。触发器参数:1个“硬件”触发器。状态:等待启动。自开始后获得30帧。 30 frames available for GETDATA.

和:

vid1430
使用“pci -1430”的视频输入对象概述。采集源:通道0可用。采集参数:“通道0”是当前选择的源。每个触发器使用选定的源30帧。'img0_Port0'视频数据将被记录在START。每1帧抓取第一个帧。在触发器上记录数据到“内存”。触发器参数:START上的1个“immediate”触发器。状态:等待启动。自开始后获得30帧。 30 frames available for GETDATA.

清理对象

一旦视频输入对象不再需要,删除它们,并从工作区中清除它们和对源的引用。

删除(vid1430)删除(vid1409)清晰vid1430vid1409SRC.