一种基于fpga的正弦信号发生器实现方法及实现装置的制作方法

文档序号:7530332阅读:281来源:国知局
专利名称:一种基于fpga的正弦信号发生器实现方法及实现装置的制作方法
技术领域
本发明涉及计算机技术领域,具体涉及一种基于FPGA的正弦信号发生器实现方法,该方法适用于数字通信、制导控制、信号处理、电力电子等领域的应用。
背景技术
在数字通信、制导控制、信号处理、电力电子等领域,如调制解调、变频调速、整流逆变等设备常常需要合成频率可变的正弦/余弦信号,特别是在某些变频和控制系统中,还需要对合成的多路正弦/余弦信号的相位关系进行调节,传统上计算三角函数一般使用查表法、多项式展开或近似的方法。这些方法不能兼顾速度、精度、简单性等方面的要求。在申请号为03124527.7湘潭师范学院公开申请了一种由基于FPGA的高精度任意波形发生器,它包括PC、EPC2、接口电路、晶振、时标控制器、相位累加器、波形RAM区、波形个数控制器、幅度直流分量控制 电路、D/A转换器、低通滤波器,其中:
所述PC用于输入波形参数数据、显示波形及控制波形的产生;
EPC2为串行配置芯片,用于FPGA上电转载文件;
接口电路,用于完成PC高速并行口 EPP信号到FPGA内部三总线的转换和地址译码;晶振,用于产生一个精确的时钟信号,作为时标控制器的基准信号;时标控制器,用于对晶振输出的信号进行分频;
相位累加器,用于在用户频率控制字、初相字的控制下,按其输入的时钟产生满足用户频率、初相要求的准相位字;
波形RAM区,用于存储量化的波形幅值;
波形个数控制器,用于预置波形个数的控制;
幅度直流分量控制电路,用于输出幅度与直流分量的控制;
D/A转换器,用于将幅度直流分量控制电路数字波形信号转换成模拟信号;
低通滤波器,用于将D/A转换器的输出信号进行滤波 上述这些方法不能兼顾速度、精度、简单性等方面的要求。

发明内容
本发明旨在提供一种能够兼顾速度、精度、简单性等方面要求的种基于FPGA的正弦信号发生器实现方法及实现装置。本发明提供了一种基于FPGA的正弦信号发生器实现方法,包括:
当串行口接收到指令内容时,FPGA对接收到的指令数据进行串并转换,转换为并行数
据;
FPGA根据指令内容更新初始相位寄存器、频率寄存器和幅值寄存器,把相位寄存器和频率寄存器中的值放入24位全加器后,通过累加器算出Wt+ ,所述指令内容包括接收外部输入的相位、频率和幅度信息;
FPGA通过角度旋转运算来进行解算,运算完成后再结合幅值寄存器中的值进行幅度控制,得到Asin (Wt+co)的数字量值;
再将该数字量放入D/A转换器中,并由D/A通道分配出对应的通道,通过该通道输出模拟量正弦信号。
本方法的一种实例还包括:
预先获得存储相应指令内容数据对应数据各自寄存器的存储地址信息:相位数据存储在相位寄存器的对应存储地址信息,频率数据存储在频率寄存器的对应存储地址信息,幅度数据存储在幅度寄存器对应存储地址信息;
并将该指令内容数据和对应存储地址信息按照预先设定的格式存储,后再进行串并转
换;
FPGA根据对应的存储地址信址信息来完成将指令内容数据更新初始相位寄存器、频率寄存器和幅值寄存器。

