APP下载

一种USB接口的非制冷红外机芯设计

2022-07-25白龙温

承德石油高等专科学校学报 2022年3期
关键词:固件线程时钟

白龙温,贾 铭

(1.天津机电职业技术学院 电气学院,天津 300401;2.河北工业大学 电信学院,天津 300401)

非制冷红外焦平面探测器凭借价格低、体积小、操作方便等优势在民用红外成像领域应用越来越广泛[1]。特别是以红外成像为基础的非接触红外测温方法,相对于传统的电子体温计或者红外体温枪,具有速度快,精准度高,结合在PC机的人工智能算法可实现人群快速测温,在新冠疫情防控中得到了广泛关注[2]。本文结合USB总线传输速度快、应用广、支持热插拔等优点,设计了一种基于USB接口的非制冷红外成像机芯,使用ULIS公司Pico384非制冷红外焦平面探测器,以FPGA和USB3.0接口芯片作为核心,给出了总体设计图。并针对红外探测器要求低噪声的特点,设计了关键硬件和USB接口相关软件的设计。

1 总体设计

整机系统包括探测器控制模块、信息处理模块和电源接口模块三部分,分别位于3块独立的电路板上,板间通过高速连接器进行信号传输。整体框图如图1所示。

红外焦平面探测器Pico384的像素分辨率为384*288,像素尺寸17 μm,采用IIC接口通信,总功耗<65 mW[3]。FPGA为Altera公司CycloneV系列 5CEFA4F17I7,内嵌DDR硬件控制器,USB芯片为Cypress公司EZ-USB FX3系列CYUSB3014,内部集成AMR9处理器和高度灵活的可编程数据接口GPIF II,支持USB3.0并向下兼容USB2.0,其传输速度达5 Gbps。

红外探测器供电后,接收到主时钟和FPGA发出的IIC配置信号开始启动,并输出原始模拟视频信号以及像素时钟(PSYNC)、行同步(HSYNC)和帧(VSYNC)同步等数字信号。同步数字信号直接进入FPGA,而原始模拟视频信号则经低噪声信号调理电路滤波放大转成差分信号,经高精度高速低噪声ADC完成数据转换成数字量后进入FPGA内部处理缓存,FPGA根据同步信号对该缓存数据调整接收并存储为一帧图像数据.随后图像数据经过非均匀性矫正、坏元替代等处理算法后,向USB芯片的GPIF II口传输数据,USB芯片打包数据并向PC端传输,PC端解码后获取图像数据。

2 关键硬件设计

红外成像过程中过多的噪声将直接影响红外图像质量,大大减少红外图像测量的精度。ADC采样电路之前的模拟部分更容易引入噪声,为此设计合理的低噪声探测器供电电路、信号调理和ADC电路将显得尤为重要。

2.1 探测器低噪声供电设计

Pico384焦平面需要数字电压VDD 1.5 V、模拟电压VCC 3.6 V、模拟偏置电压VSK固定3.6 V(最大电流1 mA)输入,以及可调的模拟偏置电压GSK(调整范围:1.7~3.6 V)和GFID(调整范围:1~2.9 V)[3]。传统方法为DC/DC或LDO直接供电,这种方法易引入开关噪声或输出噪声无法达到很低的水平,本文采用高输出电流的运算放大器供电,运算放大器具有较高电源抑制比和较低的输出噪声。GSK和模拟电压VCC 3.6V设计电路如图2所示。

2.2 低噪声信号调理和ADC电路设计

Pico384输出的模拟视频信号易受干扰以及幅值不在ADC的输入范围以内,需要通过信号调理进行滤波、调幅、转换等。根据系统性能以及成本等综合考虑,ADC选择AD6645-80,其具有14位采样精度,2.4 V参考源输出,80 MSPS(Million Samples per Second,每秒采样百万次)的采样速率,信噪比75 dB。整个电路分为如图3所示两个部分[5]。

模拟视频信号的频率为13.5 MHz,幅值为0.5~2.9 V (电压峰峰值为2.4 Vpp),而ADC芯片AD6645-80的差分输入范围为2.2 Vpp,故信号调理模块完成单端信号转换成差分信号的功能,并缩小放大倍数为0.916倍。配置增益电阻值如图2中RF和RG所示,其中R1为单端匹配电阻用以减少信号反射引起的失真,R2为补偿环路增益电阻[3]。差分信号经直流耦合输入ADC差分输入管脚,其中RF和CF构成低通滤波器.

下边考虑信号调理模块中运放ADA4937的输入噪声和ADC输入时钟的时钟抖动对ADC信噪比的影响.

式中:FSR为ADC芯片AD6645满量程输入[4]。SNR为ADC芯片AD6645的信噪比。

运放ADA4937和ADC芯片AD6645本身噪声叠加后为146 μV,可得最终信噪比为74.5 dB,则信号调理电路选用运放ADA4937,对ADC的噪声影响是很小的。

ADC的信噪比还受输入ADC的时钟抖动(Jitter)的影响,分析过程如下所示。

SNR=-20log10(2×pi×fin×JitterTotal)

(1)

(2)

式中:SNR为ADC芯片AD6645的信噪比;fin为被采样信号的输入频率;JitterTotal为对ADC芯片AD6645信噪比产生影响的时钟总体抖动;JitterApeture为ADC芯片AD6645的孔径抖动;JitterExt_clock为外部时钟发生器提供的时钟抖动。

