一种任意波形复合信号发生器及信号发生方法转让专利

申请号 : CN200510036663.X

文献号 : CN1767384B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谢胜利李卫军傅予力邓毅华

申请人 : 华南理工大学

摘要 :

本发明提供一种任意波形复合信号发生器,包括本地总线控制模块、FIFO速率调整模块、D/A数模变换模块、低通滤波模块、模拟相乘器依次连接组成,本地总线控制模块还连接有存储模块,且通过本地总线、PCI总线插脚与计算机的PCI总线控制器、PCI总线依次连接,模拟相乘器设有信号输出端口、载波输入端口,通过载波输入端口与外部信号源连接。

权利要求 :

1.一种任意波形复合信号发生器,其特征在于:包括本地总线控制模块、FIFO速率调整模块、D/A数模变换模块、低通滤波模块、模拟相乘器依次连接组成,所述本地总线控制模块还连接有存储模块,且通过本地总线、PCI总线插脚与计算机的PCI总线控制器、PCI总线依次连接,所述模拟相乘器设有信号输出端口、载波输入端口,通过所述载波输入端口与外部信号源连接。

2.权利要求1所述一种任意波形复合信号发生器的信号发生方法,其特征在于包括如下步骤:(1)把本任意波形复合信号发生器的PCI总线插脚插入到计算机的PCI总线插槽中;

(2)启动计算机,安装驱动程序和应用程序;

(3)打开外部信号源,选择正弦信号,根据需要调节其频率为所需信号的中心频率,调节其输出幅度达到要求,并将外部信号源的输出与本任意波形复合信号发生器的载波输入端口相连;

(4)运行所述应用程序,用户设置各种信号参数后,选择是否直接输出,若选择否,则应用程序计算各独立波形单个样值后,按比例叠加成复合波形单个样值,并生成复合波形样值数据块,若选择是,则应用程序生成待合成单个波形样值数据块后,按比例叠加合成复合波形样值数据块;

(5)应用程序调用驱动程序DMA服务,将样值数据块通过PCI总线控制器、PCI总线插脚输送至本信号发生器的本地总线控制模块;

(6)选择是否直接输出,若选择先存储后输出,则样值数据块经本地总线控制模块后,先保存在存储模块中,在用户选择输出存储波形时,数据送往FIFO速率调整模块,若选择直接输出,则样值数据块经本地总线控制模块后,直接送往FIFO速率调整模块;

(7)数据通过FIFO速率调整模块调整速率,使输出数据的速率与D/A数模变换模块的速率相同;

(8)从FIFO出来的数据,进入D/A数模变换模块,完成数模变换;

(9)D/A数模变换模块输出的模拟信号,经过低通滤波器滤除D/A数模变换后产生的高次谐波,进入模拟相乘器;

(10)在模拟相乘器中,低通滤波器的输出信号与外部信号源从载波端口输入的外部载波相乘,进行上变频调制,调制到所需频率后输出目标波形。

3.按权利要求2所述一种所述任意波形复合信号发生器的信号发生方法,其特征在于所述驱动程序DMA服务包括存储波形DMA服务、直接输出波形DMA服务,所述存储波形DMA服务与通用DMA服务相同,所述直接输出波形DMA服务,包括如下步骤:(1)初始化DMA操作,包括设置DMA缓冲区,设置输出端口,设置中断服务程序;

(2)等待命令状态;

(3)在接收到“DMA写操作”命令后,进入DMA准备阶段,获得DMA缓冲区首地址及待传输的数据长度;

(4)保存DMA缓冲区首地址及待传输的数据长度;

(5)启动DMA传输,进行一次DMA传输;

(6)当一次DMA传输结束时,系统产生中断,中断被驱动程序的中断服务程序捕获,并判断是否结束输出波形,若为否,则置入前面保存的DMA缓冲区首地址及待传输的数据长度,再次启动DMA传输,对同一DMA缓冲区再次进行DMA输出操作,若为是,则停止DMA输出,并删除DMA缓冲区,返回到等待命令状态。

