这个例子展示了如何使用图像采集工具箱™和两个国家仪器RTSI支持的帧捕捉器同步开始图像采集。
通常需要非常紧密地同步两个或多个帧捕捉器。例如,您可以在昂贵或不可能复制的实验期间录制同步视频。由于实验的性质,使用RTSI来确保您的国家仪器PCI-1409和pci -1430帧抓取器之间最可靠的连接是有益的。
通过图像采集工具箱,创建视频输入对象进行视频录制,并设置采集参数。
%创建对象。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”);
创建视频输入对象,用于录制视频,并设置采集参数和采集开始时驱动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.