Why am I unable to acquire images from multiple DCAM FireWire (IEEE-1394) cameras using the Image Acquisition Toolbox?

3 views (last 30 days)
I am using two DCAM FireWire (IEEE-1394) cameras and would like to start the cameras simultaneously (or at least have them running simultaneously even if I have to start them one after the other). However, when I attempt this I receive the following message:
An object in OBJ could not be started, was already started, or is invalid.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 18 Oct 2013
Simultaneous acquisition using multiple FireWire devices attached to a single FireWire card may exceed the maximum bandwidth. For example, acquiring 1024-by-768 YUV images at 15 frames/second from a FireWire camera will require about 77% of the FireWire bus bandwidth. Attempting to simultaneously acquire from 2 of these devices, using a single FireWire card, will exceed the bus bandwidth.
To work around this, use multiple FireWire cards (one for each camera) when doing simultaneous acquisition.
The DCAM specification stipulates that image transfers occur isochronously. This means that when the camera is started, a portion of the FireWire bandwidth is reserved for that camera. If the bandwidth requirements for a camera can not be met, the above error is reported at the time the camera is started.
The amount of bandwidth reserved depends upon the image format and frame rate. In the case of Format 7 or Partial Scan mode the property NormalizedBytesPerPacket is used in place of setting the frame rate. You can use the IMAQHELP function to get more information on the NormalizedBytesPerPacket property.
In the case of hardware triggering, the situation is slightly more complicated. At the time the device is started, camera still reserves part of the FireWire bandwidth for image transfers. The reserved bandwidth is still based on the previously mentioned criteria. However, it may be possible for hardware triggers to occur faster than the camera can transmit the images in the reserved bandwidth. In this case, the behavior will be camera dependent. All cameras have a period after receiving a hardware trigger during which new triggers are ignored. For many cameras, the period during which new hardware triggers are ignored includes the time to complete the isochronous image transfer. Some cameras may have a large on-board buffer which can store multiple images from a burst of triggers. You should consult your camera's manual to determine how it will behave under these circumstances.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!