4.按权利要求3所述一种所述任意波形复合信号发生器的信号发生方法,其特征在于:所述直接输出波形DMA服务的过程中,DMA缓冲区的内容不变,一次DMA传输输出4M个样值,即1秒波形的数据,反复传输这1秒波形,形成连续波形。

说明书 :

技术领域

本发明涉及信号发生器技术领域,具体是指一种任意波形复合信号发生器及信号发生方法。

背景技术

现有信号发生器按生成信号是否标准可分为:其一,标准信号发生器,如:高、低频信号发生器,电视信号发生器,调频、调幅信号发生器等,这种信号发生器产生的信号是标准信号;其二,任意波形信号发生器,这种波形发生器可根据取样点计算,产生自订的波形。
上述标准信号发生器只能生成单一的标准信号,而当代的信号处理往往要求能提供复杂的、多信号合成的信号源,这时就必须使用任意波形信号发生器。现有的任意波形信号发生器,大部分是内置了多种波形,然后将多种波形合成,产生复合波形。然而,当要求生成的波形不能由已有的有限波形构成时,现有的任意波形信号发生器便无法产生要求的波形。
目前在扩频通信技术领域,尚未出现可直接合成直接序列扩频信号和各种通信干扰信号的复合信号发生器,而且目前的任意波形信号发生器也无法构造特定的干扰类型。

发明内容

