星期四, 一月 11, 2007

基于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


[①] 燃气发电机组项目:全称“燃气发电机组自动测控与故障诊断信息系统研制”,是启东市天地宽自动化系统有限公司的一个项目。

星期日, 十二月 17, 2006

放纵,就不要相爱```

爱情是多么复杂而又琐碎的东西,我们明白,所有的爱情,不管一开始是多么新鲜和甜美,到最后都会变成伤害与沉重。
  我们都是世俗的男女,我们怀疑爱情、害怕爱情、否定爱情,但我们都不可制止、无一例外地渴望和期待爱情。在这个躁动的时代里,在生活平静的表层下,暗潮汹涌。在我们衣着光鲜的外表下,都包藏着一颗不安分的祸心。知书达礼、温顺乖巧的外表下藏着的是一颗颗动荡不安的心,随时期待着不平常的事情发生,随时准备打破原状,时刻等待着反叛或出轨。而我们又必须承认自己野心勃勃却又胆小如鼠,尽管我们会有一千种一万种美妙的假设,却仍然老老实实地蹲在原地,止步不前。
  我们舍不得小心翼翼打造的那些幸福,我们更害怕那些责任的束缚,情感的纠缠。在某一个时刻,你可能会在某个瞬间出现,在我生命里停顿或逗留,我们动情,但是我们永远不要相爱。
  我们可能某一天,在一个陌生的街头擦肩,你不认识我,我不认识你,但都被对方吸引,我们深深地对视,不停地回头,我们用眼神交流,但最终消失在人海。
  我们可能邂逅于某一段旅途,我们萍水相逢,但相见恨晚,我们畅所欲言,我们放肆地快乐,我们在对方面前表现得几近完美,然而,我们只不过是旅伴。
  我们可能相遇在不知名的酒吧,酒吧里缠绵的音乐,暧昧的灯光,我们素昧平生,我们彼此端详,然后,你走过来对我说:“可以聊聊吗?”于是,我们说一些模棱两可、似是而非的话,我们互相调笑,然后,各自离开。
  我们可能是相识多年的朋友,各有家室,但却有着淡淡的感觉在心头萦绕,我们无话不谈,我们互相关心,我们心照不宣,但是,我们始终不道破这一种关系,在有生之年里,就这样氤氲。
  我们可能结识于虚拟的网络,隔着屏幕,我们被对方的文字吸引,我们不见面,不说话,不知道对方的容颜,却有一种感觉在彼此之间无声地流淌绵延,但是,我们不要走下网络,因为,现实生活中,你不是王子,我也不是公主。
  我们需要爱和被爱的感觉,那种除了彼此没有第三者能体会到的淡淡的苦涩与惆怅、隐秘的快乐与欢喜。我们爱爱情,爱那种在爱里沉溺、在爱里辗转、在爱里享受、在爱里思念、甚至在爱里哭泣的过程,但却不爱收拾爱情遗留的一地鸡毛。
  爱情是多么复杂而又琐碎的东西,我们明白,所有的爱情,不管一开始是多么新鲜和甜美,到最后都会变成伤害与沉重。我们都是曾经沧海的男女,所以,都学会了对爱情退避三舍,学会远离生命里那些原本可以躲避的伤害,我们已经失去了对于爱情奋不顾身的勇气。
  所以,我们永远不要相爱。不爱的爱情,永远不会变坏。
from xici

星期三, 十一月 22, 2006

昔日已逝,如梦无痕

这几天我又发现自己迷失了,也许是频繁见到她的缘故吧。
回想许多,梦终于醒了过来。
她是她,我是我。
她喜欢自己喜欢的,更不曾半点考虑过我的感受。
既如此,又有何语?
我又何必自己羁绊自己,毕竟昔日已逝。
一场错爱而已,就把它当成一场梦吧......

星期二, 十一月 21, 2006

无题

这几天老碰到她,我总有种复杂的感觉,我心里很痛,甚至有崩溃的感觉。
我是一个轻易将我感情写在脸上的人,虽然还是很想问候她,但始终没有这种勇气。
总以为过了这么长时间,我心里对她已没有涟漪。
然而,我错了。虽然面对她的时候我外表冷漠,甚至不正视她一眼,但我的心像刀绞一般。
这几个晚上我有些失眠了,脑际总是浮现和她在一起的一幕一幕。
有时我也恨她的绝情,但我内心始终爱护着她,我不愿见她伤心、受伤害,更不允许别人伤害她。
以前总不明白爱一个人不一定要拥有,现在终于深刻体会到它的含义,虽然如此,我却一直不敢面对她。
也许是我承受的已经够多,我不想并努力遏制自己再沉迷于此。

星期三, 九月 13, 2006

带实验

这几天一直忙于安装单片机教学器件,忙得不亦乐乎。
今天下午开始带实验,这届学生的认真程度确实令人称奇。整个下午就穿梭在学生的问题中,虽然有点累,但颇有点为人师表的感觉。

星期日, 九月 10, 2006

有一种爱叫沉默!!!

爱情,原本不是要成为生命中一份深重的负荷。真的爱情,彼此间就会存在着一种默契,无需用过多的语言来表达,而且,假若彼此真地感情深厚,只言片语又怎能表达得尽呢?重要的是只要你心中能想着念着对方,这就已经足够了。
牵挂一个人,有时是问候,有时是沉默。
而沉默,有时不因为无话可说,而是心中想说的太多太多………… 什么是爱情,有时候我觉得对对方的想念就是一种爱,对对方的牵挂就是一种爱,迫不及待的想见到对方就是一种爱。爱,是可以用很多方面来诠释的。也许当你对某人有好感的时候,你可能不会想到,你正在爱着……有时候为了不使对方为难而放弃,也是一种爱.
只是希望两个人在一起的时候快乐就好,用心去爱对方,不必想太多的东西,更不必想到付出什么实质性的东西,只要让她的心能够体会到:你爱她!
沉默象大海一样,蕴藏着深厚而广博的情感:爱和生死、离别和怀念、激情和新生。大海有汹涌激烈的潮水和风浪,也有平静寂寥的夕阳下的海面。大海象人的感情一样深不可测,也许我们永远都无法预知,深藏在沉默外表下的内心中的激情可以有多么澎湃。  
沉默并不意味着把爱埋藏在心中永远不说出来,可以用温暖的举动,勇敢地打开自己的心扉,然后为感情付出责任。有的男人看上去非常坚强,可是他也有温柔和痛苦,有时候也很脆弱,但他能长久地忍耐,能对一个女人保持沉默却持久的爱情,因为他的真诚。  
而在我们的生活中,有太多另一类的人。他们可以随便轻易地对一个女孩说“我喜欢你”,他们目的明确,有时候只需要欲望,对金钱和前途,有太多注重和索求,习惯对任何事物持轻率的调侃态度,失去对美好事物应有的尊重,以及对心灵的理解。为了自己的目的可以不择手段,很难设想,这样的男人能带来真正的爱情。   
曾经有一个朋友对我说,永远不要对别人轻易地提起爱或喜欢,除非你是持游戏态度。因为有些感情,它们深藏在我们的心里,只有沉默才能体现我们对它的尊敬;而唯一能证明它的方式,只能是付出。  
有时候,沉默是一种深刻而无悔的爱情,可以用一生来怀念。我最爱的人,你知道吗?  
正所谓:花非花,雾非雾,夜半来,天明去,来如春梦不多时,去时朝云无觅处。
from:www.xici.com

星期六, 九月 09, 2006

一点感触

今天看了高中同学的Blog,上面有一句话:善待自己,善待他人,使我感触颇深。
我承认我有时有点任性和自以为是。有时我真的喜欢把自己的观点强加在别人身上,而且总以为自己是对的,错只在对方。也许这种张扬使我得罪了一些人,也伤害了一些人。现在想来真的是要改一下陋习了,也许真的多应该站在别人的角度上考虑一下问题...