CN107479622A - 一种基于soc的双通道任意波形发生器和产生方法 - Google Patents
一种基于soc的双通道任意波形发生器和产生方法 Download PDFInfo
- Publication number
- CN107479622A CN107479622A CN201710179370.XA CN201710179370A CN107479622A CN 107479622 A CN107479622 A CN 107479622A CN 201710179370 A CN201710179370 A CN 201710179370A CN 107479622 A CN107479622 A CN 107479622A
- Authority
- CN
- China
- Prior art keywords
- waveform
- point
- data
- wave data
- module
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/022—Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers
Abstract
本申请公开了一种基于SOC的双通道任意波形发生器,SOC、存储器和数模转换器,SOC外部挂载存储器,根据两通道输入的波形类型、频率和相位信息,分别进行波形复制和调相处理,生成波形数据,并根据波形数据逐点生成波形点,再将波形点数据逐点输出至数模转换器。其中,与现有技术相比,在调相处理时,不需要对波形数据进行重组,而是通过根据地址偏移量改变读取数据的起始地址的方式或根据波形参考信息舍弃无效波形数据的方式,获得具有一定相位关系的两个波形,减少了处理器的数据处理量,节省波形产生耗费的时间和占用的处理器资源。相应地,本申请还提供了一种基于SOC的双通道任意波形产生方法。
Description
技术领域
本申请涉及信号发生器领域,尤其涉及一种基于SOC的双通道任意波形发生器和产生方法。
背景技术
传统的任意波形发生器常采用DDS技术,以直接数字合成的方式产生任意波形和频率,但这样的任意波形发生器在输出较高频率的任意波时,存在丢失波形细节和周期间存在固有抖动的缺点。为了避免克服这些缺点,一些任意波形发生器采用逐点任意波技术,通过逐点输出任意波形,在保证不丢失波形细节的前提下,能够以可变采样率输出任意长度的低抖动波形,采样率变化范围可从微赫兹到数百兆赫兹。相对于DDS技术,采用逐点任意波技术产生的任意波形,能够提供给用户高质量的任意波。
现有技术中,采用逐点任意波技术的双通道任意波形发生器常主要包括嵌入式处理器、逐点任意波产生模块、fifo模块、存储器和数模转换器,嵌入式处理器包括ARM、DSP或单片机等处理器,逐点任意波产生模块和fifo模块一般由FPGA等数字处理芯片构成,嵌入式处理器和逐点任意波产生模块分别挂载一个存储器。当需要输出两个具有一定相位关系的波形时,用户分别设置波形1和波形2的类型、频率和相位信息等参数后,嵌入式处理器先根据波形类型和频率,生成相位为零的原始波形数据,再根据波形1和波形2的相位信息,分别对原始波形数据进行重组,重组后得到具有一定相位关系的第一波形数据和第二波形数据;将第一波形数据和第二波形数据分别存入存储器;第一逐点任意波产生模块根据波形1的类型频率和相位,实时接收第一fifo模块传来的第一波形数据,逐点产生相应的波形点,并将波形点数据输出至给数模转换器,第二逐点任意波产生模块根据波形2的类型频率和相位,实时接收第二fifo模块传来的第二波形数据,逐点产生相应的波形点,并将波形点数据输出至给数模转换器,经数模转换器对分别对上述波形点数据数模转换后,输出两个具有一定相位关系的波形。
这样的双通道任意波形发生器产生的波形抖动低、采样率变化范围广,但由于借助嵌入式处理器和FPGA实现,且需要多个存储器,其硬件结构复杂,成本较高;而且在输出两个具有一定相位关系的波形时,假如波形数据很长,嵌入式处理器需要较长的时间处理波形数据,另外,当用户不断修改相位时,嵌入式处理器每次都需要对原始波形数据进行重组,耗费时间,占用嵌入式处理器的资源较大。
发明内容
本申请提供一种基于SOC的双通道任意波形发生器和产生方法,该双通道任意波形发生器硬件结构简单,输出波形时,耗费的时间和占用的处理器资源较小。
根据本申请的第一方面,本申请提供一种基于SOC的双通道任意波形产生方法,包括:
接收参数步骤,分别接收两通道输入的波形类型、频率和相位信息;
波形复制步骤,根据所述波形类型、频率和相位信息分别进行波形复制,生成波形数据并将其存储于存储器中,之后,发送产生波形信号,配置起始地址;
请求读取步骤,获取产生波形信号,发送请求读取信号;
数据读取步骤,响应请求读取信号,根据起始地址读取波形数据;
逐点生成步骤,获取读取到的波形数据,根据所述波形类型、频率和相位信息,逐点生成波形点,并将波形点数据逐点输出至数模转换器;
数模转换步骤,在数模转换器中对所述波形点数据进行数模转换,输出所需要的波形。
在一些实施例中,
所述波形复制步骤还包括调相处理步骤:
根据所述相位信息和波形长度,计算出地址偏移量;
根据所述地址偏移量,计算起始地址;
或,所述数据读取步骤还包括调相处理步骤:
根据所述相位信息和波形长度,计算出参考波形点信息;
根据所述参考波形点信息,舍弃所读取的波形数据中的无效数据,得到有效波形数据。
在一些实施例中,所述存储器包括DDR3存储器。
在一些实施例中,存储于存储器的波形数据在被读取后以DMA方式传输,每次DMA传输,传输一张DMA表。
根据本申请的第二方面,本申请提供一种基于SOC的双通道任意波形发生器,包括:PS处理器、PL数字电路、数据交互模块、存储器和数模转换器;
PS处理器用于接收两通道输入的波形类型、频率和相位信息;根据所述两通道输入的波形类型、频率和相位信息分别进行波形复制,生成对应的波形数据,并通过所述数据交互模块将所述波形数据分别存储于所述存储器中,之后,输出产生波形信号以及起始地址和DMA表长度;还用于根据所述相位信息和波形长度对需要读取的波形数据进行调相处理,计算地址偏移量,改变起始地址;
PL数字电路与所述PS处理器和数据交互模块相连接,用于获取产生波形信号,向所述数据交互模块输出请求读取信号;还用于接收读取到的波形数据,根据波形类型、频率和初始相位信息,逐点生成波形点,并将波形点数据逐点输出至数模转换器;
数模转换器用于对所述波形点数据进行数模转换,输出所需要的波形;
数据交互模块,数据交互模块一端与所述存储器相连接,另一端分别与PS处理器和PL数字电路相连接,用于控制所述存储器中存储空间资源的共享,响应请求读取信号,根据所述地址偏移量,改变起始地址读取所需的波形数据;
存储器用于存储波形复制和调相处理的程序以及PS处理器存入的波形数据。
根据本申请的第三方面,本申请提供另一种基于SOC的双通道任意波形发生器,包括:PS处理器、PL数字电路、数据交互模块、存储器和数模转换器;
PS处理器用于接收两通道输入的波形类型、频率和相位信息;根据所述两通道输入的波形类型、频率和相位信息分别进行波形复制,生成对应的波形数据,并通过所述数据交互模块将所述波形数据分别存储于所述存储器中,之后,输出产生波形信号以及起始地址和DMA表长度;还用于响应PL数字电路反馈的请求读取信号,输出波形相位信息和波形长度;
PL数字电路与所述PS处理器和数据交互模块相连接,用于获取产生波形信号,并向所述数据交互模块输出请求读取信号;根据所述相位信息和波形长度对需要读取的波形数据进行调相处理,计算参考波形点信息,根据所述参考波形点信息,舍弃所读取的波形数据中的无效数据后,得到有效波形数据;针对有效波形数据,根据波形类型、频率和初始相位信息,分别逐点生成波形点,并将波形点数据逐点输出至数模转换器;
数模转换器对所述波形点数据进行数模转换,输出所需要的波形;
数据交互模块,数据交互模块一端与所述存储器相连接,另一端分别与PS处理器和PL数字电路相连接,用于控制所述存储器中存储空间资源的共享,响应请求读取信号,根据所述起始地址和波形长度,在所述存储器中读取相应的波形数据;
存储器用于存储波形复制和调相处理的程序以及PS处理器存入的波形数据。
在一些实施例中,所述PL数字电路包括第一fifo模块、第二fifo模块、第一逐点任意波产生模块和第二逐点任意波产生模块,第一fifo模块与第一逐点任意波模块相连接构成通道一,第二fifo模块与第二逐点任意波模块相连接构成通道二;
第一逐点任意波产生模块或第二逐点任意波产生模块用于获取产生波形信号,向数据交互模块输出请求读取信号,还用于在接收到波形数据后,逐点生成波形点并将波形点数据逐点输出;
第一fifo模块或第二fifo模块用于缓存数据交互模块读取到的波形数据,并按先入先出的方式将缓存的所述波形数据发送给对应的逐点任意波产生模块。
在一些实施例中,所述PL数字电路还包括第一DMA模块和第二DMA模块,第一DMA模块连接于所述数据交互模块与第一fifo模块之间,用于将所述数据交互模块读取到的波形数据以DMA方式传输给第一fifo模块;第二DMA模块连接于所述数据交互模块与第二fifo模块之间,用于将所述数据交互模块读取到的波形数据以DMA方式传输给第二fifo模块。
根据本申请的第五方面,本申请提供一种基于SOC的双通道任意波形发生器,包括:
存储器,用于存储程序;
处理器,用于通过执行所述存储器存储的程序以实现上述本申请的第一方面中任一项所述的方法。
根据本申请的第五方面,本申请提供一种计算机可读存储介质,包括程序,所述程序能够被处理器执行以实现如上述本申请的第一方面任一项中所述的方法。
本申请的有益效果是:本申请不需要各种电子器件、芯片和互连线共同配合,基于SOC可使得波形发生器双通道输出逐点任意波形,使得系统硬件结构简化;在调相处理时,不需要对波形数据进行重组,而是通过根据地址偏移量改变读取数据的起始地址的方式或根据波形参考信息舍弃无效波形数据的方式,获得具有一定相位关系的两个波形,减少了处理器的数据处理量,节省波形产生耗费的时间和占用的处理器资源。
附图说明
图1为一种基于SOC的双通道任意波形发生器结构框图;
图2为一种基于SOC的双通道任意波形产生方法程序流程图;
图3为一种波形复制和DMA传输过程示意图;
图4为另一种波形复制和DMA传输过程示意图;
图5为一种调相处理方法;
图6为另一种调相处理方法;
图7为实施例一提供的一种基于SOC的双通道任意波形发生器的逐点任意波形产生过程示意图;
图8为实施例二提供的另一种基于SOC的双通道任意波形发生器的逐点任意波形产生过程示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
SOC是System on Chip的缩写,也即片上系统,在集成电路领域,它的定义为:由多个具有特定功能的集成电路组合在一个芯片上形成的系统或产品,其中包含完整的硬件系统及其承载的嵌入式软件。跟“Chip”的定义类似,SoC更强调的是一个整体,这意味着,在SOC上,能完成一个电子系统的功能,而这个系统在以前往往需要一个或多个电路板,以及板上的各种电子器件、芯片和互连线共同配合来实现。本申请中,SOC代替了现有技术中的嵌入式处理器和FPGA等数字处理芯片,简化了逐点任意波形发生器的硬件结构,成本更低,实现更容易。
实施例一:
请参考图1,为本申请提供的一种基于SOC的逐点任意波形发生器结构框图,该逐点任意波形发生器包括SOC1、存储器2和数模转换器3。
SOC1外部挂载存储器2,用于接收两通道输入的波形类型、频率和相位信息;根据两通道输入的波形类型和频率,分别进行波形复制,生成相应的波形数据并将其存储于存储器2中;根据相位信息,对需要读取的数据分别进行调相处理,读取调相处理后的波形数据,逐点生成波形点,并将波形点数据逐点输出至数模转换器。
存储器2用于SOC1内部嵌入式软件的运行和存储波形数据,包括存储波形复制和调相处理程序以及波形数据。优选地,存储器2为DDR3存储器。
数模转换器3用于接收SOC1输出的波形点数据,并对其进行数模转换,输出所需要的波形。
进一步,SOC1包括PS处理器11、PL数字电路12和数据交互模块13。
PS处理器11用于接收两通道输入的波形类型、频率和相位信息;根据两通道输入的波形类型、频率和相位信息分别进行波形复制,生成对应的波形数据,并通过数据交互模块13将波形数据分别存储于所述存储器2中,之后,输出产生波形信号以及起始地址和DMA表长度。
PS处理器11还用于根据相位信息和波形长度对需要读取的波形数据进行调相处理,计算地址偏移量,改变起始地址。
PL数字电路12与PS处理器11和数据交互模块13相连接,用于获取产生波形信号,向数据交互模块13输出请求读取信号;还用于接收读取到的波形数据,根据波形类型、频率和初始相位信息,逐点生成波形点,并将波形点数据逐点输出至数模转换器3。
数据交互模块13,数据交互模块13一端与存储器2相连接,另一端分别与PS处理器11和PL数字电路12相连接,用于控制存储器2中存储空间资源的共享,响应请求读取信号,根据地址偏移量,计算起始地址读取所需的波形数据。
PL数字电路12又包括第一fifo模块125、第二fifo模块126、第一逐点任意波产生模块123和第二逐点任意波产生模块124,第一fifo模块125与第一逐点任意波模块123相连接构成通道一,第二fifo模块126与第二逐点任意波模块124相连接构成通道二。
第一逐点任意波产生模块123用于获取产生波形信号,向数据交互模块13输出请求读取信号,还用于在接收到波形数据后,逐点生成波形点并将波形点数据逐点输出至数模转换器3,从而逐点生成波形1,产生低抖动的逐点任意波。第一fifo模块125用于缓存数据交互模块13读取到的波形数据,并按先入先出的方式将缓存的所述波形数据发送给对应的逐点任意波产生模块123。
第二逐点任意波产生模块124用于获取产生波形信号,向数据交互模块13输出请求读取信号,还用于在接收到波形数据后,逐点生成波形点并将波形点数据逐点输出至数模转换器3,从而逐点生成波形2,产生低抖动的逐点任意波。第二fifo模块126用于缓存数据交互模块13读取到的波形数据,并按先入先出的方式将缓存的所述波形数据发送给对应的逐点任意波产生模块124。
由于生成的逐点波形点的采样率可高达数百兆,这便要求数据交互模块13每秒需要发送数百兆点的数据给第一fifo模块125和第二fifo模块126,这样的带宽很大。在一些实施例中,波形数据从存储器2中读取后,数据交互模块13与第一fifo模块125和第二fifo模块126之间的数据传输采用DMA传输模式,DMA每传输一次,需要一张DMA表,因此,PL数字电路12还包括第一DMA模块127和第二DMA模块128。
第一DMA模块127连接于数据交互模块13与第一fifo模块125之间,用于将数据交互模块13读取到的波形数据以DMA方式传输给第一fifo模块125中缓存。第一DMA模块127还与PS处理器11和第一逐点任意波产生模块123相连接,用于响应第一逐点任意波产生模块123发出的波形数据读取请求信号,将PS处理器11配置的地址偏移量和波形长度发送至数据交互模块13。
第二DMA模块128连接于数据交互模块13与第二fifo模块126之间,用于将数据交互模块13读取到的波形数据以DMA方式传输给第二fifo模块126中缓存。第二DMA模块128还与PS处理器11和第二逐点任意波产生模块124相连接,用于响应第二逐点任意波产生模块124发出的波形数据读取请求信号,将PS处理器11配置的地址偏移量和波形长度发送至数据交互模块13。
需要指出的是,由于采用DMA方式传输波形数据,数据交互模块13发送的数据是一段一段的,每段数据间会存在时间空隙,在时间空隙中没有波形数据被传输,而逐点任意波是实时产生的,为了保证逐点任意波产生模块121能实时接收到波形数据并生产连续的逐点任意波,这便是本申请采用第一fifo模块125和第二fifo模块126来缓存波形数据的原因。
相应地,参考图2,本申请还提出了一种基于SOC的逐点任意波形产生方法,包括:
步骤100,接收参数。分别接收两通道输入的波形类型、频率和相位信息;
步骤200,进行波形复制。根据所述波形类型、频率和相位信息分别进行波形复制,生成波形数据并将其存储于存储器2中,之后,发送产生波形信号,配置起始地址和DMA表长度;
其中,存储器2为DDR3存储器,存储于存储器2的波形数据在被读取后以DMA方式传输;
步骤300,请求读取波形数据。获取产生波形信号,输出请求读取信号;
步骤400,读取波形数据。响应请求读取信号,根据起始地址和DMA表长度读取波形数据;
步骤500,逐点生成波形点。获取读取到的的波形数据,根据波形类型、频率和相位信息,逐点生成波形点,并将波形点数据逐点输出至数模转换器;
步骤600,进行数模转换。在数模转换器中对所述波形点数据进行数模转换,输出所需要的波形。
在步骤200中,根据DDR3存储器的特性,波形数据需要较长才能保持高的读取效率,如果波形长度较短,需要复制波形,使其波形达到一定长度来提高读取效率。也就是说,若波形长度较短,需要将波形复制到足够的长度后再存入存储器2中。而且由于存储于存储器2的波形数据在被读取后以DMA方式传输,传输时波形数据为一段一段,也要求将波形复制到足够的长度,其中,波形数据被以DMA方式传输时,每次传输一段DMA表。
如图3和图4所示,为本实施例的波形复制和DMA传输过程示意图。
假设L表示波形数据的长度,Ldma表示DMA表的长度,Ldmamax表示DMA最大段长,则,
当相位信息P=0,其波形复制和DMA传输过程为:
参考图(3-a),当L<Ldmamax/2,波形需要复制m次,其中,floor表示向下取整;比如,Ldmamax=10,L=3,则m=2,即需要将波形复制2遍后组成新的波形再存入存储器2中;DMA传输时,每次传输m+1个周期的波形数据,DMA表的长度Ldma=(m+1)*L;假如Ldmamax=10,L=3,则每次传输,将传输了3个周期的波形数据,Ldma=9;
参考图(3-b),当Ldmamax>L>Ldmamax/2,则不复制波形数据;DMA传输时,每次传输1个周期的波形数据需要传输1次,共1段DMA表,DMA表的长度Ldma=L。
参考图(3-c),当Ldmamax<L,也不复制波形数据;DMA传输时,传输1个周期的波形数据需要传输n次,共n段DMA表。每段DMA表的长度Ldma=L/n,其中,n=ceiling(L/Ldmamax),ceiling表示向上取整。比如,Ldmamax=10,L=21,则n=3,Ldma=7,1个周期的波形需要传输DMA传输3次。设定第一次起始地址为Addr,则,第二次起始地址为Addr+Ldma,第三次起始地址为Addr+2*Ldma,每次传输的段长为Ldma=7。如此一来,可使得fifo模块122接收的波形数据段与段之间的时间间隙最小化。
假如相位信息P≠0,步骤200还需要对波形数据进行调相处理。
相应地,参考图5,本申请提供了一种调相方法,包括:
步骤201,根据相位信息P和波形长度L,计算出地址偏移量;地址偏移量量表示为
步骤202,根据地址偏移量,计算起始地址;起始地址的计算方法为Addr表示P=0时起始地址。
波形复制和DMA传输过程为:
参考图(4-a),当L<Ldmamax/2时,波形需要复制m+1次(图中以m=3为例);DMA表的长度Ldma=(m+1)*L,DMA传输时,根据地址偏移量改变起始地址,将波形数据进行DMA传输,为了传输完全部波形数据(m+1个周期),需要传输1次,共1张DMA表,改变后的起始地址为
参考图(4-b),当Lmax>L>Ldmamax/2时,波形需要复制1张DMA表长度的波形,DMA表长度Ldma=L,复制后波形长度L′=2Ldma=2L;根据地址偏移量改变起始地址,将波形数据进行DMA传输,为了传输完全部波形数据(1个周期),需要传输1次,共1张DMA表,改变后的起始地址为
参考图(4-c),当Ldmamax<L,波形需要复制1张DMA表长度的波形,DMA表长度Ldma=L/n,复制后波形长度L′=(n+1)Ldma,其中,n=ceiling(L/Ldmamax),ceiling表示向上取整;根据地址偏移量改变起始地址,将波形数据进行DMA传输,为了传输完全部波形数据(1个周期),需要n次,共n张DMA表。改变后的起始地址为:
第一次起始地址,
第x次起始地址,x=2~n:
为了判断当前第x段的起始地址是否大于最大的起始地址Addr+n*Ldma,第x段的起始地址Addr′表示为:若则否则,
其中,n=ceiling(L/Ldmamax),ceiling表示向上取整。例如,Ldmamax=10,L=21,则n=3,Ldma=7,1个周期的波形需要传输DMA传输3次。
如图6所示,为本实施例提供的一种基于SOC的双通道任意波形发生器逐点任意波形产生过程(以通道一为例),包括:
1)PS处理器11接收输入的波形类型、频率和初始相位信息,通过波形复制,将生成的波形数据存储于存储器2中;根据相位信息对波形进行调相处理,计算出地址偏移量并根据地址偏移量计算起始地址;PS处理器11向逐点任意波产生模块123输出产生波形信号和向DMA模块127配置起始地址和DMA表长度;
2)在获取产生波形信号后,逐点任意波产生模块123向DMA模块127发送请求读取信号;
3)接收到请求读取信号后,DMA模块127将请求读取信号、起始地址和DMA表长度发送给数据交互模块13,数据交互模块13在存储器2中读取相应的波形数据并将读取的波形数据发送至第一fifo模块125中缓存;
4)第一逐点任意波产生模块123实时接收第一fifo模块125以先入先出方式输出的波形数据,逐点生成波形点并将波形点数据逐点输出至数模转换器3;
5)数模转换器3对波形点数据进行数模转换后输出所需要的逐点任意波。
本实施例中通道二逐点任意波形产生过程与通道一相同,不再赘述。
基于上述描述,现通过举例说明如何获得两个具有一定相位关系的任意波。
假设所需要的波形1为方波、频率为f1、相位为P1,所需要的波形2为正弦波、频率为f2、相位为P2,其中P1≠P2。则,
PS处理器11在接收到以上参数后,将进行波形复制,将相位为零的波形1数据和波形2数据分别存入存储器2中相应的地址,其起始地址分别为Addr1和Addr2;在收到反馈的请求读取信号后,根据相位P1计算波形1的地址偏移量根据相位P2计算波形2的地址偏移量之后新起始地址 发送给数据交互模块13,由数据交互模块13在存储器中根据地址偏移量改变起始地址读取相应的波形数据;被读取的波形数据被相应发送至通道一和通道二,逐点生成波形点,最终得到具有相位关系为P2-P1的一个方波和一个正弦波。
实施例二:
参考图1,本实施例提供了另一种基于SOC的逐点任意波形发生器,与实施例一相比,区别之处在于:波形复制和调相处理有所不同。
对波形数据的调相处理可采用PL数字电路12实现的替代方案,使得PS处理器11无需进行调相处理,进一步减少处理器的数据运算量,具体为:
第一逐点任意波产生模块123还用于根据通道一输入的相位信息和波形长度对需要读取的波形数据进行调相处理,计算参考波形点信息;第一fifo模块125还用于根据参考波形点信息,舍弃所读取的波形数据中的无效数据后,得到有效波形数据,将有效波形数据以先入先出的方式输出至第一逐点任意波产生模块123;
第二逐点任意波产生模块124还用于根据通道二输入的相位信息和波形长度对需要读取的波形数据进行调相处理,计算参考波形点信息;第一fifo模块126还用于根据参考波形点信息,舍弃所读取的波形数据中的无效数据后,得到有效波形数据,将有效波形数据以先入先出的方式输出至第二逐点任意波产生模块124;
其中,参考波形点信息为P表示相位信息和L表示波形长度。
如图3所示,为本实施例的波形复制和DMA传输过程示意图。
与实施例一相同,本实施例在步骤200中,也需要进行波形复制,波形复制和DMA传输过程为:
参考图(3-a),当L<Ldmamax/2,波形需要复制m次,其中,floor表示向下取整;比如,Ldmamax=10,L=3,则m=2,即需要将波形复制2遍后组成新的波形再存入存储器2中;DMA传输时,每次传输m+1个周期的波形数据,DMA表的长度Ldma=(m+1)*L;假如Ldmamax=10,L=3,则每次传输,将传输了3个周期的波形数据,Ldma=9;
参考图(3-b),当Ldmamax>L>Ldmamax/2,则不复制波形数据;DMA传输时,每次传输1个周期的波形数据需要传输1次,共1段DMA表,DMA表的长度Ldma=L。
参考图(3-c),当Ldmamax<L,也不复制波形数据;DMA传输时,传输1个周期的波形数据需要传输n次,共n段DMA表。每段DMA表的长度Ldma=L/n,其中,n=ceiling(L/Ldmamax),ceiling表示向上取整。比如,Ldmamax=10,L=21,则n=3,Ldma=7,1个周期的波形需要传输DMA传输3次。设定第一次起始地址为Addr,则,第二次起始地址为Addr+Ldma,第三次起始地址为Addr+2*Ldma,每次传输的段长为Ldma=7。如此一来,可使得fifo模块122接收的波形数据段与段之间的时间间隙最小化。
与实施例一相比,本实施例在步骤400中对波形数据进行调相处理。
相应地,参考图7本申请提供了另一种调相处理方法,包括:
步骤401,根据相位信息P和波形长度L,计算出参考波形点信息
步骤402,根据参考波形点信息,舍弃所读取的波形数据中的无效数据,得到有效波形数据。
例如,对于相位信息P为72度,长度L为10的波形数据,包括波形数据:a、b、c、d、e、f、g、h、i、j;参考波形点信息表示为A=3,则舍弃第3个数据之前的a、b。
因此,当前接收到的波形数据小于参考波形点时,舍弃发来的数据,直到接收到的波形数据点数大于等于无效点数,此时接收DMA模块发来的数据,并存入fifo模块中缓存。当第一fifo模块125和第二fifo模块126都存满时,逐点任意波产生模块开始运行,因P1≠P2,则A1≠A2,两通道舍弃的无效点数不同,此时通道一输出的波形和通道二输出的波形具有的相位关系为P2-P1。
如图8所示,为实施例二提供的一种基于SOC的双通道任意波形发生器逐点任意波形产生过程(以通道一为例),包括:
1)PS处理器11接收输入的波形类型、频率和初始相位信息,通过波形复制,将生成的波形数据存储于存储器2中;PS处理器11向逐点任意波产生模块123输出产生波形信号和向DMA模块127配置起始地址和DMA表长度;
2)在获取产生波形信号后,逐点任意波产生模块123向DMA模块127发送请求读取信号,并将请求读取信号反馈至PS处理器11;
3)接收到请求读取信号后,DMA模块127将请求读取信号、起始地址和DMA表长度发送给数据交互模块13,数据交互模块13读取相应的波形数据;波形数据被读取后,数据交互模块13将波形数据通过DMA模块127发送至fifo模块125中缓存;
4)PS处理器11将相位信息和波形长度发送至第一逐点任意波产生模块123,第一逐点任意波产生模块123根据相位信息和波形长度,计算出波形参考信息并将其发送至第一fifo模块125;根据波形参考信息,第一fifo模块125舍弃数据交互模块13发送的波形数据中的无效数据,并将有效数据以先入先出方式输出至第一逐点任意波产生模块123;
5)第一逐点任意波产生模块123实时接收第一fifo模块125输出的有效波形数据,逐点生成波形点并将波形点数据逐点输出至数模转换器3;
6)数模转换器3对波形点数据进行数模转换后输出所需要的逐点任意波。
本实施例中其他内容与实施例一相同,不再赘述。
综上所述,与现有技术对比,本申请不需要各种电子器件、芯片和互连线共同配合,仅需要SOC1就能产生逐点任意波形,其中,PS处理器11充当了嵌入式处理器,PL数字电路12充当了FPGA等数字处理芯片,系统硬件结构简化,特别是,在调相处理时,不需要对波形数据进行重组,而是通过根据地址偏移量改变读取数据的起始地址的方式或根据波形参考信息舍弃无效波形数据的方式,获得具有一定相位关系的两个波形,减少了处理器的数据处理量,节省波形产生耗费的时间和占用的处理器资源。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。
以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请发明构思的前提下,还可以做出若干简单推演或替换。
Claims (10)
1.一种基于SOC的双通道任意波形产生方法,其特征在于,包括:
接收参数步骤,分别接收两通道输入的波形类型、频率和相位信息;
波形复制步骤,根据所述波形类型、频率和相位信息分别进行波形复制,生成波形数据并将其存储于存储器中,之后,发送产生波形信号,配置起始地址;
请求读取步骤,获取产生波形信号,发送请求读取信号;
数据读取步骤,响应请求读取信号,根据起始地址长度读取波形数据;
逐点生成步骤,获取读取到的波形数据,根据所述波形类型、频率和相位信息,逐点生成波形点,并将波形点数据逐点输出至数模转换器;
数模转换步骤,在数模转换器中对所述波形点数据进行数模转换,输出所需要的波形。
2.如权利要求1所述的方法,其特征在于,
所述波形复制步骤还包括调相处理步骤:
根据所述相位信息和波形长度,计算出地址偏移量;
根据所述地址偏移量,计算起始地址;
或,所述数据读取步骤还包括调相处理步骤:
根据所述相位信息和波形长度,计算出参考波形点信息;
根据所述参考波形点信息,舍弃所读取的波形数据中的无效数据,得到有效波形数据。
3.如权利要求1或2所述的方法,其特征在于,所述存储器包括DDR3存储器。
4.如权利要求3所述的方法,其特征在于,存储于存储器的波形数据在被读取后以DMA方式传输,每次DMA传输,传输一张DMA表。
5.一种基于SOC的双通道任意波形发生器,其特征在于,包括:PS处理器、PL数字电路、数据交互模块、存储器和数模转换器;
PS处理器用于接收两通道输入的波形类型、频率和相位信息;根据所述两通道输入的波形类型、频率和相位信息分别进行波形复制,生成对应的波形数据,并通过所述数据交互模块将所述波形数据分别存储于所述存储器中,之后,输出产生波形信号以及起始地址和DMA表长度;还用于根据所述相位信息和波形长度对需要读取的波形数据进行调相处理,计算地址偏移量,改变起始地址;
PL数字电路与所述PS处理器和数据交互模块相连接,用于获取产生波形信号,向所述数据交互模块输出请求读取信号;还用于接收读取到的波形数据,根据波形类型、频率和初始相位信息,逐点生成波形点,并将波形点数据逐点输出至数模转换器;
数模转换器用于对所述波形点数据进行数模转换,输出所需要的波形;
数据交互模块,数据交互模块一端与所述存储器相连接,另一端分别与PS处理器和PL数字电路相连接,用于控制所述存储器中存储空间资源的共享,响应请求读取信号,根据所述地址偏移量,改变起始地址读取所需的波形数据;
存储器用于存储波形复制和调相处理的程序以及PS处理器存入的波形数据。
6.一种基于SOC的双通道任意波形发生器,其特征在于,包括:PS处理器、PL数字电路、数据交互模块、存储器和数模转换器;
PS处理器用于接收两通道输入的波形类型、频率和相位信息;根据所述两通道输入的波形类型、频率和相位信息分别进行波形复制,生成对应的波形数据,并通过所述数据交互模块将所述波形数据分别存储于所述存储器中,之后,输出产生波形信号以及起始地址和DMA表长度;还用于响应PL数字电路反馈的请求读取信号,输出波形相位信息和波形长度;
PL数字电路与所述PS处理器和数据交互模块相连接,用于获取产生波形信号,并向所述数据交互模块输出请求读取信号;根据所述相位信息和波形长度对需要读取的波形数据进行调相处理,计算参考波形点信息,根据所述参考波形点信息,舍弃所读取的波形数据中的无效数据后,得到有效波形数据;针对有效波形数据,根据波形类型、频率和初始相位信息,分别逐点生成波形点,并将波形点数据逐点输出至数模转换器;
数模转换器对所述波形点数据进行数模转换,输出所需要的波形;
数据交互模块,数据交互模块一端与所述存储器相连接,另一端分别与PS处理器和PL数字电路相连接,用于控制所述存储器中存储空间资源的共享,响应请求读取信号,根据所述起始地址和波形长度,在所述存储器中读取相应的波形数据;
存储器用于存储波形复制和调相处理的程序以及PS处理器存入的波形数据。
7.如权利要求6或7所述的双通道任意波形发生器,其特征在于,所述PL数字电路包括第一fifo模块、第二fifo模块、第一逐点任意波产生模块和第二逐点任意波产生模块,第一fifo模块与第一逐点任意波模块相连接构成通道一,第二fifo模块与第二逐点任意波模块相连接构成通道二;
第一逐点任意波产生模块或第二逐点任意波产生模块用于获取产生波形信号,向数据交互模块输出请求读取信号,还用于在接收到波形数据后,逐点生成波形点并将波形点数据逐点输出;
第一fifo模块或第二fifo模块用于缓存数据交互模块读取到的波形数据,并按先入先出的方式将缓存的所述波形数据发送给对应的逐点任意波产生模块。
8.如权利要求8所述的双通道任意波形发生器,其特征在于,所述PL数字电路还包括第一DMA模块和第二DMA模块,第一DMA模块连接于所述数据交互模块与第一fifo模块之间,用于将所述数据交互模块读取到的波形数据以DMA方式传输给第一fifo模块;第二DMA模块连接于所述数据交互模块与第二fifo模块之间,用于将所述数据交互模块读取到的波形数据以DMA方式传输给第二fifo模块。
9.一种基于SOC的双通道任意波形发生器,其特征在于,包括:
存储器,用于存储程序;
处理器,用于通过执行所述存储器存储的程序以实现如权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710179370.XA CN107479622A (zh) | 2017-03-23 | 2017-03-23 | 一种基于soc的双通道任意波形发生器和产生方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710179370.XA CN107479622A (zh) | 2017-03-23 | 2017-03-23 | 一种基于soc的双通道任意波形发生器和产生方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107479622A true CN107479622A (zh) | 2017-12-15 |
Family
ID=60594748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710179370.XA Pending CN107479622A (zh) | 2017-03-23 | 2017-03-23 | 一种基于soc的双通道任意波形发生器和产生方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107479622A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109696572A (zh) * | 2019-01-23 | 2019-04-30 | 济南浪潮高新科技投资发展有限公司 | 一种pcie接口的波形发生器及波形输出方法 |
CN109714115A (zh) * | 2018-12-28 | 2019-05-03 | 中科院计算技术研究所南京移动通信与计算创新研究院 | 一种远程配置的fpga波形产生方法、装置、设备及存储介质 |
CN117270628A (zh) * | 2023-11-22 | 2023-12-22 | 苏州元脑智能科技有限公司 | 波形数据生成方法、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2258774B (en) * | 1991-08-16 | 1994-12-07 | Marconi Instruments Ltd | Waveform generators |
GB2430320A (en) * | 2005-09-19 | 2007-03-21 | Agilent Technologies Inc | Advanced arbitrary waveform generator |
US7714623B2 (en) * | 2008-04-09 | 2010-05-11 | Ut-Battelle, Llc | Agile high resolution arbitrary waveform generator with jitterless frequency stepping |
CN102468826A (zh) * | 2010-11-03 | 2012-05-23 | 北京普源精电科技有限公司 | 一种多功能信号发生器 |
CN105137401A (zh) * | 2015-08-24 | 2015-12-09 | 哈尔滨工程大学 | 一种快速细步进捷变频雷达信号产生装置 |
-
2017
- 2017-03-23 CN CN201710179370.XA patent/CN107479622A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2258774B (en) * | 1991-08-16 | 1994-12-07 | Marconi Instruments Ltd | Waveform generators |
GB2430320A (en) * | 2005-09-19 | 2007-03-21 | Agilent Technologies Inc | Advanced arbitrary waveform generator |
US7714623B2 (en) * | 2008-04-09 | 2010-05-11 | Ut-Battelle, Llc | Agile high resolution arbitrary waveform generator with jitterless frequency stepping |
CN102468826A (zh) * | 2010-11-03 | 2012-05-23 | 北京普源精电科技有限公司 | 一种多功能信号发生器 |
CN105137401A (zh) * | 2015-08-24 | 2015-12-09 | 哈尔滨工程大学 | 一种快速细步进捷变频雷达信号产生装置 |
Non-Patent Citations (1)
Title |
---|
宿玲玲: ""基于FPGA的任意波信号发生系统的软件设计与实现"", 《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109714115A (zh) * | 2018-12-28 | 2019-05-03 | 中科院计算技术研究所南京移动通信与计算创新研究院 | 一种远程配置的fpga波形产生方法、装置、设备及存储介质 |
CN109714115B (zh) * | 2018-12-28 | 2021-02-23 | 中科院计算技术研究所南京移动通信与计算创新研究院 | 一种远程配置的fpga波形产生方法、装置、设备及存储介质 |
CN109696572A (zh) * | 2019-01-23 | 2019-04-30 | 济南浪潮高新科技投资发展有限公司 | 一种pcie接口的波形发生器及波形输出方法 |
CN117270628A (zh) * | 2023-11-22 | 2023-12-22 | 苏州元脑智能科技有限公司 | 波形数据生成方法、计算机设备和存储介质 |
CN117270628B (zh) * | 2023-11-22 | 2024-02-23 | 苏州元脑智能科技有限公司 | 波形数据生成方法、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | A hierarchical game framework for resource management in fog computing | |
CN105612501B (zh) | 用于跨越具有非对称存储容量的多通道存储器架构对数据均匀交织的系统和方法 | |
CN103927268B (zh) | 一种存储器的访问方法及装置 | |
CN107102683A (zh) | 一种基于soc的逐点任意波形发生器和产生方法 | |
CN106951926A (zh) | 一种混合架构的深度学习系统方法及装置 | |
CN107479622A (zh) | 一种基于soc的双通道任意波形发生器和产生方法 | |
CN109740739A (zh) | 神经网络计算装置、神经网络计算方法及相关产品 | |
CN105556421B (zh) | 使用动态存储i/o调整大小来节约存储功率的系统和方法 | |
CN110163357A (zh) | 一种计算装置及方法 | |
CN107771325A (zh) | 在高速外围组件互连(pcie)系统中传达因事务而异的属性 | |
CN106294239A (zh) | 一种外围总线apb总线桥 | |
CN109858621A (zh) | 一种卷积神经网络加速器的调试装置、方法及存储介质 | |
CN109993301A (zh) | 神经网络训练装置及相关产品 | |
CN110163334A (zh) | 集成电路芯片装置及相关产品 | |
CN110276447A (zh) | 一种计算装置及方法 | |
CN104079268A (zh) | 用于脉冲电源的任意波形发生与显示的实现方法及装置 | |
CN106227673B (zh) | 一种基于dma的序列波形合成方法 | |
CN106294279A (zh) | 一种基于大容量fpga的采集处理卡系统 | |
CN107659509A (zh) | 控制应用流量使用方法、装置、可读存储介质及终端设备 | |
CN105871337A (zh) | 一种改进的可分段调制的信号发生器 | |
CN106845041A (zh) | 基于mmc的实时仿真系统、仿真方法及mmc阀仿真器 | |
CN206147623U (zh) | 一种基于大容量fpga的采集处理卡装置 | |
CN109389213A (zh) | 存储装置及方法、数据处理装置及方法、电子装置 | |
CN108960420A (zh) | 处理方法及加速装置 | |
CN108572787A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171215 |
|
WD01 | Invention patent application deemed withdrawn after publication |