工业相丢帧现象
一般来说,工业相机丢帧与工业相机所使用的传输接口无关。无论是USB、1394、GIGE还是cameralink,设计不良的驱动程序或工业相机硬件都是造成帧丢失的真正原因。设计不良的工业相机丢帧的原因,实际上是因为数据通道被阻塞,无法及时处理。因此,当一个新的图像进来时,前一个可能会被强制丢弃,也可能会被强制丢弃新的图像。解决这一问题,设计人员需要对驱动程序与工业相机硬件之间数据传输的各个环节进行精确的设计。
图像信号被阻挡的地方有三个:
1. 工业相机的部分
图像传感器将图像传输到相机上的USB芯片,USB将图像传输到PC机上。如果PC系统过于繁忙,无法处理接收到的图像,而图像传感器又不断传输新的图像数据,那么工业相机必须有足够的内存缓存,否则会造成丢帧。
2. 视觉软件程序部分
视觉软件对等待计算的图像空间有一种缓冲机制,以增加图像缓存,获得缓冲时间,使程序的计算得以进行。但是,如果运行稳定,CPU的整体处理速度要高于图像传入速度。如果速度很慢,缓存将总是超载,并会发生帧丢失。
3. 硬件PC系统部分
本部分主要介绍PC硬件驱动程序,与可视化软件程序无关。PC接收重要的是驱动程序的效率,WINDOWS中内核模式下有多少线程在划分CPU时间。接收效率不高,工业相机也不行,不足够的缓冲内存会导致帧丢失。
工业相机的帧速率非常快。事实上,工业相机的缓存不会像PC程序那样是无限的。只要有足够的能力来调整系统的“暂时”忙碌,就足够了。USB工业相机将丢失帧,唯一的情况是机器视觉软件的计算速度比工业相机图像的速度慢。随着时间的推移,软件缓存变得满了,新的图像无法存储。但是,这是系统数据丢失,而不是工业相机数据丢失。在这种情况下,无论使用1394接口、USB接口还是GigE接口的工业相机,任何接口的工业相机都会得到相同的结果。