LHAASO KM2A读出电子学系统远程更新方案

2015-12-28 03:39常劲帆
核技术 2015年9期
关键词:电子学配置文件上位

刘 湘 王 炜 常劲帆

1(中国科学院高能物理研究所 核探测与核电子学国家重点实验室 北京 100049)

2(中国科学院大学 北京 100049)

LHAASO KM2A读出电子学系统远程更新方案

刘 湘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读出电子学系统采用基于MultiBoot的远程更新方案,此方案实现了无需任何附加电路的远程更新及在线重加载,同时极大程度保证更新可靠性。

KM2A,远程更新,MultiBoot,互联网内容适配协议

LHAASO (Large High Altitude Air Shower Observatory)[1]是中国科学院高能物理研究所及合作单位提出在我国藏区高海拔站址建设,以宇宙线观测研究为核心目标的重大科技基础设施。KM2A (Kilometer-square Array)实验整列均匀分布着7000多个探测器,探测器呈品字形均匀分布于半径635 m的圆形区域中。其读出电子学位于探测器内部PMT (Photomultiplier Tube)后端,采用前端数字化方案,由PMT产生的模拟信号经过约0.5 m的电缆传输到前端电子学,数字化后的时间信息及能量信息通过WR (White Rabbit)[2-3]网络逐级上传至DAQ (Data Acquisition)系统,如图1所示。

图1 电子学拓扑结构Fig.1 Topology of electronics.

一套完整的WR网络包含数级WR千兆交换机和大量WR节点[4],KM2A在西藏羊八井的小型实验整列包含50个探测器及读出电子学,WR网络采用4级交换机的拓扑结构。

在这种插件数量庞大且工作环境恶劣的电子学系统中,方便可靠的FPGA (Field Programmable Gate Array)远程更新方案成为电子学系统设计的一个重要方面。传统的基于JTAG (Joint Test Action Group)边界扫描的方式实现的FPGA程序更新显然不能满足实验需求,近年来出现的FPGA远程更新的方案大都是基于FPGA片外的CPLD (Complex Programmable Logic Device)[5]、DSP (Digital SignalProcess)[6]、ARM (Advanced RISC Machine)等架构来实现的。如北京谱仪、大亚湾中微子实验的读出电子学均采用1片独立的CPLD芯片现远程更新,控制器将配置文件通过VME (VersaModule Eurocard)总线形式传输至电子学,再由CPLD写入Flash存储器,之后利用CPLD发出重加载指令完成FPGA远程更新,这种方式虽然具有一定的灵活性,但会增加电子学系统复杂性且提高工程造价。KM2A电子学系统远程更新采用基于MultiBoot的FPGA远程更新,完全不需要增加外围电路即可实现远程更新及在线重加载。

1 系统实现

KM2A电子学远程更新方案框图如图2所示。

图2 电子学硬件结构框图Fig.2 Block diagram of hardware structure.

本方案中,远程更新所需要的配置文件及指令均由上位机发出,通过WR光纤网络以TCP/IP协议发送给每个电子学插件。每个插件上的FPGA将接收到的配置文件实时同步写入SPI Flash,完成远程更新及在线重加载。

1.1 MultiBoot及ICAP简介

MultiBoot[7]是Xilinx FPGA专有的逻辑配置模块,其特性是将多个比特流文件生成一个MCS文件,并存入Flash等外部存储器中,FPGA加载时可根据需求有选择地加载其中某个比特流文件。其结构如图3所示。

MultiBoot逻辑包含三个部分:第一部分为头文件(Header),这个文件包含同步字、配置文件启动地址以及IPROG (Internal PRGRAM_B)指令,头文件必须位于Flash存储空间的0x000000地址处,由命令文件生成;第二部分MultiBoot Bitstream,即用户首先想要加载的配置文件,可由多个比特流文件组成,该部分可放在符合要求的任何地址,且地址在生成MCS文件时指定,在此设计中仅包含一份比特流文件,即用户可改写从而更新FPGA逻辑功能的配置文件;第三部分为Golden Bitstream,又称保留配置文件,是保证更新MultiBoot Bitstream失败时FPGA也能正常工作的配置文件,其地址由头文件决定。此设计中为Flash保留的安全配置文件。Strike为加载次数,FPGA重加载时根据头文件内容会依次从优先启动地址及安全启动地址尝试加载比特流文件数次。

图3 MultiBoot逻辑Fig.3 MultiBoot logic.

互联网内容适配协议(Internet Content Adaptation Protocol, ICAP)逻辑模块属于FPGA内的专有逻辑模块,以原语形式被调用,其功能是通过FPGA内的嵌入式微处理器如MicroBlaze等对FPGA的配置寄存器进行读写操作。本设计中主要通过ICAP-Spartan6原语向配置模块发送IPROG指令来实现FPGA重加载操作。利用MultiBoot生成的MCS文件中包含的所有比特文件都必须例化一个ICAP_SPARTAN6原语以实现MultiBoot特性。

1.2配置文件生成

由于其他实验需要,KM2A读出电子学选用FPGA型号为Spartan6-XC6SLX100T,其生成的比特流文件大小约为26 Mbits,而利用MultiBoot生成的MCS文件至少包含两份比特流文件,故对应的Flash选用M25P64,其存储容量为64 Mbits。

