学长论文阅读

研究背景

核聚变关键:将高温、高密度的等离子体约束
约束方法:惯性约束,磁约束(托卡马克装置包括在内)
等离子破裂:释放能量对装置造成危害,可使用破裂缓解系统降低危害
破裂缓解系统需求:实时运行的等离子体破裂预警系统

等离子体破裂预测

等离子体破裂预测模型

获取方法分类:

  1. 基于物理机制的破裂预测(装置放电数据,非广延测地线声模理论)
  2. 基于数据驱动的破裂预测(对破裂和非破裂实验得到的诊断数据进行机器学习)

深度学习优势:相较于传统机器学习,保证输入数据量的前提下,随着输入数据量的提升,深度学习模型的性能较传统机器学习性能要更好

破裂预测模型实时化

训练:离线环境
应用实验中:实时运行程序

三部分:

  1. 实时操作系统:可以及时响应的运行环境,保证程序规定时间内被执行(如VxWorks、QNX 和 Linux-RT等)
  2. 实时软件框架:实现控制系统常用功能
  3. 实时诊断数据:数据量越高越好,数据传输延时越低越好

J-TEXT 装置上的实时破裂预测

数据实时性如何实现:采用专用的接口将数据采集卡与运行实时破裂预测程序的计算机相连
实时诊断数据获取需求:主机、机箱、独立的采集卡以及远程模块等
传统方式问题:系统高复杂度,设备冗余,成本过高,占地空间大

诊断信号

J-TEXT装置需要采集的诊断信号包括:磁信号、辐射信号、位移信号、杂质信息、其他信号(电子温度等)
采样率要求:大部分在10~500kSa/s之间,少数需要超过2MSa/s,因此数据采集系统支持2MSa/s采样率的话即可达成大部分采集与传输需求

实时数据

实时破裂预测系统运行周期应该与等离子体控制系统周期一致(1ms)
数据传输延时越短越好

系统设计

系统功能需求

  1. 输入信号高精度测量:测量误差不超过满输入量程的0.1%
  2. 每通道高采样率:每通道达到2MSa/s(不是多个通道共享)
  3. 数据吞吐率:至少需要3.13 Gb/s以上的数据吞吐率,尽可能接近10 Gb/s
  4. 数据传输延时要小于50 μs
  5. 实时接收并解析来自中控系统的配置信息,提供灵活的 采集服务
  6. 存储数据,将原始诊断数据按照数据流的形式存储到系统中的存储介质中,并将流盘数据编码和存储(流盘服务),用于其他物理研究

系统整体设计

组成部件包括:

  1. AD(模拟数字)采集板卡:原始模拟信号采集转换。核心是ADC(模数转换器),将原始模拟信号数据化,生成诊断数据;板卡接收核心板采样控制信号,输出转换后的数据。
  2. ZYNQ核心板:系统主控,可同时进行FPGA开发与CPU程序开发。其中,FPGA定制逻辑,保证诊断数据采集与实时传输低处理延时;CPU和Linux操作系统可开发配置指令接受与解析。
  3. 增强小型可插拔(SFP+)光模块:数据传输网络的一部分,构建诊断数据实时传输网络。多个SFP+光模块,实现多路数据传输,提升系统吞吐率。
  4. RJ45接口:配置网络的一部分,与中控系统和数据库建立可靠的网络连接,进行配置指令的收发和存储的数据文件的读取与传输(对应功能需求5)
  5. 板载固态硬盘(SSD):存储演示诊断数据,通过总线与ZYNQ主控板交互,实现数据快速流盘。(对应功能需求6)

对照实物图:

数据流向:
采样通道发送单次采样数据进入FIFO数据缓冲模块,FIFO在全部通道数据缓冲后,立即输出数据到实时传输方向与存储流盘方向。
实时传输方向数据经过N:1的抽取,降低采样率(当前采样率并不高,可以不抽取,N=1),写入到发送FIFO中,组成实时数据包,通过ZYNQ的UDP协议发送出去。
存储流盘方向,原始数据通过PL与PS之间总线接口进入ZYNQ的PS部分,被直接存储访问(Direct Memory Access)单元通过内存控制单元写入ZYNQ核心板的内存进行缓冲,随后被写入到板载SSD中,完成数据存储和流盘。
由于目前不需要抽取数据,只需要考虑ADC采样转换正确控制与转换数据的读取、ADC数据封装为UDP包和UDP协议栈在FPGA上的实现。

实时数据采集与传输系统组成

AD采集模块

模拟电路部分

两部分:

  • 对原始模拟信号进行调制、滤波、衰减等处理的模拟前 端(Analog-Front-End,AFE)电路
  • 将模拟信号转换为数字信号的ADC电路

AFE工作:原始信号调制

  1. 使原始模拟信号电压进入ADC适合输入范围
  2. 对原始模拟信号滤波,去除噪声,提升信噪比