本方法的第二种实例通过累加器算出Wt+ 这个角度之后还包括:
对角度值进行相限映射;
再通过CORDIC运算计算出三角函数值;
再通过野值防止与处理,去掉跳变,由此获得正弦值。本发明还提供一种基于FPGA的正弦信号发生器实现装置,以FPGA芯片为算法控制核心,在外围分别搭建包括RS422接口模块,电源模块,DA数模转换模块,并且FPGA芯片用于在本信号发生器中对角度旋转运算的信号幅值结果进行有效的平滑纠错处理,采用角度旋转实时运算模块生成信号的幅值
所述FPGA芯片进一步包括:
相位寄存器:用于存储相位信息;
频率寄存器:用于存储频率信息;
幅度寄存器:用于存储幅度信息;
24位全加器:用于将该些数据按照预先设定的固定时隙进行相位累加;
累加器:还进一步连接24位全加器,用于判断是否满足累加的条件,如果是则将数据转至角度旋转运算器,如果不是,则进一步累加,并将结果返回至累加寄存器;
角度旋转运算器:按照CORDIC运算计算出三角函数值;流水线结构可以为2 0级,即每个三角函数值最多可进行20次角度累加计算得到;
幅度控制器:并在幅度加在该三角函数值形成完整的正弦信息。本发明的一种实例还包括D/A通道分配器,连接DA数模转换模块,用于分配对应的D/A通道进行D/A转换。本发明公开了一种基于FPGA的正弦信号发生器实现方法。所述实现方法包括:对接收的指令数据进行串并转换,转换为并行数据;将转换后的并行数据与本地时钟源进行同步;把指令数据输入到正弦信号发生器模块,产生任意频率和幅度的正弦数字信号,最终通过DA芯片输出模拟量的正弦信号。正弦信号发生器基于20级流水线结构,采用双时钟驱动,采用流水线结构,能够在执行进程时同时输入数据,极大提高了程序的运行效率。在该结构中,每一个位移器都是固定的深度,而且旋转角度集的各个值作为常数直接到了累加器上,整个角度旋转运算简化为加减法器和移位操作。不仅大大提高了运算速度,还降低了硬件复杂度,本发明可满足数字通信、制导控制、信号处理、电力电子等领域的应用。正弦信号发生器采用RS422串行接口,用户可根据需求定义正弦信号的频率、幅度、相位及通道数。以Altera公司的FPGA芯片为算法控制核心,在外围分别搭建包括RS422接口模块,电源模块,DA数模转换模块,并且在本信号发生器中对角度旋转运算的信号幅值结果进行了有效的平滑纠错处理,在确保信号生成实时性的同时,剔除了正弦波波极点处的野值,并采用20级流水作业,多路信号尽可能多地共用运算资源,流水作业,系统结构紧凑,采用角度旋转实时运算模块生成信号的幅值,节约了 FPGA的资源,增加了系统的灵活性;相位、频率、幅值参数寄存由双口 RAM实现,确保CPU对参数的读写与正弦信号发生模块的有效隔离。驱动程序开发采用Verilog-HDL语言。通过Verilog-HDL语言编程以及硬件电路的优化设计,可同时多通道输出正弦信号,整个算法采用同步逻辑,稳定性好,升级方便。此正弦信号发生器充分利用了 FPGA内的逻辑单元资源,采用20级流水循环迭代算法来计算三角函数值。该算法能有效地提高三角函数值的精度和响应速度,并且不需额外的资源开销,可在多个领域内应用。结合附图,根据下文的通过示例说明本发明主旨的描述可清楚本发明的其他方面和优点。


