首页 > 范文大全 > 正文

基于SOPC技术高精度时间数字转换电路的系统设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于SOPC技术高精度时间数字转换电路的系统设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要: 本文介绍一种基于sopc(System on a Programmable Chip)技术高精度时间数字转换电路系统的设计方法。该电路系统中的TDC时间数字转换电路模块采用基于FPGA的粗时间细时间相结合技术实现时间测量电路模块,测量时间精度高达ns级,移植裁剪后的嵌入式Linux操作系统来采集、处理和存储前端TDC电路模块中光子到达时间数据,整个系统能够实现高精度光子到达时间数据的采集、处理和存储,然后利用显示终端直观看到TDC的工作情况,表面整个系统工作正常。

Abstract: This paper introduces a kind of design method of time-to-digital conversion circuit system with high precision based on SOPC technology. The time-to-digital conversion circuit module of TDC in this circuit system gets the implementation of time measurement circuit module of the combination technology of coarse time and fine tuning time by FPGA. The measuring time precision is up to the level of ns. The embedded Linux operating system after the transplantation and cutting is used to gather, save and manage the photon arrival time data in TDC circuit module, and ensure that the whole system can achieve the high precision of the acquisition, processing and storage of photon arrival time data. Then, directly seeing the work situation of TDC by the display terminal and the normal work of the whole system.

关键词: TDC;SOPC;通信协议;FPGA

Key words: TDC;SOPC;communication protocol;FPGA

0 引言

本文利用SOPC技术进行系统开发,选用的FPGA平台为Xilinx公司Virtex系列Virtex-II Pro开发板搭建以硬核处理器PowerPC 405为核心的系统硬件平台,利用ISE(Intergrated Software Environment)与EDK(Embedded Development Kit)的协作设计方法,挂载自定义设计的TDC(Time-to-Digital Converter)时间测量电路IP核于PLB(Processor Local Bus)总线上,最后移植裁剪后的嵌入式Linux操作系统后进行板级验证测试,最终测试结果表明搭建的SOPC系统能够正常工作,并能够采集到通过模拟的高精度光子脉冲到达时间,测量精度能够达到ns级以上。该设计方案有效地缩短了研制周期,提高了设计灵活性,降低了设计成本且无流片风险。

1 系统整体结构框图

整个系统的搭建是基于PowerPC 405微处理器的基本硬件平台,挂载用户自定义外设TDC,移植嵌入式Linux操作系统。图1所示为基于SOPC技术高精度光子到达时间测量电路的系统设计架构框图,从图中可知:外部供电为4.5V-5.5V,提供100MHz的系统时钟,利用System ACE控制器实现CF卡对FPGA器件硬件配置加载以及Linux操作系统加载,本次运行的DDR_SDRAM内存大小为256M,能够通过JTAG口进行外部调试。

2 基于FPGA的TDC时间数字转换电路的设计

2.1 TDC时间数字转换电路的工作原理 时间数字转换电路比较典型的实现方法有计数器技术、电流积分技术、时间放大技术、游标卡尺技术、“粗”计数和“细”时间测量组合技术以及时间内插技术[4,5]。如果只采用计数器技术,虽可实现足够大的动态范围,但不能满足系统时钟经过倍频后的最小时钟周期的测量精度;如果采用电流积分技术、时间放大技术或者游标卡尺技术,虽然可以实现较高的测量精度,但无法满足2000s的动态范围以及从ns到百年的数据宽度。德国acam公司生产的TDC-GPX专用时间测量芯片,其测量精度、动态范围虽然均满足脉冲星X射线光子到达时间测量的设计要求,但芯片价格较高。本文设计的TDC时间数字转换电路模块采用基于FPGA的粗时间(Coarse Time)细时间(Fine Time)相结合技术实现测量电路模块,粗时间为秒以上的时间,如2014年5月25日20时53分24秒,细时间为秒以下的时间,如0.1s,0.1ms,0.1us,0.1ns 等,在满足时间测量的高精度、大动态范围的同时,具有价格低廉、灵活性强等优点。如图2所示,为光子脉冲到达时间的测量时序框图。图中clk上升沿到来时插入秒以上粗时间,T0为TDC系统开始工作的时间,T1为光子脉冲时序图。当T0开始工作后,粗时间计数器和细时间计数器同时开始工作,当有光子脉冲到达时,会产生高电平的脉冲信号,利用此脉冲信号作为触发信号,将粗时间Tc和细时间Tf同时锁存后存储,所以光子到达时间T=Tc+Tf 。

