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