21
第四章 数字式相移信号发生器的软件设计
硬件平台结构一旦确定,大的功能框架即形成。软件在硬件平台上构筑,系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,软件是本系统的灵魂。系统软件主要由以下各模块组成:显示模块,波形数据处理模块,写双口RAM模块,频率、幅度、相移调节模块,按键模块等。本系统的软件开发和调试都在WAVE仿真开发系统上完成。
4.1 波形数据获取
'按双极性输出的要求,经推导得出输出波形量化数据Dn的数学公式:
正弦波:
?sin??1???'(4-1) Dn?255??? ??0~359
?2?锯齿波: Dn?'255??? ??0~359 (4-2) 2???
'方波:Dn?255 ??0~179
??' Dn ?0 ??180~359 (4-3)
'根据上述公式,将?的取值离散化,即取???1,即可得到波形量化数据Dn。三种
?波形总数据个数为1080,因本系统所采用的单片机是AT89S52,内部含有8K的Flash ROM,因此可将三种量化波形数据存储在单片机中,而不需外扩数据存储器。
4.2 相移软件算法
根据式(3-8)、(3-9),欲实现20K范围内的频率输出,必有采用分段设置相位累加器字长的方法,即在小于2K的频率输出时,在一个波形周期内抽取360个波形数据;在大于2K,小于20K的频率输出时,在一个波形周期内抽取36个波形数据。
本系统为实现1°的相移步进,在单片机中存储了
360?360个波形采样数据。当波形1输出频率在2KHZ以下时,将360个波形数据依次从双口RAM1零地址开始写入。而向双口RAM2写入波形数据时,则根据所需移相的相位值?,将波形数据表中的第一个数据写入与相移值?对应的双口RAM2地址,当写到地址为360时,360地址不写数据,重新复位到0地址写接下来的数据,一直写满360个数据为止。基于此方法,一个地址对应1度的相移,因此最小相移步为1度。比如要实现移相3°,则写入双口RAM2的数据如表4-1所示:
表4-1 移相3°时写入双口RAM2中的数据表
第四章 数字式相移信号发生器的软件设计 22
DRAM地址 数据 0 357 1 358 2 359 3 0 ?? ?? 356 353 357 354 358 355 359 356 在高频段2K~20K范围内,如果仍用上述方法实现相移,将波形离散数据直接发送至DAC上,一方面DAC的转换速率跟不上;另一方面给调频电路的设计带来困难,因此采用了如下地址运算方法来实现相移的调节:
首先从上述360个波形数据中取出其中36个数据作为波形数据样本,由于原样本的点数是目前样本点数的10倍,故从原样本读取数据时每隔10个点读取一次。假定360个波形数据存放在单片机ROM中的首地址为ADD0,则连续从双口RAM1零地址开始写入的数据在单片机中的地址为:
第一个点的地址:ADD0;
第二个点的地址:ADD0+1?10; ??????????????; 第n个点的地址:ADD0+(n-1)?10; 第36个点的地址:ADD0+(36-1)?10; 若要得到与基值波形输出相位差为Ф°的波形,则连续从双口RAM2零地址开始写入的数据在单片机中的地址为:
Φo第一个点的地址:ADD0+o;
1Φo第二个点的地址:ADD0+o?1?10;
1??????????????;
Φo第n个点的地址:ADD0+o+(n-1)?10;
1Φo第36个点的地址:ADD0+o?(36?1)?10;
14.3 软件流程图
4.3.1 主程序流程图
本系统主程序模块主要完成的工作是对系统的初始化,包括对HD7279的初始化、发送显示数据、输出两路波形,初始时默认输出波形为正弦波,输出波形幅度为5V,两路波形的相移为180度;在初始化的同时,对键盘进行扫描,判断是否有相应功能键按下,如有相应功能键按下,则根据所需要的功能进行相应的操作。其流程图如图4-1所示。 4.3.2 输出波形切换子程序流程图
第四章 数字式相移信号发生器的软件设计 23
开始程序初始化有按键Y频率调节N相位调节N幅度调节N显示切换N输出波形切换NNY执行频率调节子程序Y执行相位调节子程序Y执行幅度调节子程序Y执行显示切换调节子程序执行输出波形切换调节子程序Y
图4-1 主程序流程图
入口正弦波输出N方波输出N锯齿波输出NY正弦波输出Y方波输出Y锯齿波输出发送波形显示数据返回
图4-2 输出波形切换子程序流程图
第四章 数字式相移信号发生器的软件设计 24
4.3.3 显示切换子程序流程图
入口频率显示发送频率显示数据幅度显示发送幅度显示数据相移显示发送相移显示数据返回
图4-3 显示切换子程序流程图
4.3.4 相位调节子程序流程图
入口Y相位步进键(增)频率>2KN频率小于2K相移递增处理Y相位步进键(减)N有效相移数值N频率>2KN频率小于2K相移处理返回Y频率大于2K相移处理Y频率>2KN频率小于2K相移递减处理Y频率大于2K相移递增处理NY频率大于2K相移递减处理
图4-4 相位调节程序流程图
第四章 数字式相移信号发生器的软件设计 25
4.3.5 频率小于2KHZ的写双口RAM子程序流程图
入口基路双口RAM零地址开始写入360个波形数据相移双口RAM的相移地址开始写入波形数据Y相移双口RAM零地址开始继续写入波形数据到359地址N继续写入波形数据N写满360个波形数据Y返回
图4-5 频率小于2KHZ的写双口RAM子程序流程图
4.3.6 幅度调节子程序流程图
子程序入口幅度步进键增NY波形幅度递增Y幅度步进键减N有效幅度数值N幅度显示返回
图4-6 幅度调节子程序流程图
波形幅度递减Y波形幅度输出