付曉亮,殷治國,Ken Fong,紀 彬,魏俊逸,汪 洋,盧曉通
(1.中國原子能科學研究院 回旋加速器研究設計中心,北京 102413; 2.TRIUMF, Vancouver V6T 2A3)
近年來,中國原子能科學研究院建造了一系列不同能量級的回旋加速器,包括CRM[1-2]、CYCIAE-14[3]和CYCIAE-100[4]回旋加速器。其中,CRM提供能量10 MeV的質子束,CYCIAE-14提供能量14 MeV的質子束,CYCIAE-100提供能量75~100 MeV連續(xù)可調、束流強度200~500 μA的質子束。目前,中國原子能科學研究院正在建造CYCIAE-230[5]和CYCIAE-14B回旋加速器,CYCIAE-230提供能量230 MeV、束流強度300 nA的質子束,用于癌癥治療,CYCIAE-14B提供能量14 MeV、束流強度1 mA的質子束,用于BNCT系統(tǒng)。在上述加速器中,CRM和CYCIAE-14的射頻系統(tǒng)包含1個發(fā)射機、1組腔體、1套低電平系統(tǒng)。CYCIAE-100的射頻系統(tǒng)包括兩套λ/2射頻腔體[6]、兩臺100 kW發(fā)射機[7]及兩套低電平(LLRF)系統(tǒng)[8-9]。兩臺發(fā)射機分別驅動兩個獨立的腔體,低電平系統(tǒng)需對兩個腔體的相位進行閉環(huán)控制。CYCIAE-230包含兩組4個腔體,低電平系統(tǒng)除了對兩組腔體的幅度相位進行閉環(huán)控制外,還需考慮兩組腔體的電壓平衡。CYCIAE-14B采用兩個20 kW發(fā)射機分別驅動兩個獨立腔體,同時用300 W放大器驅動聚束器來提升束流強度。低電平系統(tǒng)需完成對三路信號的幅相控制和對兩個腔體的調諧控制。為滿足不同能量、不同高頻頻率、不同腔體數(shù)量的回旋加速器射頻系統(tǒng)的控制需求,在上述回旋加速器的經驗基礎上,本文設計用于回旋加速器低電平系統(tǒng)的軟硬件系統(tǒng)。
全數(shù)字低電平系統(tǒng)是對數(shù)?;旌系碗娖较到y(tǒng)的進一步發(fā)展。在充分發(fā)展了數(shù)模混合低電平系統(tǒng)的基礎上,中國原子能科學研究院回旋加速器研究設計中心在2018年與TRIUMF實驗室合作,開始了全數(shù)字低電平系統(tǒng)的研制工作[10]。國際上經典的全數(shù)字低電平系統(tǒng)的硬件架構為FPGA+ADC+DAC+DSP架構[11-12]。其中,F(xiàn)PGA負責實現(xiàn)高速ADC和DAC的接口和整型運算,DSP負責實現(xiàn)FPGA不擅長的浮點運算,二者通過數(shù)據總線在PCB板上連接。這一經典架構能有效地解決全數(shù)字低電平系統(tǒng)的需求。然而,分立的FPGA和DSP器件給聯(lián)合調試帶來了挑戰(zhàn);同時,F(xiàn)PGA和DSP之間的高速數(shù)據傳輸增加了PCB布局布線的難度;一些加速器的低電平系統(tǒng)需運行嵌入式Linux操作系統(tǒng)來實現(xiàn)遠程控制,DSP本身并不是運行嵌入式操作系統(tǒng)的最佳選擇。鑒于以上考慮,本文的硬件架構選擇ZYNQ系列FPGA+ADC+DAC架構[13]。ZYNQ-7000系列FPGA是賽靈思公司推出的集成了FPGA和雙核ARM-A9處理器在同一芯片內的SoC。利用該系列器件內部的高速互聯(lián)總線,可在FPGA和ARM處理器之間實現(xiàn)高速數(shù)據傳輸,減少PCB布線的壓力;該器件支持ARM和FPGA聯(lián)合調試,加速了開發(fā)過程;該器件內部的ARM處理器含有兩個核心,可分別運行裸機固件和Linux操作系統(tǒng),以適應不同低電平系統(tǒng)的需求。
高速ADC和DAC是全數(shù)字低電平系統(tǒng)與腔體和發(fā)射機之間的橋梁。為滿足回旋加速器低電平系統(tǒng)的一般性需求,本文硬件系統(tǒng)設計了4路ADC通道和4路DAC通道。ADC和DAC均為250 MSPS,分辨率為14位。系統(tǒng)采用LTC2157作為ADC芯片。該芯片具有高達1.25 GHz的帶寬,可以實現(xiàn)欠采樣;采用DDR LVDS并行差分數(shù)據總線接口。在PCB布線時,對該ADC芯片進行了等長布線和阻抗匹配,使得4路ADC通道可進行時間交織采樣,來處理更高頻率的信號。系統(tǒng)采用AD9746作為DAC芯片,該芯片為單端CMOS并行接口。為了在不同系統(tǒng)之間分享時鐘以實現(xiàn)級聯(lián)控制,硬件系統(tǒng)支持4路數(shù)字時鐘輸入/輸出接口。系統(tǒng)支持兩路光纖接口,傳輸速率最高可達10 Gbps,可用于高速數(shù)據傳輸。采用1 000 Mbps以太網接口作為Linux的網絡接口。系統(tǒng)另外配備了1個USB 2.0接口,作為備用通信和擴展存儲器的接口。系統(tǒng)同時提供了USB轉串口來進行本地調試。系統(tǒng)的RAM為1 GB,由兩片DDR3芯片構成。裸機固件程序或Linux系統(tǒng)存儲在微型SD卡中。該硬件系統(tǒng)提供52個通用輸入/輸出接口,PCB面積為11 cm×11 cm,可獨立工作,也可作為子板與母板配合使用。
回旋加速器低電平系統(tǒng)控制腔體加速電壓信號的幅度、相位、頻率、腔體諧振頻率及異常保護等。FPGA固件程序主要完成高頻信號的解調和調制,ARM處理器主要完成系統(tǒng)的自動啟動邏輯和與上位機通信。在ARM處理器和FPGA硬件之間存在高速和低速兩種數(shù)據傳輸。低速傳輸主要應用于參數(shù)配置和數(shù)據回讀,ARM處理器通過AXI-GPIO對FPGA硬件電路進行參數(shù)讀寫。高速傳輸主要應用于對ADC高速數(shù)據流的采集和存儲,以便進行后續(xù)的診斷分析。對于高速數(shù)據傳輸,使用DMA在FPGA和ARM處理器之間進行數(shù)據傳輸,將DDR3作為高速數(shù)據流的緩存。FPGA固件程序設計的主要任務是設計高頻信號的解調和調制系統(tǒng)。數(shù)字低電平系統(tǒng)中常用的解調采樣技術有正交IQ采樣、Non-IQ采樣技術和數(shù)字下變頻技術。相比于正交IQ采樣和Non-IQ采樣技術,數(shù)字下變頻技術不需要被采樣信號和采樣時鐘之間有明確的倍數(shù)關系,因而更加適合實現(xiàn)通用的低電平系統(tǒng)。以CYCIAE-14B低電平系統(tǒng)為例,其系統(tǒng)框圖如圖1所示。
圖1 CYCIAE-14B低電平系統(tǒng)FPGA固件框圖Fig.1 FPGA firmware of LLRF system for CYCIAE-14B
該系統(tǒng)包含了對兩組腔體的幅度相位控制和調諧控制、對聚束器系統(tǒng)的幅度相位控制、異常保護等電路。
幅度相位坐標系相比于IQ坐標系具備更高的靈活性,便于通過上位機修改參數(shù)以適應不同的需求,本文的幅度相位解調使用數(shù)字下變頻技術實現(xiàn)。腔體取樣信號經過高速ADC量化后,與同頻率的本地NCO進行數(shù)字混頻得到IQ信號?;祛l后得到的信號中包含基帶信號和2次諧波,經過低通濾波器濾除2次諧波后,得到包含基帶信息的IQ信號。該IQ信號經過CORDIC模塊后,得出高頻信號的幅度和相位信息。其中,幅度信息作為幅度閉環(huán)反饋信息參與PID運算后,控制輸出NCO的幅度;相位信息作為相位閉環(huán)反饋信息參與PID運算后,控制輸出NCO的相位。通過上位機軟件設置本地NCO與輸出NCO的頻率相等,則該電路可工作于帶寬內的任意頻率而無需修改FPGA固件程序。以73 MHz信號為例,幅度相位解調的時域仿真如圖2所示。由圖2可見,腔體反饋信號中的幅度和相位調制信息在下變頻后可由CORDIC模塊準確地計算出來。幅度相位解調的頻域仿真如圖3所示。在125 MHz采樣時鐘下,73 MHz信號的鏡像位于第一奈奎斯特區(qū)內的52 MHz處。經過數(shù)字混頻器混頻后,得到基帶和2次諧波。其中2次諧波的鏡像位于第一奈奎斯特區(qū)間內的21 MHz處。經過低通濾波器后,21 MHz鏡像分量被濾除,只有基帶信號輸出到CORDIC模塊用于計算幅度和相位信息。幅度相位解調使用的低通濾波器為3階、32倍抽取率CIC濾波器,工作頻率為125 MHz。本文中CIC濾波器的輸入數(shù)據寬度為28位,全精度輸出寬度為46位。為節(jié)約FPGA內的硬件資源,采用截斷低位的方式輸出高28位,保持輸入輸出數(shù)據的寬度一致。該濾波器的實際測試結果如圖4所示。由圖4可看出,由于在硬件實現(xiàn)時采用了截斷輸出結果的方式,該濾波器的實際測試響應與理論響應存在差異,但是該濾波器仍能有效濾除高次諧波信號,保留基帶信息。在不改變?yōu)V波器參數(shù)的情況下,該幅度相位解調器可用于其他回旋加速器低電平系統(tǒng)中。
圖2 73 MHz信號解調時域仿真Fig.2 Time domain simulation at 73 MHz
圖3 73 MHz信號解調頻域仿真Fig.3 Frequency domain simulation at 73 MHz
圖4 CIC濾波器硬件測試Fig.4 Hardware test of CIC filter
為了對腔體進行調諧控制,一般從腔體和傳輸線上各取1個取樣信號,計算這兩個信號的相位差,并根據相位差來確定微調電機的運動方向和幅度。調諧關注的是這兩個信號的相位信息,不關心幅度信息。腔體取樣信號的相位信息可直接從相位環(huán)路的反饋信息獲取。而傳輸線取樣信號的相位信息可通過ADC采樣傳輸線取樣信號來獲得,也可通過數(shù)字輸入/輸出接口直接獲取傳輸線取樣信號的相位信息而丟棄幅度信息。為節(jié)省ADC資源,本文將傳輸線取樣信號通過數(shù)字IO輸入到FPGA后,從1位擴展到14位,使其與ADC的分辨率保持一致。然后按照處理正弦信號的方式,輸入到下變頻處理器中,獲取基帶IQ信號(圖1中陰影部分)。由于方波信號的諧波分量非常豐富,經過數(shù)字下變頻處理后,CIC濾波器無法有效地濾除所有的諧波分量,這些諧波分量將以高頻振蕩的形式出現(xiàn)在CORDIC模塊的相位輸出信號中,影響系統(tǒng)的穩(wěn)定性和精度。因此,在CIC濾波器后,增加一FIR低通濾波器以濾除高次諧波分量,然后輸入CORDIC模塊計算相位信息。本文采用16階FIR濾波器來濾除方波信號的諧波分量,該濾波器工作頻率為3.9 MHz,通帶頻率為0.01 MHz,截止頻率為0.5 MHz,阻帶衰減為50 dB。圖5為該FIR濾波器的硬件測試結果,該FIR濾波器有效抑制了CIC濾波器輸出中的諧波。對FIR濾波器的輸出進行截斷后,取高28位輸入到CORDIC模塊計算相位信息。將CORDIC模塊運算得到的相位信息與相位環(huán)路的反饋信息作差后,即可得出調諧環(huán)路需要的相位差[14]。與幅度環(huán)路和相位環(huán)路類似,調諧環(huán)路同樣不受低電平系統(tǒng)工作頻率的影響。
圖5 FIR濾波器硬件測試Fig.5 Hardware test of FIR filter
CORDIC是坐標旋轉數(shù)字計算機的簡稱,該算法通過移位和加減運算代替乘法運算來遞歸計算常用的超越函數(shù)值,非常適合應用于嵌入式處理器或FPGA中計算超越函數(shù)值。本文使用CORDIC模塊計算IQ向量的幅度和相位信息,應用于幅度相位解調、調諧控制、反射功率檢測中。本文的CORDIC模塊工作于向量旋轉模式,關鍵設計參數(shù)為數(shù)據位寬和迭代次數(shù)。位寬越寬、迭代次數(shù)越多、精度越高,則運算速度越慢。為確定迭代次數(shù)和量化位寬對計算結果的影響,對不同量化位數(shù)的誤差進行比較(圖6)。由圖6可見,采用8位字長量化時,CORDIC算法的運算結果有比較明顯的誤差,14位及以上量化位數(shù)時,誤差已很小;為獲得較準確的結果,CORDIC算法至少要迭代10次。為進一步量化CORDIC算法的計算誤差,在27位量化、迭代29次的條件下,在FPGA硬件上對CORDIC算法進行了測試,測試結果如圖7所示。由圖7可看出,CORDIC算法的運算誤差在±0.000 002以內,滿足低電平系統(tǒng)對幅度相位的控制精度要求。在幅度相位解調和調諧控制中,對數(shù)據的精度要求高,對延遲的要求并不苛刻,因而在這些應用中的CORDIC模塊采用28位數(shù)據寬度,迭代30次。對于反射功率檢測,需在盡可能短的時間內判斷反射功率是否超過限制。因此,需減少數(shù)據位寬和迭代次數(shù),在保證精度需求下的CORDIC模塊設計為14位數(shù)據寬度,迭代16次,同時將CORDIC模塊的時鐘由125 MHz提高到250 MHz,進一步提升運算速度。
圖6 CORDIC算法仿真Fig.6 Simulation of CORDIC
數(shù)字低電平系統(tǒng)中常用正交矢量調制器作為幅度相位調制器。正交矢量調制器需外部信號源提供一個本振高頻信號,該信號經過正交矢量調制器內部的移相電路處理后,得到兩路正交信號,與低電平輸出的IQ信號相乘后疊加,得到最終的輸出信號。對于回旋加速器低電平系統(tǒng)來說,使用外部信號源提供本振信號不是經濟的做法。為實現(xiàn)可編程的幅度相位調制器,本文采用直接數(shù)字頻率合成器(DDS)作為幅度相位調制器。通過對DDS的頻率字、相位字、輸出幅度的控制來實現(xiàn)對輸出信號參數(shù)的全可編程控制。本文采用250 MHz時鐘作為DDS的時鐘,在第一奈奎斯特區(qū)間內,可使用低通濾波器直接輸出125 MHz以內的信號,滿足了中國原子能科學研究院現(xiàn)有回旋加速器的需求。對于更高的輸出頻率的要求,可在其他奈奎斯特區(qū)間內用帶通濾波器濾波得到相應頻率的信號。
回旋加速器運行過程中,需實時處理打火、反射功率過大、外部聯(lián)鎖保護等異常情況。對于這些異常,采用FPGA硬件直接處理,同時通過觸發(fā)處理器中斷進行系統(tǒng)狀態(tài)遷移。在本文中,打火檢測和反射功率檢測由數(shù)字電路實現(xiàn)。打火檢測對實時性要求極高,需在小于1 μs時間內檢測到打火異常并做出處理。本文設計了一種基于脈沖計數(shù)的快速打火檢測電路(圖8),該電路利用一個與腔體反饋信號同頻率的、一直運行的追蹤NCO來監(jiān)視腔體反饋信號。將腔體反饋信號和追蹤NCO輸入到硬件系統(tǒng)的數(shù)字輸入/輸出接口上,使這兩個信號變?yōu)閿?shù)字脈沖信號。在FPGA內部用兩個計數(shù)器分別對這兩個信號進行計數(shù),當兩個計數(shù)器的計數(shù)差值大于1時,說明腔體反饋信號消失,在其他條件正常時,可斷定腔體內部發(fā)生打火。該打火檢測電路由處理器使能,調試簡單,響應迅速,避免了模擬打火檢測電路容易誤觸發(fā)和不易調試的缺點。該電路不依賴于腔體的特征時間參數(shù),因此可適用于任意腔體而不用修改系統(tǒng)參數(shù)。
圖8 打火檢測電路框圖Fig.8 Diagram of spark detection
反射功率檢測電路實時計算反射功率信號的幅度。為了盡可能減少延遲,將采樣時鐘提高為250 MHz,且將CIC低通濾波器的抽取速率降低為20倍,同時將CORDIC模塊的迭代次數(shù)設置為16次,以犧牲分辨率為代價,換取對反射功率的快速檢測。反射功率檢測電路不受低電平系統(tǒng)工作頻率的影響,閾值可由上位機軟件配置。實際測試結果表明,該打火保護電路的反應時間小于60 ns,反射功率保護電路的反應時間小于500 ns,滿足設計要求。
文獻[15]提出了一種用于回旋加速器射頻低電平系統(tǒng)的通用DSP固件程序設計。本文的ARM處理器固件程序對該設計進行了擴展。本文針對一套低電平系統(tǒng)控制兩組腔體和一個聚束器系統(tǒng)的情況,設計了基于雙核ARM的固件程序,以CPU0作為主處理器,CPU1作為從處理器。CPU0啟動后,加載CPU1的代碼到指定的內存空間,并啟動CPU1。對于連接到AXI總線上的高速和低速設備,CPU0和CPU1都可操作。在設計軟件時,人為將硬件資源按照功能劃分給CPU0和CPU1,避免了兩個CPU對共享資源的訪問沖突導致的問題。為了簡化系統(tǒng)通信接口的設計,指定CPU0控制通信硬件資源,負責對外通信。CPU1和CPU0之間通過共享內存和軟件中斷進行通信。上位機發(fā)送給CPU1的參數(shù)設置命令,首先發(fā)送給CPU0,再由CPU0通過軟件中斷發(fā)送給CPU1。在不需要兩個狀態(tài)機的系統(tǒng)中,CPU0作為默認的工作CPU,所有硬件資源由CPU0統(tǒng)一控制,此時CPU1可運行Linux系統(tǒng)實現(xiàn)遠程控制。
為量化系統(tǒng)的控制精度,在桌面環(huán)境下使用是德科技公司的信號源分析儀E5052B對該系統(tǒng)的幅度相位控制精度進行了閉環(huán)測試,測試結果如圖9和10所示。對于幅度控制精度,對1 Hz~20 kHz區(qū)間內的噪聲進行積分,再轉化為噪聲對信號的比率,計算結果為0.015%。對于相位控制精度,對10 Hz~20 kHz區(qū)間內的噪聲進行積分,轉化為RMS角度,測量結果為0.04°。本文研制的系統(tǒng)的幅度相位精度滿足回旋加速器低電平系統(tǒng)的控制要求。
圖9 幅度噪聲測量結果Fig.9 Amplitude noise test result
圖10 相位噪聲測量結果 Fig.10 Phase noise test result
根據中國原子能科學研究院已建成的和正在建造的回旋加速器的射頻系統(tǒng)控制需求,設計了用于回旋加速器低電平系統(tǒng)的通用軟硬件系統(tǒng)。該硬件系統(tǒng)是基于FPGA的全可編程平臺,由上位機軟件修改參數(shù)即可適應不同回旋加速器低電平系統(tǒng)的控制需求。該軟件實現(xiàn)了一種回旋加速器低電平系統(tǒng)通用固件程序,并擴展了該固件程序使其適應多個腔體的情況。該系統(tǒng)將被應用于正在建造的CYCIAE-14B回旋加速器上,目前已完成桌面測試,所有設計功能完備,幅度控制精度為0.015%,相位控制精度為0.04°。該設計適用范圍廣泛,對回旋加速器低電平控制系統(tǒng)的設計,具有一定的參考價值。