在本應(yīng)用筆記中,,我們描述了如何在大型多通道系統(tǒng)中使用ADQ8上的菊花鏈功能來分配和校準(zhǔn)觸發(fā)信號。該方法可用于在多個(gè)機(jī)箱之間實(shí)現(xiàn)200皮秒的時(shí)序校準(zhǔn),。主要包括:
-
菊花鏈觸發(fā)信號
-
計(jì)算重啟時(shí)間
-
更換已安裝系統(tǒng)中的設(shè)備
-
校準(zhǔn)
1 菊花鏈觸發(fā)
由多個(gè)數(shù)字化儀組成的數(shù)字化系統(tǒng),如果需要同步,,面臨的一個(gè)問題是如何分配觸發(fā)信號,。無論采用哪種方法,最終目標(biāo)都是相同的,,同時(shí)觸發(fā)所有通道,。一個(gè)不成熟的解決方案是將觸發(fā)信號分開,并通過等長的電纜傳遞給每個(gè)數(shù)字化儀,。但是,,這種解決方案并不能隨著系統(tǒng)中數(shù)字化儀的數(shù)量而擴(kuò)展,最終,,觸發(fā)信號的衰減程度超過了模擬輸入的靈敏度,。此外,由于信號的衰減,,觸發(fā)沿失真,,精度也會下降。
為了解決這些問題,,本系統(tǒng)采用了菊花鏈觸發(fā)機(jī)制,。其理念是通過SYNC IN/OUT連接器將觸發(fā)信號從一個(gè)設(shè)備傳遞到下一個(gè)設(shè)備。然而,,為了跟蹤所有設(shè)備的觸發(fā)點(diǎn),,需要一個(gè)公共時(shí)間范圍。由一個(gè)機(jī)箱組成的系統(tǒng)可以使用其內(nèi)置的10 MHz時(shí)鐘參考,,而由兩個(gè)以上的機(jī)箱組成的系統(tǒng)必須使用通過同等長度的電纜提供給每個(gè)機(jī)箱的外部源,。如果不能以這種方式設(shè)置系統(tǒng),就會導(dǎo)致機(jī)箱之間的時(shí)序網(wǎng)格出現(xiàn)偏差,。
圖1給出了一個(gè)系統(tǒng)的框圖,,該系統(tǒng)由兩個(gè)采用菊花鏈配置的機(jī)箱組成。菊花鏈中的第一個(gè)設(shè)備被指定為主設(shè)備,,接下來是第一個(gè)從設(shè)備,,之后是第二個(gè)從設(shè)備,以此類推,。每次觸發(fā)信號通過一個(gè)從設(shè)備時(shí),,它都會重新同步到10MHz網(wǎng)格,即每個(gè)從設(shè)備都以一個(gè)明確定義的方式將觸發(fā)信號延遲一個(gè)10MHz周期(100 ns),。這意味著真實(shí)觸發(fā)點(diǎn)和從設(shè)備檢測到的觸發(fā)點(diǎn)之間的時(shí)間相對距離隨其到菊花鏈中與主設(shè)備的距離的增加而增加,。反過來,這意味著每個(gè)從設(shè)備都必須在感知到的觸發(fā)點(diǎn)之前記錄數(shù)據(jù),,以便捕獲真實(shí)觸發(fā)點(diǎn)附近的數(shù)據(jù),。圖2給出了觸發(fā)過程開始的結(jié)果圖,。
采集數(shù)據(jù)時(shí),在采集成功后,,從屬設(shè)備的觸發(fā)信息與主設(shè)備的觸發(fā)信息會進(jìn)行調(diào)整,。
圖1 系統(tǒng)的菊花鏈觸發(fā)機(jī)制的框圖,該系統(tǒng)由橫跨兩個(gè)機(jī)箱的16個(gè)設(shè)備組成,。
圖2菊花鏈觸發(fā)機(jī)制的時(shí)序圖,,用于鏈中前三個(gè)設(shè)備:主設(shè)備和兩個(gè)從設(shè)備。
2 菊花鏈觸發(fā)
2.1重新準(zhǔn)備時(shí)間
重新準(zhǔn)備時(shí)間是從記錄結(jié)束到數(shù)字化儀能夠接受新觸發(fā)器的時(shí)間,,即記錄之間的最短時(shí)間,。對于ADQ8,其計(jì)算公式為:4000ns + N · 1ns(1)其中N是預(yù)觸發(fā)樣本的數(shù)量,。使用菊花鏈觸發(fā)器時(shí),,預(yù)觸發(fā)樣本的數(shù)量取決于設(shè)備在鏈中的位置。從設(shè)備在位置P處的預(yù)觸發(fā)樣本數(shù)由下式給出:152+ 100·P(2),,結(jié)合(1)和(2)得出重置時(shí)間方程為4152ns + P·100ns,。
在重新準(zhǔn)備期間,設(shè)備會忽略觸發(fā)發(fā)生,。由于菊花鏈中各單元之間的預(yù)觸發(fā)樣本數(shù)量不同,,因此在重新準(zhǔn)備期間,一個(gè)設(shè)備的觸發(fā)會導(dǎo)致更早的設(shè)備觸發(fā),。因此,,重要的是在重置窗口期間不發(fā)生任何觸發(fā)。
3 維護(hù)
本節(jié)介紹如何執(zhí)行系統(tǒng)的基本維護(hù),。
3.1 更換設(shè)備
收到替換設(shè)備后,,應(yīng)執(zhí)行以下操作:
-
確認(rèn)固件版本與其他設(shè)備匹配。
-
校準(zhǔn)新設(shè)備的時(shí)鐘參考延遲,,請參閱第3.2節(jié),。
3.2 校準(zhǔn)
對于新的數(shù)字化儀,必須對時(shí)鐘參考延遲進(jìn)行校準(zhǔn),。菊花鏈觸發(fā)時(shí)序必須在規(guī)格內(nèi)進(jìn)行校準(zhǔn),。校準(zhǔn)是針對特定插槽中的單個(gè)設(shè)備進(jìn)行的,校準(zhǔn)完成后,,請勿移動(dòng)設(shè)備,。
校準(zhǔn)將使新的數(shù)字化儀的延遲與參考數(shù)字化儀相匹配。參考數(shù)字化儀可以是與新器件位于同一機(jī)箱內(nèi)的任何數(shù)字化儀,。
3.2.1 校準(zhǔn)文件
每個(gè)底盤都有一個(gè)校準(zhǔn)文件在%LOCALAPPDATA%\SP Devices\calibration\delays_chassis_tspd1_tspd2_tspd3.csv,該文件包含所有機(jī)箱的校準(zhǔn)數(shù)據(jù),。文件中的每一行都包含特定機(jī)箱插槽中一個(gè)數(shù)字化儀的校準(zhǔn)值,。當(dāng)校準(zhǔn)一個(gè)新的數(shù)字化儀時(shí),,需要該校準(zhǔn)文件。校準(zhǔn)完成后,,必須用新的值手動(dòng)更新該文件,。
3.2.2 要求
-
能夠產(chǎn)生1MHz信號的方波發(fā)生器。
-
250MHz低通濾波器
-
50歐姆信號分配器,,至少1:2,。
-
一個(gè)先前校準(zhǔn)的ADQ8數(shù)字化儀作為參考。此參考數(shù)字化儀必須與未校準(zhǔn)的設(shè)備在同一機(jī)箱中,。
-
Python 3
-
Python校準(zhǔn)腳本
-
delays_chassis_tspd1_tspd2_tspd3.csv文件,,帶有參考數(shù)字化儀的校準(zhǔn)值。
3.2.3 校驗(yàn)?zāi)_本
校準(zhǔn)腳本需要Python 3.6或更高版本以及Python軟件包matplotlib和numpy,。該腳本在每個(gè)數(shù)字化儀上收集1000條記錄,,并測量每個(gè)記錄的相對延遲。延遲的平均值將被用作校準(zhǔn)值,。結(jié)果將被保存到data/calibrate_delay_single_adq8_
calibrate_delay_single_adq8.py 延遲校準(zhǔn)腳本,。從delay_calibration.py調(diào)用函數(shù),。
delay_calibration.py包含與數(shù)字化儀的接口、保存和讀取數(shù)據(jù)的功能,。直接調(diào)用該腳本不會有任何效果,。
3.2.4 校準(zhǔn)程序
校準(zhǔn)步驟如下所述。在進(jìn)行校準(zhǔn)時(shí),,數(shù)字化儀應(yīng)處于其工作溫度,。為了在冷啟動(dòng)后達(dá)到工作溫度,數(shù)字化儀必須在初始化后開機(jī)一小時(shí),。軟件首次連接到數(shù)字化儀時(shí),,本機(jī)將被初始化。
1. 如果機(jī)箱已經(jīng)關(guān)閉,,請通過采集一次數(shù)據(jù)來初始化數(shù)字化儀,。初始化后,讓數(shù)字化儀加熱至少一個(gè)小時(shí),。
2. 關(guān)閉與數(shù)字化儀通信的所有軟件,。
3. 將1 MHz信號連接到新設(shè)備和參考設(shè)備的通道1。該信號應(yīng)通過低通濾波器和分路器連接,。
-
信號必須連接到通道1,。
-
分路器的電纜長度必須匹配。
振幅應(yīng)該在0.8 Vpp左右,,偏移量為零,。如果振幅過低或過高,,腳本將失敗。
4. 斷開連接機(jī)箱和其他機(jī)箱的菊花鏈電纜,。機(jī)箱內(nèi)連接數(shù)字化儀的菊花鏈電纜必須為所有設(shè)備保持連接,。
5.更新校準(zhǔn)腳本中的以下值:
new_device_sn:新數(shù)字化儀的序列號。
reference_device_sn: 參考數(shù)字化儀的序列號,。
delayfile_path:延遲文件的路徑,。Delays_chassis_tspd1_tspd2_tspd3.csv文件的路徑,包含參考設(shè)備的校準(zhǔn)值,。
6.通過發(fā)出以下命令來運(yùn)行校準(zhǔn):
> 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. 驗(yàn)證圖中的延遲。 參考設(shè)備的延遲應(yīng)為零,。 新設(shè)備的延遲應(yīng)在±250ps之內(nèi),。
8. 將新設(shè)備校準(zhǔn)值的行從生成的.csv文件復(fù)制到delays_chassis_tspd1_tspd2_tspd3.csv文件。
9. 更新所有機(jī)箱上的校準(zhǔn)文件,。