结合附图,通过下文的述详细说明,可更清楚地理解本发明的上述及其他特征和优点,其中:
图1是本发明的控制逻辑电路的工作原理框 图2是本发明的流程图。
具体实施例方式参见示出本发明实施例的附图,下文将更详细地描述本发明。然而,本发明可以以许多不同形式实现,并且不应解释为受在此提出之实施例的限制。相反,提出这些实施例是为了达成充分及完整公开,并且使本技术领域的技术人员完全了解本发明的范围。这些附图中,为清楚起见,可能放大了层及区域的尺本控制器系统上电后,FPGA自动进行系统初始化操作,当串行口接收到指令数据时,FPGA对接收到的指令数据进行串并转换,转换为并行数据,并与本地时钟源同步,根据指令内容更新初始相位寄存器、频率寄存器和幅值寄存器。把相位寄存器和频率寄存器中的值放入24位全加器,并通过累加器算出Wt+ ,然后通过角度旋转运算中进行解算,运算完成后再结合幅值寄存器中的值进行幅度控制,得到Asin(^t+co)的数字量值。把数字量放入D/A转换器中,最终输出模拟量正弦信号。请参阅图1,一种基于FPGA的正弦信号发生器实现装置,以FPGA芯片为算法控制核心,在外围分别搭建包括RS422接口模块,电源模块,DA数模转换模块,并且FPGA芯片用于在本信号发生器中对角度旋转运算的信号幅值结果进行有效的平滑纠错处理,采用角度旋转实时运算模块生成信号的幅值
所述FPGA芯片进一步包括:
相位寄存器:用于存储相位信息;频率寄存器:用于存储频率信息;
幅度寄存器:用于存储幅度信息;
24位全加器:用于将该些数据按照预先设定的固定时隙进行相位累加;
累加器:还进一步连接24位全加器,用于判断是否满足累加的条件,如果是则将数据转至角度旋转运算器,如果不是,则进一步累加,并将结果返回至累加寄存器;
角度旋转运算器:按照CORDIC运算计算出三角函数值;
幅度控制器:并在幅度加在该三角函数值形成完整的正弦信息。24位全加器和累加器主要是为了获得当前的角度值,比如可以预先设置一角度值,然后将按照预先设定的固定时隙(比如,固定时时隙可以为相位寄存器对应存储地址的当前存储内容、频率寄存储器对应存储地址的当前存储内容)进进行相位累加,如果不为0,则将预设角度减一,再计算。直至该累加结果为0,则输出角度即为当前角度值。按照现有的角度值相限映射方式即可实现角度值的相限射映射,通过现有的CORDIC算法即可算出正弦值。流水线结构可以为2 0级,即每个三角函数值最多可进行20次角度累加计算得到。并且,还包括D/A通道分配器,连接DA数模转换模块,用于分配对应的D/A通道进行D/A转换。基准时钟给以上各个部件提供基准时间。—种 基于FPG A的正弦信号发生器实现方法,包括:
当串行口接收到指令内容时,FPGA对接收到的指令数据进行串并转换,转换为并行数
据;
FPGA根据指令内容更新初始相位寄存器、频率寄存器和幅值寄存器,把相位寄存器和频率寄存器中的值放入24位全加器后,通过累加器算出Wt+ ,所述指令内容包括接收外部输入的相位、频率和幅度信息;
FPGA通过角度旋转运算来进行解算,运算完成后再结合幅值寄存器中的值进行幅度控制,得到Asin (Wt+ )的数字量值;
再将该数字量放入D/A转换器中,并由D/A通道分配出对应的通道,通过该通道输出模拟量正弦信号。通过多级流水线结构输出模拟量正弦信号,每一级流水线路输出不同的正弦信号。预先获得存储相应指令内容数据对应数据各自寄存器的存储地址信息:相位数据存储在相位寄存器的对应存储地址信息,频率数据存储在频率寄存器的对应存储地址信息,幅度数据存储在幅度寄存器对应存储地址信息;
并将该指令内容数据和对应存储地址信息按照预先设定的格式存储,后再进行串并转
换;
FPGA根据对应的存储地址信址信息来完成将指令内容数据更新初始相位寄存器、频率寄存器和幅值寄存器。通过累加器算出这个角度之后还包括:
对角度值进行相限映射;
再通过CORDIC运算计算出三角函数值; 再通过野值防止与处理,去掉跳变,由此获得正弦值。另外,通过提供基准时钟来使得所述元器件处于同一基准时间点。当用户需要输出多路模拟量正弦信号或余弦信号时,不再需要重新设计电路或者现场通过JTAG下载程序到FPGA中,只需要更改相位寄存器、频率寄存器和幅值寄存器,结合D/A通道分配就可完成。以上虽然描述了本发明的具体实施方式
,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
权利要求
1.一种基于FPGA的正弦信号发生器实现方法,其特征在于,包括: 当串行口接收到指令内容时,FPGA对接收到的指令数据进行串并转换,转换为并行数据; FPGA根据指令内容更新初始相位寄存器、频率寄存器和幅值寄存器,把相位寄存器和频率寄存器中的值放入24位全加器后,通过累加器算出Wt+ ,所述指令内容包括接收外部输入的相位、频率和幅度信息; FPGA通过角度旋转运算来进行解算,运算完成后再结合幅值寄存器中的值进行幅度控制,得到Asin (Wt+ω)的数字量值; 再将该数字量放入D/A转换器中,并由D/A通道分配出对应的通道,通过该通道输出模拟量正弦信号。
2.如权利要求1所述的方法,其特征在于,还包括: 预先获得存储相应指令内容数据对应数据各自寄存器的存储地址信息:相位数据存储在相位寄存器的对应存储地址信息,频率数据存储在频率寄存器的对应存储地址信息,幅度数据存储在幅度寄存器对应存储地址信息; 并将该指令内容数据和对应存储地址信息按照预先设定的格式存储,后再进行串并转换; FPGA根据对应的存储地址信址信息来完成将指令内容数据更新初始相位寄存器、频率寄存器和幅值寄存器。
3.如权利要求1所述的方法,其特征在于,通过累加器算出这个角度之后还包括: 对角度值进行相限映射; 再通过CORDIC运算计算出三角函数值; 再通过野值防止与处理,去掉跳变,由此获得正弦值。
4.如权利要求1所述的方法,其特征在于,还包括:通过提供基准时钟来使得所述元器件处于同一基准时间点。
5.一种基于FPGA的正弦信号发生器实现装置,其特征在于,以FPGA芯片为算法控制核心,在外围分别搭建包括RS422接口模块,电源模块,DA数模转换模块,并且FPGA芯片用于在本信号发生器中对角度旋转运算的信号幅值结果进行有效的平滑纠错处理,采用角度旋转实时运算模块生成信号的幅值 所述FPGA芯片进一步包括: 相位寄存器:用于存储相位信息; 频率寄存器:用于存储频率信息; 幅度寄存器:用于存储幅度信息; 24位全加器:用于将该些数据按照预先设定的固定时隙进行相位累加; 累加器:还进一步连接24位全加器,用于判断是否满足累加的条件,如果是则将数据转至角度旋转运算器,如果不是,则进一步累加,并将结果返回至累加寄存器; 角度旋转运算器:按照CORDIC运算计算出三角函数值; 幅度控制器:并在幅度加在该三角函数值形成完整的正弦信息。
6.如权利要求5所述的一种基于FPGA的正弦信号发生器实现装置,其特征在于,还包括D/A通道分配器,连接DA 数模转换模块,用于分配对应的D/A通道进行D/A转换。
全文摘要
一种基于FPGA的正弦信号发生器实现方法,包括当串行口接收到指令内容时,FPGA对接收到的指令数据进行串并转换,转换为并行数据;FPGA根据指令内容更新初始相位寄存器、频率寄存器和幅值寄存器,把相位寄存器和频率寄存器中的值放入24位全加器后,通过累加器算出Ψt+ω;FPGA通过角度旋转运算来进行解算,运算完成后再结合幅值寄存器中的值进行幅度控制,得到Asin(Ψt+ω)的数字量值;再将该数字量放入D/A转换器中,并由D/A通道分配出对应的通道,通过该通道输出模拟量正弦信号。当用户需要输出多路模拟量正弦信号或余弦信号时,只需要更改相位寄存器、频率寄存器和幅值寄存器,结合D/A通道分配就可完成。
文档编号H03K3/02GK103117731SQ20131002558
公开日2013年5月22日 申请日期2013年1月22日 优先权日2013年1月22日
发明者施未勋, 徐建萍, 周振宇, 宋晓东 申请人:上海航天测控通信研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1