高能电子探测器数据传输系统设计
2018-04-02余庆龙
赵 婷 ,荆 涛 ,余庆龙
(1.中国科学院国家空间科学中心北京100190;2.中国科学院大学北京100049)
地球辐射带(又称范艾仑辐射带)分布的大量高能带电粒子会经由“剂量效应”,“单粒子作用”,“充放电事件”等,造成卫星与飞船的故障,同时,高能粒子的辐射会损害人体基因,对航天员健康造成危害[1]。对辐射带的探测有助于对辐射带的理论研究,具有现实的工程意义[2]。
目前的空间高能粒子探测主要采用应用卫星如中国FY系列气候卫星的搭载载荷。电子科技的发展使得卫星载荷的开发周期短,载荷体积小,功能全面。
高能电子探测器采用半导体传感器作为能量测量设备,电子学读出系统采用集成度高、功耗小的ASIC芯片做前端电子学电路,最后将处理信号通过FPGA传输到主机进行数据显示和保存。高能电子探测器采用FPGA和USB 2.0作为数据传输的手段。
文中将介绍整个高能电子探测器的物理结构设计,详细介绍探测器的数据传输系统的软硬件设计。
1 高能电子探测器总体结构设计
高能电子探测器物理总体结构设计为准直结构,半导体探测器测量系统和电子学系统。如图1所示。
图1 高能电子探测器
准直结构可以形成合适的探测视场,也可以提供一定的屏蔽条件,降低斜入射粒子对探测系统的影响[3]。准直系统主要包括探头外部结构,反散射结构和挡光层,外部结构设计为杯状结构,并在探头外部增加了额外的铜屏蔽;反散射结构目的是防止电子散射对测量的干扰[4];挡光层的材料为15 um的铝膜,能够阻挡1 Mev以下的质子和30 KeV以下的电子。
半导体探测器测量系统采用六块厚度均为1mm离子注入型硅半导体传感器组成望远镜结构。半导体探测器收集带电粒子入射后由电离效应等产生的能量损失,并将能量值转换为脉冲信号提供给电子学系统。
电子学系统对传感器的信号进行采集,通过信号放大、滤波成型、数模转换等输出为数字信号,并通过FPGA传输到上位机进行数据显示和存储。
2 电子学系统设计
半导体探测器输出的是一个电荷脉冲,对这个信号进行采集和分析,就是探测器的前端电子学电路。主要指在ADC之前的模拟电路,包括信号的前置放大电路、滤波成形电路、数模转换等电路[5]。采用分立元件的前端电路已经很难达到现在的需求,所以采用集成度高,功耗小的ASIC芯片。
本题采用的是英国卢瑟福.阿普尔顿实验室RAL(Rutherford Appleton Laboratory)为欧空局的SIXS(The Solar Intensity X-ray and particle Spectrometer)项目研制的一款芯片。芯片采用0.35μm CMOS工艺,内部集成了8个相互独立的传感器信号处理通道,其中6个为硅(Si)半导体传感器信号处理通道,2个碘化铯(CsI)闪烁体探测器信号处理通道,高能电子探测器只需要用到6个硅(Si)半导体传感器信号处理通道。每个通道都含有电荷灵敏前置放大器,CR-RC滤波成型电路,峰值保持电路,阈值设置电路和阈值比较电路[6]。同时芯片配置了串行配置接口,方便外部设置内部工作电压、比较阈值及ADC等参数。图2为芯片的结构图。
图2 ASIC(SIXS)芯片内部原理图
ASIC芯片输出信号与输入信号均为差分信号,所以需要添加差分驱动电路芯片对信号转换与FPGA进行通信。差分电路选用了应用广泛的DS26LV31T,DS26LV32T增强型CMOS四路差分线路驱动器。
3 传输系统设计
这部分主要是通过FPGA作为主控模块,将数据传输到PC,同时接收用户配置的芯片信息。
3.1 硬件设计
硬件设计主要是FPGA和USB芯片组成的电路。FPGA芯片采用Xilinx公司Spartan-6系列XC6SLX45,配置芯片为2CSG324C。该芯片采用45mm技术构建,功耗低、容量大,是一款新价比很高的芯片,可提供各种业界领先的连接特性,如高逻辑引脚比、小型封装以及各种多样化支持性I/O协议等[7]。芯片外接50 MHz有源晶振电路,晶振输出连接到FPGA全局时钟,可以通过调用FPGA IP核来实现时钟的转换。电路通过+5 V供电,通过三路DC/DC电源芯片MP1482转成+3.3 V,+1.2 V,+1.5 V。
数据传输采用的是Cypress公司生产的EZUSB FX2LP系列的CY7C68013A,该芯片将USB2.0收发器、串行接口引擎(SIE)、增强的8051单片机及各种外围接口集成于一体[8]。CY7C68013A芯片内部集成四个大小共为4K字节的FIFO,,可以设置其工作方式为Master或Slave模式。CY7C68013A外接EEPROM,用于固件程序下载,在芯片上电时可以自动读取到内部RAM运行。其FPGA与CY7C68013A主要连接如图3所示。
图3 FPGA和CY7C68013A连接图
3.2 软件设计
软件部分的设计主要分为FPGA部分和USB相关部分,其中USB部分程序又可分为固件设计、USB驱动程序、USB主机程序。
在USB协议中,按照传输数据量的大小、传输速率的高低和对时间的要求,分为四种数据传输类型:控制传输、中断传输、同步传输、块传输[9]。其中块传输的检测错误机制和重试机制能够保证传输时数据的准确性,同时满足大数据传输的需求。
3.2.1 FPGA程序设计
传输系统的FPGA部分程序设计只承担和上位机通讯的功能,暂时没有用到ASIC部分采集的数据。在FPGA中,首先会循环查询CY7C68013A的端口是否有数据,如果查询到数据将数据发送到CY7C68013A的输出端口的FIFO中。
3.2.2 USB固件程序
USB固件程序是指在设备的微控制器中的可执行程序,它一方面用来初始化和配置设备,另一方面用来完成外部硬件与主机之间的数据通信[10]。在USB固件程序开发中,最常使用的是Keil uVision系列软件,Cypress公司为应用最为广泛的EZ-USB芯片提供了一个开发包CY3684_EZ-USB_FX2LP_Development_Kit,其中包括了典型的固件代码,方便用户进行开发和调试。
一般的USB固件架构包括3个文件,一个是PERIPH.C(任务调度函数)、DECR.A51(描述符表)与FW.C(框架源文件)。其中FW.C是固件的原始程序代码,主要实现上电枚举,重枚举,唤醒以及调用用户自己的程序和控制命令[11]。在开发时可以根据需求变更文件PERIPH.C文件中的TD_Init()函数,和 TD_Poll()函数即可。TD_Init()是初始化函数,TD_Poll()为调度函数,一般是 TD_Init()初始化之后,循环执行TD_Poll()函数。
传输系统采用Slave FIFO模式,启用EP2、EP4为Bulk输出端口,EP6、EP8为Bulk输入端口,缓冲区设为512字节,缓冲深度为2级,数据总线宽度为16位。
TD_Poll()函数功能在FPGA程序中实现,所以只需注释掉函数即可。在程序中还引用了一些头文件,fx2reg s.h 与 fx2.h,库文件 EZUSB.LIB[12]。在设计时需要将fx2.H放在fx2reg s.h之前。固件程序编译生成.Hex文件,存储到片外的EEPROM芯片上,上电后自动将固件加载到内部RAM中运行[13]。
3.2.3 上位机程序
在Windows操作环境下,一般需要通过USB驱动程序作为USB主机程序和USB固件程序之间的开发桥梁。目前主要有3种方法开发USB驱动程序,分别为微软公司的DDK(Driver Develop Kit,驱动开发工具包)工具、Compuware公司的DriverStudio工具和KRFTECH公司的WinDriver工具[14]。USB驱动程序最重要的文件,其中(*INF)文件表示设备的信息,(*sys)文件为程序文件。Cypress提供USB驱动程序包SuiteUSB 3.4,由CYUSBPRE.INF文件指定VID(04B4),PID(1004)。
在USB设备程序开发中,可以选用不同的开发平台,如Visual C++,Visual C#与Labview等,基于本课题设计并开发了基于Microsoft Visual C++6.0的上位机程序[15]。Cypress公司提供了全面的CY3684开发包,包括CYIOCTL控制函数类和CyAPI控制函数类对USB设备进行读写。将CYAPI.h、CYIOCTL.h和CyAPI.lib添加到工程项目中,同时需要安装Windows Device Develepment Kit,添加 Windows DDK的头文件到项目中即可。如图4所示。
图4 DDK包含目录
Visual C++提 供 MFC(Microsoft foundation classes)框架,把数据显示和数据处理程序分开,方便开发应用程序[16]。软件传输系统的上位机程序就是应用MFC框架,建立基于CDialog的应用程序。
在开发时Visual C++首先需获得要USB设备的控制句柄,调用IsOpen函数检测USB设备,并获取设备信息。设备连接成功后,在配置窗口进行芯片配置,生成96位配置信息流,“重新配置”清除配置信息,显示框实时显示配置的信息和位数。“Start”开启数据传输,“清除输出窗口”清除显示框文本,“保存数据”将保存为TXT文件,“退出”按钮可以退出程序。图5显示配置窗口配置的96位数据信息流发送到FPGA,接收窗口接收到配置信息,并显示为8位数据串。
图5 上位机程序
4 结 论
基于FPGA与USB2.0的数据传输系统,选取块传输模式,采用Visual C++编写,具有界面友好,数据传输快速准确的特点,可以在传输任务完成时,灵活的进行数据处理。实验结果表明,数据传输系统的双向数据传输准确,达到探测器数据传输的需求。
参考文献:
[1]周大庄,王世金,张斌全,等.近地空间辐射和航天员辐射风险[J].载人航天,2013(4):81-89.
[2]杨晓超,朱光武,符养,等.中地球轨道高能电子辐射环境特性分析[J].空间科学学报,2015(5):581-587.
[3]张忠兵,张显鹏,陈亮,等.脉冲中子测量中的准直器设计[J].核电子学与探测技术,2014(7):820-824.
[4]张焕新.中能电子探测器的设计与研制[D].北京:中国科学院研究生院,2013.
[5]夏文明,龚军军,张磊,等.用于个人剂量测量的硅探测器信号处理电路的设计[J].核电子学与探测技术,2014(12):1478-1481.
[6]徐英姿,余庆龙,梁金宝,等.基于SIXS-ASIC的半导体传感器信号读出电子学系统的研制[J].电子设计工程,2014(11):54-56,60.
[7]石梅林,赵月琴.Spartan-6系列FPGA的配置方法研究[J].电子科学技术,2016(5):553-558.
[8]吴磊,郭超平,申世涛.基于CY7C68013与FPGA的便携式数据采集系统[J].计算机应用,2012,32(S1):164-166.
[9]张超,李洪文,朱丹丹,等.基于USB的高速数据传输系统设计[J].计算机应用,2013(S2):54-56.
[10]李咪咪,韦飞,梁金宝,等.一种应用于CCD读出系统的数据传输系统设计[J].电子设计工程,2016(14):70-73.
[11]王孝娟.基于MOEMS扫描光栅微镜的微型近红外光谱仪的控制与信号获取系统[D].重庆:重庆大学,2014.
[12]王东,李公平,潘小东,等.基于EZ-USB FX2的数据采集系统USB接口设计[J].现代电子技术,2015(4):73-76.
[13]刘志华,郭付才,彭新伟,等.基于CY7C68013A的FPGA配置和通信接口设计[J].电子技术应用,2013(2):18-21.
[14]杨新友,邹岚,钟建军.基于WinDriver的USB驱动程序开发[J].电脑知识与技术,2015(11):231-232.
[15]段晓敏,郭涛.基于USB 2.0的光散射系统上位机软件设计与实现[J].计算机测量与控制,2015(6):2200-2202.
[16]张弦弦,朱全松.基于MFC软件界面设计的视觉优化[J].兵工自化,2016(12):38-40,48.