科研级 EMCCD 与 sCMOS 相机本身不难接,难的是把它塞进自己的实验时序里。本文拆一条完整链路:从 Andor SDK 的 DLL 接口,到 LabVIEW 里从初始化到出图的每一步。
显微镜接口上的科研级制冷相机,LabVIEW 界面呈现曝光时间、EM 增益与实时图像直方图
01 这类相机为什么不好控
在单光子成像、活细胞荧光显微、天文观测这类场景里,Andor 的 EMCCD(iXon 系列)和 sCMOS(Zyla、Sona、Marana 等)是常见选择——它们能在极弱光下拿到可用图像。
但买回来不等于用起来。这类相机厂商都配了自己的采集软件(如 Solis、iQ),点点鼠标就能拍。问题在于:科研要的从来不是"拍一张照片",而是把相机嵌进一整套实验流程——曝光的同时位移台要走到位、光源要按序列开关、温度要记录、图像要按编号落盘。
自带软件做不到这些。你必须自己写程序去驱动它。
而这类相机的可控参数比普通工业相机多得多:曝光时间、EM 增益、制冷温度、读出模式、触发模式、binning 方式……每一个都影响最终图像的质量。控不住这些,数据就不可比。
02 接口:Andor SDK 是那座桥
Andor 把这些能力封装成一套 SDK,核心是一个动态链接库。LabVIEW 要做的,是通过调用库函数节点去调这个 DLL。
选 SDK 之前先分清代次,这一步错了后面全白搭:
- SDK2对应 CCD 与 ICCD 系列,包括iXon这类 EMCCD,库文件是 `atmcd32d.dll`(64 位系统下是 `atmcd64d.dll`);
- SDK3对应 sCMOS 系列,用的是另一套 DLL,与 SDK2 不通用。
好消息是 Andor 官方就支持 LabVIEW——SDK 安装包里直接带 LabVIEW 示例 VI,装完就能跑。SDK 附带的 `ATMCD32D.BAS` 文件里,就是为 LabVIEW 准备的函数原型声明。
有一条必须对齐:位数。LabVIEW 的位数、DLL 的位数、操作系统的位数要一致。官方示例 VI 在不同 SDK 版本里对 LabVIEW 版本的要求也不同,早期版本要求 32 位环境。这个坑不提前确认,会在"调用库函数节点"那一步直接报错。
03 一条完整的控制链路
这套流程是有固定顺序的,每一步都依赖上一步的结果:
第一步,`Initialize`。初始化相机。注意:这一步相机会自动校准片内的 A/D 转换器,要花几秒钟。第一次跑的人常以为程序卡死了。
第二步,配置工作模式。至少四个函数要设:`SetTriggerMode`(0 表示内触发)、`SetGateMode`(3 表示门常开)、`SetReadMode`(4 表示图像模式)、`SetAcquisitionMode`(1 表示单次扫描)。
第三步,设置采集参数。`SetExposureTime` 设曝光时间;`SetEMGainMode` 设 EM 增益,取值范围0 到 300。这两个参数直接决定图像的亮度和噪声,是实验中最常调整的两个。
第四步,`GetDetector`。读回相机的水平与垂直像素尺寸。必须先读,才知道后面要开多大的数组——这是新手最容易漏的一步。
第五步,`SetImage`。配置 binning 方式和起始位置,并分配图像数组。
第六步,`StartAcquisition` 与 `GetAcquiredData`。启动采集并把数据搬进预分配的数组。要连续采,就把这两个函数套在循环里。
第七步,`ShutDown`。释放内存、关闭相机。程序异常退出时如果没走到这一步,下次相机可能连不上。
04 几个容易踩的坑
EM 增益不是越高越好。增益拉满能看见更弱的信号,但也会把噪声一起放大。EMCCD 的价值恰恰在于低增益下就能拿到高信噪比,盲目拉高反而毁数据。
制冷要等温度稳定。SDK 提供 CCD 温度控制与快门操作函数。制冷没到设定值就开拍,暗电流会把弱信号淹没。
读出模式要按实验选。SDK 支持多种读出模式——Full Vertical Binning、Single-Track、Multi-Track、Random-Track、Image、Cropped。要光谱就选 binning 类,要成像就选 Image,要高速就裁 ROI。选错模式,速度和信噪比都会不对。
别同时开厂商软件。Solis、iQ 这类软件和你的 LabVIEW 程序不能同时运行,会抢相机。调试时反复切换,记得先把一边彻底关掉。
瓶颈常常不在相机。大面阵、高帧率下,真正拖后腿的往往是数据传输和落盘速度。这时候要考虑的是怎么把数据流高效写下去,而不是换相机。
05 这类设备上,LabVIEW 的价值在哪
一台相机只是实验台上的一个环节。真正难的是把它和位移台、光源、数据采集卡、串口设备放进同一个时序——谁先动、谁后动、什么时候触发、数据怎么对齐。
LabVIEW 在这类项目上的优势很直接:
- 厂商 SDK 普遍支持 LabVIEW,从相机到位移台到数据采集卡,能用同一套开发环境串起来;
- 图形化编程让实验人员自己改参数,调个曝光、换个触发方式不用每次找人改代码;
- 实时与 FPGA 模块能把硬时序部分下沉,保证微秒级的确定性。
我们专注 LabVIEW 软件开发与测试测量系统集成,从硬件选型、方案设计到现场交付调试,提供一站式服务。手上有 Andor 或其他科研相机、仪器需要接入自己的实验流程,欢迎在评论区留言;身边朋友有类似项目,也欢迎帮忙引荐。