据上文数据知:fin=13.5 MHz,SNR=74.5 dB,孔径抖动取JitterApeture=0.1 ps,根据上述公式计算的外部输入时钟Jitterext_clock<2.09 ps,则外部时钟发生器提供的采样时钟要满足此要求[8]。

3 USB接口相关的软件设计

USB接口相关的软件根据功能分工分为三个部分:FPGA固件设计、CYUSB3014的固件设计以及上位机驱动软件设计。FPGA 固件在Altera公司的Quartus II 13.1开发环境中编译和调试,采用Verilog语言编写,实现了图像数据帧头打包传输和USB接口控制。CYUSB3014的固件是USB设备开发中的最重要的部分,就是对CYUSB3014内部的ARM芯片编程进行各种寄存器的配置过程,在Eclipse开发环境中进行编译和调试,采用C语言编写,实现了GPIF II和DMA通道的开发设计.上位机驱动软件在开发环境为QT,采用C++编写,实现USB传输图像数据的接收解码和显示。

3.1 FPGA固件设计

如图4所示为CYUSB3014的GPIF II接口和FPGA的硬件连接,CYUSB3014配置成Slave FIFO模式,与普通FIFO功能一样,有读写控制、线程地址以及“读空”“写满”标志位等信号,FPGA检查和控制这些信号与GPIF II接口进行数据交互。

FPGA内USB接口控制状态机的设计如图5所示,状态数为6个,分为读取上位机指令和写数据两部分,包括读取线程0(线程地址为ADDR=′00′)的指令到对应的控制器寄存器组,以及FPGA内部FIFO中的数据写入线程1(线程地址为ADDR=′01′)当中,工作流程如下:

1)状态机复位后进入IDLE状态,清零各个使能位。

2)判断线程0有上位机指令(Read_Empty=′0′)后,进入READ_0准备读取控制指令,并在READ_1中读取指令存储到控制器中,回到IDLE状态。当线程0没有指令并且FPGA内部 FIFO缓冲的数据大于n时,进入WRITE_0准备向线程1写入数据.此时若线程1没有写满(Write_Full=′0′),进入WRITE_1并读取FPGA内部FIFO 的n个数据,写入GPIF II接口,否则进入WRITE_2,清零使能位并返回IDLE状态[7]。

为保证图像数据准确识别,FPGA在每帧图像数据的帧头和行头添加标识符,以表示每帧和每行的起始点,然后和图像数据打包成新图像数据传到PC,以便PC根据标识符正确解析图像数据显示[9]。

3.2 CYUSB3014固件设计

CYUSB3014的固件程序主要包括系统初始化、应用程序初始化等,通过配置GPIF II接口和DMA通道开发,实现了FPGA和PC的高速数据传输和PC端控制指令下发。GPIF II接口配置为SLAVE FIFO模式与FPGA实现无缝衔接,为实现管理USB和GPIF II口之间的数据传输的DMA通道的功能,引入了P Socket(生产插座)和C Socket(消耗插座)可方便配置DMA传输。

固件初始化流程包括:器件初始化,包括器件Cache配置,IO管脚配置,初始化OS并开始OS定时,函数CyFxApplicationDefine()会被FX3库自动调用来开始应用程序。

应用程序初始化主要包括两部分:GPIF II和USB初始化,其中USB初始化包括Endpoint初始化、P Socekt和U Socekt、DMA配置、FLAG标志位设置等。

固件中主要完成2个数据通道的配置工作:

1)图像上传的通道,USB配置成C Socket,对应Endpoint3,GPIF II配置成P Socket,对应线程01。

2)指令下发通道,USB配置成P Socket,对应Endpoint1,GPIF II配置成S Socket,对应线程00。

3.3 上位机驱动软件设计

Cypress公司的CyAPI提供了简单又功能强大的调用接口,只需在QT上位机应用程序中加入头文件CyAPI.h和库文件CyAPI.Lib即可调用相应控制函数,大大减少了开发周期。上位机的驱动流程如图6。

PC端在获取图像数据后,通过检查帧头和行头的标识符确定每帧和每行的开始,并将每行的图像数据放到缓冲区相应位置,当获取一整幅图像转成8 bit并调用QPixmap显示.由于各行独立,当某行数据丢失后,该行将不能正确显示,但不会影响整体显示效果[11].在上位机添加伪彩色处理后整体的显示效果如图7所示。

4 结论

USB接口应用广泛,尤其是CYPRESS公司的FX3系列USB3.0控制器CYUSB3014,接口简单,开发方便,极大地提高了系统可靠性.本文研制的非制冷红外机芯实现了384*288分辨率、25帧的图像传输,并通过实验验证了机芯的稳定性和可靠性。由于本机芯采用模块化设计,修改探测器控制模块可适应不同探测器,具有很强的扩展性,可作为一种通用USB接口的非制冷红外机芯平台。

猜你喜欢

固件线程时钟
5G终端模拟系统随机接入过程的设计与实现
实时操作系统mbedOS 互斥量调度机制剖析
尼康旗舰Z9升级新固件延长高速连拍时间
浅析体育赛事售票系统错票问题的对策研究
基于国产化IT 基础设施的通用固件安全模型研究
这个时钟一根针
有趣的时钟
时钟会开“花”
英特尔发布免费固件引擎
提取ROM固件中的APP