劉 湘 王 煒 常勁帆
1(中國科學(xué)院高能物理研究所 核探測(cè)與核電子學(xué)國家重點(diǎn)實(shí)驗(yàn)室 北京 100049)
2(中國科學(xué)院大學(xué) 北京 100049)
LHAASO KM2A讀出電子學(xué)系統(tǒng)遠(yuǎn)程更新方案
劉 湘1,2王 煒1,2常勁帆1,2
1(中國科學(xué)院高能物理研究所 核探測(cè)與核電子學(xué)國家重點(diǎn)實(shí)驗(yàn)室 北京 100049)
2(中國科學(xué)院大學(xué) 北京 100049)
KM2A (Kilometer-square Array)探測(cè)器陣列是LHAASO (Large High Altitude Air Shower Observatory)主體探測(cè)器陣列之一,7 000多個(gè)探測(cè)器和讀出電子學(xué)在1 km2的實(shí)驗(yàn)范圍內(nèi)完全分離并均勻分布排列。在這樣大型且分布不集中的高能物理實(shí)驗(yàn)中,簡潔靈活可靠的電子學(xué)遠(yuǎn)程更新方案具有重要意義。KM2A讀出電子學(xué)系統(tǒng)采用基于MultiBoot的遠(yuǎn)程更新方案,此方案實(shí)現(xiàn)了無需任何附加電路的遠(yuǎn)程更新及在線重加載,同時(shí)極大程度保證更新可靠性。
KM2A,遠(yuǎn)程更新,MultiBoot,互聯(lián)網(wǎng)內(nèi)容適配協(xié)議
LHAASO (Large High Altitude Air Shower Observatory)[1]是中國科學(xué)院高能物理研究所及合作單位提出在我國藏區(qū)高海拔站址建設(shè),以宇宙線觀測(cè)研究為核心目標(biāo)的重大科技基礎(chǔ)設(shè)施。KM2A (Kilometer-square Array)實(shí)驗(yàn)整列均勻分布著7000多個(gè)探測(cè)器,探測(cè)器呈品字形均勻分布于半徑635 m的圓形區(qū)域中。其讀出電子學(xué)位于探測(cè)器內(nèi)部PMT (Photomultiplier Tube)后端,采用前端數(shù)字化方案,由PMT產(chǎn)生的模擬信號(hào)經(jīng)過約0.5 m的電纜傳輸?shù)角岸穗娮訉W(xué),數(shù)字化后的時(shí)間信息及能量信息通過WR (White Rabbit)[2-3]網(wǎng)絡(luò)逐級(jí)上傳至DAQ (Data Acquisition)系統(tǒng),如圖1所示。
圖1 電子學(xué)拓?fù)浣Y(jié)構(gòu)Fig.1 Topology of electronics.
一套完整的WR網(wǎng)絡(luò)包含數(shù)級(jí)WR千兆交換機(jī)和大量WR節(jié)點(diǎn)[4],KM2A在西藏羊八井的小型實(shí)驗(yàn)整列包含50個(gè)探測(cè)器及讀出電子學(xué),WR網(wǎng)絡(luò)采用4級(jí)交換機(jī)的拓?fù)浣Y(jié)構(gòu)。
在這種插件數(shù)量龐大且工作環(huán)境惡劣的電子學(xué)系統(tǒng)中,方便可靠的FPGA (Field Programmable Gate Array)遠(yuǎn)程更新方案成為電子學(xué)系統(tǒng)設(shè)計(jì)的一個(gè)重要方面。傳統(tǒng)的基于JTAG (Joint Test Action Group)邊界掃描的方式實(shí)現(xiàn)的FPGA程序更新顯然不能滿足實(shí)驗(yàn)需求,近年來出現(xiàn)的FPGA遠(yuǎn)程更新的方案大都是基于FPGA片外的CPLD (Complex Programmable Logic Device)[5]、DSP (Digital SignalProcess)[6]、ARM (Advanced RISC Machine)等架構(gòu)來實(shí)現(xiàn)的。如北京譜儀、大亞灣中微子實(shí)驗(yàn)的讀出電子學(xué)均采用1片獨(dú)立的CPLD芯片現(xiàn)遠(yuǎn)程更新,控制器將配置文件通過VME (VersaModule Eurocard)總線形式傳輸至電子學(xué),再由CPLD寫入Flash存儲(chǔ)器,之后利用CPLD發(fā)出重加載指令完成FPGA遠(yuǎn)程更新,這種方式雖然具有一定的靈活性,但會(huì)增加電子學(xué)系統(tǒng)復(fù)雜性且提高工程造價(jià)。KM2A電子學(xué)系統(tǒng)遠(yuǎn)程更新采用基于MultiBoot的FPGA遠(yuǎn)程更新,完全不需要增加外圍電路即可實(shí)現(xiàn)遠(yuǎn)程更新及在線重加載。
KM2A電子學(xué)遠(yuǎn)程更新方案框圖如圖2所示。
圖2 電子學(xué)硬件結(jié)構(gòu)框圖Fig.2 Block diagram of hardware structure.
本方案中,遠(yuǎn)程更新所需要的配置文件及指令均由上位機(jī)發(fā)出,通過WR光纖網(wǎng)絡(luò)以TCP/IP協(xié)議發(fā)送給每個(gè)電子學(xué)插件。每個(gè)插件上的FPGA將接收到的配置文件實(shí)時(shí)同步寫入SPI Flash,完成遠(yuǎn)程更新及在線重加載。
1.1 MultiBoot及ICAP簡介
MultiBoot[7]是Xilinx FPGA專有的邏輯配置模塊,其特性是將多個(gè)比特流文件生成一個(gè)MCS文件,并存入Flash等外部存儲(chǔ)器中,F(xiàn)PGA加載時(shí)可根據(jù)需求有選擇地加載其中某個(gè)比特流文件。其結(jié)構(gòu)如圖3所示。
MultiBoot邏輯包含三個(gè)部分:第一部分為頭文件(Header),這個(gè)文件包含同步字、配置文件啟動(dòng)地址以及IPROG (Internal PRGRAM_B)指令,頭文件必須位于Flash存儲(chǔ)空間的0x000000地址處,由命令文件生成;第二部分MultiBoot Bitstream,即用戶首先想要加載的配置文件,可由多個(gè)比特流文件組成,該部分可放在符合要求的任何地址,且地址在生成MCS文件時(shí)指定,在此設(shè)計(jì)中僅包含一份比特流文件,即用戶可改寫從而更新FPGA邏輯功能的配置文件;第三部分為Golden Bitstream,又稱保留配置文件,是保證更新MultiBoot Bitstream失敗時(shí)FPGA也能正常工作的配置文件,其地址由頭文件決定。此設(shè)計(jì)中為Flash保留的安全配置文件。Strike為加載次數(shù),F(xiàn)PGA重加載時(shí)根據(jù)頭文件內(nèi)容會(huì)依次從優(yōu)先啟動(dòng)地址及安全啟動(dòng)地址嘗試加載比特流文件數(shù)次。
圖3 MultiBoot邏輯Fig.3 MultiBoot logic.
互聯(lián)網(wǎng)內(nèi)容適配協(xié)議(Internet Content Adaptation Protocol, ICAP)邏輯模塊屬于FPGA內(nèi)的專有邏輯模塊,以原語形式被調(diào)用,其功能是通過FPGA內(nèi)的嵌入式微處理器如MicroBlaze等對(duì)FPGA的配置寄存器進(jìn)行讀寫操作。本設(shè)計(jì)中主要通過ICAP-Spartan6原語向配置模塊發(fā)送IPROG指令來實(shí)現(xiàn)FPGA重加載操作。利用MultiBoot生成的MCS文件中包含的所有比特文件都必須例化一個(gè)ICAP_SPARTAN6原語以實(shí)現(xiàn)MultiBoot特性。
1.2配置文件生成
由于其他實(shí)驗(yàn)需要,KM2A讀出電子學(xué)選用FPGA型號(hào)為Spartan6-XC6SLX100T,其生成的比特流文件大小約為26 Mbits,而利用MultiBoot生成的MCS文件至少包含兩份比特流文件,故對(duì)應(yīng)的Flash選用M25P64,其存儲(chǔ)容量為64 Mbits。
利用IMPACT工具生成MultiMoot配置文件時(shí),F(xiàn)lash低地址區(qū)域存放保留配置文件,高地址存放更新配置文件,利用FPGA對(duì)高地址內(nèi)容替換即可實(shí)現(xiàn)遠(yuǎn)程更新。低地址比特流文件必須包含頭文件,故必須從0x000000地址開始,高地址比特流文件地址為M25P64的中間地址0x400000。
利用ISE生成頭文件時(shí)需要指定兩份比特流文件的起始地址,根據(jù)該設(shè)置在保留配置文件中自動(dòng)添加相應(yīng)的頭文件,優(yōu)先加載及保留加載的起始地址需要與前述IMPACT生成MCS時(shí)指定的起始地址一致。
1.3更新流程
KM2A基于WR網(wǎng)絡(luò)傳輸配置指令和配置文件,可實(shí)現(xiàn)整個(gè)實(shí)驗(yàn)陣列中所有FPGA同時(shí)遠(yuǎn)程更新。更新配置流程如圖4所示。
圖4 更新流程Fig.4 Update process.
首先,上位機(jī)向電子學(xué)發(fā)送Flash高地址擦除指令,F(xiàn)PGA收到指令后以片擦除模式從高地址即0x400000開始擦除Flash,擦除完成時(shí)發(fā)送完成標(biāo)志給上位機(jī)。
上位機(jī)收到擦除完畢標(biāo)志后向電子學(xué)系統(tǒng)發(fā)送燒寫指令,然后開始發(fā)送用于更新的MCS配置文件,利用該文件替換原配置文件的高地址部分。此MCS文件由單比特流文件生成。上位機(jī)將生成的MCS文件轉(zhuǎn)換為二進(jìn)制文件后,去除前置地址位及后置校驗(yàn)位,僅保留中間的文件內(nèi)容,以256 Bytes為單位,按地址從低至高逐一發(fā)送給FPGA。FPGA每收到一個(gè)配置文件包便以頁燒寫方式從中間地址0x400000開始燒寫高地址Flash,燒寫結(jié)束時(shí)將完成標(biāo)志發(fā)送給上位機(jī)。單頁燒寫時(shí)間最大為5 ms,故上位機(jī)每個(gè)配置包發(fā)送間隔設(shè)置應(yīng)大于5 ms,本設(shè)計(jì)發(fā)送間隔為10 ms。實(shí)驗(yàn)證明,為保證更新可靠性,包含同步字“AA995566”的256 Bytes配置文件包即第一個(gè)配置文件包需要保留到燒寫過程的最后環(huán)節(jié)寫入,后文會(huì)對(duì)此做詳細(xì)分析。
燒寫完成后,F(xiàn)PGA等待Flash讀取指令,并準(zhǔn)備從0x400000地址開始讀取Flash內(nèi)容并通過網(wǎng)絡(luò)回傳給上位機(jī),讀取完畢后上位機(jī)將回傳的完整MCS文件與前述發(fā)送的MCS文件對(duì)比,完全匹配則說明更新成功。此時(shí)上位機(jī)將保留的同步字配置文件發(fā)送給電子學(xué)。
更新文件的同步字寫入完成后,上位機(jī)發(fā)送重配置指令,F(xiàn)PGA進(jìn)入重配置狀態(tài)機(jī)發(fā)送指令序列觸發(fā)IPROG,F(xiàn)PGA進(jìn)行在線重加載。
基于MultiBoot的遠(yuǎn)程更新方案使高能物理實(shí)驗(yàn)中電子學(xué)系統(tǒng)的遠(yuǎn)程升級(jí)變得簡單靈活,其可靠性在更新過程中尤為重要。由于Flash完成擦除、燒寫及回讀都需要一定時(shí)間,且按地址進(jìn)行的操作會(huì)對(duì)Flash內(nèi)容進(jìn)行實(shí)時(shí)修改,在更新過程中如果遇到突發(fā)情況如網(wǎng)絡(luò)傳輸故障及斷電等情況時(shí),若不進(jìn)行特殊處理會(huì)導(dǎo)致FPGA重加載時(shí)出現(xiàn)錯(cuò)誤,下面對(duì)兩種突發(fā)情況分別進(jìn)行分析并提出相應(yīng)的應(yīng)對(duì)措施,該措施已經(jīng)過多次實(shí)驗(yàn)驗(yàn)證并成功運(yùn)用于羊八井實(shí)驗(yàn)陣列中。
2.1網(wǎng)絡(luò)故障
網(wǎng)絡(luò)故障主要影響需要電子學(xué)與上位機(jī)持續(xù)通信的Flash燒寫進(jìn)程,配置文件需要以256 Bytes為單位連續(xù)發(fā)送給FPGA,燒寫過程中若出現(xiàn)發(fā)送中斷或者由于丟包現(xiàn)象會(huì)導(dǎo)致Flash內(nèi)容燒寫錯(cuò)誤。實(shí)驗(yàn)證明,出現(xiàn)上述狀況時(shí),只需上位機(jī)發(fā)送重加載指令,即FPGA未重加載的前提下,重新完成Flash擦除及燒寫過程直到回讀的Flash內(nèi)容與發(fā)送的配置文件一致即可成功更新。
2.2電源故障
FPGA在MultiBoot模式下上電或者重加載時(shí)會(huì)從優(yōu)先啟動(dòng)地址即本設(shè)計(jì)的0x400000地址開始尋找同步字“AA995566”,若在優(yōu)先啟動(dòng)地址找到同步字則加載高地址配置文件,否則觸發(fā)Fallback[5]操作,從保留配置啟動(dòng)地址開始加載安全配置文件。而每份配置文件的同步字出現(xiàn)在最低地址段,若掉電現(xiàn)象出現(xiàn)在擦除過程中,最先完成的擦除操作已經(jīng)高地址配置文件的同步字擦除,F(xiàn)PGA上電重加載時(shí)自動(dòng)加載低地址保留配置文件。若掉電現(xiàn)象出現(xiàn)在燒寫過程中,此時(shí)如果高地址配置文件的同步字在燒寫剛開始時(shí)已經(jīng)寫入Flash,F(xiàn)PGA在Flash未完整燒寫情況下重啟則會(huì)自動(dòng)加載高地址不完整的配置文件,導(dǎo)致電子學(xué)無法工作。所以在燒寫過程中,僅將去除同步字的配置文件燒寫至FPGA,待校驗(yàn)成功后再將高地址的同步字寫入FPGA,從而大大保證更新可靠性。
基于MultiBoot的FPGA遠(yuǎn)程更新方法在完全不需要外圍電路的情況下便可完成多節(jié)點(diǎn)遠(yuǎn)程更新及在線重加載,不僅極大程度上保證了電子學(xué)系統(tǒng)升級(jí)的可靠性,同時(shí)在一定程度上減少電子學(xué)系統(tǒng)的成本,該更新方案已成功適用于LHAASO羊八井實(shí)驗(yàn)小陣列中。
1 Cao Z. A future project at Tibet: the large high altitude air shower observatory[J]. Chinese Physics C, 2010,34: 249
2 Li C, Liu S B, Shaung L F, et al. The clock system for LHAASO WCDA based on reduced White Rabbit[J]. Nuclear Science and Techniques, 2012,23: 230-236
3 Serrano J. The white rabbit project[C]. Kobe, Japan: Proceedings of ICALEPCS TUC004, 2009
4 Pan W B. Resolution distributed time-to-digital converter (TDC) in a white rabbit network[J]. Nuclear Instruments and Methods in Physics Research, 2014,A738: 13-19
5 吳翠娟. 基于TCP/IP的CPLD/FPGA遠(yuǎn)程配置實(shí)現(xiàn)[J].電子工程師, 2005,31(5): 63-65 WU Cuijuan. A CPLD/FPGA remote configuration based on TCP/IP[J]. Electronic Engineer, 2005,31(5): 63-65
6 李強(qiáng), 羅超, 夏威, 等. FPGA遠(yuǎn)程更新系統(tǒng)[J]. 儀表技術(shù)與傳感器, 2014,7: 73-74 LI Qiang, LUO Chao, XIA Wei, et al. Remote update of FPGA system[J]. Instrument Technique and Sensor, 2014,7: 73-74
7 Spartan-6 FPGA Configuration [EB/OL]. http://www. xilinx.com/support/documentation/user-guides/ug380.pdf, 2011-6-6
Remote update scheme of readout electronics for LHAASO KM2A
LIU Xiang1,2WANG Wei1,2CHANG Jinfan1,2
1(State Key Laboratory of Particle Detection and Electronics,Institute of High Energy Physics,Chinese Academy of Sciences,Beijing 100049,China)
2(University of Chinese Academy of Sciences,Beijing 100049,China)
Background:The Kilometer-square Array (KM2A) is one of main detector arrays in the Large High Altitude Air Shower Observatory (LHAASO). Thousands of detectors and front-end readout electronics spread over one square kilometers. In such a large-scale, dispersed high energy physics experiment, a flexible, efficient and reliable system for remote update of FPGAs (Field Programmable Gate Array) becomes significant.Purpose:This study aims to introduce a scheme to update FPGAs of the front-end readout electronics and reload firmware online without extra circuits while ensuring its reliability.Methods:The remote update based on MultiBoot and reload logic based on Internet Content Adaptation Protocol (ICAP) make it possible to update the firmware of all the FPGAs simultaneously.Results:The scheme proposed in this paper has successfully applied to the detector arrays in Yangbajing, Tibet. Its flexibility, convenience and reliability has been proved by the stable operation since October 2014.Conclusion:Remote update scheme based on MultiBoot makes it possible to update FPGAs without any extra circuits, thus literally reduces the cost of electronic systems while guaranteeing the reliability.
KM2A, Remote update, MultiBoot, ICAP
TL81
10.11889/j.0253-3219.2015.hjs.38.090402
國家自然科學(xué)基金(No.11375210)資助
劉湘,男,1989年出生,2011年畢業(yè)于北京理工大學(xué),現(xiàn)為博士研究生,從事核電子學(xué)與和探測(cè)技術(shù)研究
常勁帆,E-mail: changjf@ihep.ac.cn
2015-05-28,
2015-06-30
CLCTL81