IEEE 1394 카메라를 사용할 때, "Insufficient Resources Available for Required Video Mode" 에러가 발생합니다.



하드웨어: Image Acquisition (IMAQ)

문제점: NI-IMAQ IEEE 1394 또는 NI-IMAQdx 드라이버를 사용하는 FireWire 카메라(IEEE 1394)를 사용하여 수집하려고 합니다. Grab 또는 Snap을 할 경우 모드 또는 전송 엔진의 리소스가 부족하다는 에러가 발생합니다. 왜 이러한 에러가 발생하며, 에러를 해결하려면 어떻게 해야합니까?

솔루션:

이러한 에러의 경우는 카메라가 짧은 시간에 너무 많은 양의 데이터를 FireWire 버스로 전송을 하는 경우 발생할 수 있습니다. 많은 카메라의 데이터 프로토콜은 이미지 스트리밍 또는 시리얼로 이미지를 전송하고, FireWire 버스로 데이터 패킷을 통해 데이터를 전송합니다. 각각의 패킷은 스케줄된 시간 간격으로 전송됩니다. 이러한 방법은 동시 데이터 전송 방식입니다.
이 패킷들의 전송 시간 간격은 이미지의 크기 및 비트 뎁스, 그리고 취득하는 이미지 프레임 속도에 의해서 결정됩니다. 주어진 대역폭을 벗어난 이미지 수집 파라미터 설정은 특정한 에러를 발생시킬 수 있습니다.

이 문제를 해결하려면, 수집 속도 또는 패킷의 크기 파라미터를 알맞게 설정해야만 합니다. 다음의 여러 단계는 이러한 작업을 수행하는 방법에 대해서 설명하고 있습니다:

  1. Measurement & Automation Explorer(MAX) 를 실행합니다.
  2. 디바이스와 인터페이스 탭을 확장합니다.
  3. 사용하는 카메라와 관련되어 있는 드라이버에 따라서, Legacy NI-IMAQ IEEE 1394 디바이스 또는
     NI-IMAQdx 디바이스를 확장합니다.
  4. 카메라 구성을 선택합니다.
  5. MAX 윈도우의 아래쪽에 위치한 Acquisition Attributes 탭을 찾습니다.
  6. 알맞은 Video Mode를 선택합니다.

사용자는 속도와 패킷 크기 파라미터 옵션에 대해서 수동적으로 조절 가능합니다. 실제 선택한 비디오 모드에 맞에 두 가지의 파라미터를 설정합니다. 카메라 및 드라이버의 종류에 의존되며, 비디오 모드를 선택한 후 속도와 패킷 사이즈를 조절 할 수 있습니다.

속도 셋팅은 가능한한 높은 값으로 설정하는 것을 권장합니다. 이는 카메라의 드라이버가 가능한한 많은 대역폭을 예약하도록 하며, 이미지 데이터가 가능한 빨리 전송 될 수 있도록 합니다.속도를 설정한 크기보다 패킷의 크기를 크게 설정하지 않도록 주의해야 합니다. 그렇지 않으면 에러가 발생할 것입니다. 속도 설정에 기초한 패킷 크기를 테이블로 나타내었습니다:

속도와 패킷 크기를 수동으로 조절하여 카메라를 사용할 수 있는 비표준 비디오 모드(포멧 7)가 있습니다. 포멧 7은 연관된 프레임 속도가 없습니다. 전송 속도를 계산하기 위해서 다음의 식을 사용합니다:

다수의 카메라로부터 데이터를 취득하는 경우는 FireWire 카드로 부터 이용가능한 대역폭을 공유하는 각각의 카메라에 대한 속도와 패킷 크기를 알맞게 설정하는 것이 중요합니다. FireWire 카드마다 전송될 수 있는 패킷의 크기 및 최대 데이터 전송률이 정해져 있습니다. 각 카메라로 부터 전송되는 패킷의 크기는 수신 가능한 최대 패킷 크기의 이하로 해야합니다.

예를 들어, IEEE 1394a 카드의 경우는 400Mbps로 4096 바이트의 패킷을 수신할 수 있습니다. 두 개의 카메라로부터 취득하는 경우는 각 카메라의 패킷 크기는 패킷 당 2048 바이트로 설정합니다. 따라서 합산 하여도 패킷의 총 바이트 수는 4096을 초과하지 않으며, 전송 속도는 최대 400Mbps 입니다. IEEE 1394B 카메라와 카드는 경우는 800Mbps로 8196 바이트의 패킷을 허용하고 IEEE 1394a 카메라의 경우는 400Mbps로 4096 바이트 패킷을 허용합니다.

카드에 카메라가 추가될 때 리소스 부족 에러가 발생하지 않도록 하려면, 패킷 당 총 바이트 수를 제한해야 합니다. 각 카메라의 영상 모드를 조절하여, 제한한 패킷 사이즈보다 작도록 해야합니다.

이 문서의 첨부파일은 FireWire 대역폭 계산기 입니다. 카메라를 사용할 때 가장 효율적인 패킷 사이즈와 속도 설정을 할 수 있게 도와줄 것입니다. 계산기는 카드에 카메라가 추가될 때 버스의 리소스 사용량을 시뮬레이션 합니다.

FireWire 버스에 대한 자세한 내용은 아래의 관련 링크를 참조하시기 바랍니다.



관련 링크:
Developer Zone Tutorial: FireWire® (IEEE 1394) Overview
KnowledgeBase 30O7FC6W: Resource Allocation for IEEE 1394 (FireWire) Cameras in Triggered Mode
KnowledgeBase 3J0A446W: NI-IMAQ for 1394: Slower Frame Rate After Upgrading to Windows XP Service Pack 2 or Later
KnowledgeBase 25UCKA8M: Troubleshooting FireWire (IEEE-1394) Camera Installation Problems
KnowledgeBase 30O7FC6W: Resource Allocation for IEEE 1394 (Firewire) Cameras in Triggered Mode

첨부:


1394BandwidthCalculator.exe - 1394BandwidthCalculator.exe


리포트 날짜: 08/04/2007
마지막 업데이트: 07/28/2015
문서 번호: 4C3CQOBE