利用IMPACT工具生成MultiMoot配置文件时,Flash低地址区域存放保留配置文件,高地址存放更新配置文件,利用FPGA对高地址内容替换即可实现远程更新。低地址比特流文件必须包含头文件,故必须从0x000000地址开始,高地址比特流文件地址为M25P64的中间地址0x400000。

利用ISE生成头文件时需要指定两份比特流文件的起始地址,根据该设置在保留配置文件中自动添加相应的头文件,优先加载及保留加载的起始地址需要与前述IMPACT生成MCS时指定的起始地址一致。

1.3更新流程

KM2A基于WR网络传输配置指令和配置文件,可实现整个实验阵列中所有FPGA同时远程更新。更新配置流程如图4所示。

图4 更新流程Fig.4 Update process.

首先,上位机向电子学发送Flash高地址擦除指令,FPGA收到指令后以片擦除模式从高地址即0x400000开始擦除Flash,擦除完成时发送完成标志给上位机。

上位机收到擦除完毕标志后向电子学系统发送烧写指令,然后开始发送用于更新的MCS配置文件,利用该文件替换原配置文件的高地址部分。此MCS文件由单比特流文件生成。上位机将生成的MCS文件转换为二进制文件后,去除前置地址位及后置校验位,仅保留中间的文件内容,以256 Bytes为单位,按地址从低至高逐一发送给FPGA。FPGA每收到一个配置文件包便以页烧写方式从中间地址0x400000开始烧写高地址Flash,烧写结束时将完成标志发送给上位机。单页烧写时间最大为5 ms,故上位机每个配置包发送间隔设置应大于5 ms,本设计发送间隔为10 ms。实验证明,为保证更新可靠性,包含同步字“AA995566”的256 Bytes配置文件包即第一个配置文件包需要保留到烧写过程的最后环节写入,后文会对此做详细分析。

烧写完成后,FPGA等待Flash读取指令,并准备从0x400000地址开始读取Flash内容并通过网络回传给上位机,读取完毕后上位机将回传的完整MCS文件与前述发送的MCS文件对比,完全匹配则说明更新成功。此时上位机将保留的同步字配置文件发送给电子学。

更新文件的同步字写入完成后,上位机发送重配置指令,FPGA进入重配置状态机发送指令序列触发IPROG,FPGA进行在线重加载。

2 更新可靠性

基于MultiBoot的远程更新方案使高能物理实验中电子学系统的远程升级变得简单灵活,其可靠性在更新过程中尤为重要。由于Flash完成擦除、烧写及回读都需要一定时间,且按地址进行的操作会对Flash内容进行实时修改,在更新过程中如果遇到突发情况如网络传输故障及断电等情况时,若不进行特殊处理会导致FPGA重加载时出现错误,下面对两种突发情况分别进行分析并提出相应的应对措施,该措施已经过多次实验验证并成功运用于羊八井实验阵列中。

2.1网络故障

网络故障主要影响需要电子学与上位机持续通信的Flash烧写进程,配置文件需要以256 Bytes为单位连续发送给FPGA,烧写过程中若出现发送中断或者由于丢包现象会导致Flash内容烧写错误。实验证明,出现上述状况时,只需上位机发送重加载指令,即FPGA未重加载的前提下,重新完成Flash擦除及烧写过程直到回读的Flash内容与发送的配置文件一致即可成功更新。

2.2电源故障

FPGA在MultiBoot模式下上电或者重加载时会从优先启动地址即本设计的0x400000地址开始寻找同步字“AA995566”,若在优先启动地址找到同步字则加载高地址配置文件,否则触发Fallback[5]操作,从保留配置启动地址开始加载安全配置文件。而每份配置文件的同步字出现在最低地址段,若掉电现象出现在擦除过程中,最先完成的擦除操作已经高地址配置文件的同步字擦除,FPGA上电重加载时自动加载低地址保留配置文件。若掉电现象出现在烧写过程中,此时如果高地址配置文件的同步字在烧写刚开始时已经写入Flash,FPGA在Flash未完整烧写情况下重启则会自动加载高地址不完整的配置文件,导致电子学无法工作。所以在烧写过程中,仅将去除同步字的配置文件烧写至FPGA,待校验成功后再将高地址的同步字写入FPGA,从而大大保证更新可靠性。

3 结语

基于MultiBoot的FPGA远程更新方法在完全不需要外围电路的情况下便可完成多节点远程更新及在线重加载,不仅极大程度上保证了电子学系统升级的可靠性,同时在一定程度上减少电子学系统的成本,该更新方案已成功适用于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远程配置实现[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远程更新系统[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年毕业于北京理工大学,现为博士研究生,从事核电子学与和探测技术研究

常劲帆,E-mail: changjf@ihep.ac.cn

2015-05-28,

2015-06-30

CLCTL81

猜你喜欢
电子学配置文件上位
《量子电子学报》征稿简则
《量子电子学报》征稿简则
《量子电子学报》征稿简则
《量子电子学报》征稿简则
互不干涉混用Chromium Edge
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
特斯拉 风云之老阿姨上位
为View桌面准备父虚拟机
“三扶”齐上位 决战必打赢