完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1.引言
时间数字转换电路 TDC (time to Digital Converter)广泛应用于高能物理中粒子寿命检测、自动检测设备、激光探测、医疗图形扫描、相位测量、频率测量等研究领域[1]。如在医疗图象扫描仪 PET中广泛使用 TDC设备,其原理是检测人体内正电子对消失后产生的一对 gamma射线光子,利用模拟电路将所释放的 gamma射线光子与阈值比较,并在高于该阈值时产生一个触发脉冲,数字 TDC电路测量该触发脉冲到达的时间。早期该类设备中的 TDC的分辨率为 2.5ns,目前新型设备中分辨率已达 1.4ns [2]。在激光探测中,TDC电路用来测量 TOF(Time of Flight for Laser),即分辨从激光源到目标后再返回到激光检测器的时间[3]。另外,TDC也是间接实现 ADC的手段之一。如果在模拟信号前加一个 ATC(Analog to Time Conversion),加上后续的 TDC部分则可以完成 ADC过程。 早期 TDC电路通常由印刷线路板(PCB)上的分立元件组成,且通常是模拟-数字混合电路,因此功耗和体积较大、电路的一致性较差。超大规模集成电路(VLSI)工艺的进步使TDC设计在保持高分辨率的前提下向高集成度、低成本、低功耗方向发展。同时全数字集成(All DIGItal Integration)电路设计因工艺简单、设计成本较低、设计难度较小、流片成功率高等因素而一直是电路设计人员追求的目标,全数字的 TDC也是研究人员关注的问题。 文献[4]于 1993年报道了一种基于环形延时门的全数字 TDC设计。该设计以 1.5微米 CMOS工艺实现了 13位数字转换输出,芯片面积为 1.1mm 2,分辨率为 0.5ns。之后于 2003年,该作者在文献[5]报道了一种全数字化的模数变换电路,该电路基于环形延时门的全数字TDC实现。文献称以 0.8微米 CMOS工艺在 0.45mm 2面积上实现了 18位全数字的 ADC。 随着集成电路(IC)制造工艺的不断进步,以FPGA(Field Programmable Gate Array)和CPLD( Complex Programmable Logic Device)为代表可编程逻辑器件 PLD产业迅速发展,逐渐蚕食专用集成电路ASIC(Application Specific Integrated Circuit)所占市场份额。这一发展使得基于PLD的TDC设计成为可能。众所周知,基于PLD的设计可以有效地缩短研制周期, 提高设计灵活性和可靠性,降低设计成本且无流片风险。成功设计的IP核(Intellectual Property Core )与工艺相对独立,可灵活地移植到其他SOC,使设计重用变得十分方便。 本文借鉴文献[4]和文献[5]的环形延时门法提出一种基于 FPGA的高精度 TDC的设计方法,为了适应 FPGA设计,对延时门法做了改造。如果简单移植延时门设计,在 FPGA中实际是行不通的。因为与 ASIC设计不同,在 FPGA里门电路是由 EDA软件综合后实现,首先很难保证各门之间的延时一致性;其次,在时序上也很难保证和其他电路的配合。为了提高分辨率,与单纯计数型 TDC不同,本设计中也采用类似环形延时门设计的粗计数和细计数两部分电路对给定的时间量进行测量,粗计数部分控制测量范围,细计数部分则由环形移位寄存器代替环形延时门实现。本转换电路以 QuartusII 4.2为软件平台在 Altera系列芯品上实现,时序仿真表明昀高分辨率可达 3.3ns。 2.基本工作原理 基于环形延时门的 TDC系统的原理框图如图 1 所示,PA是起始脉冲,由非门组成的特定结构延时链提供脉冲 PA的延时信息。在 PB上升沿,延时信息经锁存编码电路锁存并编码后输出,脉冲 PB与 PA之间的时间差即由编码输出的数字量表示。实验结果表明,该方法适用于 ASIC实现,但不适用于 FPGA实现。原因是目前 EDA工具中综合器的综合结果是从设计对象的逻辑功能出发,而不注重设计者所特定的电路结构,而根据 FPGA电路的内部电路特点,文献[2]提供的延时链结构并不适于在 FGPA上实现。FPGA内部布线延时的不确定性会大大增加各单元延时信息的离散性。文献[6]介绍了该方法的 CPLD实现,但该法针对具体芯片附加了许多约束条件,延时链中每个非门由片内的一个逻辑宏单元 LE实现,由于 CPLD容量相对较小,导致芯片资源利率低,芯片间的移植性差,且由于 FPGA与 CPLD结构上的差异暂无法在 FPGA上实现。以下介绍一种全新的基于 FPGA的高精度 TDC设计方法。 [/url] 基于 FPGA的 TDC电路原理如图 2所示,该电路包括 16位环形移位寄存器 (Ring Shift Register)、16位输入 4位输出的编码电路 (Encoder)、时钟管理模块(Clockmgr)、8位通用计数器单元(Counter)、复位逻辑(Reset Logic)和输出逻辑部分(Out Logic)。其中环型移位寄存器和编码器组成该电路的细计数器部分,用来控制电路测量精度;通用计数器作为粗计数部分,决定电路的时间测量范围;时钟管理模块通过调用 FPGA内部 PLL资源用来为移位寄存器提供合适的工作时钟;复位逻辑控制整个 TDC电路的复位动作;输出逻辑将转换数字量的细计数和粗计数部分组合为昀终系统输出。 16位移位寄存器构成如图 3,由 16个带异步复位和置位端的 D触发器组成,初始状态或复位后电路节点 p15被置位高电平,其他节点(p14至 p0)被复位至低电平;正常工作时,在移位脉冲 clk上升沿时高电平在 16个电路节点中循环出现,通过检查某时刻电路节点的状态(高电平的位置)可以判断系统所经历的移位脉冲 clk的数量,电路的时间分辨率即为 clk的时钟周期。编码器对移位寄存器节点状态编码并作为测量电路细计数部分的 4位输出。通用计数器工作在移位寄存器节点 p15的上升沿,其计数周期为移位脉冲周期的 16倍,完成低位到高位的进位计数,并作为测量电路的粗计数部分的 8位输出。复位逻辑负责环形移位寄存器和通用计数器的复位操作。输出逻辑分别将粗计数和细计数输出的 8位和 4位数据组合为测量电路的昀终输出,并完成数据的校验。 [url=http://upload.semidata.info/new.eefocus.com/article/image/2012/09/08/50b8c1658bc57.jpg] 基于 FPGA的单计数器脉宽测量电路采用在脉冲宽度对应的时间内记数的方法,因高频工作时计数器会出现跳码或漏计现象,造成系统错误输出,所以分辨率很难提高 [7]。与单计数器脉宽测量电路相比采用结构简单的细计数电路能大大提高电路的时间分辨率,并避免了通用计数器极限工作频率下的跳码现象,且细计数电路占用极少的片上资源。 3系统实现及优化 Altera公司提供的 Stratix和 Cyclone系列 FPGA芯片具有嵌入式锁相环( PLL)模块,该模块可对外部时钟进行倍频分频及相移操作,可编程占空比和外部时钟输出,进行系统级的时钟管理和偏移控制,常用于同步内部器件时钟和外部时钟,使内部工作的时钟频率比外部时钟更高,时钟延迟和时钟偏移昀小,减小或调整时钟到输出(TCO)和建立(TSU)时间,从而提供完整的时钟管理方案。使用 Altera Quartus? II软件无需任何外部器件,就可以调用芯片内部的 PLL来实现相应功能。 该系统时钟管理模块调用 FPGA内部 PLL实现,通过 QuartusII设置参数为:Ratio为倍频/分频因子(Ratio)为 4,输出时钟相移 (Ph) 为 0,输出时钟占空比 (DC)为 50%。 该 TDC电路的时间分辨率取决于环形移位寄存器和编码电路组成的细计数部分,要得到正确的测量数据必须保证对移位寄存器输出状态的正确编码。与 ASIC设计不同,设计者很难预料 EDA软件布局布线(Layout)后的情况,而且各种不同结构和性能的可编程器件布局布线的结果也不尽相同,而且构成移位寄存器的 D触发器的时钟到输出时间(TCO)和 D触发器输入在金属连线上稳定建立的时间(TSU)也存在一定离散性,使得高频移位脉冲(纳秒级)工作下的移位寄存器在状态转换时出现毛刺现象,影响编码正确输出,同时编码器的固有延时特性也限制系统的时间分辨率。该脉宽测量电路系统采用的优化的编码算法,使得高频移位状态下编码输出能准确反映环形移位寄存器上各节点状态,从而保证了该系统的测量精度;移位时钟为 333MHz(周期 3ns)时在 Altera公司 Stratix和 Cyclone系列芯片上实现了编码器的正常工作。 该系统包含了粗记数和细记数两部分电路,粗记数电路在细记数字电路高位输出(图 3中 p15)的上升沿工作。但是由于粗记数电路的延时在被测脉冲( clks)上升沿时可能会造成对输出数据的误读。 为解决误读现象,在输出逻辑模块里加入纠错电路。对被测脉冲 clks延时 clk周期后产生新时钟 clks1,在 clks和 clks1的上升沿同时对 q1和 q0取样并对取样数据进行处理后作为昀终数据输出,从而有效地解决了误读现象。 移位脉冲工作频率即为该测量电路的时间分辨率,通过时钟管理单元可采用不高的外部时钟便可得到很高的测量精度。 4仿真结果和测试数据 为测试该系统的时间分辨率,为基本时间数字转换电路附加特定功能电路,使其具有连续测量时钟脉冲宽度的功能,测试对象是 clks的高电平延续时间。通过改变时钟脉冲源的频率来记录该电路对应的测量数据,从而得到该 TDC电路的时间分辨率。 本文以 QuartusII Web Edition 4.2为软件平台,实验表明,本 TDC设计在 Altera各主流芯品上的时序仿真均能顺利通过。适配 Cyclone EP1C3Q240C8芯片的时序仿真表明,移位时钟为 333M(即分辨率为 3ns),所得到的测试数据输出正确地反映了被测脉冲的宽度,被测脉冲下降沿到测量数据建立的延时为 5ns。 由该 TDC构成的脉宽测量电路在 Cyclone EP1C3Q240C8芯片实现,系统外部时钟 25Mhz,PLL设置倍频因子 8,由 SP1641B信号发生器提供固定的被测脉冲频率 F,时间分辨率 Res的分布如图 4所示,测试数据表明 Res在 4.9-5.1ns之间,理论值为 5ns。 [url=http://upload.semidata.info/new.eefocus.com/article/image/2012/09/08/50b8c1658bc57.jpg][/url] 测量和仿真数据表明该电路能达到纳秒级时间分辨率,逻辑资源占用少,可在低密度芯片上实现作为专用测量电路使用,或在高密度芯片上作为功能模块嵌入到特定功能的片上系统(SOC)中;该 TDC电路的转换速度也在纳秒级,使该电路适用于实时数据采集及高速数据处理系统。精度可调也是该设计一大特点,移位脉冲的工作频率决定了该转换系统的转换精度,通过时钟管理单元可以产生不同频率的移位时钟,从而测量精度可以根据具体需要进行适当调整。 5结束语 本基于 FPGA的时间数字转换电路设计在占用较少芯片资源的前提下,实现了很高的测量精度,工作时数据转换速度也在纳秒级;本设计电路接口简单可作为独立的功能电路使用,亦可作为功能模块 IP核[8]方便地嵌入到其他系统实现特定功能。基于 Altera芯片的时序仿真和硬件测试表明了该方法的可行性和准确性。 |
|
相关推荐
|
|
[FPGA经验] 基于FPGA的多路模拟量、数字量采集与处理系统 [复制链接]
2888 查看 20 回复 | 发表于 2011-8-23 10:15:34 只看该作者 倒序浏览 在电气测控系统中,常常需要采集各种模拟量信号、数字量信号,并对它们进行相应的处理。一般情况下,测控系统中用普通MCU(如51、196等单片机或控制型DSP)就可以完成系统任务,但当系统中要采集的信号量特别多时(特别是各种信号量、状态量),仅仅靠用普通MCU的资源就往往难以完成任务。电子论坛所提出的一种基于FPGA的模拟量、数字量采集与处理系统,利用FPGA的I/O端口多,并且可以自由编程支配、定义功能,这样就能很好地解决采集的信号路数多的问题。 系统组成 本系统中的外围电路设计相对简单、可靠,且鉴于FPGA自身的特点,系统具有较好的扩展性,在监测和控制系统中也具有一定的通用性。系统主要包括:FPGA芯片区、多路选择与A/D采样电路、时钟电源区、PROM代码下载电路等几部分。结构示意如图1所示。 FPGA芯片特点分析及资源分配 本系统中的FPGA是采用Altera公司的EP1C20F400。该系列的内核采用1.5 V供电,I/O端口供电电压为3.3V。 FPGA内部资源划分为四大部分,如图2所示。 (1)FPGA逻辑运算中心。用来接收其他各部分的数据,并按照程序中设定的方案对所收到的数据进行相应的分析和处理。包括:对从MCU接收来的数据指令进行分析,并按其指令要求进行相应操作;接收A/D采样来的数据,对数据进行处理,存储等工作。 (2)A/D控制单元。主要负责控制外部A/D芯片和多路开关的选通时序,以及实现对A/D采要过程的合理控制,利用FPGA实现A/D自动采集与数据存储。 (3)数字量监测控制单元。负责所有要监视和控制的数字量的状态数据的采集和控制命令的输出。这一部分主要实现数字量输出的控制、数字量输入的存储、数字量输入状态变化识别(中断输入)。 (4)FPGA接口逻辑控制单元。在FPGA内部设计了FPGA模块与外界MCU的接口单元,该部分主要用于同CPU的接口,使数据采集系统可以方便的与PCI、ISA及其他总线连接。 模拟量采集的控制与管理 在模拟量采集外围电路中,A/D芯片采用的是AD公司的AD976A。多路模拟量是通过AD438的多路开关后输入到AD976A芯片的。 A/D采样部分可分为:寄存器组、时钟发生模块、采样控制状态机、数据存储模块。 1 寄存器组 寄存器组用于设置/读取A/D的工作状态,包括:采样频率设置寄存器、工作模式选择寄存器、工作状态寄存器及FIFO中断寄存器。 (1)采样频率设置寄存器Frereg1,Frereg2(R/W):两个16位寄存器,用于设置12路A/D的采样频率, (2)工作模式选择寄存器modereg(R/W)。16位寄存器,用于设置A/D的工作模式和启动、停止FPGA (3)FIFO中断寄存器(fifo_int)(R):16位寄存器,用来记录FIFO的状态 2 时钟发生模块 (1)把时钟分频为1 MHz时钟,作为状态机的工作时钟; (2)生成20 Hz,50 Hz,100 Hz时钟并结合Frereg的值给出12路A/D启动中断信号。3 采样控制状态机每个A/D用一个采样控制状态机,用于自动控制A/D的数据采集。其状态转换图如图3所示。 IDLE:空闲状态。 READ:temp=intreg,进入下一状态 WAIT:等待中断,如果中断寄存器(intreg)不为0,进入下一状态,否则返回READ。 SHIFT:根据temp[0]的值进行下一步操作,若temp[0]=0则temp>>1,同时通道计数器(counter)加1;若temp[0]=1,则根据counter的值给出通道选择信号,进入下一状态。 START:发出RC=0信号,进入下一状态。 W_BLISY:RC=1,等待A/D转换结束信号,如果结束,temp>>1,发出写FIFO信号,进入下一状态。 END:无效FIFO写信号,若temp=0,表明已无中断,coutnter=0,进入WAIT;否则,counter+1,进入SHIFT。4 数据存储模块用于存储A/D转换结果,对于每路A/D用一个FIFO。 数字采集模块 数字采集模块主要完成数字量输入的采集与存储,中断信号状态识别功能。其原理图如图4所示。 综上基本内容电子论坛提出了一种基于FPGA技术的多路模拟量、数字量采集与处理系统,设计了相应的外围硬件电路和系统处理软件。在仿真和综合调试成功的基础上,本系统成功用于某重点预研项目的控制系统试验中。试验结果表明,本系统成功地完成了对多路模拟量、数字量的采集处理任务。 |
|
|
|
|
|
1333 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1041 浏览 0 评论
2408 浏览 1 评论
2113 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2376 浏览 0 评论
1874 浏览 49 评论
6010 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 23:31 , Processed in 0.653979 second(s), Total 71, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号