武旭東,麻金龍,段金松,李婷,王瑋
核工業(yè)北京地質(zhì)研究院,北京 100029
在核能譜探測中,常通過脈沖幅度分析技術(shù)獲取能譜信息,多道脈沖幅度分析器作為實現(xiàn)該技術(shù)的主要工具,其性能的優(yōu)劣直接決定核素分析的準確性。傳統(tǒng)的脈沖分析器多采用模擬器件實現(xiàn),脈沖信號從探頭輸出后,分別經(jīng)過放大、高斯成形、極零相消和峰值保持等處理過程。大量模擬器件的使用,使得電路變得復(fù)雜,更容易受到各種因素的影響,使得系統(tǒng)的穩(wěn)定性變差。
隨著核能譜測量學(xué)在各個領(lǐng)域越來越多的應(yīng)用,對多道脈沖幅度分析器的各項性能指標(如:速度、精度、穩(wěn)定性和功耗等)提出了更高的要求,模擬多道越來難以適應(yīng)時代的需求[1-3]。與此同時,模數(shù)轉(zhuǎn)換器(Analog-to-Digital Converter,簡稱ADC)和數(shù)字信號處理技術(shù)出現(xiàn)了很大進步,這為多道脈沖幅度分析器從模擬轉(zhuǎn)向數(shù)字提供了硬件基礎(chǔ)。本文以ADC 和現(xiàn)場可編程門陣列(Filed Programmable Gate Arrays,簡稱FPGA)作為核脈沖信號處理核心,設(shè)計了一款以ARM 微控制器[2]為主控制單元,使用串行外設(shè)接口(Serial Peripheral Interface,簡稱SPI)、高速并行接口和串行總線(Universal Serial Bus,簡稱USB)接口作為多道與上位機通信的橋梁,實現(xiàn)集核信號采集、數(shù)據(jù)傳輸為一體的高速數(shù)字多道分析器。
數(shù)字多道分析器整體設(shè)計方案如圖1 所示,γ探測器將采集到的核脈沖模擬信號送至信號調(diào)理電路,經(jīng)調(diào)理轉(zhuǎn)換的差分信號送入ADC 進行模數(shù)轉(zhuǎn)換。得到的數(shù)字核脈沖序列送至FPGA 中,經(jīng)數(shù)字濾波、幅度提取、堆積判別和基線修正[4]等一系列處理之后,按照提取的幅值大小在事前劃分好的道址中相應(yīng)增加計數(shù),最終形成能譜數(shù)據(jù)。能譜數(shù)據(jù)由SPI 傳輸至微控制器,再由USB 接口上傳至上位機軟件。
圖1 系統(tǒng)總體設(shè)計框圖Fig.1 Overall system design block diagram
設(shè)計考慮到轉(zhuǎn)換精度、速度和功耗等因素,選用Analog Device 公司的AD92xx 系列12 位、40MSPS芯片為高速模數(shù)轉(zhuǎn)換芯片,采用+5V供電,內(nèi)置一個高性能采樣保持放大器和基準電壓源,支持差分輸入和單端輸入。為了提高抗干擾性能,抑制共模噪聲,設(shè)計輸入信號采用差分輸入方式[5]。ADC 電路原理如圖2 所示。
圖2 ADC 電路設(shè)計原理圖Fig. 2 ADC circuit design schematic
圖2 中數(shù)字輸出電源DRVDD 采用+3.3V 供電,目的是實現(xiàn)與FPGA 的電平匹配。模擬輸入信號經(jīng)差分運放電路后由VINA 和VINB 輸入,經(jīng)模數(shù)轉(zhuǎn)換后通過DB1 至DB12 數(shù)字量輸出至FPGA,OTR 為數(shù)據(jù)超出量程范圍標志位,用于FPGA 進行數(shù)據(jù)過濾。
設(shè)計中,ADC 的時鐘信號ADC_CLK 由 FPGA提供,這樣既能夠?qū)崿F(xiàn)FPGA和ADC的時鐘完全同步,也能夠保證ADC時鐘的高速度、高穩(wěn)定性。
設(shè)計的ARM 處理器選擇STM32F4 系列控制器作為主控芯片。該芯片采用了32 位的Cortex-M4 作為核心,內(nèi)置高速存儲器(包含1MB FLASH 和192KB SRAM),其工作頻率高達168 MHz。STM32 外圍電路主要包括電源控制電路、RTC 時鐘電路、蜂鳴器電路、存儲器電路、SPI 通信電路和USB 通信電路[6]等,電路功能原理圖如圖3 所示。
圖3 主控電路功能原理圖Fig. 3 Schematic diagram of main control circuit functional
FPGA 具備高速并行運算、邏輯實現(xiàn)能力強和設(shè)計靈活性好等特點,并能夠?qū)崟r運算得到輸出結(jié)果。γ脈沖信號數(shù)字處理算法是整個基于FPGA 的數(shù)字多道脈沖幅度分析器的設(shè)計核心,包括數(shù)字濾波、幅度提取、堆積判別、基線修正和能譜生成等模塊[7]。啟動能譜采集時,測量任務(wù)通過使能信號通知FPGA 啟動信號采集。FPGA 首先將ADC 采集到的脈沖經(jīng)過數(shù)字濾波處理,去除毛刺,濾掉部分基線干擾,然后進行幅度提取、堆積判別和基線修正處理,將提取到的信息生成能譜,存儲到雙口RAM 并發(fā)送到ARM 單片機中。FPGA 數(shù)據(jù)處理流程圖如圖4 所示。
圖4 FPGA 數(shù)據(jù)流程圖Fig.4 FPGA data flow diagram
3.1.1 數(shù)字濾波算法設(shè)計
ADC 芯片在對脈沖信號進行采集的過程中,由于噪聲干擾,使脈沖信號產(chǎn)生毛刺,所以在對數(shù)據(jù)進行提取之前要先濾波處理。本設(shè)計采用S-K 算法實現(xiàn)數(shù)字濾波,并將脈沖信號轉(zhuǎn)換為“類高斯”信號。
根據(jù)S-K 濾波電路原理[8-9]推導(dǎo)出的S-K遞推見公式(1)~(3)。
式(1)~(3)中:k—成形算法參數(shù);x0—輸入信號脈沖幅值;y0—第1 次迭代輸出脈沖幅值;y1—第2 次迭代輸出脈沖幅值;yn—第n+1 次迭代輸出脈沖幅值;yn-1—第n次迭代輸出脈沖幅值;yn-2—第n-1 次迭代輸出脈沖幅值。
通過調(diào)整不同k值,可以優(yōu)化和調(diào)節(jié)“類高斯”波形。由于k為定值,令則上述公式變換為:
利用SD 編碼可將上述公式轉(zhuǎn)化為移位的加減法運算,在FPGA 中通過VerilogHDL 語言編寫代碼實現(xiàn),在節(jié)省大量FPGA 邏輯資源同時,還能保證高速采樣的實時性。S-K 濾波前后的脈沖波形圖如圖5 所示。
圖5 S-K 數(shù)字濾波前后波形對比圖Fig. 5 Comparison of waveforms before and after S-K digital filtering
3.1.2 幅度提取算法設(shè)計
經(jīng)過濾波成形后,脈沖信號的最大值與脈沖電壓幅度的最大值是對應(yīng)的。設(shè)計的幅度提取模塊是通過一階導(dǎo)數(shù)法來實現(xiàn)的。對于離散數(shù)據(jù)而言,一階導(dǎo)數(shù)可通過計算一階差分得到,見公式(5)。
式(5)中:S'i—第i點的一階差分數(shù)據(jù);Si+1—第i+1 點濾波成形后的脈沖數(shù)據(jù);Si-1—第i-1 點濾波成形后的脈沖數(shù)據(jù)。
當一階差分相鄰2 個點S'i和S'i+1的數(shù)據(jù)中出現(xiàn)符號變化時,說明出現(xiàn)了脈沖信號峰值。將一階差分數(shù)據(jù)用成形后的脈沖數(shù)據(jù)表示,則需要對Si-1、Si、Si+1和Si+24 個點的數(shù)據(jù)進行比較。離散數(shù)據(jù)的符號變化包含以下3 種情況:1)從-1 變?yōu)?;2)從0 變?yōu)?;3)從-1 變?yōu)?。通過VerilogHDL 語言編寫FPGA 程序,判斷是否滿足以上3 種情況,即可實現(xiàn)脈沖幅度提取。
3.1.3 堆積判別算法設(shè)計
由于核脈沖信號的隨機性,在采集過程中,在高計數(shù)率的情況下會出現(xiàn)脈沖堆積的現(xiàn)象。這種現(xiàn)象對能量分辨率具有較大影響。由于本設(shè)計采用數(shù)字多道技術(shù)實現(xiàn),因此脈沖堆積識別的主要方法是時間差值比較法。該方法基于相鄰脈沖之間的時間間隔大小,快速辨別是否發(fā)生脈沖堆積,降低脈沖堆積對能量分辨率的影響。
由于ADC 模塊的采樣頻率為20 MHz,故相鄰2 個采樣點的時間間隔為50 ns。本設(shè)計判別算法如下:
經(jīng)過濾波成形后的“類高斯”脈沖上升沿的時間約為0.8 μs,下降沿的時間約為1 μs,整個脈沖的時間約為2 μs,共40 個點。根據(jù)高斯函數(shù)的公式,對濾波成形后的脈沖數(shù)據(jù)進行數(shù)據(jù)擬合,得到脈沖的“半高寬”約為15 個點,即0.75 μs,見圖6。試驗表明,當相鄰峰的距離大于2 倍的“半高寬”時,能夠在不影響基線修正的條件下準確地識別峰位。若相鄰峰的時間間隔小于2 倍“半高寬”,則認為發(fā)生了脈沖堆積,需要丟棄后一個脈沖計數(shù),并根據(jù)實際時間間隔計算死時間,進行計數(shù)率修正。
圖6 脈沖信號“半高寬”間隔Fig. 6 “Half width” interval of pulse signal
3.1.4 基線修正算法設(shè)計
在數(shù)字化多道脈沖分析器中,由于基線偏移,從而導(dǎo)致脈沖幅值的提取受到影響?;€偏移的主要來源是運放電路幅度過載或脈沖堆積的存在[11],圖7 為典型的基線偏移示意圖。
圖7 典型基線偏移示意圖Fig. 7 Schematic diagram of typical baseline drift
設(shè)計采用最小平均結(jié)合固定基線的方法進行基線修正。最小平均法處理過程如下:首先取得連續(xù)N個脈沖采樣值,并找到最小值Lmin,重復(fù)以上過程M次,得到M個最小值,求出M個最小值的平均值作為基線預(yù)估值[10-12],見公式(6)。
式(6)中:Laver—基線預(yù)估值,mV ;M—重復(fù)采集次數(shù);Lmin—脈沖采樣最小值,mV ;N—脈沖采樣個數(shù);i—求和變量。
為了保證每次都能夠得到采樣最小值,則N 的取值必須大于相鄰脈沖間的寬度所對應(yīng)的點個數(shù)。Laver與設(shè)計的基線閾值Lth做比較,從而得到最終基線估計值。
式(7)中:L—修正后基線,mV;Lth—下閾值,mV。
將幅度提取之后的有效峰值減去此基線估計值,從而得到真實幅度值計入能譜相應(yīng)的道址。
3.2.1 主控系統(tǒng)設(shè)計
主控單元是通過移植嵌入式實時操作系統(tǒng)FreeRTOS 實現(xiàn)的。FreeRTOS 是一個源碼公開、可移植和可裁剪的輕量級嵌入式實時操作系統(tǒng)內(nèi)核,支持搶占式和協(xié)作式多任務(wù),調(diào)度策略靈活。本設(shè)計主控系統(tǒng)主要包括系統(tǒng)信息更新、數(shù)據(jù)采集、USB 數(shù)據(jù)通信和關(guān)機守護等任務(wù)。
3.2.2 數(shù)據(jù)通信程序設(shè)計
主控單元與FPGA 數(shù)據(jù)通信是通過SPI 實現(xiàn)的。考慮到全譜數(shù)據(jù)傳輸量較大,為減少CPU 負擔,提高系統(tǒng)性能,本設(shè)計使用SPI+直接內(nèi)存訪問(Direct Memory Access,簡稱DMA)的方式實現(xiàn)能譜數(shù)據(jù)的高速傳輸。DMA 允許數(shù)據(jù)直接在外設(shè)和內(nèi)存之間傳輸,而無需CPU的直接干預(yù),這可以提高系統(tǒng)的整體性能,使CPU 能夠?qū)W⒂趫?zhí)行其他任務(wù)。
在整機完成研究后,對該系統(tǒng)進行測試與分析,圖8 為數(shù)字化多道分析器的實物圖。設(shè)計使用的探測器為北京某公司的CH158 型3 英寸NaI(Tl)晶體探測器,內(nèi)置前置放大器,出廠說明書中脈沖幅度分辨率為7.0 %。主要性能測試包括能量分辨率、能量線性和積分非線性。
圖8 多道分析器實物圖Fig.8 Hoto of multi-channel analyzer
能量分辨率(η)是γ能譜最重要的一個性能指標,一般用特征峰半高寬與峰位的比值表示[12-13],如公式(8)所示。
式(8)中:FWHM —特征峰半高寬,道址;E—特征峰峰位,道址;η—分辨率。
測試選用37Cs 源(0.662 MeV,計數(shù)S-1>3000),在實驗室環(huán)境下(20-25 ℃)進行5 次測量。每次測量時間5 min。分辨率測試結(jié)果如表1。
表1 分辨率測試結(jié)果Table 1 Resolution test results
按照公式(8)計算能量分辨率,測試平均值為6.679 1 %,優(yōu)于探測器廠家給出的7 %指標。
系統(tǒng)選用了三種不同的源來進行線性測試[14],分別為釷源232Th、銫源137Cs 和鉀源40K,測出三種源的混合能譜,見圖9(對數(shù)坐標),找到其對應(yīng)核素(包括子體)的特征峰道址,對應(yīng)關(guān)系如表2。
表2 混合源能量與道址對應(yīng)關(guān)系Table 2 Relationship between energy and channel of mixed source
圖9 混合源能譜圖Fig. 9 Mixed source energy spectrum
利用Matlab 進行線性擬合,得到結(jié)果如圖10,擬合線性相關(guān)度R2在0.999 9 以上。結(jié)果顯示能量與道址具有非常好的線性度,達到設(shè)計要求。
圖10 能量線性擬合曲線Fig. 10 Linear fitting curve
積分非線性是指實際轉(zhuǎn)化的道址與理想轉(zhuǎn)化的道址之間的偏離程度,一般用實際幅度和理想幅度之間的最大差值與最大理想幅度的比值表示[15],見公式(9)。
式(9)中:INL—積分非線性;ΔVmax—實際輸入幅度和理想輸入幅度之間的最大差值,mV;Vmax—最大理想輸入幅度值,mV。
使用脈沖發(fā)生器產(chǎn)生一組固定頻率、幅值由小到大的脈沖信號,每次改變脈沖幅值后記錄相應(yīng)的道址位置,通過Matlab 進行擬合,測試數(shù)據(jù)見表3,擬合結(jié)果如圖11 所示。
表3 積分非線性測試數(shù)據(jù)Table 3 Integral nonlinear test data
圖11 積分非線性數(shù)據(jù)擬合曲線Fig. 11 Fitting curve integral nonlinear data
通過matlab 擬合可得擬合方程見公式(10)。
式(10)中:V—脈沖幅值,mV;Ch—道址。
通過方程可得最大偏差為7.91 mV,理想最大電壓輸入為3 001.4 mV,計算得到其積分非線性為0.26 %。
1)以ARM 及FPGA 芯片為核心進行數(shù)字多道分析器設(shè)計,在FPGA 中完成了數(shù)字濾波、幅度提取、堆積判別、基線修正等關(guān)鍵模塊開發(fā)。
2)在STM32 中使用實時操作系統(tǒng)FreeRTOS 實現(xiàn)多任務(wù)實時管理、能譜數(shù)據(jù)傳輸?shù)裙δ堋?/p>
3)儀器的能量分辨率、能量線性和積分非線性測試結(jié)果表明:該數(shù)字多道分析器滿足γ能譜儀的使用要求。與傳統(tǒng)的基于數(shù)字采集卡的多道分析器相比,大幅度降低了產(chǎn)品成本,具有廣闊的市場前景。