2.2 TDC时间数字转换电路的设计 如图3所示,整个TDC模块中,细时间测量部分通过设计倍频器,格雷码计数器,时间内插电路、译码电路以及细时间结合模块部分,粗时间部分通过将系统时钟进行分频实现1Hz的时钟频率,然后利用coarse time 模块生成秒以上的时间。通过模块结合实时生成光子到达时间数据,将光子脉冲到达时间数据进行锁存、存储后送给后端操作系统进行进一步处理。

3 SOPC系统设计

SOPC系统设计是利用Xilinx公司的嵌入式开发工具EDK来搭建整个系统,EDK设计主要由硬件设计和软件设计两部分组成。

系统硬件设计:

①SOPC硬件开发平台概述。本文设计使用的是Xilinx公司Virtex-II Pro系列芯片型号为XC2VP30的FPGA开发平台,采用0.13μm、1.5V工艺技术制造而成;集成了30816个逻辑单元;8个DCM(时钟管理单元),采用先进的IP植入技术在FPGA中嵌入两片32位的IBM PowerPC 405硬核微处理器。PowerPC 405是32位体系结构的嵌入式处理器,采用精简指令集框架的CPU,运行的最高频率可达到300MHz,能够实现更快的数据处理能力。

②硬件平台。SOPC硬件系统平台的搭建是利用Xilinx公司的嵌入式开发工具EDK,其为Xilinx公司在ISE基础上开发的一套嵌入式开发工具,通过集成在EDK中的XPS(Xilinx Platform Studio)图形界面来选取相应的处理器、存储器以及挂载TDC设备等完成整个SOPC系统的开发,软硬件同时进行。在Xilinx公司的ISE下完成TDC模块的构建后,通过ISE与EDK协作设计方式,完成设备TDC模块的挂载,最终生成适用于硬件系统平台硬件比特流文件。

4 系统软件设计

系统软件的设计主要包括交叉编译工具链的制作、内核裁剪、EXT3根文件系统的制作、编写外设TDC驱动程序、编写外设TDC应用程序以及生成ACE文件。

4.1 制作交叉编译工具 Xilinx公司不提供基于PowePC 405体系架构的交叉编译工具链,因此在裁剪内核、制作根文件系统之前,需要先制作交叉编译工具链,从网上下载crosstool交叉编译工具等相关工具。最终生成交叉编译工具链。然后在/root/目录下建立sources文件夹,crosstool-ng-1.5.3会自动下载相应软件包。通过图形配置界面进行相关配置,勾选相应的配置参数。

4.2 EXT3根文件系统的制作 下载buildroot-2009.02.tar.gz,在进行相关的配置后执行make,最终生成了linux系统根文件的压缩文件rootfs.powerpc.tar 和rootfs.powerpc.tar.gz,这个压缩文件还要修改控制台信息以及与硬件平台相关的网络配置文件。在更改etc/inittab的配置文件时,需要将“#ttyS0::respawn:/sbin/getty-LttyS0 115200 vt100”替换为“#ttyUL0::respawn:/sbin/getty-L ttyUL0 115200 vt100”。更改etc/init.d/rcS文件,在最后一行添加“/sbin/ifconfig eth0 192.168.X.X netmask 255.255.255.X up”保存,以上完成了根文件系统的制作。

4.3 内核裁剪 下载内核后进入虚拟机的Fedora 10操作系统终端下解压内核后,由于linux内核树只支持到xps-ethernetlite-2.00.a,而EDK 10.1 SP3提供xps-ethernetlite-2.00.b,所以需要修改一下,通过命令:gedit drivers/net/xilinx_emaclite.c添加一行{ . compatible = “xlnx, xps-ethernetlite-2.00.b”} 后保存。通过命令:gedit arch/powerpc/boot/wrapper对其进行编辑,对交叉编译设置环境变量,因为本内核针对的是powerpc架构处理器,采用的交叉编译工具链为powerpc-405-linux-gnu。在终端运行make menuconfig,按功能要求对内核模块进行裁剪和配置。配置完后,将生成的xilinx.dts拷贝到linux-2.6-xlnx/powerpc/boot/dts目录下,并将xilinx.dts改为virtex405-tdc.dts。执行命令:cd /linux-2.6-xlnx/arch/powerpc/boot,生成可以在搭建的硬件平台中运行的.elf格式的virtex405-tdc.elf文件。

前面部分完成交叉编译工具链制作后,开始内核的裁剪和EXT3根文件系统的制作。本系统设计采用版本号为Linux-2.6.37的内核和buildroot-2009-02.tar.bz2来制作EXT3的根文件系统。然后根据前面硬件平台的需求进行裁剪、配置,去掉不需要的功能以降低占用系统的资源。将裁剪好的.elf格式的可执行文件通过XPS软件生成ACE文件后,如图4所示,系统能够正常启动,完成了SOPC系统的开发。

