CN117420342B - 多通道采集方法、装置、系统、fpga及采样示波器 - Google Patents
多通道采集方法、装置、系统、fpga及采样示波器 Download PDFInfo
- Publication number
- CN117420342B CN117420342B CN202311479122.9A CN202311479122A CN117420342B CN 117420342 B CN117420342 B CN 117420342B CN 202311479122 A CN202311479122 A CN 202311479122A CN 117420342 B CN117420342 B CN 117420342B
- Authority
- CN
- China
- Prior art keywords
- sampling
- preset
- adc
- memory
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000005070 sampling Methods 0.000 title claims abstract description 286
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000015654 memory Effects 0.000 claims abstract description 233
- 238000012545 processing Methods 0.000 claims abstract description 19
- 230000002093 peripheral effect Effects 0.000 claims description 123
- 238000004590 computer program Methods 0.000 claims description 6
- 238000013461 design Methods 0.000 abstract description 2
- 108091022873 acetoacetate decarboxylase Proteins 0.000 description 31
- 238000010586 diagram Methods 0.000 description 10
- 230000001960 triggered effect Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 101150042711 adc2 gene Proteins 0.000 description 3
- 238000000691 measurement method Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101710096660 Probable acetoacetate decarboxylase 2 Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 229920005994 diacetyl cellulose Polymers 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010453 quartz Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R13/00—Arrangements for displaying electric variables or waveforms
- G01R13/02—Arrangements for displaying electric variables or waveforms for displaying measured electric variables in digital form
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R13/00—Arrangements for displaying electric variables or waveforms
- G01R13/02—Arrangements for displaying electric variables or waveforms for displaying measured electric variables in digital form
- G01R13/0218—Circuits therefor
- G01R13/0254—Circuits therefor for triggering, synchronisation
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R13/00—Arrangements for displaying electric variables or waveforms
- G01R13/02—Arrangements for displaying electric variables or waveforms for displaying measured electric variables in digital form
- G01R13/0218—Circuits therefor
- G01R13/0272—Circuits therefor for sampling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/065—Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
本发明公开了一种多通道采集方法、装置、系统、FPGA及采样示波器,涉及采样示波器设计领域,该方法应用于FPGA,包括:获取外部输入的ADC采样的触发信号;在接收到外部处理器发送的采样指令后,根据每次获取的触发信号,配置增量时延,对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中;在接收到外部处理器的采样读取指令后,将外部存储器中的ADC数据传输到外部处理器;本发明利用FPGA的并行处理能力,能够对多通道的ADC数据进行并行采样,并使每触发一次能够进行多次采样,减小了触发次数,提升了采样效率,降低了测量时间。
Description
技术领域
本发明涉及采样示波器设计领域,特别涉及一种多通道采集方法、装置、系统、FPGA及采样示波器。
背景技术
采样示波器(或称等效时间采样示波器)用于采样周期性重复信号。如图1所示,这种示波器的采样需要提供一个与所测信号(Input Signal)同步的触发信号(TriggerSignal),经过一次触发,示波器采样一次,重新准备时间(Re-Arm Time)后在下一次触发时添加一个精确的增量时延(Sequential Delay)再采样一次,如此重复,直到能够重建整个波形,得到重建波形(Reconstructed Waveform)。
由此可知,采样示波器要恢复出码流波形需要进行大量重复触发采集,每次采样都需要重新准备等待,恢复出完整码流耗时时间长;因此,如何能够提高采样示波器的采样效率,降低测量时间,是现今急需解决的问题。
发明内容
本发明的目的是提供一种多通道采集方法、装置、系统、FPGA及采样示波器,以利用FPGA的并行处理能力,提高采样示波器的采样效率,降低测量时间。
为解决上述技术问题,本发明提供一种多通道采集方法,应用于FPGA,包括:
获取外部输入的ADC采样的触发信号;其中,所述触发信号的频率在ADC采样时钟范围内;
在接收到外部处理器发送的采样指令后,根据每次获取的所述触发信号,配置增量时延,对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中;其中,所述FPGA分别与所述外部处理器和所述外部存储器连接,所述预设数量和所述预设次数均为大于或等于2的正整数;
在接收到所述外部处理器的采样读取指令后,将所述外部存储器中的ADC数据传输到所述外部处理器。
在一些实施例中,所述根据每次获取的所述触发信号,配置增量时延,对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中,包括:
根据每次获取的所述触发信号,通过粗调操作和细调操作调整所述增量时延,对所述预设数量的ADC的ADC数据进行预设次数的采样;其中,所述粗调操作对应的延迟时间大于所述细调操作对应的延迟时间;
将每次采样得到的各所述ADC的ADC数据,写入到各所述ADC各自对应的先入先出队列;
将各所述ADC各自对应的先入先出队列中的ADC数据,写入到所述外部存储器中存储。
在一些实施例中,所述根据每次获取的所述触发信号,通过粗调操作和细调操作调整所述增量时延,对所述预设数量的ADC的ADC数据进行预设次数的采样,包括:
在获取当前次触发信号后,确定目标采样模式;其中,当前次触发信号为任一所述触发信号,所述目标采样模式为任一预设采样模式,所述预设采样模式包括单次采样模式和码型锁定模式;
根据预设时基参数,对所述增量时延进行粗调操作或细调操作,得到更新后的增量时延;其中,所述预设时基参数包括所述预设次数的采样各自对应的增量时延信息;
根据所述更新后的增量时延,按照所述目标采样模式对所述预设数量的ADC的ADC数据进行采样;
相应的,所述将各所述ADC各自对应的先入先出队列中的ADC数据,写入到所述外部存储器中存储之后,还包括:
根据所述预设时基参数,判断所述更新后的增量时延是否为最后增量时延;
若否,则执行所述根据预设时基参数,对所述增量时延进行粗调操作或细调操作,得到更新后的增量时延的步骤。
在一些实施例中,所述将各所述ADC各自对应的先入先出队列中的ADC数据,写入到所述外部存储器中存储,包括:
等待各所述ADC各自对应的先入先出队列均为非空时,将各所述ADC各自对应的先入先出队列中的ADC数据写入到存储器写先入先出队列;
根据预设连续写阈值,将所述存储器写先入先出队列中的ADC数据写入到所述外部存储器中存储。
在一些实施例中,该方法还包括:
利用预设FPGA寄存器,完成所述外部处理器对所述FPGA连接的目标外设设备的外设寄存器的外设读操作和外设写操作;其中,所述预设FPGA寄存器包括用于存储所述目标外设设备的唯一标识的第一寄存器、用于存储所述外设寄存器的地址的第二寄存器、用于存储所述外设写操作对应的数据的第三寄存器、用于存储所述外设读操作对应的数据的第四寄存器、用于存储所述目标外设设备的读写使能信号的第五寄存器和用于存储所述目标外设设备的操作状态的第六寄存器;所述目标外设设备为所述FPGA连接的任一外设设备,所述外设设备包括所述ADC、SPI设备和IIC设备中的至少一项。
在一些实施例中,所述利用预设FPGA寄存器,完成所述外部处理器对所述FPGA连接的目标外设设备的外设寄存器的外设读操作和外设写操作,包括:
根据获取所述外部处理器的外设读操作指令,将所述第一寄存器配置为所述外设读操作指令中的所述目标外设设备的唯一标识、所述第二寄存器配置为所述外设读操作指令中的所述外设寄存器的地址、所述第五寄存器配置为读使能信号的标识;
对所述目标外设设备进行驱动,从所述外设寄存器读取数据,并将所述第六寄存器配置为工作状态的标识;
数据读取完成后,将所述第六寄存器配置为完成状态的标识,并将从所述外设寄存器读取的数据存储到所述第四寄存器内,以使所述外部处理器在检测到所述第六寄存器存储完成状态的标识后,从所述第四寄存器读取数据,完成外设读操作。
在一些实施例中,所述获取外部输入的ADC采样的触发信号,包括:
计算接收的外部输入的触发信号的频率;
判断所述触发信号的频率是否在所述ADC采样时钟范围内;
若不在所述ADC采样时钟范围内,则根据计算得到的所述触发信号的频率,控制分频电路调整多级分频参数,调整所述分频电路向所述FPGA输出的所述触发信号的频率。
在一些实施例中,所述在接收到所述外部处理器的采样读取指令后,将所述外部存储器中的ADC数据传输到所述外部处理器,包括:
在接收到所述采样读取指令后,将外部存储器中的ADC数据写入到存储器读先入先出队列中;
利用所述FPGA的预设乒存储器和预设乓存储器,采用乒乓读写操作,将所述存储器读先入先出队列中的ADC数据传输到所述外部处理器。
在一些实施例中,所述利用所述FPGA的预设乒存储器和预设乓存储器,采用乒乓读写操作,将所述存储器读先入先出队列中的ADC数据传输到所述外部处理器,包括:
根据所述采样读取指令中的需读取采样点数,配置未读取采样点数;
根据所述未读取采样点数,配置所述存储器读先入先出队列的第一队列阈值;其中,若所述未读取采样点数大于或等于预设连续读阈值,则所述第一队列阈值为所述预设连续读阈值;若所述未读取采样点数小于预设连续读阈值,则所述第一队列阈值为所述未读取采样点数;
将所述外部存储器中的ADC数据写入到所述存储器读先入先出队列,在所述存储器读先入先出队列中的ADC数据达到所述第一队列阈值时,将所述存储器读先入先出队列中的ADC数据写入到所述预设乒存储器,并更新所述未读取采样点数,执行所述根据所述未读取采样点数,配置所述存储器读先入先出队列的第一队列阈值的步骤;
在所述预设乒存储器写满ADC数据或所述未读取采样点数为0后,触发所述外部处理器读取所述预设乒存储器中的ADC数据;
在所述外部处理器读取所述预设乒存储器中的ADC数据的过程中,若所述未读取采样点数不为0,则根据所述未读取采样点数,配置所述存储器读先入先出队列的第二队列阈值;
将所述外部存储器中的ADC数据写入到所述存储器读先入先出队列,在所述存储器读先入先出队列中的ADC数据达到所述第二队列阈值时,将所述存储器读先入先出队列中的ADC数据写入到所述预设乓存储器,并更新所述未读取采样点数,执行根据所述未读取采样点数,配置所述存储器读先入先出队列的第二队列阈值的步骤;
在所述预设乓存储器写满ADC数据或所述未读取采样点数为0后,触发所述外部处理器读取所述预设乒存储器中的ADC数据;并且,若所述未读取采样点数不为0,则在所述外部处理器读取所述预设乒存储器中的ADC数据的过程中,执行所述根据所述未读取采样点数,配置所述存储器读先入先出队列的第一队列阈值的步骤。
本发明还提供了一种多通道采集装置,应用于FPGA,包括:
频率计单元,用于获取外部输入的ADC采样的触发信号;其中,所述触发信号的频率在ADC采样时钟范围内;
采样存储单元,用于在接收到外部处理器发送的采样指令后,根据每次获取的所述触发信号,配置增量时延,对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中;其中,所述FPGA分别与所述外部处理器和所述外部存储器连接,所述预设数量和所述预设次数均为大于或等于2的正整数;
存储读取单元,用于在接收到所述外部处理器的采样读取指令后,将所述外部存储器中的ADC数据传输到所述外部处理器。
本发明还提供了一种FPGA,包括:
存储器,用于存储计算机程序;
处理器件,用于执行所述计算机程序时实现如上述所述的多通道采集方法的步骤。
本发明还提供了一种多通道采集系统,包括:如上述所述的FPGA、与所述FPGA连接的外部处理器和预设数量的ADC。
此外,本发明还提供了一种采样示波器,包括:如上述所述的多通道采集系统。
本发明所提供的一种多通道采集方法,应用于FPGA,包括:获取外部输入的ADC采样的触发信号;其中,触发信号的频率在ADC采样时钟范围内;在接收到外部处理器发送的采样指令后,根据每次获取的触发信号,配置增量时延,对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中;其中,FPGA分别与外部处理器和外部存储器连接,预设数量和预设次数均为大于或等于2的正整数;在接收到外部处理器的采样读取指令后,将外部存储器中的ADC数据传输到外部处理器;
可见,本发明利用FPGA的并行处理能力,能够对多通道的ADC数据进行并行采样;并通过根据每次获取的触发信号,配置增量时延,对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中,使得触发一次能够进行多次采样,减小了触发次数,节省了重新准备时间,提升了采样效率,降低了测量时间,且利用外部存储器提供大容量的存储空间,保证采样数据的存储。此外,本发明还提供了一种多通道采集装置、系统、FPGA及采样示波器,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有技术中采样示波器的采集波形的示意图;
图2为本发明实施例所提供的一种多通道采集方法的流程图;
图3为本发明实施例所提供的一种多通道采集系统的结构示意图;
图4为本发明实施例所提供的一种等精度测量法的频率计算的原理示意图;
图5为本发明实施例所提供的另一种多通道采集方法的采样示波器采集波形的示意图;
图6为本发明实施例所提供的另一种多通道采集方法的握手时序图;
图7为本发明实施例所提供的另一种多通道采集方法的采样控制过程的流程示意图;
图8为本发明实施例所提供的另一种多通道采集方法的外部存储器写控制过程的流程示意图;
图9为本发明实施例所提供的另一种多通道采集方法的外部存储器读控制过程的流程示意图;
图10为本发明实施例所提供的一种多通道采集装置的结构框图;
图11为本发明实施例所提供的一种FPGA的简易结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图2,图2为本发明实施例所提供的一种多通道采集方法的流程图。该方法应用于FPGA,可以包括:
步骤101:获取外部输入的ADC采样的触发信号;其中,触发信号的频率在ADC采样时钟范围内。
其中,本实施例中的外部输入的ADC(模/数转换器)采样的触发信号可以为外部输入到FPGA(Field-Programmable Gate Array,现场可编程门阵列)的用于触发ADC采样的时钟信号,如图3中的FPGA_TRIG(触发信号)。
对应的,对于本实施例中FPGA获取获取外部输入的ADC采样的触发信号的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如FPGA可以直接接收外部输入的频率在ADC采样时钟范围内用于触发ADC采样的触发信号。由于外部输入的初始的触发信号的频率(如25GHz的触发信号)很高,需要经过多级分频后送入FPGA;因此,可以先将分频设置为最大,通过测量分频后的频率推算出初始的触发信号的频率,再进行多级分频参数调整,使分频后的触发信号的频率在ADC采样时钟范围内。相应的,本步骤中FPGA还可以调整外部输入的触发信号的频率,以得到频率在ADC采样时钟范围内的触发信号;例如,FPGA可以计算触发信号的频率;判断触发信号的频率是否在ADC采样时钟范围内;若不在ADC采样时钟范围内,则根据计算得到的触发信号的频率,控制分频电路调整多级分频参数,调整分频电路向FPGA输出的触发信号的频率。
如图3所示,FPGA内可以设置频率计单元,利用频率计单元计算分频电路输入到FPGA的触发信号的频率;与MCU(微控制单元,即外部处理器)通信,获取ADC采样时钟范围,并判断触发信号的频率是否在ADC采样时钟范围内;若不在ADC采样时钟范围内,则可以自行或通过MCU,根据计算得到的触发信号的频率,控制分频电路调整多级分频参数,调整分频电路向FPGA输出的触发信号的频率,即分频电路可以不断调整触发信号的频率并发送到FPGA,直至将频率在ADC采样时钟范围内的触发信号发送到FPGA;若在ADC采样时钟范围内,则可以等待进入步骤102。
需要说明的是,对于FPGA计算触发信号的频率的具体方式,如上述频率计单元计算分频电路输入到FPGA的触发信号的频率的具体方式,可以由设计人员自行设置,如FPGA可以采用等精度测量法计算触发信号的频率;其中,等精度测量法是在实际门控信号下,同时对标准时钟(如石英晶振提供的时钟信号)和被测信号(即触发信号)的周期进行计数,再通过公式计算得到被测信号的频率。如图4所示,图4中门控信号可以为高电平的时间段,即系统设定的定时时间;实际门控信号1可以为被测信号实际门控信号;计数器1可以为在实际门控信号1为高电平时对被测信号进行周期计数的计数器,计数器1的计数值为N;实际门控信号2可以为标准时钟的实际门控信号;计数器2可以为在实际门控信号2为高电平时对标准时钟进行计数的计数器,计数器2的计数值为M。
相应的,标准时钟的频率为f s ,被测信号的频率为f x ,由于标准时钟频率很高,可认为实际门控时间1和实际门控时间2近似相等,则有,即通过可以计算得到触发信号(即被测信号)的频率。由于等精度测量的实际门控时间正好是被测信号的整数倍,因此不会对被测信号产生±1周期误差,并且计算得到的被测信号频率的相对误差与被测信号的实际频率无关,增大门控信号时间或提高标准时钟频率会减小相对误差,提高测量精度。
步骤102:在接收到外部处理器发送的采样指令后,根据每次获取的触发信号,配置增量时延,对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中;其中,FPGA分别与外部处理器和外部存储器连接,预设数量和预设次数均为大于或等于2的正整数。
可以理解的是,本步骤中FPGA可以在收到外部处理器(如图3中的MCU)发送的采样指令,即外部处理器触发采样后,根据每次获取的触发信号,配置增量时延(delay),对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中,能够利用FPGA的并行处理能力,对多通道的ADC数据进行并行采样;并且本实施例采用新的ADC数据采集方式,如图5所示,使得触发信号的一次触发能够进行多次采样,使得重构波形时通过对采样点的标号的有序排列,能够恢复出码流波形,降低增量时延次数,大幅缩短测量时间。
对应的,本实施例中的外部处理器可以为与FPGA连接的用于触发采样和接收采样得到的ADC数据的处理器,如图3中的MCU。本实施例中的外部存储器可以为与FPGA连接的用于存储采样的ADC数据的存储器,如图3中的DDR3(一种计算机内存规格) SDRAM(同步动态随机存取内存),即DDR3内存,DDR3内存为一种DDR(双倍速率同步动态随机存储器)内存;也就是说,本实施例中可以使用FPGA外部的外部存储器来存放采样数据(即ADC数据),以满足通道数、采样率和/或码流长度的增大带来的存储空间需求,保证采样数据的存储。
相应的,对于外部处理器和外部存储器的具体器件类型,可以由设计人员根据实用场景和用户需求自行设置,如外部处理器可以采用MCU或其他处理器,外部存储器可以采用DDR3内存或其他存储器,本实施例对此不做任何限制。同样的,对于外部处理器和外部存储器与FPGA的具体连接方式,可以由设计人员自行设置,如图3所示,外部处理器(MCU)可以通过FMC(FPGA Mezzanine Card,FPGA中间层板卡)总线与FPGA连接;外部处理器也可以通过其他通信总线与FPGA连接;只要外部处理器和外部存储器均能够与FPGA进行通信以传输采样数据,本实施例对此不做任何限制。
需要说明的是,对于本步骤中FPGA在接收到外部处理器发送的采样指令后,根据每次获取的触发信号,配置增量时延,对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如FPGA可以根据每次获取的触发信号,通过粗调操作和细调操作调整增量时延,对预设数量的ADC的ADC数据进行预设次数的采样;其中,粗调操作对应的延迟时间大于细调操作对应的延迟时间;将每次采样得到的各ADC的ADC数据,写入到各ADC各自对应的先入先出队列;将各ADC各自对应的先入先出队列中的ADC数据,写入到外部存储器中存储。
也就是说,如图5所示,FPGA的采样控制需要对采样时钟(即触发信号)进行增量延时控制,该增量延时的控制可以分为粗调节(即粗调操作)和细调节(即细调操作);例如细调一次延迟20ps,粗调一次延迟2ns,粗、细调节完成后需要进行延时,等待采样时钟稳定;这样,理想情况下每细调一次延迟20ps,每粗调一次延迟2ns;触发信号每触发一次可以可以按照如下操作:
第0次:延迟0,粗调值为0,细调值为0;
第1次,延迟20ps,粗调值为0,细调值为1;
第2次,延迟40ps,粗调值为0,细调值为2;
第3次,延迟60ps,粗调值为0,细调值为3;
……
第99次,延迟1980ps,粗调值为0,细调值为99;
第100次,延迟2000ps(即2ns),粗调值为1,细调值为0;
第101次,延迟2020ps,粗调值为1,细调值为1;
……
依此类推,直至到达预设次数。
而实际情况下,每一次细调不一定是线性的延迟20ps,需要根据对应芯片的手册进行校准,这个校准过程叫做时基校准,校准完成后生成一个参数表(如图3中的时基参数,即预设时基参数)写到FPGA的RAM(随机存储器),根据这个参数表,FPGA可以确定触发信号每触发一次进行的预设次数的采样需要在什么时间进行粗调操作和细调操作。
举例来说,预设时基参数在初始化时可以由外部处理器(如MCU)写入到FPGA内部的RAM中,FPGA从中读取当前delay值,与上一次值作比较,如果相等,则只需要进行“细调”,否则就需要进行“粗调。
Delay完成后,FPGA可以开始进行ADC采样以及ADC数据的存储,此处涉及跨时钟域处理,系统时钟域的采样控制信号与ADC时钟域通过握手处理,使ADC时钟域的采样数据流通过异步FIFO(先入先出队列)传输至DDR3时钟域,以此解决跨时钟域数据亚稳态问题。也就是说,FPGA的采样控制过程中,在上述将每次采样得到的各ADC的ADC数据,写入到各ADC各自对应的先入先出队列之前,FPGA可以通过握手处理将系统时钟域的采样控制信号与ADC时钟域同步。
握手处理的过程可以如图6所示,在t1时刻,A时钟域(A_CLK,如系统时钟域)发起请求信号A_req,同时将数据(DATA)放到数据线(send_date)上hold(保持)住,A_req传入B时钟域(B_CLK,如ADC时钟域)后进行打拍处理去除亚稳态;其中,A_req_d0可以为在B时钟域对A_req进行“打一拍”;A_req_d1是对A_req_d0再“打一拍”,以去除亚稳态。在t2时刻,B时钟域检测到有效请求信号A_req_d2,将数据latch(锁)住。在t3时刻,B时钟域发出应答信号B_ack,B_ack传入A时钟域后也先进行打拍处理去除亚稳态。在t4时刻,A时钟域检测到有效应答信号B_ack_d2后A_req可以拉低,同时数据也不用hold。在t5时刻,B时钟域检测到请求信号A_req_d2拉低,B_ack可以拉低;至此,完成握手处理。
相应的,在上述将各ADC各自对应的先入先出队列中的ADC数据,写入到外部存储器中存储之前,FPGA可以通过握手处理将系统时钟域下的控制信号同步到外部存储器(如DDR3)的时钟域下。
例如,FPGA内可以设置采样控制模块,用于根据每次获取的触发信号,通过粗调操作和细调操作调整增量时延,对预设数量的ADC的ADC数据进行预设次数的采样;将每次采样得到的各ADC的ADC数据,写入到各ADC各自对应的先入先出队列(如图3中的ADC数据储存FIFO)。
对应的,采样示波器的采样模式可以包括单次采样模式(即眼图模式)和Patternlock(码型锁定)模式;单次采样模式不需要恢复码流的波形,每次delay后进行多次采样,重复多次delay以建立视觉眼图;需要恢复码流波形,Patternlock模式每次delay完成后都从码流的固定位置开始保存数据,以确保最终可以正确恢复码流波形。上述根据每次获取的触发信号,通过粗调操作和细调操作调整增量时延,对预设数量的ADC的ADC数据进行预设次数的采样的过程,可以包括:在获取当前次触发信号后,确定目标采样模式;其中,当前次触发信号为任一触发信号,目标采样模式为任一预设采样模式,预设采样模式包括单次采样模式和码型锁定模式(如图7中的PATTERN LOCK);根据预设时基参数,对增量时延进行粗调操作或细调操作,得到更新后的增量时延;其中,预设时基参数包括预设次数的采样各自对应的增量时延信息;根据更新后的增量时延,按照目标采样模式对预设数量(如图7中的4)的ADC的ADC数据进行采样。上述将各ADC各自对应的先入先出队列中的ADC数据,写入到外部存储器中存储之后还包括:根据预设时基参数,判断更新后的增量时延是否为最后增量时延(如图7中的last delay);若否,则执行根据预设时基参数,对增量时延进行粗调操作或细调操作,得到更新后的增量时延的步骤,以继续进行采样和数据存储;若是,则可以等待下一触发信号。
相应的,上述将各ADC各自对应的先入先出队列中的ADC数据,写入到外部存储器中存储的过程,可以包括:等待各ADC各自对应的先入先出队列均为非空时,将各ADC各自对应的先入先出队列中的ADC数据写入到存储器写先入先出队列;根据预设连续写阈值,将存储器写先入先出队列中的ADC数据写入到外部存储器中存储。如图3所示,FPGA的多通道数据处理模块可以在通过握手处理将系统时钟域下控制信号同步到DDR3(即外部存储器)的时钟域下之后,从4(即预设数量)个ADC(ADC1-4)对应的FIFO(即ADC数据储存FIFO)里面读出采样的ADC数据,所有FIFO有数据(非空)才开始读取,任一FIFO为空则停止读取;读出来的数据流分为两路,一路进行极值和均值计算,另一路进行位拼接写入到DDR写FIFO(ddr_wr_fifo,即存储器写先入先出队列)中,直到所有数据全部写入到DDR写FIFO中;其中,极值计算可以用于采样示波器终端显示数据范围校正,均值计算可以用于采样示波器暗电流校准。
例如,FPGA内可以设置多通道数据处理模块可以用于等待各ADC各自对应的先入先出队列均为非空时,将各ADC各自对应的先入先出队列中的ADC数据写入到存储器写先入先出队列。相应的,FPGA内可以设置外部存储器写控制模块,用于根据预设连续写阈值,将存储器写先入先出队列中的ADC数据写入到外部存储器中存储。
举例来说,外部存储器采用DDR3内存时,由于DDR3数据位宽16bit,突发长度为8,一次写操作数据为128bit,为了提高写操作效率,本实施例中可以通过预设连续写阈值的设置,使FPGA需要等待ddr_wr_fifo中存储一定深度的ADC数据后再进行连续写操作。由于预设连续写阈值越大,连续写操作效率高但占用FPGA内部资源也多,可以综合考虑阈值选取,如预设连续写阈值可以为设置为128×128bit = 256×64bit = 16kbit。
如图8所示,上述根据预设连续写阈值,将存储器写先入先出队列中的ADC数据写入到外部存储器中存储的过程可以包括:获取未存储采样点数;根据未读取采样点数和预设连续写阈值,配置写队列阈值(阈值);在存储器写先入先出队列中的ADC数据达到写队列阈值时,将存储器写先入先出队列中的ADC数据写入到外部存储器,并更新未存储采样点数;若未存储采样点数为0,则结束本流程或等待获取新的未存储采样点数;若未存储采样点数不为0,则执行根据未读取采样点数和预设连续写阈值,配置写队列阈值的步骤。也就是说,若未读取采样点数小于预设连续写阈值,则可以将写队列阈值设置为未读取采样点数;若未读取采样点数不小于预设连续写阈值,则可以将写队列阈值设置为预设连续写阈值。
例如,一共采样点数为10000个;开始采样后,立即进入空闲状态;当ADC开始保存数据,未读取采样点数更新为10000;ddr_wr_fifo已存储ADC数据≥256(写队列阈值),触发DDR写操作,产生写请求信号→等待写反馈→等待写完成,以向DDR3内存(外部存储器)写入ddr_wr_fifo中的256的ADC数据,更新未存储采样点数=10000 - 256 = 9744;循环操作,直到最后一次更新未存储采样点数 = 16,则写队列阈值也更新为16;当FIFO已存储数据≥16(写队列阈值),触发写操作→……→写完成,所有数据全部写完成→空闲状态。
步骤103:在接收到外部处理器的采样读取指令后,将外部存储器中的ADC数据传输到外部处理器。
可以理解的是,本实施例中外部处理器不直接连接外部存储器,通过FPGA来访问获取外部存储器中的ADC数据(即采样数据);例如,FPGA内可以配置外部存储器读控制模块,用于在接收到外部处理器的采样读取指令后,将外部存储器中的ADC数据传输到外部处理器。其中,本实施例中FPGA从外部处理器读取ADC数据的读取模式可以包括顺序读取模式和随机读取模式;顺序读取模式适用于上述单次采样模式,从外部存储器的第一个数据一直读到最后一个数据;随机读取模式适用于上述Patternlock模式,根据外部处理器配置传输的读取的起始地址、读取长度,获取外部存储器中某一段数据。
相应的,与上述根据预设连续写阈值,将存储器写先入先出队列中的ADC数据写入到外部存储器中存储的过程类似,为了提高读取效率,设定一个预设连续读阈值,如取128×128bit = 16kbit,即本步骤中FPGA在接收到外部处理器的采样读取指令后,可以根据预设连续读阈值,将外部存储器中的ADC数据传输到外部处理器。例如,本步骤中FPGA在接收到外部处理器的采样读取指令后,可以将外部存储器中的ADC数据写入到存储器读先入先出队列(如图3中的DDR读FIFO)中;根据预设连续读阈值,将存储器读先入先出队列中的ADC数据传输到外部处理器。
进一步的,为了加速ADC数据的读取,FPGA可以采用乒乓读写操作,将ADC数据从外部存储器中搬运至双口RAM(如图3中的数据缓冲区),使外部存储器从双口RAM(即预设乒存储器和预设乓存储器)获取数据。即上述根据预设连续读阈值,将存储器读先入先出队列中的ADC数据传输到外部处理器的过程,可以包括根据预设连续读阈值,利用FPGA的预设乒存储器和预设乓存储器,采用乒乓读写操作,将存储器读先入先出队列中的ADC数据传输到外部处理器。
上述根据预设连续读阈值,利用FPGA的预设乒存储器和预设乓存储器,采用乒乓读写操作,将存储器读先入先出队列中的ADC数据传输到外部处理器的过程可以包括:根据采样读取指令中的需读取采样点数,配置未读取采样点数;根据未读取采样点数,配置存储器读先入先出队列的第一队列阈值;其中,若未读取采样点数大于或等于预设连续读阈值,则第一队列阈值为预设连续读阈值;若未读取采样点数小于预设连续读阈值,则第一队列阈值为未读取采样点数;将外部存储器中的ADC数据写入到存储器读先入先出队列,在存储器读先入先出队列中的ADC数据达到第一队列阈值时,将存储器读先入先出队列中的ADC数据写入到预设乒存储器,并更新未读取采样点数,执行根据未读取采样点数,配置存储器读先入先出队列的第一队列阈值的步骤;在预设乒存储器写满ADC数据或未读取采样点数为0后,触发外部处理器读取预设乒存储器中的ADC数据;在外部处理器读取预设乒存储器中的ADC数据的过程中,若未读取采样点数不为0,则根据未读取采样点数,配置存储器读先入先出队列的第二队列阈值;将外部存储器中的ADC数据写入到存储器读先入先出队列,在存储器读先入先出队列中的ADC数据达到第二队列阈值时,将存储器读先入先出队列中的ADC数据写入到预设乓存储器,并更新未读取采样点数,执行根据未读取采样点数,配置存储器读先入先出队列的第二队列阈值的步骤;在预设乓存储器写满ADC数据或未读取采样点数为0后,触发外部处理器读取预设乒存储器中的ADC数据;并且,若未读取采样点数不为0,则在外部处理器读取预设乒存储器中的ADC数据的过程中,执行根据未读取采样点数,配置存储器读先入先出队列的第一队列阈值的步骤。
如图9所示,假如乒乓ram(即预设乒存储器和预设乓存储器)的存储空间均为16384个16bit数据,设置随机读取模式,读起始地址0x1000,需读取采样点数为40000个;MCU触发读操作,向FPGA发送采样读取指令后,本步骤可以分为四个阶段。
第一阶段,FPGA向乒ram(即预设乒存储器)存采样数据:更新未读取点数为40000;阈值(即第一队列阈值)更新为128;从外部存储器读采样数据存入fifo(即存储器读先入先出队列)中,先向乒ram写数据,fifo里面数据写完后,未读取采样点数更新为40000-128=39872,再从外部存储器读出128个128bit的数据,写入乒ram;当持续写入16384个数据后乒ram写满,触发MCU读取乒ram中数据。
第二阶段,MCU(即外部处理器)读取乒ram的数据,同时FPGA向乓ram(即预设乓存储器)写数据:FPGA向乓ram写16384个数据后,乓ram写满,触发MCU读取乓ram中数据;第三阶段,MCU读取乓ram数据,同时FPGA向乒ram写数据:FPGA向乒ram写入7232个数据,触发MCU读取乒ram中的数据;第四阶段,MCU读取乒ram中的数据。通过乒乓ram操作,实现数据的流水线处理,提高数据传输效率。
进一步的,由于采样示波器中,FPGA需要与多个外设设备直接相连,每个外设设备各自又有很多寄存器(即外设寄存器)需要配置。为了方便外部处理器(如MCU)进行外设寄存器读写控制,本实施例还提供了一种外设寄存器读写方式,使外部处理器仅需控制6个FPGA的寄存器(即预设FPGA寄存器)并可对所有外设设备的全部寄存器进行读写操作。也就是说,本实施例所提供的方法还可以包括FPGA利用预设FPGA寄存器,完成外部处理器对FPGA连接的目标外设设备的外设寄存器的外设读操作和外设写操作;其中,预设FPGA寄存器包括用于存储目标外设设备的唯一标识的第一寄存器、用于存储外设寄存器的地址的第二寄存器、用于存储外设写操作对应的数据的第三寄存器、用于存储外设读操作对应的数据的第四寄存器、用于存储目标外设设备的读写使能信号的第五寄存器和用于存储目标外设设备的操作状态的第六寄存器;目标外设设备为FPGA连接的任一外设设备。外设设备可以包括ADC;还可以包括其他外设设备,如图3中的Clock Divider(时钟分频器)1-3、DAC(数/模转换器)1和2、Clock Delay(时钟延迟器)1-3、VCXO(电压控制型晶体振荡器)和Temperature(温度计)等;例如,外设设备还可以包括FPGA通过SPI(Serial PeripheralInterface,串行外设接口)连接的SPI设备和/或FPGA通过IIC(Inter-IntegratedCircuit,集成电路总线)连接的IIC设备。
举例来说,预设FPGA寄存器中的寄存器1(即第一寄存器)可以用于存储外设设备的唯一ID;寄存器2(即第二寄存器)可以用于存储外设设备的寄存器地址;寄存器3(即第三寄存器)可以用于存储外设设备的写数据;寄存器4(即第四寄存器)可以用于存储外设设备的读数据;寄存器5(即第五寄存器)可以用于存储外设设备的读写使能信号,如1表示write(写使能),2表示read(读使能);寄存器6(即第六寄存器)用于存储外设设备的操作状态,如0表示idle(空闲),1表示busy(工作状态),2表示done(完成状态)。
相应的,MCU(即外部处理器)读ADC2的寄存器0x02的值时,假设ADC2的芯片ID被分配为0x8;MCU可以与FPGA进行通信,将FPGA的寄存器1值配置为0x8;将寄存器2值配置为0x2;寄存器5值配置为0x2(即读使能)。FPGA开始对ADC2进行驱动,将寄存器6变为0x1(即工作状态),操作完成后,将寄存器6变为0x2(即完成状态)且寄存器4更新为ADC2的0x02寄存器的数据。也就是说,利用预设FPGA寄存器,完成外部处理器对FPGA连接的目标外设设备的外设寄存器的外设读操作的过程可以包括根据获取外部处理器的外设读操作指令,将第一寄存器配置为外设读操作指令中的目标外设设备的唯一标识、第二寄存器配置为外设读操作指令中的外设寄存器的地址、第五寄存器配置为读使能信号的标识;对目标外设设备进行驱动,从外设寄存器读取数据,并将第六寄存器配置为工作状态的标识;数据读取完成后,将第六寄存器配置为完成状态的标识,并将从外设寄存器读取的数据存储到第四寄存器内,以使外部处理器在检测到第六寄存器存储完成状态的标识后,从第四寄存器读取数据,完成外设读操作。相应的,利用预设FPGA寄存器,完成外部处理器对FPGA连接的目标外设设备的外设寄存器的外设写操作的过程与上述外设读操作的过程相似,在此不再赘述。
举例来说,如图3所示,采用本实施例所提供的方法的FPGA的运行过程可以如下:1、FPGA进行初始化时,获取MCU的参数配置;2、计算当前的触发信号的频率,自动调节分频电路的多级分频,使触发信号的频率在ADC采样时钟范围内;3、MCU触发采样后,FPGA从时基参数中读取当前delay参数;4、通过SPI配置delay参数;5、延时等待,并在延时结束后将采样得到的ADC数据存储在FIFO缓存中;6、多个通道ADC FIFO数据整合存入DDR3 SDRAM中;重复3~6,直到最后一次delay采样数据存储完成,至此采样完成。7、在MCU准备读采样数据,配置读取参数,并触发读数据操作后,FPGA从DDR3 SDRAM中读数据存入数据缓冲区内,使MCU从数据缓冲区读取采样数据,直至读取完所需的全部采样数据。
本实施例中,本发明实施例利用FPGA的并行处理能力,能够对多通道的ADC数据进行并行采样;并通过根据每次获取的触发信号,配置增量时延,对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中,使得触发一次能够进行多次采样,减小了触发次数,节省了重新准备时间,提升了采样效率,降低了测量时间,且利用外部存储器提供大容量的存储空间,保证采样数据的存储。
相应于上面的方法实施例,本发明实施例还提供了一种多通道采集装置,下文描述的一种多通道采集装置与上文描述的一种多通道采集方法可相互对应参照。
请参考图10,图10为本发明实施例所提供的一种多通道采集装置的结构框图。该装置可以包括:
频率计单元10,用于获取外部输入的ADC采样的触发信号;其中,触发信号的频率在ADC采样时钟范围内;
采样存储单元20,用于在接收到外部处理器发送的采样指令后,根据每次获取的触发信号,配置增量时延,对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中;其中,FPGA分别与外部处理器和外部存储器连接,预设数量和预设次数均为大于或等于2的正整数;
存储读取单元30,用于在接收到外部处理器的采样读取指令后,将外部存储器中的ADC数据传输到外部处理器。
在一些实施例中,采样存储单元20可以包括:
采样控制模块,用于根据每次获取的触发信号,通过粗调操作和细调操作调整增量时延,对预设数量的ADC的ADC数据进行预设次数的采样;其中,粗调操作对应的延迟时间大于细调操作对应的延迟时间;
多通道数据处理模块,用于将每次采样得到的各ADC的ADC数据,写入到各ADC各自对应的先入先出队列;
外部存储器写控制模块,用于将各ADC各自对应的先入先出队列中的ADC数据,写入到外部存储器中存储。
在一些实施例中,采样控制模块可以包括:
模式确定子模块,用于在获取当前次触发信号后,确定目标采样模式;其中,当前次触发信号为任一触发信号,目标采样模式为任一预设采样模式,预设采样模式包括单次采样模式和码型锁定模式;
时延调整子模块,用于根据预设时基参数,对增量时延进行粗调操作或细调操作,得到更新后的增量时延;其中,预设时基参数包括预设次数的采样各自对应的增量时延信息;
采样子模块,用于根据更新后的增量时延,按照目标采样模式对预设数量的ADC的ADC数据进行采样;
相应的,外部存储器写控制模块还可以用于将各ADC各自对应的先入先出队列中的ADC数据,写入到外部存储器中存储之后,根据预设时基参数,判断更新后的增量时延是否为最后增量时延;若否,则向时延调整子模块发送启动信号。
在一些实施例中,外部存储器写控制模块可以包括:
队列写子模块,用于等待各ADC各自对应的先入先出队列均为非空时,将各ADC各自对应的先入先出队列中的ADC数据写入到存储器写先入先出队列;
存储写子模块,用于根据预设连续写阈值,将存储器写先入先出队列中的ADC数据写入到外部存储器中存储。
在一些实施例中,该装置还可以包括:
外设控制器单元,用于利用预设FPGA寄存器,完成外部处理器对FPGA连接的目标外设设备的外设寄存器的外设读操作和外设写操作;其中,预设FPGA寄存器包括用于存储目标外设设备的唯一标识的第一寄存器、用于存储外设寄存器的地址的第二寄存器、用于存储外设写操作对应的数据的第三寄存器、用于存储外设读操作对应的数据的第四寄存器、用于存储目标外设设备的读写使能信号的第五寄存器和用于存储目标外设设备的操作状态的第六寄存器;目标外设设备为FPGA连接的任一外设设备,外设设备包括ADC、SPI设备和IIC设备中的至少一项。
在一些实施例中,外设控制器单元可以包括:
外设读配置模块,用于根据获取外部处理器的外设读操作指令,将第一寄存器配置为外设读操作指令中的目标外设设备的唯一标识、第二寄存器配置为外设读操作指令中的外设寄存器的地址、第五寄存器配置为读使能信号的标识;
外设读控制模块,用于对目标外设设备进行驱动,从外设寄存器读取数据,并将第六寄存器配置为工作状态的标识;
外设读完成模块,用于数据读取完成后,将第六寄存器配置为完成状态的标识,并将从外设寄存器读取的数据存储到第四寄存器内,以使外部处理器在检测到第六寄存器存储完成状态的标识后,从第四寄存器读取数据,完成外设读操作。
在一些实施例中,频率计单元10可以包括:
频率计算模块,用于计算接收的外部输入的触发信号的频率;
频率判断模块,用于判断触发信号的频率是否在ADC采样时钟范围内;
频率调整模块,用于若不在ADC采样时钟范围内,则根据计算得到的触发信号的频率,控制分频电路调整多级分频参数,调整分频电路向FPGA输出的触发信号的频率。
在一些实施例中,存储读取单元30(如上述外部存储器读控制模块)可以包括:
第一写子模块,用于在接收到采样读取指令后,将外部存储器中的ADC数据写入到存储器读先入先出队列中;
第二写子模块,用于利用FPGA的预设乒存储器和预设乓存储器,采用乒乓读写操作,将存储器读先入先出队列中的ADC数据传输到外部处理器。
在一些实施例中,第二写子模块可以具体用于根据采样读取指令中的需读取采样点数,配置未读取采样点数;根据未读取采样点数,配置存储器读先入先出队列的第一队列阈值;其中,若未读取采样点数大于或等于预设连续读阈值,则第一队列阈值为预设连续读阈值;若未读取采样点数小于预设连续读阈值,则第一队列阈值为未读取采样点数;将外部存储器中的ADC数据写入到存储器读先入先出队列,在存储器读先入先出队列中的ADC数据达到第一队列阈值时,将存储器读先入先出队列中的ADC数据写入到预设乒存储器,并更新未读取采样点数,执行根据未读取采样点数,配置存储器读先入先出队列的第一队列阈值的步骤;在预设乒存储器写满ADC数据或未读取采样点数为0后,触发外部处理器读取预设乒存储器中的ADC数据;在外部处理器读取预设乒存储器中的ADC数据的过程中,若未读取采样点数不为0,则根据未读取采样点数,配置存储器读先入先出队列的第二队列阈值;将外部存储器中的ADC数据写入到存储器读先入先出队列,在存储器读先入先出队列中的ADC数据达到第二队列阈值时,将存储器读先入先出队列中的ADC数据写入到预设乓存储器,并更新未读取采样点数,执行根据未读取采样点数,配置存储器读先入先出队列的第二队列阈值的步骤;在预设乓存储器写满ADC数据或未读取采样点数为0后,触发外部处理器读取预设乒存储器中的ADC数据;并且,若未读取采样点数不为0,则在外部处理器读取预设乒存储器中的ADC数据的过程中,执行根据未读取采样点数,配置存储器读先入先出队列的第一队列阈值的步骤。
本实施例中,本发明实施例利用FPGA的并行处理能力,能够对多通道的ADC数据进行并行采样;并通过采样存储单元20根据每次获取的触发信号,配置增量时延,对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中,使得触发一次能够进行多次采样,减小了触发次数,节省了重新准备时间,提升了采样效率,降低了测量时间,且利用外部存储器提供大容量的存储空间,保证采样数据的存储。
相应于上面的方法实施例,本发明实施例还提供了一种多通道采集装置,下文描述的一种FPGA与上文描述的一种多通道采集方法可相互对应参照。
请参考图11,图11为本发明实施例所提供的一种FPGA的简易结构示意图。该FPGA可以包括:
存储器D1,用于存储计算机程序;
处理器件D2,用于执行计算机程序时实现如上述的多通道采集方法的步骤。
相应于上面的方法实施例,本发明实施例还提供了一种多通道采集系统,下文描述的一种多通道采集系统与上文描述的一种多通道采集方法可相互对应参照。
一种多通道采集系统,包括:如上述实施例所提供的FPGA、与FPGA连接的外部处理器和预设数量的ADC。
相应于上面的方法实施例,本发明实施例还提供了一种采样示波器,下文描述的一种采样示波器与上文描述的一种多通道采集方法可相互对应参照。
一种采样示波器,包括:如上述实施例所提供的多通道采集系统。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、系统、FPGA及采样示波器而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的一种多通道采集方法、装置、系统、FPGA及采样示波器进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (12)
1.一种多通道采集方法,其特征在于,应用于FPGA,包括:
获取外部输入的ADC采样的触发信号;其中,所述触发信号的频率在ADC采样时钟范围内;
在接收到外部处理器发送的采样指令后,根据每次获取的所述触发信号,配置增量时延,对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中;其中,所述FPGA分别与所述外部处理器和所述外部存储器连接,所述预设数量和所述预设次数均为大于或等于2的正整数;
在接收到所述外部处理器的采样读取指令后,将所述外部存储器中的ADC数据传输到所述外部处理器;
其中,所述根据每次获取的所述触发信号,配置增量时延,对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中,包括:
根据每次获取的所述触发信号,通过粗调操作和细调操作调整所述增量时延,对所述预设数量的ADC的ADC数据进行预设次数的采样;其中,所述粗调操作对应的延迟时间大于所述细调操作对应的延迟时间;
将每次采样得到的各所述ADC的ADC数据,写入到各所述ADC各自对应的先入先出队列;
将各所述ADC各自对应的先入先出队列中的ADC数据,写入到所述外部存储器中存储。
2.根据权利要求1所述的多通道采集方法,其特征在于,所述根据每次获取的所述触发信号,通过粗调操作和细调操作调整所述增量时延,对所述预设数量的ADC的ADC数据进行预设次数的采样,包括:
在获取当前次触发信号后,确定目标采样模式;其中,当前次触发信号为任一所述触发信号,所述目标采样模式为任一预设采样模式,所述预设采样模式包括单次采样模式和码型锁定模式;
根据预设时基参数,对所述增量时延进行粗调操作或细调操作,得到更新后的增量时延;其中,所述预设时基参数包括所述预设次数的采样各自对应的增量时延信息;
根据所述更新后的增量时延,按照所述目标采样模式对所述预设数量的ADC的ADC数据进行采样;
相应的,所述将各所述ADC各自对应的先入先出队列中的ADC数据,写入到所述外部存储器中存储之后,还包括:
根据所述预设时基参数,判断所述更新后的增量时延是否为最后增量时延;
若否,则执行所述根据预设时基参数,对所述增量时延进行粗调操作或细调操作,得到更新后的增量时延的步骤。
3.根据权利要求1所述的多通道采集方法,其特征在于,所述将各所述ADC各自对应的先入先出队列中的ADC数据,写入到所述外部存储器中存储,包括:
等待各所述ADC各自对应的先入先出队列均为非空时,将各所述ADC各自对应的先入先出队列中的ADC数据写入到存储器写先入先出队列;
根据预设连续写阈值,将所述存储器写先入先出队列中的ADC数据写入到所述外部存储器中存储。
4.根据权利要求1所述的多通道采集方法,其特征在于,还包括:
利用预设FPGA寄存器,完成所述外部处理器对所述FPGA连接的目标外设设备的外设寄存器的外设读操作和外设写操作;其中,所述预设FPGA寄存器包括用于存储所述目标外设设备的唯一标识的第一寄存器、用于存储所述外设寄存器的地址的第二寄存器、用于存储所述外设写操作对应的数据的第三寄存器、用于存储所述外设读操作对应的数据的第四寄存器、用于存储所述目标外设设备的读写使能信号的第五寄存器和用于存储所述目标外设设备的操作状态的第六寄存器;所述目标外设设备为所述FPGA连接的任一外设设备,所述外设设备包括所述ADC、SPI设备和IIC设备中的至少一项。
5.根据权利要求4所述的多通道采集方法,其特征在于,所述利用预设FPGA寄存器,完成所述外部处理器对所述FPGA连接的目标外设设备的外设寄存器的外设读操作和外设写操作,包括:
根据获取所述外部处理器的外设读操作指令,将所述第一寄存器配置为所述外设读操作指令中的所述目标外设设备的唯一标识、所述第二寄存器配置为所述外设读操作指令中的所述外设寄存器的地址、所述第五寄存器配置为读使能信号的标识;
对所述目标外设设备进行驱动,从所述外设寄存器读取数据,并将所述第六寄存器配置为工作状态的标识;
数据读取完成后,将所述第六寄存器配置为完成状态的标识,并将从所述外设寄存器读取的数据存储到所述第四寄存器内,以使所述外部处理器在检测到所述第六寄存器存储完成状态的标识后,从所述第四寄存器读取数据,完成外设读操作。
6.根据权利要求1所述的多通道采集方法,其特征在于,所述获取外部输入的ADC采样的触发信号,包括:
计算接收的外部输入的触发信号的频率;
判断所述触发信号的频率是否在所述ADC采样时钟范围内;
若不在所述ADC采样时钟范围内,则根据计算得到的所述触发信号的频率,控制分频电路调整多级分频参数,调整所述分频电路向所述FPGA输出的所述触发信号的频率。
7.根据权利要求1至6任一项所述的多通道采集方法,其特征在于,所述在接收到所述外部处理器的采样读取指令后,将所述外部存储器中的ADC数据传输到所述外部处理器,包括:
在接收到所述采样读取指令后,将外部存储器中的ADC数据写入到存储器读先入先出队列中;
利用所述FPGA的预设乒存储器和预设乓存储器,采用乒乓读写操作,将所述存储器读先入先出队列中的ADC数据传输到所述外部处理器。
8.根据权利要求7所述的多通道采集方法,其特征在于,所述利用所述FPGA的预设乒存储器和预设乓存储器,采用乒乓读写操作,将所述存储器读先入先出队列中的ADC数据传输到所述外部处理器,包括:
根据所述采样读取指令中的需读取采样点数,配置未读取采样点数;
根据所述未读取采样点数,配置所述存储器读先入先出队列的第一队列阈值;其中,若所述未读取采样点数大于或等于预设连续读阈值,则所述第一队列阈值为所述预设连续读阈值;若所述未读取采样点数小于预设连续读阈值,则所述第一队列阈值为所述未读取采样点数;
将所述外部存储器中的ADC数据写入到所述存储器读先入先出队列,在所述存储器读先入先出队列中的ADC数据达到所述第一队列阈值时,将所述存储器读先入先出队列中的ADC数据写入到所述预设乒存储器,并更新所述未读取采样点数,执行所述根据所述未读取采样点数,配置所述存储器读先入先出队列的第一队列阈值的步骤;
在所述预设乒存储器写满ADC数据或所述未读取采样点数为0后,触发所述外部处理器读取所述预设乒存储器中的ADC数据;
在所述外部处理器读取所述预设乒存储器中的ADC数据的过程中,若所述未读取采样点数不为0,则根据所述未读取采样点数,配置所述存储器读先入先出队列的第二队列阈值;
将所述外部存储器中的ADC数据写入到所述存储器读先入先出队列,在所述存储器读先入先出队列中的ADC数据达到所述第二队列阈值时,将所述存储器读先入先出队列中的ADC数据写入到所述预设乓存储器,并更新所述未读取采样点数,执行根据所述未读取采样点数,配置所述存储器读先入先出队列的第二队列阈值的步骤;
在所述预设乓存储器写满ADC数据或所述未读取采样点数为0后,触发所述外部处理器读取所述预设乒存储器中的ADC数据;并且,若所述未读取采样点数不为0,则在所述外部处理器读取所述预设乒存储器中的ADC数据的过程中,执行所述根据所述未读取采样点数,配置所述存储器读先入先出队列的第一队列阈值的步骤。
9.一种多通道采集装置,其特征在于,应用于FPGA,包括:
频率计单元,用于获取外部输入的ADC采样的触发信号;其中,所述触发信号的频率在ADC采样时钟范围内;
采样存储单元,用于在接收到外部处理器发送的采样指令后,根据每次获取的所述触发信号,配置增量时延,对预设数量的ADC的ADC数据进行预设次数的采样,并将采样得到的ADC数据存储到外部存储器中;其中,所述FPGA分别与所述外部处理器和所述外部存储器连接,所述预设数量和所述预设次数均为大于或等于2的正整数;
存储读取单元,用于在接收到所述外部处理器的采样读取指令后,将所述外部存储器中的ADC数据传输到所述外部处理器;
其中,所述采样存储单元包括:
采样控制模块,用于根据每次获取的所述触发信号,通过粗调操作和细调操作调整所述增量时延,对所述预设数量的ADC的ADC数据进行预设次数的采样;其中,所述粗调操作对应的延迟时间大于所述细调操作对应的延迟时间;
多通道数据处理模块,用于将每次采样得到的各所述ADC的ADC数据,写入到各所述ADC各自对应的先入先出队列;
外部存储器写控制模块,用于将各所述ADC各自对应的先入先出队列中的ADC数据,写入到所述外部存储器中存储。
10.一种FPGA,其特征在于,包括:
存储器,用于存储计算机程序;
处理器件,用于执行所述计算机程序时实现如权利要求1至8任一项所述的多通道采集方法的步骤。
11.一种多通道采集系统,其特征在于,包括:如权利要求10所述的FPGA、与所述FPGA连接的外部处理器和预设数量的ADC。
12.一种采样示波器,其特征在于,包括:如权利要求11所述的多通道采集系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311479122.9A CN117420342B (zh) | 2023-11-08 | 2023-11-08 | 多通道采集方法、装置、系统、fpga及采样示波器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311479122.9A CN117420342B (zh) | 2023-11-08 | 2023-11-08 | 多通道采集方法、装置、系统、fpga及采样示波器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117420342A CN117420342A (zh) | 2024-01-19 |
CN117420342B true CN117420342B (zh) | 2024-04-09 |
Family
ID=89522748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311479122.9A Active CN117420342B (zh) | 2023-11-08 | 2023-11-08 | 多通道采集方法、装置、系统、fpga及采样示波器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117420342B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02284058A (ja) * | 1989-04-25 | 1990-11-21 | Hitachi Constr Mach Co Ltd | 超音波測定装置のa/d変換処理方式 |
CN1749985A (zh) * | 2005-10-10 | 2006-03-22 | 中国人民解放军国防科学技术大学 | 基于参量模型的周期信号等效采样方法 |
CN101144835A (zh) * | 2007-10-17 | 2008-03-19 | 电子科技大学 | 一种等效采样装置 |
JP2009210522A (ja) * | 2008-03-06 | 2009-09-17 | Kyosaitechnos Co Ltd | 等価サンプリング装置 |
CN109581016A (zh) * | 2018-11-07 | 2019-04-05 | 电子科技大学 | 一种随机时间等效采样系统 |
CN109901472A (zh) * | 2019-03-20 | 2019-06-18 | 电子科技大学 | 一种基于fpga的顺序等效采样系统 |
WO2020191611A1 (zh) * | 2019-03-26 | 2020-10-01 | 华为技术有限公司 | 跨时钟域同步电路以及方法 |
CN113535620A (zh) * | 2021-06-29 | 2021-10-22 | 电子科技大学 | 一种多通道同步高速数据采集装置 |
CN113533815A (zh) * | 2021-06-29 | 2021-10-22 | 电子科技大学 | 一种基于时间戳的多通道采样同步方法 |
-
2023
- 2023-11-08 CN CN202311479122.9A patent/CN117420342B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02284058A (ja) * | 1989-04-25 | 1990-11-21 | Hitachi Constr Mach Co Ltd | 超音波測定装置のa/d変換処理方式 |
CN1749985A (zh) * | 2005-10-10 | 2006-03-22 | 中国人民解放军国防科学技术大学 | 基于参量模型的周期信号等效采样方法 |
CN101144835A (zh) * | 2007-10-17 | 2008-03-19 | 电子科技大学 | 一种等效采样装置 |
JP2009210522A (ja) * | 2008-03-06 | 2009-09-17 | Kyosaitechnos Co Ltd | 等価サンプリング装置 |
CN109581016A (zh) * | 2018-11-07 | 2019-04-05 | 电子科技大学 | 一种随机时间等效采样系统 |
CN109901472A (zh) * | 2019-03-20 | 2019-06-18 | 电子科技大学 | 一种基于fpga的顺序等效采样系统 |
WO2020191611A1 (zh) * | 2019-03-26 | 2020-10-01 | 华为技术有限公司 | 跨时钟域同步电路以及方法 |
CN113535620A (zh) * | 2021-06-29 | 2021-10-22 | 电子科技大学 | 一种多通道同步高速数据采集装置 |
CN113533815A (zh) * | 2021-06-29 | 2021-10-22 | 电子科技大学 | 一种基于时间戳的多通道采样同步方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117420342A (zh) | 2024-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284247B (zh) | 一种多fpga的多通道采集系统存储同步方法 | |
JP3856696B2 (ja) | 2倍データ速度同期式動的ランダムアクセスメモリのための構成可能同期装置 | |
KR101549648B1 (ko) | 메모리 액세스 지연을 트레이닝하기 위한 방법 및 장치 | |
JP3712471B2 (ja) | コンピュータシステム及び第1の回路と第2の回路との間でデータを転送するインタフェース回路 | |
CN113615088B (zh) | 跨时钟域同步电路以及方法 | |
US8615673B2 (en) | Device synchronization using independent clocks | |
EP0378426A2 (en) | Data transfer using bus address lines | |
CN101692346B (zh) | 一种存储器数据采样装置及一种采样控制器 | |
JPS63163624A (ja) | インタフェースのための装置及び方法 | |
JPH02227766A (ja) | デジタル・コンピユータのデータ転送装置 | |
US7500042B2 (en) | Access control device for bus bridge circuit and method for controlling the same | |
CN112712829B (zh) | 一种跨时钟域的寄存器读写电路及方法 | |
CN115309687A (zh) | 跨数据帧的串行外围接口(spi)自动寄存器地址增量 | |
CN116089343A (zh) | 一种基于axi的数据存储方法、装置、存储介质及设备 | |
CN115656776A (zh) | 数字通道的延迟偏差测量方法、装置、电子装置 | |
CN108919707A (zh) | 一种64通道高精度数据采集系统 | |
CN117420342B (zh) | 多通道采集方法、装置、系统、fpga及采样示波器 | |
CN111641490B (zh) | 一种采样时钟高精度相位校准与时间基准确定方法 | |
CN117116311A (zh) | 一种带时间间隔测量功能的多通道触发读出电路 | |
CN115765743A (zh) | 基于zynq的多通道adc同步采集的装置及方法 | |
CN106445836B (zh) | 异步数据读写方法、系统及装置 | |
CN117407346B (zh) | 一种车规级芯片外部flash的采样点调整系统及方法 | |
CN117708032B (zh) | 一种多通道同步并行i2c通信方法、系统、电子设备 | |
CN115718442B (zh) | 基于fpga的示波功率分析仪同步采集系统 | |
CN115543825A (zh) | 一种片上测试数据重组和导入装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |