低频三相函数信号发生器 郑冰环 赵晨 陈兵 指导老师:汪济洲 姚红 摘要:函数信号发生器是电子设计以及教学、科研中应用最广泛的仪器之一。如果能用相对简单的实现方式和较少的成本产生具有优秀稳定度和精确度的常用波形,无疑将会在这些领域中得到广泛的应用。本系统基于AT89S52单片机控制DDS系统产生正弦波形和矩形波,组成低频函数信号发生器。通过键盘控制达到电压预置、频率预置和占空比预置等功能,电压值、频率值和占空比都可用LCD12864显示,实现友好的人机界面。 关键字:单片机 DDS系统 函数信号 LCD 一、题目理解与分析
题目要求设计并制作一台低频三相函数信号发生器,通过分析和理解,把题目功能要求及指标要求以下表格形式列出。
二、系统方案设计
方案一:采用单片机控制 由单片机、D/A转换器及波形数据存储器等组成系统,单片机控制正弦波波形的合成、相位的改变,以及所有的逻辑和时序控制等工作。此方案除了要求单片机完成基本的处理分析以外,还需要完成信号波数据的存储、按键的处理、信号显示等控制与变换工作。其优点在于系统规模小,有较大的灵活性,但单片机内部资源和处理速度不容易满足要求。系统框图如图2.1所示。 波形输出 单片机 正弦波发生器/滤波 正弦波形移位幅值放大模块 电压有效值/频率显示 DA0832控制模块 方波 键盘/显示模块 图2.1 单片机 控制系统框图 方案二:基于IP核技术的FPGA 移相 波形输出
FPGA DDS系统 正弦波形移位幅值放大模块 电压有效值/频率显示 方波 键盘/显示模块 图2.2 FPGA 控制系统框图 综合分析以上两种方案,并结合实际,采用方案一来完成低频三相函数发生器的制作。 三、模块方案设计
3.1 单片机的选择
方案一:采用凌阳系列单片机 凌阳系列单片机指令系统的指令格式紧凑,执行迅速,并且其指令结构提供了对高级语言的支持。低功耗,低损耗。另外,它的工作电压范围大,能在低电压供电时正常工作。采用32MHz的外部晶振,能满足题目要求,但是操作处理比较慢且价格较贵。 方案二:采用51系列单片机 MCS-51系列单片机,具有的集成度高、处理功能强、可靠性高、系统结构简单、价格低廉等优点。采用AT89S52单片机,外接12MHz晶振,勉强能够满足题目要求,但是它的缺点是处理速度较慢。 综合比较,考虑成本及功能采用方案二。 3.2 正弦波发生器的设计方案
方案一:采用传统的直接频率合成法直接合成 利用混频器、倍频器、分频器和带通滤波器完成对频率的算术运算。但由于采用大量的倍频、分频、混频和滤波环节,导致直接频率合成器的结构复杂,体积庞大,成本高,而且容易产生过多的杂散分量,难以达到较高的频谱精度。 方案二:采用直接数字式频率合成(简称DDS) 用随机读/写存储器RAM存储所需波形的量化数据,按照不同频率要求,以频率控制字K为步进对相对增量进行累加,以累加相位值作为地址码读取存放在存储器内的波形数据,经D/A转换和幅度控制,再滤波即可得到所需波形。由于DDS具有相对带宽很宽,频率转换时间极短,频率分辨率高等优点,以及输出相位连续,频率、相位和幅度均可实现程控,因此可以完成题目要求。 综合比较选择方案二。另外。DDS系统板中已含有四阶巴特沃斯低通滤波电路,不需另外再设计滤波电路。 3.3 电源设计方案
本系统需要多个电源,DDS模块和单片机的工作电压为5V,DAC0832的工作电压为15V,基准电压为-5V,提供给OP37的工作电压为±15V。因此,采用三端稳压器7815、7915、7805和7905制作稳压电源,提供各器件电压。 3.4 显示模块的设计方案
方案一:采用LED数码管显示 虽然功耗低,控制简单,但是只能显示数字和一些简单的字符,没有较好地人机界面。 方案二:采用LCD液晶显示 LCD12864可以显示所有字符和自定义字符,并能同时 显示多组数据、汉字,字符清晰。自身具有控制器,不仅可以减轻主单片机的负担,而且可以实现菜单驱动方式的显示效果,达到友好人机界面。用LCD液晶显示,能解决LED只能显示数字等几个简单字符的缺点,性能好,效果多,控制方便,显示方式多。 比较以上两种方案,采用方案二。 3.5 键盘设计方案
由于单片机I/O口足够,因此采用矩阵4×4键盘即可。 四、硬件电路设计
4.1 DDS的基本原理
DDS的基本原理是在高速存储器中放入正弦函数——相位数据表格,经过查表操作,将读出的数据送到高速DAC产生正弦波。可编程DDS系统原理图如图 频率控制字K N位相位累加器 正弦查询表 ROM 数/模转换器DAC 低通滤波器 FCW N位 系统时钟 fclk fout M位 图 DDS系统由频率控制字、相位累加器、正弦查询表、数/模转换器和低通滤波器组成。参考时钟为高稳定度的晶体振荡器,其输出用于同步DDS各组成部分的工作。相位累加器是可编程DDS系统的核心,它由一个加法器和一个N位相位寄存器组成,N一般为24~32。每来一个外部参考时钟,相位寄存器便以步长M递加。相位寄存器的输出与相位控制字相加后可输入到正弦查询表地址上。正弦查询表包含一个正弦波周期的数字幅度信息,每一个地址对应正弦波中0°~360°范围的一个相位点。查询表把输入地址的相位信息映射成正弦波幅度信号,然后驱动DAC以输出模式量。 系统采用专用美国AD公司推出的高集成度频率合成器AD9850。AD9850内含可编程DDS系统和高速比较器,能实现全数字编程控制的频率合成。据图 输出的正弦波周期 To=Tc2N /M 频率 fout=Mfc/2N Tc、fc分别为外部参考时钟的周期和频率。 AD9850接上精密时钟源和写入频率相位控制字之间后就可产生一个频率和相位都可编程控制的模拟正弦波输出,此正弦波可直接用作频率信号源或经内部的高速比较器转换为方波输出。在125MHz的时钟下,32位的频率控制字可使AD9850的输出频率分辨率达0.0291Hz;并具有5位相位控制位,而且允许相位按增量180°、90°、45°、22.5°、11.25°或这些值的组合进行调整。它的外围电路连接如图 4.2 移位和调幅电路设计
DDS系统输出的正弦波并不是标准的正弦波函数,它的幅值都大与零,因此要计算输出电压的有效值,需要先将波形整体向下移位,波形移位原理如图 图 其核心部分是一电压跟随器,电压跟随器的输出 Vo1=(Vin-Vp) 所以输出的Vo1就相当于在输入Vin的基础上下移了Vp,而Vp又受电位器Rw1的控制,理论上可将Vin的波形向Y轴负方向下移0~12V。为了满足外接10KΩ输出电压峰峰值不小于20V,而波形移位后输出电压最大值为5V,因此需再连一电压放大电路。其核心是OP37,由虚短虚段 Vout=-Vin*Rw2/R3 Rw2/R3的范围是0~10,因此通过调节Rw2可以使输出波形的峰峰值在0~10Vo1间变化,即输出信号的峰峰值范围为0-50V,足以满足题目20V的要求。 4.3 移相电路设计
移相电路采用模拟方法实现,根据RC电路的相频响应,在RC低通电路中对于实际频率,上限转折频率 fH=1/(2πRC) 相角 ψH=-arctan(f/fH) 实际输入信号频率为f: 1)当f<0.1fH时,ψH→0°,相频响应的相角为零度,幅频响应可以忽略。 2)当f<fH时,ψH→-45°,相角从0°到45°变化,幅频响应可以忽略。 3)当fH<f<10fH时,ψH→90°, 相角从45°到90°变化,幅频响应非常明显,通过增益Av=1的反相比例放大器,把幅频响应抵消同时把相位差扩大一倍。 4)当10fH<f时,幅频响应和相频响应都达到最大值。 采用1nf的电容和100K的电位器组成上限截止频率可变的低通RC电路作为正向输入端,另用100Ω的电阻作为保护电阻。 电位器阻值最小时可以得到最大上限截止频率为fH=1/(2πRC)=1.6MHz,即实际输入信号需小于此范围内才能达到180度相位可调。当实际输入信号大于16MHz时相位差固定为180度。 电位器阻值最大时可以得到最小上限截止频率为fH=1/(2πRC)=1.6KHz,即实际输入信号需大于160Hz(=0.1fH)才能出现相位可调。信号频率小于16KHz(=10fH)时不能达到180度范围可调。 图 4.4 方波占空比调节电路设计
方波获取原理:由输出正弦波经过一由OP07组成的单门限电压比较器产生方波信号,OP07的门限电压Vref由单片机直接程控,通过DAC0832数/模转换器将数字量转换成模拟电压量。输出模拟量正比于输入数字量(DN-1*2N-1+……+D0*20),从而实现从数字量到模拟量的转换。输入可有28(=256)个不同的二进制组态,输出为256个电压之一作为其门限电压。输入电压 Vin > Vref 则通过比较器,输出电压Vout=1;输入电压 Vin < Vref 则通过比较器,输出电压Vout=0。另外,由于DAC0832转换出的是电流,所以需后接一运放OP07进一步将电流量转换成电压量。电路设计如图 图 4.5 键盘/显示电路设计
键盘采用矩阵4×4键盘,键盘和LCD12864与单片机接口电路如图 五、程序设计
本系统的所有程序均采用C语言编写。程序各部分分别做成模块,主程序做成不同的界面,各模块按主程序调用子程序的方式执行。软件的关键在于如何控制AT9850的工作方式和控制字,以及如何控制DAC0832改变波形的幅值,从而达到数控效果。 软件实现的功能有:(1)输出一路正弦波信号;(2)步进控制;(3)频率设置;(4)输出一路方波信号;(5)方波占空比预置。 整个系统软件由主程序和多个功能子程序构成。软件基本按照主程序调用子程序的方法执行。系统程序流程图如图 选择界面 开始 正弦波设置界面 矩形波设置界面 调频波设置界面 矩形波显示界面 正弦波显示界面 调频波显示界面 结束 图 六、系统测试
6.1 测试仪器
6.2 系统测试
测试说明:按键10:退步/频率+; 按键11:清零/频率-; 按键12:确定/重置; 按键13:返回/返回。 系统测试主要用示波器测试预置频率,频率步进,接10KΩ负载电压峰峰值的准确性与稳定性。正弦波测量结果如表 表
方波的主要参数为频率和占空比,均可调。频率预置与显示上表已测,这里不再测量。用示波器测试结果如表 表
误差分析:主要原因是DAC0832的基准电压不够稳定。 七、总结
通过将近一周的设计与制作,基本完成以下功能:(1)能够完成一路正弦波,频率在20Hz-20KHz范围内,用示波器观察无明显失真;(2)能够实现频率设置和频率步进,步进10Hz;(3)能够显示正弦波的电压有效值和频率;(4)在外接10KΩ负载下,输出电压幅度达到20.2V,满足题目要求;(5)能够输出方波信号,可以预置频率;(6)能够预置占空比;(7)将正弦波一相扩展到三相,并且能够调整相位差。另外还有题目要求功能没有实现:输出载波频率约为10kHz的调频信号输出。这个题目完成得不够完整,主要原因是知识储备不够,而且在短时间内也不能完成这方面知识的学习运用,但是我们会坚持学习,努力完成。 八、参考文献
【1】康华光. 电子技术基础 数字部分. 高等教育出版社,2009 【2】赵亮,侯国锐. 单片机C语言编程与实例,北京.人民邮电出版社.2003 【3】康华光. 电子技术基础(模拟部分)(第五版). 高等教育出版社,2009 【4】黄智伟.全国大学生电子设计竞赛系统设计.北京航空航天大学出版社,2006 附件:
附件一: 部分电路图 1、图 2、图 3.图 4、系统图。 附件二:元器件清单
|
|