基于FPGA+ARM 的太赫兹成像最小控制系统设计
2024-01-05于超秦华刘楠丁朋黄丹飞
于超 ,秦华,刘楠,丁朋,黄丹飞
(1. 长春理工大学 光电工程学院,长春 130022;2. 长春理工大学 中山研究院,中山 528400;3. 中国科学院苏州纳米技术与纳米仿生研究所,苏州 215213)
太赫兹波通常是频率位于0.1~10 THz 之间的电磁波,它在电磁波谱中介于微波和红外波段之间,处于宏观电子学向微观光子学过渡的特殊位置。 相比微波等低频信号而言,太赫兹波能承载很大的信息量,空间分辨率更高。 其次,相比红外等高频信号而言,太赫兹波能量更低,其辐射不会因电离而破坏被检质,适用于针对人体或其他生物样品的检查,具有穿透性强、能量低、光谱信息丰富、相干性好、瞬态性和宽带大等优异的特性[1]。所以太赫兹成像系统对速度和响应灵敏度有极大的要求。而且太赫兹成像技术有更为广泛的实际应用,在人体安检、医学成像、无损检测、军事侦查等众多领域发挥着重要作用[2]。
2016 年,Han 等人[3]设计了一款基于InGaAs肖特基势垒二极管检测器的紧凑型太赫兹反射扫描仪,该检测器在250 GHz 下最大响应率达到300 V/W,最小噪声等效功率(Noise Equivalent Power,NEP)达到38 pW/Hz1/2。 2017 年Wen 等人[4]团队提出了一种128×128 像素的非电焦平面阵列探测器,响应时间为140 ms,3.11 THz 下的NEP 为2.9 nW/Hz1/2,由此选用基于AlGaN/GaN 的HEMT 太赫兹探测器阵列[5],平均响应度可达217.6 kV/W,平均NEP 小于100 pW/Hz1/2,其与专用CMOS 读出电路ROIC 倒装互连集成的32×32 太赫兹焦平面成像传感器,具有高灵敏度、高速和室温工作的优势,所以控制系统平台的速度、实时性应具有很大优势,FPGA 为最佳选择,其次为ARM 和DSP。
林定君等人[6]通过FPGA 将被动太赫兹成像系统采集的数据传输到上位机,并且张谷祥等人[7]通过FPGA 设计了双目采集系统,其中特定且繁杂的以太网控制、DDR 控制耗费了大量时间和FPGA 资源。王笑寒等人[8]利用FPGA+DSP 研究的监控系统不仅耗费了时间资源,并且此种架构电路复杂,功耗高,不易小型化。
而ARM 处理器整合的硬件资源可缩短复杂逻辑实现周期、节省FPGA 资源,所以满足系统可定制、高速度需求的最佳实现方式为集成FPGA+ARM 的zynq。zynq 全称是Zynq-7000 All Programmable SoC,其是赛灵思公司推出的新一代全可编程片上系统(APSOC);它由双核ARM Cortex-A9 处理器和FPGA 逻辑部件组成,并将两者优势完美结合,可高效利用资源、使体积显著缩小、可靠性和系统整体性能明显提高,为未来加入乌班图系统的电子学相机研制打下基础。
本文针对基于AlGaN/GaN 的32×32 太赫兹焦平面成像传感器,设计了一种基于Zynq-7020 平台的太赫兹成像最小控制系统,该系统主要包含FPGA 硬件逻辑定制的软核以及ARM 操控硬核和外设的程序逻辑。太赫兹成像系统结果表明,通过USB2.0 系统能将光斑清晰和快速地显示在上位机,帧频能达到50 Hz 左右,而且ARM可嵌入系统和应用程序的优势为未来高集成度、小型化的太赫兹相机提供了基础[9-10]。
1 太赫兹成像控制系统架构
图1 为本文提出的基于FPGA+ARM 异构的太赫兹成像最小控制系统架构图,它包括可编程逻辑FPGA 端的命令接收和解析、时序控制、ADC 控制、数据缓冲和AXI 接口控制模块以及处理系统ARM 端的中断、DDR 控制器和USB 控制器等资源调度和管理。PS 端通过USB 接收上位机命令并将其传给PL,当中断来临时,将DDR 存入的数据经USB 上传到上位机,而PL 端则通过命令接收和解析模块更新时序控制参数,ROIC经时序控制输出的数据通过ADC 转换后进行乒乓缓冲,最后数据通过AXI 接口进入PS 端。PL端按照PS 端的命令对ROIC 进行相应的控制并采集数据传回PS,实现太赫兹成像的控制。PL端和PS 端之间能够进行高速的数据通信,实现命令下发和数据上传之间的同步,从而使整个系统协调工作[11]。
图1 太赫兹成像最小控制系统架构图
这个系统充分结合了FPGA 与ARM 在成像控制领域的优势。 焦平面成像传感器的控制,包含有灵活的外部器件的控制和通信高速接口设计,以及上下位机高速通信交互、数据缓存和事务调度。器件控制根据命令和手册灵活配置时序,高速接口依协议产生固定的时序,因而需要灵活性高、并行度更强的控制器,所以在本系统选用FPGA 来实现。 而上下位机数据通信的控制时序比较复杂,并且数据缓存控制逻辑耗费时间和资源,所以由事务分配能力突出的ARM 处理器来完成,只需在已有的硬件基础上调用相关函数即可。 由此,通过在FPGA+ARM异构器件合理分配事务,可充分发挥各自的优势,使太赫兹成像控制系统速度更高、灵活性更好、效率更高。
2 FPGA 端模块设计与实现
2.1 ROIC 控制
ROIC 时序控制模式有全像元扫描、行扫描、列扫描和单像元扫描四种,需要通过时序模式、行列固定地址和ROIC 工作时序要求,生成行场同步和行列地址信号输入到ROIC 的行列地址控制寄存器组,具体包括帧同步信号FRAME、行同步信号ROW_SYN、行列地址信号ROW_SEL 和COL_SEL;行扫描、列扫描和单像元扫描可以根据全像元扫描和输入的固定行列地址实现,全像元扫描时序如图2 所示。在FRAME 高电平期间,FPGA 输出有效的行列地址信号,行列地址均为0 到31;自FRAME 的上升沿开始,输入第一行地址信号,行同步信号ROW_SYN 为低电平,电路处于信号建立阶段,ROIC 模拟通路打开并将第一行像元变为有效元。最小系统因ROIC 器件特性将建立时间设为300 µs,之后ROW_SYN为高电平,电路处于读出阶段,此时开始输入列地址信号,并通过列控制电路逐次选择输出每行的模拟电压。 输入最后一个列地址后将ROW_SYN 置低,经过20 µs 消隐后,开始下一行的建立时间和行列地址输入;当第32 行消隐完成后,FRAME 置低。 太赫兹成像最小控制系统每列读出时间设为10 µs,ROW_SYN 周期则为640 µs 且不大于FRAME 低电平时间,所以本系统FRAME 低电平时间设为670 µs。
图2 CMOS ROIC 全像元扫描控制时序
图2 中S1和S2为行建立阶段,时间为300 µs。FPGA 依据图2 输出固定时序发送到ROIC,ADC将ROIC 输出的模拟信号转换为数字信号并发回FPGA,最后FPGA 通过ARM 把数据传输到上位机进行显示。通过连接示波器和芯片引脚可观察FPGA 实际输出的ROIC 控制时序,结果如图3所示,频率达到47.3 Hz,满足系统要求。其中D2代表FRAME,D1代表ROW_SYN,D5~D9代表ROW_SEL[4]到ROW_SEL[0],D10~D14代 表COL_SEL[4]到COL_SEL[0],从图中可以看出实际和理论时序图相符。
图3 ROIC 实际控制时序
2.2 ADC 控制
系统选用ADS8422 为模数转换器件,该芯片是一款具有内部采样和保持功能的16 位电容器型多位SAR、最高采样速率达4 MHz 的A/D 转换器;同时它具有-4~4 V 伪双极、全差分输入范围并且内置4.096 V 基准电压VREF 和基准缓冲器,采样精度高达16 bit。它不仅可以将差分输入信号转换成16 bit 并行数据,还可以通过COMMOUT引脚设置模拟输入共模电压从而实现单端输入,本系统模数转换采用单端输入和内部基准电压,输入范围为0 到2VREF,满足太赫兹成像控制系统高速、高精度和低功耗的要求。图4 为设计的ADS8422 引脚连接图,左侧为模拟引脚,右侧为数字引脚。 COMMOUT 引脚输出2.048 V用于设置模拟差分输入的共模电压,将单端输入信号转为差分信号,可有效抑制干扰和共模噪声,降低了偶次谐波,而且高信噪比会获得更有效的图像信息[12]。 FPGA 通过DB0 到DB15、BUSY 和CVST_N 信号与ADC 建立连接,完成对ADC 的控制,使其在每个列地址读出时间内对ROIC 输出信号采样8 次,之后对数据求和取平均以提高采集精度。
图4 ADS8422 引脚连接
FPGA 与ADC 之间的信号交互时序设计如图5 所示。FPGA 通过CVST_N、BUSY 和DATA 信号,与ADC 建立数据交互,完成数据的采集。CVST_N低有效,和CVERT 都是模数转换信号,孔径延迟t3为CVST_N 下降沿到实际开始模数转换的时间;BUSY 是模数转换和数据有效标志信号。CVST_N 初始为高电平,拉低后BUSY 和CVERT变为高电平,表明ADC 从采样模式切换到转换模式,模数转换过程中,两个输入都与任何内部功能断开。CVERT 高电平持续t5后拉低,表明模数转换完成,而CVST_N 低电平持续t1后变为高电平,再经过t2后完成下一次采样,t4为转换周期。CVST_N 低电平持续t7后,数据在ADC 内部已经转换完成,再经过t8后BUSY 为低电平,表明此时为有效数据,BUSY 在转换过程中保持高位。如果在转换结束时检测到CVST_N 高,设备立即进入采样模式,模拟输入连接到CDAC。其中ACQUISITE 为数据采样信号,与CVERT 完全相反,高电平采样时间为t6。
图5 ADS8422 模数转换控制时序
将FPGA 产生的ADC 控制时序通过引脚连入示波器,可观察到实际的控制时序,如图6 所示。D0代表列地址时钟ADD_CLK,频率为100 kHz;D1代表行同步信号ROW_SYN,D3代表CVST_N信号,D4代表数据ADC_RDY 数据有效信号。D3和D4说明每个像素点连续采集8 次,之后加权平均,输出最终像素值。 从图中可以看出实际和理论时序图相符。
图6 ADS8422 实际行列控制时序
3 ARM 端USB 通信设计与实现
USB 接口作为主机和外设间高速稳定的双向通道,在图像数据采集、控制科学中广泛应用。本文将USB2.0 的slave FIFO 工作方式和ZYNQ7020的ARM 端USB 控制器有机结合,设计实现了USB和上位机的双向通信。图7 为USB 双向通信系统框图。
图7 USB 通信系统框图
USB 控制器使用ULPI 协议通过MIO 的12 个引脚连接外部ULPI PHY,该IP 核一侧通过UTMI接口或PHY 与PC 机端进行通信,另一侧则通过AHB 总线与ARM 相连。每个控制器都是连接到PS 的AHB 总线主机,并且通过控制器的APB 从接口访问控制和状态寄存器。其中DMA 引擎负责在Rx/Tx FIFO 和系统存储之间移动USB 事务数据,数据结构由设备队列头和设备描述符组成。 传输完成后,DMA 会将描述符写回系统内存,这些FIFO 通道可以同时保持异步运行。协议引擎负责解析USB 令牌包,生成响应包并执行错误检查功能,将数据移动到DMA 控制器。它还会向DMA 引擎报告所有传输状态。ZYNQ7020芯片不带USB 接口的处理,不能直接处理USB 总线上的DP、DM 的差模信号,所以使用高速USB 2.0 收发器USB3320 PHY 芯片,可以把DP、DM 上的差模信号转成共模信号。
软件设计部分:通过固件程序驱动USB 控制器来完成USB 双向通信。首先需要查找USB 控制器配置信息,然后通过配置信息初始化控制器,接着设置中断系统和端点信息,最后通过发送和接收函数将数据路由到上位机或FPGA 端。为了简化开发周期,只需在SDK 提供的固件框架上进行修改即可。系统上电并加载固件程序,主机通过控制管道进行枚举,可获得设备基本描述信息,例如PID、VID 等等。之后主机对设备分配地址,获取设备描述符、配置描述符和端点描述符等等,所以只需对ID 及描述符等配置信息做一些修改即可。
图8 展示的是设备端点信息的配置。 本设计采用端点0 的双向控制传输以及端点1 的发送、接收批量传输,端点0 采用2 个64 Byte 缓冲器,端点1 采用16 个512 Byte 缓冲器。通过固件的ID 生成对应的驱动程序并装入内存,最终可实现USB 双向通信。
图8 USB 设备端点信息
4 控制系统实现及实验结果
配备Zynq7020 开发板、340 GHz 频段AlGaN/GaN HEMT 太赫兹探测器阵列及配套底板、光源和ADC 板、上位机软件和PC 机并搭建整个太赫兹成像最小控制系统,然后将以上硬件系统部分封装成IP 核并添加到模块化设计中,接着添加PS,完成软硬件设计,最后将文件烧写到芯片内,整个系统耗费资源如表1 所示。
表1 太赫兹成像控制最小系统消耗资源表
从表1 可看出BRAM 存储器资源利用率较大,系统内部存在冗余,后期可对设计进行优化。
图9 和图10 是无太赫兹光源的不同扫描方式的图像波形显示结果,其中图9(a)和图10 横轴为列号,纵轴为行号,圆形的横轴为像素位置,纵轴为像素值。通过图9(b)中波形可将疵点在图9(a)中标出,疵点分别位于第19 行第15列和第31 行第2 列,其像素值与平均像素值相差大于50%。 图10 为第30 行和第14 列扫描结果,用红框标注出两个疵点。
图9 无太赫兹光源下的全扫描显示结果
图10 无太赫兹光源下的行列扫描图像显示结果
探测器被太赫兹光源照射,焦平面阵列(Focal-Plane Array,FPA)成像结果如图11 所示,其左下位置出现明显光斑,太赫兹光频率为94 GHz,低于FPA 探测器频率。ROIC 控制时序帧频为47.3 Hz,每帧2 048 字节有效数据,数据实时传输并储存于DDR,之后通过PS 实时读取数据并将其发送上位机。上位机每收到A字节有效数据,需要时间为T秒,其中A实际测得为20 275 200,T为209.354,故实际帧频F计算可得:
图11 94 GHz 太赫兹光源照射下的图像显示结果
式(1)与预期相符并满足系统需求,所以最小控制系统能够实现多种扫描方式的太赫兹实时成像。 系统结合ARM 和FPGA 优势,性能更强、集成度更高,为后期小型化的太赫兹相机设计做了准备。
5 结论
本文提出了一种ARM+FPGA 软硬件逻辑协同设计的太赫兹成像最小控制系统,系统将DDR 和USB 总线驱动通过PS 端固有的硬核完成,节省了FPGA 端的触发器和LUT 等资源。系统通过AXI 协议框架和C 语言缩短了开发周期,高效利用资源,合理分配功耗,而且FPGA+ARM异构大大提高了系统性能和集成度,确保了Zynq 控制系统方案的可行性,为后期高集成度小型化太赫兹相机的设计奠定了基础。受限于ROIC 行建立时间,本系统数据传输速率仅为0.775 Mbit/s,所以后期可针对多个FPA 阵列进行驱动成像,并且还需对探测器阵列进行非均匀性动态校准和图像处理,以此来提升电压响应度、降低噪声等效功率,获取更高质量的图像。