本发明的目的在于克服上述现有技术的缺点,提供一种实用、灵活、可编程、可直接合成直接序列扩频信号与各种干扰信号的任意波形复合信号发生器。
本发明的目的还在于提供上述任意波形复合信号发生器的信号发生方法。
本发明通过下述技术方案实现:本任意波形复合信号发生器,包括本地总线控制模块、FIFO速率调整模块、D/A数模变换模块、低通滤波模块、模拟相乘器依次连接组成,所述本地总线控制模块还连接有存储模块,且通过本地总线、PCI总线插脚与计算机的PCI总线控制器、PCI总线依次连接,所述模拟相乘器设有信号输出端口、载波输入端口,通过所述载波输入端口与外部信号源连接。
本任意波形复合信号发生器中,所述本地总线控制模块是控制数据传输的核心部分;所述PCI总线插脚是指本任意复合信号发生器与计算机的PCI插槽接触的部分;所述PCI总线控制器将计算机输出的数据输送至本任意复合信号发生器;通过所述FIFO速率调整模块调整数据输出的速率;通过所述D/A数模变换模块完成数模变换;通过所述低通滤波器滤除D/A变换后的高次谐波;通过所述模拟相乘器完成上变频功能;通过所述存储模块存储待输出的样值数据。
本任意波形复合信号发生器的信号发生方法,其步骤包括:
(1)把本任意波形复合信号发生器的PCI总线插脚插入到计算机的PCI总线插槽中;
(2)启动计算机,安装驱动程序和应用程序;
(3)打开外部信号源,选择正弦信号,根据需要调节其频率为所需信号的中心频率,调节其输出幅度达到要求,并将外部信号源的输出与本任意波形复合信号发生器的载波输入端口相连;
(4)运行所述应用程序,用户设置各种信号参数后,选择是否直接输出,若选择否,则应用程序计算各独立波形单个样值后,按比例叠加成复合波形单个样值,并生成复合波形样值数据块,若选择是,则应用程序生成待合成单个波形样值数据块后,按比例叠加合成复合波形样值数据块;
(5)应用程序调用驱动程序DMA服务,将样值数据块通过PCI总线控制器、PCI总线插脚输送至本信号发生器的本地总线控制模块;
(6)选择是否直接输出,若选择先存储后输出,则样值数据块经本地总线控制模块后,先保存在存储模块中,在用户选择输出存储波形时,数据送往FIFO速率调整模块,若选择直接输出,则样值数据块经本地总线控制模块后,直接送往FIFO速率调整模块;
(7)数据通过FIFO速率调整模块调整速率,使输出数据的速率与D/A数模变换模块的速率相同;
(8)从FIFO出来的数据,进入D/A数模变换模块,完成数模变换;
(9)D/A数模变换模块输出的模拟信号,经过低通滤波器滤除D/A数模变换后产生的高次谐波,进入模拟相乘器;
(10)在模拟相乘器中,低通滤波器的输出信号与外部信号源从载波端口输入的外部载波相乘,进行上变频调制,调制到所需频率后输出目标波形。
所述驱动程序DMA服务包括存储波形DMA服务、直接输出波形DMA服务,所述存储波形DMA服务与通用DMA服务相同,所述直接输出波形DMA服务,其工作步骤包括:
(1)初始化DMA操作,包括设置DMA缓冲区,设置输出端口,设置中断服务程序;
(2)等待命令状态;
(3)在接收到“DMA写操作”命令后,进入DMA准备阶段,获得DMA缓冲区首地址及待传输的数据长度;
(4)保存DMA缓冲区首地址及待传输的数据长度;
(5)启动DMA传输,进行一次DMA传输;
(6)当一次DMA传输结束时,系统产生中断,中断被驱动程序的中断服务程序捕获,并判断是否结束输出波形,若为否,则置入前面保存的DMA缓冲区首地址及待传输的数据长度,再次启动DMA传输,对同一DMA缓冲区再次进行DMA输出操作,若为是,则停止DMA输出,并删除DMA缓冲区,返回到等待命令状态。
所述直接输出波形DMA服务的过程中,DMA缓冲区的内容不变,一次DMA传输输出4M个样值,即1秒波形的数据,反复传输这1秒波形,形成连续波形。
为更好地实现本发明,所述计算机在Windows2000/XP操作系统下运行。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明为扩频通信抗干扰提供了可合成扩频信号和干扰信号的合成信号源,填补了这个领域的空白,而且可以通过函数的设计,直接生成波形,为理论函数生成实际波形提供了很好的途径。
(2)本创新发明通过计算机精确计算样值,采用14位D/A变换器,产生的模拟信号频率可准确到赫兹,实际波形与理论波形失真极小。
(3)本发明任意波形复合信号发生器采用基于PCI总线结构,可以方便地使用于任何有PCI总线插槽的计算机内,通用性强。
(4)本发明通过编程实现波形的构造,可产生任意波形,并且可根据输入的不同载波频率,调制到低于300MHz的任何频率位置,基本满足了扩频中频和基带信号的信号发生的需要。
(5)本发明采用了软件无线电的思想,由计算机通过应用软件构造波形,并由本任意波形复合信号发生器产生实际波形,波形产生方便、灵活、任意,达到-机多用的目的。

附图说明

