用TMS320LF2407和FPGA实现电能质量监测
字量。
(2)谐波分析模块
本系统中,采用快速傅里叶变换(FFT)进行谐波分析,主要因为FFT使N点DFT的乘法计算由N2次减少到(N/2)log2N次。由FFT工作流程图可知,本系统在分析64次谐波时,整个运算分6级。在第一级蝶形运算中,蝶形运算单元根据算法控制模块的控制信号,从ADC采样数据保存区取出原始数据,从旋转因子ROM中取出旋转因子,进行FFT的第一级蝶形运算,并将结果存入FFT工作RAM。在以后的各级蝶形运算中,蝶形运算单元从FFT工作RAM中取出间数据,从旋转因子ROM中取出旋转因子,进行运算,直至第六级蝶形运算结束,并将结果存放到运算结果保存区,以便进行各次谐波系数计算。
在进行FPGA设计中,为了节省器件的内部资源,其计算内核采用复用技术进行设计,其基本原理如图4所示。
在FFT运算中,一个蝶形运算单元和一组工作RAM被重复使用,其中最重要的是FFT工作控制逻辑的实现。它主要完成从ADC采样数据保存区取出数据、向FFT工作RAM中写入和读取数据以及向FFT结果存放区存放结果等工作。
根据FFT运算的结果z=dinr+jdini,计算各次谐波的系数(其中,dinr为结果的实路,dini为结果的虚部,
。在进行开方运算时,若设计64M×13位长度的存储器进行查表计算,对于现有的可编程逻辑器件来说是很难实现的。因此,本次设计中采用了修正查表算法:将待开方的数据z=(dinr2+dini2)左移m次(m为偶数),直到其最高两位不全为0,此时z变为z1;取z1的高8位来查表(此时表长为28=256个字)得到t1;使用牛顿一次迭代公式t=(t1+z1/t1)/2,对t1进行修正得到t;最后将t右移m/2次,得到开方结果。实验证明,上述修正后的查表法误差在允许的范围内,对本系统来说是可行的。
在软件方面,为了提高芯片的性能及资源利用率,采用QuartusII2.0tSynplify7.1。在Synplify中使用有效的代码,采取流水线设计、优化组合逻辑及减少逻辑延时等措施来提高整体性能,还进行了多个文件的分块设计,然后将这些文件映射到顶层文件进行综合,并运行VHDL或者VerilogHDL对单个文件编写、信真和优化。在用到组合逻辑时,Synplify会尽量避免锁存器的出现,节省逻辑单元。对于ACEX系列的芯片,它还支持寄存器配平技术、流水线操作、复制逻辑模块及使用LPM函数等技术来提高其整体性能。Synplify和其它结合软件一样,编译后生成的电子设计交换格式文件(EDIF)可以在MAX+PLUSII或QuartusII2.0中进行编译、分别引脚和其它优化处理。因此,采用QuartusII2.0和Synplify7.1相结合,对FPGA进行设计、优化及综合,不仅能提高系统性能,还能提高芯片资源的利用率。
(3)通信接口模块
为了灵活地与外界系统进行连接,FPGA提供了并行通信和串行通信两种形式。并行通信可以直接和DSP连接组成电力监测和控制系统;串行通信不仅可以方便地和DSP连接,不可以和不具备谐波分析功能的系统组成更加完善的电力监测系统。
以于并行通信,如系统框图所示,根据规划好的LF2407扩展I/O空间,由LF2407的高位地址线的逻辑组合来产生FPGA选片信号,低位地址线向LF2407输出要访 《用TMS320LF2407和FPGA实现电能质量监测(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/174644.html
(2)谐波分析模块
本系统中,采用快速傅里叶变换(FFT)进行谐波分析,主要因为FFT使N点DFT的乘法计算由N2次减少到(N/2)log2N次。由FFT工作流程图可知,本系统在分析64次谐波时,整个运算分6级。在第一级蝶形运算中,蝶形运算单元根据算法控制模块的控制信号,从ADC采样数据保存区取出原始数据,从旋转因子ROM中取出旋转因子,进行FFT的第一级蝶形运算,并将结果存入FFT工作RAM。在以后的各级蝶形运算中,蝶形运算单元从FFT工作RAM中取出间数据,从旋转因子ROM中取出旋转因子,进行运算,直至第六级蝶形运算结束,并将结果存放到运算结果保存区,以便进行各次谐波系数计算。
在进行FPGA设计中,为了节省器件的内部资源,其计算内核采用复用技术进行设计,其基本原理如图4所示。
在FFT运算中,一个蝶形运算单元和一组工作RAM被重复使用,其中最重要的是FFT工作控制逻辑的实现。它主要完成从ADC采样数据保存区取出数据、向FFT工作RAM中写入和读取数据以及向FFT结果存放区存放结果等工作。
根据FFT运算的结果z=dinr+jdini,计算各次谐波的系数(其中,dinr为结果的实路,dini为结果的虚部,
。在进行开方运算时,若设计64M×13位长度的存储器进行查表计算,对于现有的可编程逻辑器件来说是很难实现的。因此,本次设计中采用了修正查表算法:将待开方的数据z=(dinr2+dini2)左移m次(m为偶数),直到其最高两位不全为0,此时z变为z1;取z1的高8位来查表(此时表长为28=256个字)得到t1;使用牛顿一次迭代公式t=(t1+z1/t1)/2,对t1进行修正得到t;最后将t右移m/2次,得到开方结果。实验证明,上述修正后的查表法误差在允许的范围内,对本系统来说是可行的。
在软件方面,为了提高芯片的性能及资源利用率,采用QuartusII2.0tSynplify7.1。在Synplify中使用有效的代码,采取流水线设计、优化组合逻辑及减少逻辑延时等措施来提高整体性能,还进行了多个文件的分块设计,然后将这些文件映射到顶层文件进行综合,并运行VHDL或者VerilogHDL对单个文件编写、信真和优化。在用到组合逻辑时,Synplify会尽量避免锁存器的出现,节省逻辑单元。对于ACEX系列的芯片,它还支持寄存器配平技术、流水线操作、复制逻辑模块及使用LPM函数等技术来提高其整体性能。Synplify和其它结合软件一样,编译后生成的电子设计交换格式文件(EDIF)可以在MAX+PLUSII或QuartusII2.0中进行编译、分别引脚和其它优化处理。因此,采用QuartusII2.0和Synplify7.1相结合,对FPGA进行设计、优化及综合,不仅能提高系统性能,还能提高芯片资源的利用率。
(3)通信接口模块
为了灵活地与外界系统进行连接,FPGA提供了并行通信和串行通信两种形式。并行通信可以直接和DSP连接组成电力监测和控制系统;串行通信不仅可以方便地和DSP连接,不可以和不具备谐波分析功能的系统组成更加完善的电力监测系统。
以于并行通信,如系统框图所示,根据规划好的LF2407扩展I/O空间,由LF2407的高位地址线的逻辑组合来产生FPGA选片信号,低位地址线向LF2407输出要访 《用TMS320LF2407和FPGA实现电能质量监测(第2页)》