原创 正弦信号发生器(以前参加电子大赛做的东东)

2006-10-27 10:33 11944 8 13 分类: MCU/ 嵌入式


正弦信号发生器



文章来源:凌阳科技教育推广中心
发布时间:2006-8-4 15:42:21





摘要:以SPCE061A单片机为核心,通过DDS合成技术设计制作了一个步进值能任意调节的多功能信号源。该信号源在1KHz~10MHz范围能输出稳定可调的正弦波,并具有AM、FM、ASK和PSK等调制功能。信号输出部分采用低损耗电流反馈型宽带运放作电压放大,很好地解决了带宽和带负载能力的要求。系统带中文显示和键盘控制功能,操作简便,实现效果良好。


一、方案论证
1、信号产生
  方案一:使用传统的锁相频率合成的方法。要求产生1KHz到10MHz的信号,用锁相环直接产生这么宽的范围很困难,所以先产生50.001M到60M的可调信号,然后把此信号与一个50M的本振混频,得到需要的频率。此方法产生的频率稳定度高,但波形频谱做纯很困难,幅度也不恒定,实现也麻烦。
  方案二:采用专用DDS芯片产生正弦波。优点:软件设计,控制方便,电路易实现,容易直接达到题目要求的频率范围和步进值,且稳定性和上法一样,频谱纯净,幅度恒定,失真小。
  综上所述,选择方案二用专用DDS芯片AD9850产生正弦波。AD9850是采用DDS技术、高度集成化的器件,当它在并行工作方式时,有8根数据线、3根控制线与单片机相连。AD9850的频率控制字为:
                    20068414454.gif
其中FTW为频率控制字, 200684144520.gif为要输出的正弦的频率, 200684144532.gif为系统时钟的频率,由晶振产生。
2、模拟频率调制
  方案一:使用内调制(软件调制),通过单片机中断,对外来模拟调制信号进行采样,采样速率为32KHz,然后对采样值进行转换,把电压转换成对应的频偏,然后转换成相应的频率控制字送DDS,以实现对1KHz正弦信号的调频,这样可以满足最大频偏的精度要求。
  方案二:使用外调制,通过锁相环控制DDS总时钟,在锁相环电路中进行频率调制,来改变DDS输出信号频率,间接实现调频,这样实现简单,频域内频谱连续,但是很难做到精确的10KHz和5KHz的最大频偏。
综合以上方案,选择方案一,实际中要求调制信号是固定不变的1KHz正弦信号,所以,我们直接把正弦信号存储在单片机中,并且换算好频率控制字。
3、模拟幅度调制
  方案一:使用二极管调幅电路。较常用的二极管调幅电路有二极管平衡调幅电路和二极管环形调幅电路。但由于二极管的特性不一致,会造成电路不可能完全对称,造成控制信号的泄漏。
  方案二:充分利用单片机SPCE061A的资源,1K的调制信号使用单片机的DA口输出,经滤波放大后送MC1496与DDS产生的载波进行混频,这样效果非常好,而且成本低。
综合以上方案,选择方案二。
4、ASK和PSK数字调制
  方案一:充分利用DDS资源,两种调制都通过DDS自己实现,单片机通过基带信号的电平值直接送出相应的相位控制字或者频率控制字(ASK时,1代表频率输出为正常频率100KHz,0代表频率输出为0),但使用的DDS芯片为AD9850,它的相位和频率控制不灵活,不能得到完美的PSK和ASK信号来。
  方案二:采用运算放大器F733输出两路相位相反的信号,再使用基带码元选择这两路信号,则得到PSK;基带信号的"1"选择其中一路,"0"选择地,则得到ASK。通过一块CPLD对载波分频作为基带信号的时钟,这样使得PSK和ASK与基带信号完全同步。
综合以上方案,选择方案二。


二、主要电路设计与分析
1、系统原理框图
  方案框图如图1所显示:


点击看大图


图1  系统原理框图


  系统主要由载波产生放大电路,调制信号产生放大电路,乘法器,载波反相分割电路,码元同步电路,模拟开关组成。
2、系统各模块的理论分析和实际设计
  正弦输出电路设计:
  AD9850产生要求的正弦信号,系统时钟由100M的有源晶振提供,它决定了系统的频率稳定度。
  由DDS芯片输出的信号滤波后经LT1253放大,得到所需要的信号幅度。LT125是低功耗的宽带放大器,±5V供电时带宽为90MHz,DDS输出正弦信号的峰峰值为450mV,要得到6±1V的最终输出,放大倍数要在11.1和15.5之间,我们采用反相放大电路,放大倍数按如下公式计算:


200684144842.gif


200684144916.gif我们选100Ω,要使200684144948.gif 在11.1和15.5之间, 200684144934.gif的值必须选在1.11K和1.55K之间,实际电路中我们使用一个2K的精密可调电位器来微调增益,把输出电压峰峰值定在5V。具体电路见图2。
输出峰峰值为5V,负载为50Ω时,流过负载的峰值电流为:


20068414506.gif


  这个电流是高速运放难以达到的,为了提高带负载能力,放大后的信号经射极跟随器输出,使得50Ω负载上电压峰峰值在整个频带宽度内峰峰值为稳定的5V。为了把输出频率扩展到低频而又同时保持良好的高频,射随器前面的耦合电容使用一个22uF和一个0.1uF并联。这样做使实际输出范围向下扩展到300Hz,具体电路见图3。


点击看大图


图2 AD9850波形产生和放大电路
200684145117.jpg 
图3  射极跟随器电路


  模拟频率调制方案设计:
  我们采用软件调频的方案,通过中断单片机采样调制信号,然后通过线性运算把采样得到的电压值转换成对应的频偏值,然后与当前设置的中心频率相加,换算成频率控制字送到DDS,这样就实现了FM,如图4(a)。但是根据题目要求,调制信号为固定的1KHz正弦,所以,我们就去掉了繁杂的采集和运算,直接把对应于1KHz正弦信号的频偏控制字存储为一个表,然后通过中断把这个表里的频偏控制字和当前中心频率控制字相加送出。


点击看大图


(a)
 200684145227.jpg
(b)
图4  频率调制实现框图


  分析和计算过程如下:
  FM的瞬时的频率可以分解为两部分:中心频率 200684145322.gif和瞬时频偏 200684145338.gif
  而200684145338.gif 和调制信号的瞬时电压成正比,则频偏数据可以存储为一组有符号的正弦表,同时,又要满足最大频偏为10KHz(5KHz是可以用同一个数据表,做一下处理即可),所以正弦数据的最大值为10000,使用正弦取表工具生成数据。这样,频偏表就确定了。


20068414542.gif


电路中20068414558.gif 选用100MHz的有源晶振,则


 200684145527.gif


  当前中心频率和频偏表里的每一个元素分别做这样一次运算之后得到频率控制字表并存储。之后打开32KHz的中断,从这个表里依次取值送出。这个中断服务过程中单片机没有一点运算。此过程见图4(b)。
模拟幅度调制的调制信号产生:
  AM信号的调制度计算公式为


 200684145554.gif


200684145619.gif 为调制信号的幅度,200684145636.gif 为直流偏移量。固定 (200684145636.gif 的固定是通过两个方面实现的,单片机输出信号因为必须是单极性的,所以已经有了一个直流偏移,在送到MC1496时,MC1496电路里又有一个电位器调节直流偏移,我们用这个电位器做200684145740.gif 的校准),改变200684145619.gif 就可以控制调制度。则当0.1200684145636.gif200684145619.gif200684145636.gif 时就可以使得调制度满足10%~100%的要求。实际上我们可以通过按键在0到100%之内任意设置 200684145740.gif;调制信号的产生:在单片机内做一个正弦表,通过42KHz的中断不断把表里的数据和 相乘后送到DA口输出,然后经低通滤波和放大,送到模拟乘法器MC1496和载波混频得到AM信号。
  数字调制的波形反相分割电路与码元同步的实现:
  为了得到PSK的反相信号,我们采用F733运放把输入波形分割成两路反相信号,码元的时钟由载波在CPLD内部10分频得到的10KHz时钟提供,这样就很容易保持同步,防止码元差错;另外,我们加了一片74LS123以精确控制数字调制输出信号的初始相位。而调制信号的输出由模拟开关4053选择完成,码元的"1"选择一路信号,"0"选择另外一路,得到PSK信号;码元的"1"选择一路信号,"0"选择地电位,则得到ASK信号。


点击看大图


图5  ASK、PSK产生电路


三、软件流程
 1、软件功能
  本系统采用凌阳SPCE061A十六位单片机。软件采用了凌阳公司的MINIOS实时操作系统,并采用了事件驱动的编程思想。主任务就是一个消息驱动的线程,等待键盘任务和其他中断发出事件请求来完成各种功能。具体功能有:图形化的操作界面;各个功能的切换;各种参数的设定;频率步进等。
2、本系统软件特点
  利用消息驱动机制实现了图形动态菜单。使操作界面更加直观,更加人性化,操作更简单。
  消息驱动的简单数据结构:
    union _EVENT_FLAG_{
  struct _bit_flag{
   unsigned char INTOSUBMENU  :1;
   unsigned char RETURNMINMENU  :1;
   unsigned char CANNEL   :1;
   unsigned char OK  :1;
   unsigned char ASK  :1;
   unsigned char PSK  :1;
   unsigned char AM  :1;
   unsigned char FM  :1;
   unsigned char SINE  :1;
   unsigned char Reserve  :9;//保留
  }Bit;
  unsigned char Value;
  }MY_Event={0x0000};


  里面包括七个事件标志变量,被定义为_EVENT_FLAG_的共用体。当MY_Event的具体位被置为1的时候就表示相应的事件发生,并请求消息处理任务对事件进行处理。复杂的消息驱动机制还需要相应的消息队列,邮箱等等,在此不做累述。
 3、软件流程图