图1是本发明任意波形复合信号发生器的外观结构示意图;
图2是本发明任意波形复合信号发生器的内部结构示意图;
图3是本发明任意波形复合信号发生器的工作流程图;
图4是直接输出波形DMA服务的工作流程图;
图5~11是本发明任意波形复合信号发生器的电路原理图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细说明,但本发明的实施方式不限于此。
实施例
如图1、2所示,本任意波形复合信号发生器,包括本地总线控制模块、FIFO速率调整模块、D/A数模变换模块、低通滤波器、模拟相乘器依次连接组成,本地总线控制模块还连接有存储模块,且通过本地总线、PCI总线插脚与计算机的PCI总线控制器、PCI总线依次连接,模拟相乘器设有信号输出端口、载波输入端口,通过载波输入端口与外部信号源连接。
PCI总线控制器采用PLX9054芯片,它跨接在PCI总线、本地总线上,在PCI总线上的时钟由计算机提供,在本地总线上的时钟为40MHz,由本任意波形复合信号发生器提供。在从计算机到PLX9054芯片数据传输时,PLX9054使用C模式,DMA Master方式进行数据传输。
本地总线控制模块采用XILINX公司的FPGA(现场可编程逻辑阵列)XC2S30-5PQ208C,它是整个硬件的控制核心。它与三个模块连接:第一是与FIFO速率调整模块的输入端口连接;第二是与PLX9054的本地总线相连接;第三是与存储模块的地址,数据和控制端口连接。本任意波形复合信号发生器的数据传输有直接输出波形、先存储后输出波形两种方式。
采用直接输出波形方式时,FIFO的输入端和输出端的数据传输率不等,输入时钟为40MHz,输出时钟为4MHz,因此FIFO在满状态时,应该停止对FIFO的输入;FIFO在不满状态时,输入可以继续进行。上述各信号的逻辑由本地总线控制模块完成。
采用先存储后输出波形方式时,本地总线控制模块先将数据存储在SDRAM(同步动态随机存储器)中,在接到输出命令后,再从SDRAM中读取数据到FIFO速率调整模块,本地总线控制器在向FIFO速率调整模块输出时,同直接输出波形方式一样,需根据FIFO速率调整模块的状态,决定数据停止输出或进行输出。FPGA不仅集成了FIFO的读写逻辑,还集成了SDRAM(同步动态随机存储器)的读写控制逻辑,以及两种输出方式的选择逻辑。
FIFO速率调整模块采用SN7804,它的输入端接上述本地总线控制模块,另一端接D/A数模变换模块的数字输入端口。FIFO的输入时钟是40MHz,同本地总线一致;输出时钟是4MHz,同D/A数模变换模块时钟一致。SN7804提供FULL(满)、EMPTY(空)和HF(半满)等三管脚来表达当前器件数据存储的状态。将这三管脚连接到上述本地总线控制模块,本地总线控制模块通过对以上三管脚的读取,得到器件的传输状态,并控制SN7804的OE(使能)管脚,在满状态的时候停止对SN7804输入,在空或半空状态时开启对SN7804的输入。在整个信号输出的过程里,SN7804的输出始终保持在稳定的4MHz水平。
D/A数模变换模块为AD9744,它在工作时钟为4MHz,根据奈奎斯特抽样定律,抽样速率只要大于或等于原信号最大频率的2倍,就可以恢复原信号。在实际应用中,若需要较好地恢复信号,抽样速率应大于等于4倍原信号最大频率。所以,本发明产生的复合信号的基带最高频率为1MHz。
D/A数模变换模块的输出接低通滤波器。此低通滤波器采用LTC1560五阶椭圆滤波器,本任意波形复合信号发生器的设计截止频率为1MHz,它可以将D/A变换后产生的不必要的高次谐波滤除。
模拟相乘器采用MC1496,它有两个输入端,一个接上述低通滤波器输出的基带信号,另外一个接外部输入的载波信号。由于MC1496在300MHz以下效果较好,本任意波形复合信号发生器上变频设计指标是0到300MHz。模拟相乘器将基带信号搬移到所需的频率上,实现上变频调制,以满足各种不同的信号中心频率的要求。MC1496的输出经运放AD9631放大后输出,即是本任意波形复合信号发生器的输出。
存储模块采用K4S5616器件,它是一种16M*16的SDRAM(同步动态随机存储器)。本存储模块以2片K4S5616进行字扩展,使存储模块成为32M*16,即可存储8秒的波形(4M*16的存储容量是1秒的波形样值数需求)。存储模块在采用先存储后输出波形方式时,保存着样值数据,在输出时数据保持不变,反复读取,以形成连续波形。
如图3所示,本任意波形复合信号发生器的信号发生方法,其步骤包括:
(1)把本任意波形复合信号发生器的PCI总线插脚插入到计算机的PCI总线插槽中;
(2)启动计算机,安装驱动程序和应用程序;
(3)打开外部信号源,选择正弦信号,根据需要调节其频率为所需信号的中心频率,调节其输出幅度达到要求,并将外部信号源的输出与本任意波形复合信号发生器的载波输入端口相连;
(4)运行所述应用程序,用户设置各种信号参数后,选择是否直接输出,若选择否,则应用程序计算各独立波形单个样值后,按比例叠加成复合波形单个样值,并生成复合波形样值数据块,若选择是,则应用程序生成待合成单个波形样值数据块后,按比例叠加合成复合波形样值数据块;
(5)应用程序调用驱动程序DMA服务,将样值数据块通过PCI总线控制器、PCI总线插脚输送至本信号发生器的本地总线控制模块;
(6)选择是否直接输出,若选择先存储后输出,则样值数据块经本地总线控制模块后,先保存在存储模块中,在用户选择输出存储波形时,数据送往FIFO速率调整模块,若选择直接输出,则样值数据块经本地总线控制模块后,直接送往FIFO速率调整模块;
(7)数据通过FIFO速率调整模块调整速率,使输出数据的速率与D/A数模变换模块的速率相同;
(8)从FIFO出来的数据,进入D/A数模变换模块,完成数模变换;
(9)D/A数模变换模块输出的模拟信号,经过低通滤波器滤除D/A数模变换后产生的高次谐波,进入模拟相乘器;
(10)在模拟相乘器中,低通滤波器的输出信号与外部信号源从载波端口输入的外部载波相乘,进行上变频调制,调制到所需频率后输出目标波形。
本任意波形复合信号发生器有两种输出方式:第一是直接输出波形,第二是先存储后输出波形。
对于第一种方式,以单频干扰与扩频信号复合为例介绍应用程序工作情况:第一步,应用程序通过对话框接收单频干扰参数:频率、幅度,另外,它还通过另一个扩频参数输入对话框接收扩频所需扩频序列、扩频信号幅度和指定扩频数据源。第二步,应用程序根据参数为单频干扰开辟8M字节数据块,并将通过公式:
y(n)=A*cos(2π*nN)
得到序列y(n),将y(n)变换为整数(16比特),填充上述8M数据块,其中N是常数,用于确定单频信号频率。第三步,应用程序根据指定的数据源和扩频序列,对数据源进行扩频。扩频正负1序列乘上幅度,得到8M字节的扩频基带波形样值序列,每个样值表达为2字节整数。第四步,应用程序通过以下公式进行数据合成:
z(n)=[A1y(n)+A2x(n)]/(A1+A2)
其中z(n)是合成序列,y(n)是单频干扰序列,x(n)是扩频序列,A1和A2分别是它们的幅度。得到的合成样值即是合成波形样值,它也是2字节整数,合成样值构成合成序列将是8M字节的数据块。
对于第一种方式,合成信号样值的数量和每秒钟D/A数模变换所需数据量相等,即4M个样值将使信号发生器输出1秒的波形,反复输出此4M数据量即可以得到稳定的波形。在这种方法里,板卡将持续与计算机内存进行数据传输,即通过驱动程序控制对内存同一数据块进行反复DMA传输。数据从PCI总线到达板卡的PCI总线控制器,然后到达用户总线控制器。用户总线控制器将数据直接分配到FIFO速率调整模块,然后到D/A数模变换模块、低通滤波器、模拟相乘器,最后得到目标信号。此种方法,不适合大量独立信号合成,但可以对每一独立信号进行时域或频域分析。
对于第二种方式,也以单频干扰与扩频信号复合为例介绍应用程序工作情况:第一步,与第一种方式一样。第二步,计算单个单频干扰样值x和单个扩频信号样值y。第三步,通过公式
z=[A1y+A2x]/(A1+A2)
得到合成信号的一个样值z,其中y是上述计算的一个单频干扰样值,x是上述计算的一个扩频信号样值,A1和A2分别是它们的幅度。得到的合成波形样值,它是2字节整数,计算4M个合成样值构成合成序列,它将是8M字节的数据块。第四步,调用驱动程序DMA服务,传输此8M字节数据块至PCI板卡。第五步,循环第一到第四步,连续4次,因为板卡上有32M字节的存储器。
在第二种方式里,在用户发出输出存储波形命令后,用户总线控制器才将把存储模块中数据送往FIFO速率调整模块,此后,与第一种方法相同。第二种方法适用于实现多个独立信号复合的场合,而且输出波形时对计算机依赖极少。以上两种方法都是对已有信号样值进行反复输出,以形成连续波形,但样值数据所在位置不同,第一种在计算机内存,第二种在信号发生器PCI板卡的存储模块中,而且第一种方式所需的内存随独立信号增加而增加,第二种方式则所需计算机内存较少。
驱动程序DMA服务包括存储波形DMA服务、直接输出波形DMA服务,对于存储波形的驱动程序DMA服务与一般DMA服务相同,如图4所示,直接输出波形DMA服务,其工作步骤包括:
(1)初始化DMA操作,包括设置DMA缓冲区,设置输出端口,设置中断服务程序;
(2)等待命令状态;
(3)在接收到“DMA写操作”命令后,进入DMA准备阶段,获得DMA缓冲区首地址及待传输的数据长度;
(4)保存DMA缓冲区首地址及待传输的数据长度;
(5)启动DMA传输,进行一次DMA传输;
(6)当一次DMA传输结束时,系统产生中断,中断被驱动程序的中断服务程序捕获,并判断是否结束输出波形,若为否,则置入前面保存的DMA缓冲区首地址及待传输的数据长度,再次启动DMA传输,对同一DMA缓冲区再次进行DMA输出操作,若为是,则停止DMA输出,并删除DMA缓冲区,返回到等待命令状态。
所述直接输出波形DMA服务的过程中,DMA缓冲区的内容不变,一次DMA传输输出4M个样值,即1秒波形的数据,反复传输这1秒波形,形成连续波形。
图5是高速时钟分布器件CY2308和串行FLASH(闪存)93CS56的电路原理图,其中CY2308将晶体振荡器产生的参考时钟扇出,为PCI控制器PLX9054提供本地总线时钟(LCLK),并为本地总线控制模块即XC2S30-5PQ208C提供40M时钟;93CS56是PCI总线控制器PLX9054的配置寄存器。
图6是标准PCI接口的总线连接电路原理图。
图7是外部存储器K4S5616的电路原理图。
图8是PCI总线控制器PLX9054的电路原理图,PLX9054是专用PCI总线控制器,其与PCI端口、本地总线控制器XC2S30-5PQ208C分别连接。它的配置端与图5的串行FLASH(闪存)93CS56连接,它的本地总线时钟(LCLK)与图5的高速时钟分布器件CY2308的时钟扇出相连接。
图9是本地总线控制器XC2S30-5PQ208C的电路原理图,XC2S30-5PQ208C是XILINX公司的FPGA(现场可编程逻辑阵列),其一是连接图8的PCI总线控制器PLX9054的本地总线信号;二是连接图7的SDRAM(同步动态RAM)K4S5616的数据线、地址线和控制线;三是连接图10的速率调整模块SN7804的数据线和控制线。
图10是FIFO速率调整模块SN7804和D/A数字变换模块AD9744的电路原理图。FIFO速率调整模块SN7804的输入端和控制线与本地总线控制模块XC2S30-5PQ208C连接,其输出端与D/A数字变换模块AD9744的数字输入端连接,D/A数字变换模块AD9744模拟输出端与运算放大器AD9631连接,运算放大器AD9631对D/A数字变换模块AD9744输出的信号进行放大。然后输出至图11的低通滤波器LTC1560。
图11是低通滤波器LTC1560、模拟相乘器MC1496的电路原理图。低通滤波器LTC1560的输入端与图10的运算放大器AD9631的输出,低通滤波器LTC1560的输出端与模拟相乘器MC1496的输入端连接,模拟相乘器MC1496另一个输入端与本任意波形复合信号发生器的输入端口(J502)连接,模拟相乘器MC1496的输出端与运算放大器AD9631连接,输入信号放大后,通过输出端口(J501)输出。
如上所述,便可较好地实现本发明。