4.4 TDC设备驱动程序 驱动程序是介于硬件和Linux内核之间的软件接口,是内核的一部分,运行于内核模式,为内核提供IO接口。操作系统通过驱动程序来控制硬件设备同时它为用户屏蔽了各种各样的设备,提供了统一的操作方式。本系统设计中扩展了自定义的TDC设备,移植嵌入式操作系统,由于没有针对TDC外设的设备驱动程序,需要用户自行设计编写驱动程序来控制TDC硬件设备资源,当应用程序需要采集高精度光子到达时间数据时,操作系统可以通过驱动程序来实现对FPGA硬件设备的控制,设备驱动程序为应用程序屏蔽了硬件的细节。

驱动程序的入口点是一个struct file结构,在中定义。它定义了常见I/O口函数的入口。其中字符设备驱动包含设备注册、设备解除注册、打开设备、释放设备、读写设备、获取内存、打印信息等部分。struct file结构如下:

static struct file_operations driver_tdc_fops = {

.owner=THIS_MODULE,

.open=driver_tdc_open,

.release=driver_tdc_release,

.write=driver_tdc_write,

.read=driver_tdc_read,

.unlocked_ioctl=driver_tdc_ioctl,

};

TDC设备驱动程序主要由TDC设备驱动程序的初始化、系统调用以及TDC设备驱动卸载三部分组成。当TDC设备驱动程序初始化完成后,应用层调用open( )打开设备。通过 file_operations( )提供的系统调用的接口,对TDC设备进行读、写和控制操作。系统调用包括打开TDC设备(open())、读TDC设备(read())、写TDC设备(write())、控制TDC设备(ioctl())、关闭TDC设备(release())。

4.5 TDC设备应用程序 完成TDC设备驱动程序的设计后,要实现光子达到时间数据的采集需要编写应用程序,由于TDC设备驱动程序屏蔽了底层硬件设备的细节,可以编写简单的应用程序,通过操作普通文件,同样利用open( )、close( )、read( )、write( )等文件处理函数,实现对硬件设备读写和控制。

最后在EDK嵌入式开发工具中生成ACE文件,实现对FPGA器件硬件配置和嵌入式Linux操作系统的加载。

5 系统测试

系统上电后,操作系统加载到内存后解压,整个系统开始运行,光子达到时间数据采集如图5所示。其中TDC外接模拟的光子脉冲是间隔为10ms的方波,data_c表示秒以上的粗时间数据,由于是将系统初始时间设置的为14年01月01日12点00分00秒,当系统开始工作时开始计时,图5中data_c=140101162540表示截图的时间为14年01月01日16点25分40秒,由于秒到秒之间有100个数据,所以不可能直接显示出来。data_x表示秒以下的细时间,如0.4147352240s, 0.9498842080s等,所以本系统可以测得时间间隔为10ms光子达到时间,并且精度为ns级。

6 结束语

硬件平台的搭建和嵌入式Linux操作系统的移植是SOPC技术的基础。针对Xilinx公司Virtex系列的Virtex-II Pro XC2VP30型号的开发板,本文阐述了TDC时间数据电路模块原理、基于硬核PowerPC 405处理器为核心的硬件平台的搭建以及TDC模块的挂载、嵌入式Linux操作系统的移植、TDC驱动程序的加载、TDC应用程序以及系统的测试结果。验证了移植后的Linux操作系统的稳定性和实时性,能够测量高精度光子达到时间。整个系统能够应用于高精度的数据采集系统。

参考文献:

[1]朱威,王培源,李欣,林强.TDC-GPX在卫星激光测距中的应用[J].大气测量与地球动力学,2011,6:174-177.

[2]帅平,陈绍龙,吴一帆,张春青.李明X射线脉冲星导航技术及应用前景分析[J].中国航天,2006(10).

[3]帅平,陈绍龙,吴一帆,张春青,李明.X射线脉冲星导航原理[J].宇航学报,2007(28):1538-1543.

[4]宋健.基于FPGA的精密时间-数字转换电路研究[D].合肥:中国科学技术大学,2007.

[5]安琪.精密时间间隔测量及其在大科学工程中的应用[J].中国科学技术大学学报,2008(38):758-764.

[6]冯志辉,刘恩海,岳永坚.基于FPGA延迟线插入法的半导体激光测距[J].光电工程,2010(4):53-59.