基于CPLD的多组高精度三相正弦波信号发生器的设计
基于CPLD的多组高精度三相正弦波信号发生器的设计
袁 达,周杏鹏
(东南大学,自动化学院,南京,210096)
摘要:本文介绍了基于CPLD的多组高精度三相正弦波信号发生器的设计过程。提出了将单片机的控制权交给CPLD的概念,这有点类似于“DMA”方式。同时,本装置设计了良好的人机接口,可以方便地设定各参数。
关键词:CPLD,单片机,VHDL,DMA
中图分类号:TP346
Design of an exact multi-group three-phase
sine wave signal generator based on CPLD
Yuan Da, Zhou Xingpeng
(School of Automation, Southeast University, Nanjing 210096, China)
Abstract: This paper presents the design process of an exact multi-group three-phase
sine wave signal generator based on CPLD. We introduce a new concept that transfers the domination from single chip microcomputer to CPLD, which is similar to ‘DMA’. Meanwhile, good man-machine interface has been implemented in this device. As a result, we can set the parameters conveniently.
Key Words: CPLD, Single Chip Microcomputer, VHDL, DMA
0、 引言
在电网测量和控制电路中,常常需要多组三相正弦波信号发生器作为基准信号。基准三相正弦波的波形质量以及相位关系的准确度直接影响到电网测量和控制的精度。一个好的正弦波信号源,要求其输出的基准正弦波信号幅值、频率高度稳定,失真度小,带载能力强,幅值和频率均可调。对于多组三相正弦波信号,要求三相对称度好,并且组与组之间相位关系能够精确可调。
本文以CPLD为核心,辅以单片机为基础的人机接口和一些必要的模拟电路构成了一个高精度的多组三相正弦波信号发生器。由于CPLD中集成了大量的电路,使系统大大简化。
1、 任务需求及总体方案的设计
首先简述一下本系统的任务需求,设计一个能输出六路模拟正弦波的信号发生器以模拟两组三相交流电网信号。为了叙述方便,我们先将六路模拟信号分为两组:第一组(1A、1B、1C),第二组(2A、2B、2C)。同组信号之间的相位差为120度,组与组之间对应相的相位关系可以任意可调,步进为1度。正弦波信号的幅值为1V,±20%可调节,步进为0.01V。正弦波信号的频率为50Hz,±20%可调节,步进为0.1Hz。
由于单片机的处理能力是有限的,上述指标仅靠单片机处理是很难实现的。经过综合考虑,我们采用了单片机加CPLD的方案。单片机的主要作用是人机交互和参数传递,CPLD作为主控制单元,具体决定着六路信号的生成。换言之,单片机将控制权交给了CPLD,与“DMA”方式有点类似。
下面先简述一下本系统的工作原理。如图1所示,系统所需的参数是按键传送到单片机89C52里的,这里所指的参数有3个:正弦波信号的幅值、频率以及两组信号的相位差,这些参数经单片机处理后传送到CPLD。CPLD模块产生六路数字信号(有关CPLD的分析见下文),经DA转换后生成两组三相正弦波信号。同时CPLD模块还产生幅度控制字,经DA转换后的值Vref作为六路正弦波信号的电压基准值,决定着正弦波信号的幅值大小。
图1 系统总体框架
由于我们是采用查表的方式产生正弦波信号的,因此信号发生器的精度在很大程度上取决于正弦波信号在一个周期内的取点数。由于CPLD的时钟延迟可达到ns级,适合大量数据的高速处理,在本系统中,我们在一个周期内取360个点,不妨设为 、 、 …… ,另外假设第二组三相信号滞后第一组15度,那么六路信号对应的相位关系如下:
1A: 、 、 … 、 、 … 、 、 … 、 、
2A: 、 、 … 、 、 … 、 、 … 、 、
1B: 、 、 … 、 、 … 、 、 … 、 、
2B: 、 、 … 、 、 … 、 、 … 、 、
1C: 、 、 … 、 、 … 、 、 … 、 、
2C: 、 、 … 、 、 … 、 、 … 、 、
此外,基准电压Vref对系统的精度也有很重要的影响,它决定着正弦波幅值的精度。在本系统我们选用16位DA转换芯片是DAC8541,其主要技术指标是:16bits精度、单通道、16bits并行输入接口、转换速度 100KSPS、线性误差±0.003%,由此我们可以达到较高的精度要求。
2、 CPLD模块的设计
CPLD是近二十年来发展起来的大规模可编程逻辑器件,随着EDA技术和微电子技术的进步,CPLD的时钟延迟可达到ns级,结合其并行工作方式,在超高速、实时测控方面有非常广阔的应用前景,同时由于CPLD具有高集成度、高可靠性,其体积也因此大大缩小了。此外,CPLD还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,这样就极大地提高了电子设计系统的灵活性和通用性。由于以上特性,它已成为实现当今电子系统集成化的重要手段。
本系统中选用的CPLD芯片是Altera公司的MAX7000系列芯片EPM7256,它的工作电压是3.3V,最高时钟频率可达192.3MHz,时钟延迟只有4.5ns。经过仿真,本系统中我们需要的宏数目在200个左右,而EPM7256有256个宏,满足系统要求,并且留有一定的裕度。
如图2所示,我们先对CPLD内部结构进行如下分析。单片机89C52传输给CPLD的三个参数:正弦波的幅值、频率以及两组信号之间的相位差,结合信号选择(见图1),由89C52的IO口传送到CPLD的控制寄存器模块中。其中,正弦波的幅值经控制寄存器模块处理后生成幅值控制字并输出。另外,正弦波的频率经控制寄存器模块处理后生成频率控制字,再由分频器模块产生标准的频率信号。
正如前面所言,正弦波在一个周期内取360个点,我们首先在CPLD内部建立一张表以存储那些数据(我们称之为ROM)。通过查表法,我们可以就得到正弦波信号在某一时刻的电压值。模360计数器模块产生的计数值作为第一组A相的寻址信号,然后通过查找ROM中堆放的数据,我们就可以得到第一组A相在相应时刻的电压值。第一组B相的寻址信号通过加法器滞后120度得到,C相信号再滞后120度。
组与组之间的相位差,是通过相位差控制字取得的。经过加相位差模块,我们可以得到第二组A相信号的寻址信号,再通过查找ROM,得到A相信号在相应时刻的电压值。第二组B相和C相信号类似于第一组信号,不作赘述。
图2 CPLD内部结构图
利用VHDL语言,完成CPLD内部各模块的编写。然后将各模块组合起来,调试通过后固化到EPM7256中,这样就完成了CPLD部分的设计。下面对各小模块作简要分析:
控制寄存器:接受从单片机传输来的参数,并判断是何参数,生成相应的幅度、频率或相位差控制字。
分频器:根据频率控制字及外部时钟的频率输出系统所需的频率信号,通常是由计数器构成的。
模360计数器:对来自分频器的标准频率信号进行计数,其结果作为第一组正弦波信号A路的寻址信号。
加法器:主要作用是对计数值加上120,随后对结果进行取360模运算,这样就实现了同组信号之间的120度相位差。
加相位差:根据相位差控制字调整组与组之间的相位差,可以超前也可以滞后,实际上是一个加法器。
3、 单片机软件模块的设计
本系统的3个参数是通过按键方式传送到单片机89C52里的,并实时显示在八段数码管LED上, 具体的传输方式见程序框图(如图3)。单片机一旦检测到有按键按下,即作判断,如果是幅值键、频率键或相位键被按下,就开始接受新的参数,若该参数在设定的范围内,就接收该数据,并通过单片机的IO口传送到CPLD中,否则就放弃该数据,等待新按键按下。
图3 单片机89C52的程序框图
通过单片机89C52以及键盘、LED构成的人机接口,我们可以方便地设定各参数,也使本系统更易操作。
4、 结束语
基于CPLD的多组高精度三相正弦波形发生器的设计和研制过程,充分利用VHDL硬件描述语言方便的编程,提高了开发效率,缩短了研发周期,而且系统的调试方便,修改容易。实验表明系统产生的波形稳定,抗干扰能力强,频率、相位和幅度调节方便,精度高,有一定的开发及生产价值。
撰写本文前,本信号发生器已成功为 [①]中的交流电网测定子项目作了参数模拟和校正作用,效果良好。
参考文献:
[1] 徐志军,徐光辉. CPLD/FPGA的开发与应用[M]. 北京:电子工业出版社,2002. 127-190
[2] 国外电子元器件. 基于CPLD的三相多波形函数发生器设计. 21IC中国电子网,2004
[3] 宋仲康,孔利东. 基于VHDL语言的信号发生器的设计与实现[J]. 工业控制技术,2006-8
[4] 王 永,何 凯,沈颂华. 数字式单相和三相基准正弦波信号发生器[J]. 电测与仪表,2003-10
作者简介:
袁 达(1981-),男,东南大学硕士研究生。主要从事检测技术及自动化装置研究。
周杏鹏(1951-),男,教授,博士生导师。东南大学检测技术与自动化装置学科带头人,主要从事检测技术及自动化装置研究。
联系方式:
袁 达 Tel:025-83689793 13645192955 Email:david_yuanda@yahoo.com.cn
通信地址:江苏南京东南大学自动化学院中心楼213 210096
[①] 燃气发电机组项目:全称“燃气发电机组自动测控与故障诊断信息系统研制”,是启东市天地宽自动化系统有限公司的一个项目。

