本文档概述了 Blackfly S 相机中的计数器和定时器的使用方法。

Blackfly S 采用业内先进的冰块外形传感器。
具有强大功能,可以轻松生成所需的精确图像,并加速应用程序开发。
包括对图像捕获和相机预处理的自动和精确手动控制
Blackfly S 提供GigE、USB3、套装和板级版本。
精确图像 索尼CMOS传感器中的选择包括:全局快门、偏振和高灵敏度BSI传感器。

实物图如下:
在这里插入图片描述

概念介绍

计数器和定时器功能可以实现:

  • 创建函数发生器
  • 记录信号触发的次数

一些一般应用包括:

  • 输入到逻辑块
  • 外部信号输出用于控制外部设备
  • 跟踪相机曝光的次数
  • 跟踪外部输入信号触发的次数
  • 在预定义的时间段触发相机

注意:下面使用 SpinView 应用程序来演示计数器和定时器控制的配置和执行。

配置计数器和定时器控制

在这里插入图片描述
下面的说明就是对应上面的红框序号

  • 1.选择计数器 Counter 0或者Counter 1
  • 2.选择计数器增加触发的信号源 例如图片中是Line0
  • 3.触发事件包括低电平触发、高电平触发、下降沿触发、上升沿触发、任意沿触发
  • 4.设置计数器延时个数,来表示几个计数个数来触发计数器开启事件
  • 5.设计计数器持续个数,来表示几个计数个数后触发计时器结束事件
  • 6.选择控制计数器开启的信号源
    选择控制计数器开启的触发事件

触发事件的电平来源可以包括如下:

  • 固定频率的触发信号
  • 线的输入
  • 用户的输出
  • 计数器开启事件
  • 计数器结束事件
  • 逻辑模块输出
  • 曝光开始
  • 曝光结束
  • 帧触发等待

计数器的状态可以从nodemap中获得是激活还是空闲

产生 PWM(Pulse Width Modulation)的例程

例子的目标是实现一个50hz占空比为70%的PWM信号

第一步 设置GPIO口的连接

第一步是设置从相机中输出PWM信号的硬件。对于本例程,使用一个示波器显示这个信号。
相机的GPIO口的定义根据相机型号区别很大。

Blackfly S (BFS)的定义如下:
BFS相机有一个6引脚的GPIO口。它包括一个非隔离输出引脚和一个光隔离输出引脚
如果用这个光隔离引脚输出的话(本例程就是),相机需要一个上拉电阻来增强PWM信号。
在这里插入图片描述
配置硬件相机输出PWM需要:

  • 1 连接相机的 pin 4 引脚(白色的线,光隔离输出)到示波器的信号输入端
  • 2 连接相机的 pin 5 引脚 (蓝色的线,光隔离GND)到示波器的地信号上

配置上拉电阻来增强信号:

  • 1 连接一个10kΩ电阻的一端到相机的 pin 3 引脚(红色的线,3.3v 输出)
  • 2 连接这个电阻的另一端到相机的 pin 4 引脚(白色的线,光隔离输出)
  • 3 连接相机的 pin 6 (棕色的线,GND)到相机的 pin 5 (蓝色的线,光隔离GND)

第二部 设置上位机软件(SpinView)

下面的部分展示如何在SpinView中设置PWM

  • 1 选择一个计数器 Counter 0 或者 Counter 1
  • 2 在计数器事件中选择 MHz Tick 代表的是 1MHz的信号
  • 3 为了建立50Hz的周期信号,需要设置 Counter Duration 为20000 计算方法就是 1MHz/50Hz=20000 cycles/duration
  • 4 定义Counter Duration和Counter Delay 的值来建立70%的占空比
    计算方法是 Counter Delay = 30% x 20,000 = 6,000
    Counter Duration = 70% x 20,000 = 14,000
  • 5 在Counter Trigger Source 里面选择FrameTriggerWait,然后设置Counter Trigger Activation为 Level High
    在这里插入图片描述
  • 6 禁止 Exposure Auto,设置 Exposure Time 小于1/50 s
    在这里插入图片描述
  • 7 使能 Trigger Mode 选择 Trigger Source 为 Counter0 Start
    在这里插入图片描述
  • 8 配置GPIO 使得Line1 为 Output。然后 Line Source 为 Counter 0 Active
    在这里插入图片描述
  • 9 使能 3.3V的line (红色的线)

  • 10 开始通过示波器可以看到配置的PWM输出

在这里插入图片描述

检测丢失触发数量的例程

丢失触发数量 = 触发总数- 曝光数量

通过Counter0 计数 触发的总数
通过Counter1 计数 曝光的数量

方法如下:

  • 1 禁止Exposure Auto 并且设置一个较长的Exposure Time比如3.5s
  • 2 使能Trigger Mode 并且设置Trigger Source为line0 上升沿
  • 3 连接Line0 到相机
  • 4 配置Counter 0 计数触发的次数 :Counter Event Source选择Line 0 ,Counter Event Activation设置Rising Edge,然后Trigger Source选择Line0 ,Counter Trigger Activation 选择Rising Edge,最后Counter Duration为一个较大的数值,Counter Delay 为0
    在这里插入图片描述
  • 5 配置Counter 1 来记录曝光的次数
    首先 设置Counter Event Source为ExposureStart,设置 Counter Event Activation为Rising Edge
    然后 设置Counter Trigger Source为ExposureStart,设置Counter Trigger Activation为Rising Edge
    最后 Counter Duration为一个较大的数值,Counter Delay 为0
    在这里插入图片描述
  • 6 使能1Hz的触发源,相机开始拍摄照片
  • 7 在SpinView中右键,刷新,这样 Counter Value 就会显示具体数值
    查看Counter0的 Counter Value
    在这里插入图片描述
    然后选择Counter 1 ,记下计数器的值
    在这里插入图片描述
  • 8 最后计算丢失触发
    就是 Counter0 Value – Counter1 Value的值 3-1 为2.