劉 湘 王 煒 常勁帆
1(中國科學院高能物理研究所 核探測與核電子學國家重點實驗室 北京 100049)
2(中國科學院大學 北京 100049)
LHAASO KM2A讀出電子學系統(tǒng)遠程更新方案
劉 湘1,2王 煒1,2常勁帆1,2
1(中國科學院高能物理研究所 核探測與核電子學國家重點實驗室 北京 100049)
2(中國科學院大學 北京 100049)
KM2A (Kilometer-square Array)探測器陣列是LHAASO (Large High Altitude Air Shower Observatory)主體探測器陣列之一,7 000多個探測器和讀出電子學在1 km2的實驗范圍內完全分離并均勻分布排列。在這樣大型且分布不集中的高能物理實驗中,簡潔靈活可靠的電子學遠程更新方案具有重要意義。KM2A讀出電子學系統(tǒng)采用基于MultiBoot的遠程更新方案,此方案實現(xiàn)了無需任何附加電路的遠程更新及在線重加載,同時極大程度保證更新可靠性。
KM2A,遠程更新,MultiBoot,互聯(lián)網內容適配協(xié)議
LHAASO (Large High Altitude Air Shower Observatory)[1]是中國科學院高能物理研究所及合作單位提出在我國藏區(qū)高海拔站址建設,以宇宙線觀測研究為核心目標的重大科技基礎設施。KM2A (Kilometer-square Array)實驗整列均勻分布著7000多個探測器,探測器呈品字形均勻分布于半徑635 m的圓形區(qū)域中。其讀出電子學位于探測器內部PMT (Photomultiplier Tube)后端,采用前端數(shù)字化方案,由PMT產生的模擬信號經過約0.5 m的電纜傳輸?shù)角岸穗娮訉W,數(shù)字化后的時間信息及能量信息通過WR (White Rabbit)[2-3]網絡逐級上傳至DAQ (Data Acquisition)系統(tǒng),如圖1所示。
圖1 電子學拓撲結構Fig.1 Topology of electronics.
一套完整的WR網絡包含數(shù)級WR千兆交換機和大量WR節(jié)點[4],KM2A在西藏羊八井的小型實驗整列包含50個探測器及讀出電子學,WR網絡采用4級交換機的拓撲結構。
在這種插件數(shù)量龐大且工作環(huán)境惡劣的電子學系統(tǒng)中,方便可靠的FPGA (Field Programmable Gate Array)遠程更新方案成為電子學系統(tǒng)設計的一個重要方面。傳統(tǒng)的基于JTAG (Joint Test Action Group)邊界掃描的方式實現(xiàn)的FPGA程序更新顯然不能滿足實驗需求,近年來出現(xiàn)的FPGA遠程更新的方案大都是基于FPGA片外的CPLD (Complex Programmable Logic Device)[5]、DSP (Digital SignalProcess)[6]、ARM (Advanced RISC Machine)等架構來實現(xiàn)的。如北京譜儀、大亞灣中微子實驗的讀出電子學均采用1片獨立的CPLD芯片現(xiàn)遠程更新,控制器將配置文件通過VME (VersaModule Eurocard)總線形式傳輸至電子學,再由CPLD寫入Flash存儲器,之后利用CPLD發(fā)出重加載指令完成FPGA遠程更新,這種方式雖然具有一定的靈活性,但會增加電子學系統(tǒng)復雜性且提高工程造價。KM2A電子學系統(tǒng)遠程更新采用基于MultiBoot的FPGA遠程更新,完全不需要增加外圍電路即可實現(xiàn)遠程更新及在線重加載。
KM2A電子學遠程更新方案框圖如圖2所示。
圖2 電子學硬件結構框圖Fig.2 Block diagram of hardware structure.
本方案中,遠程更新所需要的配置文件及指令均由上位機發(fā)出,通過WR光纖網絡以TCP/IP協(xié)議發(fā)送給每個電子學插件。每個插件上的FPGA將接收到的配置文件實時同步寫入SPI Flash,完成遠程更新及在線重加載。
1.1 MultiBoot及ICAP簡介
MultiBoot[7]是Xilinx FPGA專有的邏輯配置模塊,其特性是將多個比特流文件生成一個MCS文件,并存入Flash等外部存儲器中,F(xiàn)PGA加載時可根據(jù)需求有選擇地加載其中某個比特流文件。其結構如圖3所示。
MultiBoot邏輯包含三個部分:第一部分為頭文件(Header),這個文件包含同步字、配置文件啟動地址以及IPROG (Internal PRGRAM_B)指令,頭文件必須位于Flash存儲空間的0x000000地址處,由命令文件生成;第二部分MultiBoot Bitstream,即用戶首先想要加載的配置文件,可由多個比特流文件組成,該部分可放在符合要求的任何地址,且地址在生成MCS文件時指定,在此設計中僅包含一份比特流文件,即用戶可改寫從而更新FPGA邏輯功能的配置文件;第三部分為Golden Bitstream,又稱保留配置文件,是保證更新MultiBoot Bitstream失敗時FPGA也能正常工作的配置文件,其地址由頭文件決定。此設計中為Flash保留的安全配置文件。Strike為加載次數(shù),F(xiàn)PGA重加載時根據(jù)頭文件內容會依次從優(yōu)先啟動地址及安全啟動地址嘗試加載比特流文件數(shù)次。
圖3 MultiBoot邏輯Fig.3 MultiBoot logic.
互聯(lián)網內容適配協(xié)議(Internet Content Adaptation Protocol, ICAP)邏輯模塊屬于FPGA內的專有邏輯模塊,以原語形式被調用,其功能是通過FPGA內的嵌入式微處理器如MicroBlaze等對FPGA的配置寄存器進行讀寫操作。本設計中主要通過ICAP-Spartan6原語向配置模塊發(fā)送IPROG指令來實現(xiàn)FPGA重加載操作。利用MultiBoot生成的MCS文件中包含的所有比特文件都必須例化一個ICAP_SPARTAN6原語以實現(xiàn)MultiBoot特性。
1.2配置文件生成
由于其他實驗需要,KM2A讀出電子學選用FPGA型號為Spartan6-XC6SLX100T,其生成的比特流文件大小約為26 Mbits,而利用MultiBoot生成的MCS文件至少包含兩份比特流文件,故對應的Flash選用M25P64,其存儲容量為64 Mbits。
利用IMPACT工具生成MultiMoot配置文件時,F(xiàn)lash低地址區(qū)域存放保留配置文件,高地址存放更新配置文件,利用FPGA對高地址內容替換即可實現(xiàn)遠程更新。低地址比特流文件必須包含頭文件,故必須從0x000000地址開始,高地址比特流文件地址為M25P64的中間地址0x400000。
利用ISE生成頭文件時需要指定兩份比特流文件的起始地址,根據(jù)該設置在保留配置文件中自動添加相應的頭文件,優(yōu)先加載及保留加載的起始地址需要與前述IMPACT生成MCS時指定的起始地址一致。
1.3更新流程
KM2A基于WR網絡傳輸配置指令和配置文件,可實現(xiàn)整個實驗陣列中所有FPGA同時遠程更新。更新配置流程如圖4所示。
圖4 更新流程Fig.4 Update process.
首先,上位機向電子學發(fā)送Flash高地址擦除指令,F(xiàn)PGA收到指令后以片擦除模式從高地址即0x400000開始擦除Flash,擦除完成時發(fā)送完成標志給上位機。
上位機收到擦除完畢標志后向電子學系統(tǒng)發(fā)送燒寫指令,然后開始發(fā)送用于更新的MCS配置文件,利用該文件替換原配置文件的高地址部分。此MCS文件由單比特流文件生成。上位機將生成的MCS文件轉換為二進制文件后,去除前置地址位及后置校驗位,僅保留中間的文件內容,以256 Bytes為單位,按地址從低至高逐一發(fā)送給FPGA。FPGA每收到一個配置文件包便以頁燒寫方式從中間地址0x400000開始燒寫高地址Flash,燒寫結束時將完成標志發(fā)送給上位機。單頁燒寫時間最大為5 ms,故上位機每個配置包發(fā)送間隔設置應大于5 ms,本設計發(fā)送間隔為10 ms。實驗證明,為保證更新可靠性,包含同步字“AA995566”的256 Bytes配置文件包即第一個配置文件包需要保留到燒寫過程的最后環(huán)節(jié)寫入,后文會對此做詳細分析。
燒寫完成后,F(xiàn)PGA等待Flash讀取指令,并準備從0x400000地址開始讀取Flash內容并通過網絡回傳給上位機,讀取完畢后上位機將回傳的完整MCS文件與前述發(fā)送的MCS文件對比,完全匹配則說明更新成功。此時上位機將保留的同步字配置文件發(fā)送給電子學。
更新文件的同步字寫入完成后,上位機發(fā)送重配置指令,F(xiàn)PGA進入重配置狀態(tài)機發(fā)送指令序列觸發(fā)IPROG,F(xiàn)PGA進行在線重加載。
基于MultiBoot的遠程更新方案使高能物理實驗中電子學系統(tǒng)的遠程升級變得簡單靈活,其可靠性在更新過程中尤為重要。由于Flash完成擦除、燒寫及回讀都需要一定時間,且按地址進行的操作會對Flash內容進行實時修改,在更新過程中如果遇到突發(fā)情況如網絡傳輸故障及斷電等情況時,若不進行特殊處理會導致FPGA重加載時出現(xiàn)錯誤,下面對兩種突發(fā)情況分別進行分析并提出相應的應對措施,該措施已經過多次實驗驗證并成功運用于羊八井實驗陣列中。
2.1網絡故障
網絡故障主要影響需要電子學與上位機持續(xù)通信的Flash燒寫進程,配置文件需要以256 Bytes為單位連續(xù)發(fā)送給FPGA,燒寫過程中若出現(xiàn)發(fā)送中斷或者由于丟包現(xiàn)象會導致Flash內容燒寫錯誤。實驗證明,出現(xiàn)上述狀況時,只需上位機發(fā)送重加載指令,即FPGA未重加載的前提下,重新完成Flash擦除及燒寫過程直到回讀的Flash內容與發(fā)送的配置文件一致即可成功更新。
2.2電源故障
FPGA在MultiBoot模式下上電或者重加載時會從優(yōu)先啟動地址即本設計的0x400000地址開始尋找同步字“AA995566”,若在優(yōu)先啟動地址找到同步字則加載高地址配置文件,否則觸發(fā)Fallback[5]操作,從保留配置啟動地址開始加載安全配置文件。而每份配置文件的同步字出現(xiàn)在最低地址段,若掉電現(xiàn)象出現(xiàn)在擦除過程中,最先完成的擦除操作已經高地址配置文件的同步字擦除,F(xiàn)PGA上電重加載時自動加載低地址保留配置文件。若掉電現(xiàn)象出現(xiàn)在燒寫過程中,此時如果高地址配置文件的同步字在燒寫剛開始時已經寫入Flash,F(xiàn)PGA在Flash未完整燒寫情況下重啟則會自動加載高地址不完整的配置文件,導致電子學無法工作。所以在燒寫過程中,僅將去除同步字的配置文件燒寫至FPGA,待校驗成功后再將高地址的同步字寫入FPGA,從而大大保證更新可靠性。
基于MultiBoot的FPGA遠程更新方法在完全不需要外圍電路的情況下便可完成多節(jié)點遠程更新及在線重加載,不僅極大程度上保證了電子學系統(tǒng)升級的可靠性,同時在一定程度上減少電子學系統(tǒng)的成本,該更新方案已成功適用于LHAASO羊八井實驗小陣列中。
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遠程配置實現(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 李強, 羅超, 夏威, 等. FPGA遠程更新系統(tǒng)[J]. 儀表技術與傳感器, 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
國家自然科學基金(No.11375210)資助
劉湘,男,1989年出生,2011年畢業(yè)于北京理工大學,現(xiàn)為博士研究生,從事核電子學與和探測技術研究
常勁帆,E-mail: changjf@ihep.ac.cn
2015-05-28,
2015-06-30
CLCTL81