在本应用笔记中,我们描述了如何在大型多通道系统中使用ADQ8上的菊花链功能来分配和校准触发信号。该方法可用于在多个机箱之间实现200皮秒的时序校准。主要包括:
-
菊花链触发信号
-
计算重启时间
-
更换已安装系统中的设备
-
校准
1 菊花链触发
由多个数字化仪组成的数字化系统,如果需要同步,面临的一个问题是如何分配触发信号。无论采用哪种方法,最终目标都是相同的,同时触发所有通道。一个不成熟的解决方案是将触发信号分开,并通过等长的电缆传递给每个数字化仪。但是,这种解决方案并不能随着系统中数字化仪的数量而扩展,最终,触发信号的衰减程度超过了模拟输入的灵敏度。此外,由于信号的衰减,触发沿失真,精度也会下降。
为了解决这些问题,本系统采用了菊花链触发机制。其理念是通过SYNC IN/OUT连接器将触发信号从一个设备传递到下一个设备。然而,为了跟踪所有设备的触发点,需要一个公共时间范围。由一个机箱组成的系统可以使用其内置的10 MHz时钟参考,而由两个以上的机箱组成的系统必须使用通过同等长度的电缆提供给每个机箱的外部源。如果不能以这种方式设置系统,就会导致机箱之间的时序网格出现偏差。
图1给出了一个系统的框图,该系统由两个采用菊花链配置的机箱组成。菊花链中的第一个设备被指定为主设备,接下来是第一个从设备,之后是第二个从设备,以此类推。每次触发信号通过一个从设备时,它都会重新同步到10MHz网格,即每个从设备都以一个明确定义的方式将触发信号延迟一个10MHz周期(100 ns)。这意味着真实触发点和从设备检测到的触发点之间的时间相对距离随其到菊花链中与主设备的距离的增加而增加。反过来,这意味着每个从设备都必须在感知到的触发点之前记录数据,以便捕获真实触发点附近的数据。图2给出了触发过程开始的结果图。
采集数据时,在采集成功后,从属设备的触发信息与主设备的触发信息会进行调整。
图1 系统的菊花链触发机制的框图,该系统由横跨两个机箱的16个设备组成。
图2菊花链触发机制的时序图,用于链中前三个设备:主设备和两个从设备。
2 菊花链触发
2.1重新准备时间
重新准备时间是从记录结束到数字化仪能够接受新触发器的时间,即记录之间的最短时间。对于ADQ8,其计算公式为:4000ns + N · 1ns(1)其中N是预触发样本的数量。使用菊花链触发器时,预触发样本的数量取决于设备在链中的位置。从设备在位置P处的预触发样本数由下式给出:152+ 100·P(2),结合(1)和(2)得出重置时间方程为4152ns + P·100ns。
在重新准备期间,设备会忽略触发发生。由于菊花链中各单元之间的预触发样本数量不同,因此在重新准备期间,一个设备的触发会导致更早的设备触发。因此,重要的是在重置窗口期间不发生任何触发。
3 维护
本节介绍如何执行系统的基本维护。
3.1 更换设备
收到替换设备后,应执行以下操作:
-
确认固件版本与其他设备匹配。
-
校准新设备的时钟参考延迟,请参阅第3.2节。
3.2 校准
对于新的数字化仪,必须对时钟参考延迟进行校准。菊花链触发时序必须在规格内进行校准。校准是针对特定插槽中的单个设备进行的,校准完成后,请勿移动设备。
校准将使新的数字化仪的延迟与参考数字化仪相匹配。参考数字化仪可以是与新器件位于同一机箱内的任何数字化仪。
3.2.1 校准文件
每个底盘都有一个校准文件在%LOCALAPPDATA%\SP Devices\calibration\delays_chassis_tspd1_tspd2_tspd3.csv,该文件包含所有机箱的校准数据。文件中的每一行都包含特定机箱插槽中一个数字化仪的校准值。当校准一个新的数字化仪时,需要该校准文件。校准完成后,必须用新的值手动更新该文件。
3.2.2 要求
-
能够产生1MHz信号的方波发生器。
-
250MHz低通滤波器
-
50欧姆信号分配器,至少1:2。
-
一个先前校准的ADQ8数字化仪作为参考。此参考数字化仪必须与未校准的设备在同一机箱中。
-
Python 3
-
Python校准脚本
-
delays_chassis_tspd1_tspd2_tspd3.csv文件,带有参考数字化仪的校准值。
3.2.3 校验脚本
校准脚本需要Python 3.6或更高版本以及Python软件包matplotlib和numpy。该脚本在每个数字化仪上收集1000条记录,并测量每个记录的相对延迟。延迟的平均值将被用作校准值。结果将被保存到data/calibrate_delay_single_adq8_
calibrate_delay_single_adq8.py 延迟校准脚本。从delay_calibration.py调用函数。
delay_calibration.py包含与数字化仪的接口、保存和读取数据的功能。直接调用该脚本不会有任何效果。
3.2.4 校准程序
校准步骤如下所述。在进行校准时,数字化仪应处于其工作温度。为了在冷启动后达到工作温度,数字化仪必须在初始化后开机一小时。软件首次连接到数字化仪时,本机将被初始化。
1. 如果机箱已经关闭,请通过采集一次数据来初始化数字化仪。初始化后,让数字化仪加热至少一个小时。
2. 关闭与数字化仪通信的所有软件。
3. 将1 MHz信号连接到新设备和参考设备的通道1。该信号应通过低通滤波器和分路器连接。
-
信号必须连接到通道1。
-
分路器的电缆长度必须匹配。
振幅应该在0.8 Vpp左右,偏移量为零。如果振幅过低或过高,脚本将失败。
4. 断开连接机箱和其他机箱的菊花链电缆。机箱内连接数字化仪的菊花链电缆必须为所有设备保持连接。
5.更新校准脚本中的以下值:
new_device_sn:新数字化仪的序列号。
reference_device_sn: 参考数字化仪的序列号。
delayfile_path:延迟文件的路径。Delays_chassis_tspd1_tspd2_tspd3.csv文件的路径,包含参考设备的校准值。
6.通过发出以下命令来运行校准:
> python calibrate_delay_single_adq8.py
从Python终端。 输出示例:
Found reference delay 100.0 for device SPD-06512 in delay file
Setting ”number_of_records” to 1000
Setting ”data_path” to data\calibrate_delay_single_adq8_tspd5
Enumerating devices..
Found device: SPD-06512
Found device: SPD-06784
[...]
Measuring delays
Saving delay metrics to data\calibrate_delay_single_adq8_tspd5\delay_metrics.txt
Max delay: [’176.85’, ’0.00’]
Min delay: [’118.95’, ’0.00’]
Abs diff : [’57.89’, ’0.00’]
Std. dev.: [’11.94’, ’0.00’]
Mean: [’142.82’, ’0.00’]
Delays: [’242.82’, ’100.00’]
Plot delays..
Saving delay figure to data\calibrate_delay_single_adq8_tspd5\delays.png
Saving delays to: data\calibrate_delay_single_adq8_tspd5\
delays_chassis_tspd5_dev_SPD-06784.csv
7. 验证图中的延迟。 参考设备的延迟应为零。 新设备的延迟应在±250ps之内。
8. 将新设备校准值的行从生成的.csv文件复制到delays_chassis_tspd1_tspd2_tspd3.csv文件。
9. 更新所有机箱上的校准文件。