您现在的位置:首页 > 应用案例 > 一条1394总线Z多支持的相机个数

应用案例 Solutions
一条1394总线Z多支持的相机个数
点击次数:2854 发布时间:2013-05-23

 

内容:介绍影响在同一个1394总线上同步工作的1394相机的个数的四个因素,以及如何计算每个相机所能达到的zui大帧速。


回复:

一块IEEE-1394 OHCI卡构成一个1394 总线.  有四个因素会影响同一个1394总线上支持的相机的个数:

1. 同步通道的个数
   理论上,1394a一个总线上所能支持的zui大的通道个数为16个,但是目前没有任何一个适配器能够支持16个通道。基于TI 芯片的适配器能够zui多支持4个同步DMA通道,基于Lucent/Agere 芯片的适配器支持8个DMA通道。Agere/LSI 基于 1394b 卡, 支持8个 DMA通道, Point Grey Research提供相关的产品。
 
2. IEEE-1394zui大带宽
   1394a总线zui大的带宽为400Mb/s, 或50MB/s。带宽同时分为两个部分,一部分为同步数据传输(如数据流),一部分为异步控制(如相机控制)。其中 80% (40MB/s)的带宽用来进行同步数据传输,其它的20% (10MB/s)用来异步控制.
   根据1394a协议的定义,以及微软1394驱动(1394bus.sys, ohci1394.sys, 等.) 的限制,一个数据包zui大为4096 bytes. 同步部分每秒8000个周期,相当于33MB/s, 这就意味着同步数据还有额外的7MB/s带宽. 所以,虽然不符合1394a协议,数据包可以zui大分配为4915bytes,。另外,协议中没有提到每一个同步周期不能够传输多个数据包,只要数据总量在协议带宽内即可。例如:一个相机可以每个同步周期发送两个2450-byte 数据包,但是仍然符合1394a标准协议。
   对于1394b总线,与1394a相同,区别在于zui大的带宽为800Mb/s, 或100MB/s, zui大的数据包为8192 bytes.

3. 设备zui大个数
   1394a标准限制了同一个1394总线上zui大的设备个数为63个.

4. 相机功耗
   根据相机的功耗来决定功率的多少,以保证相机的正常运行。

计算zui高可能帧速
    影响总线上每个相机的zui大帧速的因素有:相机类型及分辨率(比如类似于Dragonfly的单个相机,Bumblebee立体相机),DCAM为每一个视频格式/模式/帧速率定义了bytes-per-pixel (Bpp) , -可以预料,一些普遍高于zui低带宽。为了准确地确定是否有足够的带宽,需要用到这些参数。
例如, 单台PGR DragonFly相机640x480 Y16 15fps,每个数据包发送640个像素。每个像素包含16bits,或2 bytes数据。所以相机产生640*2 = 1280Bpp 的数据. 1394a总线zui大带宽像上面所提到每个数据包为 4096Bpp,所以 4096/1280 = 3   PGR Dragonfly运行在 640x480 Y16 模式  15fps在同一个1394a总线上可以接3个相机.PGR提供了一个带宽计算器,可以方便计算。

zui大帧速问题
    在某些时候,由于1394a带宽的限制,一些相机不能够达到计算出来的zui高速度。例如:根据上面的公式,在同一个总线上4个 640x480 Y8 30Hz (8-bit)相机可以正常运行。但是通过PGR的软件进行相机类型及帧速控制时,第四个相机会返回 "bandwidth exceeded" 的错误. 解决这个问题的方法就是绕过Windows的带宽限制,直接对相机的寄存器CURRENT_FRAME_RATE register 0x600进行操作。向上面的例子,可以在PGR的 FlyCapture demo程序中,按照30fps对前三个相机进行初始化,第四个相机按照15fps进行初始化,初始化完成后设置寄存器0x600 为0x80000000 (30Hz)以解决上面的问题。

 

 

扫一扫访问手机站扫一扫访问手机站
访问手机站