AFE结构:两级运放电路结构

具体电路结构,感觉相关基础知识不足,不容易理解

电源设计部分

要求:需要考虑电源噪声
供电对象:LTC2324芯片、THS4551运放、OPA197运放、OPA376 运放以及 REF3440 基准源芯片
所需四种电源电压:5V低噪声、±6V低噪声、1.8V
低噪声电源思路:采用低压差线性稳压器(LDO)芯片输出

LDO方案包含一个电源芯片、输入输出电容3个元件,电流较小、效率较低,但输出噪声低、使用元件少、占地面积小

ADC采样控制与数据读取模块

工作模式

设计

结构:有限状态机
频率:100MHz
采样周期:1μs
计数器上限值:99
->每个时钟周期为10ns
5个状态:

  1. 空闲状态:CNV、SCK低电平
  2. count=1 -> 转换开始状态:CNV上升后将下降,创造下降沿从而开始ADC采集与转换。CNV高电平时间设为30ns(1->4)
  3. count=4 -> 等待数据状态:CNV下降,创造下降沿,开始ADC采集与转换,此时ADC对输入的模拟信号进行采集与转换,状态机只进行计数与等待,CNV、SCK低电平,持续230ns(4->27)
  4. count=27 -> 读取数据状态:ADC采样控制与数据读取模块通过4路SDO数据线读取4个通道的转换结果数据位宽为16位,则所需时钟周期为16个,考虑CLKOUT时钟滞后,设定状态为180ns(18个时钟周期)
  5. count=45 -> 锁存数据状态:ADC采样控制与数据读取模块通过寄存器读取16bit数据,移位寄存器的值在读取结束后才会稳定,稳定时间较短,使用FIFO锁存数据,提升数据有效时间。同时生成一个时钟周期的高电平信号,用于通知后级逻辑读取最新的ADC转换数据,之后回到空闲状态。

ZYNQ核心板

ZYNQ优势

系统需求:

  • 诊断数据的采集与实时传输对延时要求较高,需要低延时
    ->使用FPGA定制逻辑保证处理低延时
  • 需要实现配置指令接收与解析、数据存储
    ->要使用CPU与Linux操作系统利用开源软件进行开发

ZYNQ核心板优势:可以实现CPU与FPGA协同运作

需要功能:

  1. 对多个 AD 采集模块进行正确的采样控制。
  2. 通过一定的接口读取ADC转换出的数据以生成诊断数据流。
  3. 将当前最新的采集数据以尽可能小的延时传输到破裂预测模型中,完成诊断数据的实时传输。
  4. 接收并解析来自中控系统的配置指令,按照中控的设置对整个系统的采集、传输、运行时间等关键参数进行配置。(与RJ45接口相关)
  5. 完成原始诊断数据的存储,并提供存储数据的读取等服务。(与板载SSD有关)

AXI

存储流盘方向,原始数据会通过PL与PS间的总线接口进入ZYNQ的PS部分,其中主要由9个AXI(Advanced Extensible Interface,高级可扩展接口)接口连接。

  1. AXI_GP:通用AXI接口,4个,分为两个32位主设备接口(M_AXI_GP[1:0])和两个32位从设备接口(S_AXI_GP[1:0])。
  2. AXI_HP:高性能带宽的AXI3.0标准的接口,4个,PL模块作为主设备连接。用于PL访问PS上存储器,每一个接口有一个FIFO。
  3. AXI_ACP:ARM多核架构下定义的接口,即加速器一致性端口,用于管理DMA之类的不带缓存的AXI外设,PS端是从设备接口。

AXI4协议支持以下三种接口:

  1. AXI-Full:即高性能存储映射接口。
  2. AXI-Lite:简化版的 AXI4 接口,用于较少数据量的存储映射通信,例如对模块进行配置。
  3. AXI-Stream:用于高速数据流传输,非存储映射接口,例如视频音频流传输(不能直接与PS端通信)。

DMA: Direct Memory Access,直接存储器访问

DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。
当使用DMA时,CPU向DMA控制器发出一个存储传输请求,当DMA控制器接收到请求就会将数据从源地址搬运到目的地址。在数据搬运过程中不占用CPU资源,CPU可以执行其它操作,当传输完成时DMA以中断的方式通知CPU。

开发工作

ZYNQ开发工作分为两部分:

  1. 硬件逻辑系统设计:搭建满足需求的硬件环境,通过Vivado实现,用verilog语言
  2. CPU程序设计:通过用户程序控制CPU工作,使整个系统达成预定效果,通过Vitis实现,用C语言

需要理解的问题

  1. 重点放在ZYNQ核心板上面
  2. 了解熟悉怎么使用AD采集模块以及其信号
  3. 对于论文中部分细节也要尝试发现并着重了解

本文章使用limfx的vscode插件快速发布