20068415210.gif


图6  软件流程图


  事件处理任务流程图:


点击看大图


图7  事件处理任务流程图


四、测试分析
1、主要测量仪器
  稳压电源,示波器
2、测量结果
  各项指标均达到要求,并且大部分指标优于题目要求。
  测试数据见表1和表2:


表1  基本部分测试数据




基本要求


 


实际性能


正弦波输出频率范围


1kHz~10MHz


300Hz~20MHz


具有频率设置功能,频率步进


 


100Hz


按键任意设置频率
频率步进默认100Hz
可任意设置步进值


输出信号频率稳定度


优于10-4


实现


输出电压幅度


20068415118.gif负载电阻上的电压峰-峰值Vopp≥1V


实现


失真度


用示波器观察时无明显失真


1M以上略有失真

表2  发挥部分测试数据


发挥部分 实际性能
增加输出电压幅度 在频率范围内20068415399.gif负载电阻上正弦信号输出电压的峰-峰值Vopp="6V"±1V稳定的5.0V
产生模拟幅度调制(AM)信号 在1MHz~10MHz范围内调制度ma可在10%~100%之间程控调节,步进量10%,正弦调制信号频率为1kHz,调制信号自行产生 0到100%可程控调节,另可通过按键任意设置ma值。
产生模拟频率调制(FM)信号 在100kHz~10MHz频率范围内产生10kHz最大频偏,且最大频偏可分为5kHz/10kHz二级程控调节,正弦调制信号频率为1kHz,调制信号自行产生 实现
产生二进制PSK、ASK信号 在100kHz固定频率载波进行二进制键控,二进制基带序列码速率固定为10kbps,二进制基带序列信号自行产生 实现
其他 图形菜单
PSK调制信号初相位在200684153858.gif可调

  由测试结果看出,输出信号频率高的时候有失真,分析其原因,主要是级间耦合和分布参数引起的。


五、结论
  本系统完成了题目基本部分和发挥部分的全部内容,在完成的项目中大部分指标优于题目要求,个别指标由于时间有限做得不是非常完善。
  主要特色:
  图形动态菜单。使操作界面更加直观,更加人性化,操作更简单。
  输出频率扩展到300Hz-20MHz。
  50Ω负载上300Hz-20MHz整个带宽中,波形峰峰值稳定在5.0V,达到了仪器级的标准。


参考文献


  [1]  2003年全国大学生电子设计竞赛获奖作品选编,北京理工大学出版社2003.
  [3]  凌阳大学计划.MINIOS用户操作手册.北京:北阳科技,2003.8.14:58~62.
  [4]  AD9850 Data Book[S].Analog Device Inc.,1999.
  [5]  A Technical Tutorial on Digital Signal Synthesis[S].Analog Device Inc.,1999.
  [6]  Hybrid PLL/DDS Frequency Synthesizers[S].Qualcomm,Inc.Application Note An2334


[down.gif 源码下载]

PARTNER CONTENT

文章评论5条评论)

登录后参与讨论

用户1201387 2010-3-20 19:47

有没有详细点的资料

 

mubo_996067292 2009-1-8 22:43

你再看下凌阳的文献资料,作者就是我。

用户461316 2008-10-7 17:19

是凌阳的文献资料!

用户461316 2008-9-11 01:19

好像还行吧!!

mubo_996067292 2007-8-28 23:19

射随器随便调下就OK了,只是电流太大了。当时不感把负载电阻焊接在PCB上,只是做了个电阻的插孔,测的时候才把电阻插上去...

相关推荐阅读
mubo_996067292 2010-11-07 23:09
继续升级,CTE1.3
新增:rms2vpp <rms value> -- sine signal amplitude convertvpp2rms <vpp value> -- sine signa...
mubo_996067292 2010-10-23 02:10
关于天灾
    胡公,温公,世之英杰。而其享国之日,天灾频现。自胡公七年(西历二千零八年)至于今日,三年之中,凡日蚀二,大地震二,大旱一。    方今之日,中国日强,使夷狄不敢正视,此千秋之功也。而剥其表视其...
mubo_996067292 2010-09-03 00:27
继续升级:mil-mm,db-倍数,m/s-km/h,电阻并联转换计算器
新增:    增加了电阻并联计算。另:   所有的转换和计算,输入数字的时候都不能有数字之外的字符。...
mubo_996067292 2010-08-27 00:47
mil-mm,db-倍数,m/s-km/h转换计算器
几组常用的转换。...
mubo_996067292 2010-08-03 22:59
mm和mil转换
命令行模式,四个命令:help显示帮助信息quit 退出程序mil2mm <mil值>  mil转换为mmmm2mil <mm值>  mm转换为mil 直接找了个朋友在单片机上...
mubo_996067292 2010-03-09 22:31
雨夜弹琴
雨落深圳寒,加班夜归晚。坐闻窗飒飒,发性抚琴弹。...
EE直播间
更多
我要评论
5
8
关闭 站长推荐上一条 /3 下一条