
设计报告
题目: 双路低频信号发生及分析仪的设计制作
二 ○ 一 二 年 九 月
双路低频信号发生及分析仪的设计制作
摘要:本设计给出了以32位单片机ARM(LM3S1138)为核心的波形发生器和频域分析仪的基本原理与实现方案。该系统由波形发生、D/A转换、低通滤波、键盘控制、LCD显示和频域分析六个模块构成,采用数值计算的方法由单片机实现波形发生和波形控制,通过D/A转换和低通滤波电路模块完成波形输出。可通过键盘选择输出波的类型,控制幅度和频率。信号发生器采用数字波形合成技术,通过硬件电路和软件程序相结合,可产生输出频率及幅度可调,频率范围1000Hz~2000Hz的正弦波、矩形波、三角波、锯齿波及四种波形的线性组合波形,波形信号的频率、波形类型与幅度值送至LCD液晶显示屏进行显示。本系统具有波形类型、频率、幅度变化容易,硬件电路简单可靠、成本低、稳定性高等特点。
关键词:ARMLM3S1138 D/A转换 信号叠加 频谱分析
目 录
1. 方案论证与设计 1
1.1 信号发生方案 1
1.2 幅度预置方案 1
1.3 频率预置方案 2
1.4 相位差和占空比预置方案 2
1.5 频谱分析方案 2
1.6 显示部分设计方案 2
1.7 滤波电路设计方案 3
2. 理论分析与计算 3
2.1 信号发生原理 3
2.2 信号频域分析原理 4
2.3 采样频率的设定依据 5
3. 电路与程序设计 5
3.1 主控制电路 5
3.2 模拟电路 5
3.3 程序设计 6
4. 系统测试与误差分析 6
4.1 测试仪器 6
4.2 测试方法 6
4.3 测试数据 6
4.4 误差分析 6
5. 总结 7
参考文献 7
附录 8
1.方案论证与设计
1.1信号发生方案
方案1:采用传统的模拟振荡电路的方法。如产生正弦波可采用模拟分立元件RC 或LC 振荡器,但其产生的信号的频率精度低,稳定度和抗干扰能力差,成本也比较高,外围电路复杂,且易受外界干扰,硬件调试困难,不便程控。
方案2:程控数字锁相环频率合成。这种技术已经很成熟,也已经有各种成品集成电路可供使用,并且可以实现三种基本波形。具体方案如下:首先通过频率合成技术产生所需要频率的方波,通过积分电路就可以得到同频率的三角波,再经过滤波器就可以得到正弦波。
方案3:基于计算的数字频率合成。利用函数将组成波的点保存在单片机的RAM中,根据波形的频率计算出送点的时间间隔,将定时器设为周期定时器,定时时间设为送点的时间间隔,定时时间到了就产生中断,然后送点到D/A进行转换,这样就得到了连续的波形。
对以上三种方案进行比较,方案一采用模拟器件,分散性太大,而采用单片压控函数发生器,参数与外部元件有关,外接的电阻电容对参数影响很大,因而成本高、精度低、频率稳定性较差、抗干扰能力低,而且不能实现任意波形以及波形运算输出等智能化的功能;方案二可达到很高的工作频率和频率分辨率,但使用的滤波器要求通带可变,实现起来困难,而且不能实现任意波形功能;方案三采用数值计算的方法通过单片机产生各种波形,虽然增加了软件难度,但却减小了硬件复杂度,而且成本低、精度高、频率稳定性高、抗干扰能力强。因此采用方案三来实现波形发生。
1.2幅度预置方案
方案一:幅度控制由数控电位器组成的电阻分压网络组成,但是数控电位器的分档数目较少,难以满足题目幅度0.1V步进的要求。同时电路连接比较复杂,电路庞大。
方案二:采用DAC0832转换器。可以通过在软件中设置一个幅度的参数来改变送往D/A转换的值的大小,从而改变输出波形的幅度大小。
方案三:利用FPGA的高速计算功能,采用高效算法对波形进行全数字处理。
对以上方案进行比较,方案一电路连接比较复杂,电路庞大,这样既增加了硬件,又加大了软件设计的难度;而采用方案二,虽然增加了软件的难度,延迟了波形的输出时间,但是可以不用外加硬件拓展,节省了成本;方案三内部RAM有限字长效应,会造成波形具有一定的失真,不过经过滤波电路后会对波形进行一定的校正。
综合考虑,采用方案二来实现幅度预置。
1.3频率预置方案
方案一:通过在存储芯片ROM中保存不同频率信号的信号发生点数,在频率切换时调用ROM中所存储的不同点数模块来实现频率的切换。
方案二:频率的产生由硬件实现,频率的变化由程序来控制,通过改变定时器的初值来改变输出波形相邻两点的时间间隔,从而实现波形频率的改变。波形的合成也通过程序实现,具有很高的精度和线性组合的灵活性。该设计电路简单,绝大部分功能由程序实现,减少了硬件开销。
对以上方案进行比较,方案一占用存储空间较多,实现起来困难;方案二占用存储少,且实现起来简单。因此采用方案二的设计方法。
1.4相位差和占空比预置方案
通过改变波形发生时起始点的位置来预置相位差,占空比是通过软件实现的,先预置组成波形中的一个点,以该点为基准,设置该点之前的点与之后的点分别为高低电平,从而设置输出矩形波的占空比。
1.5频谱分析方案
FFT(Fast Fourier Transformation),即快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。
收集经ADC转换后的数据,将采样数据存入单片机,通过FFT变换数据,进行频谱分析。
1.6显示部分设计方案
方案一:使用LED数码管显示。该方案控制部分简单,且LED数码管比较直观,可视化强。但是只能显示非常有限的符号与数字,占用资源较多且信息量少,显然不能胜任设计复杂的显示功能。
方案二:采用LCD显示。自带字库,有丰富的文字和图形显示功能,有良好的人机交换界面。LCD的全中文界面显示,使得显示内容丰富,易于人机交流。
比较以上两种方案,数码管显示驱动简单,但显示信息量少,功耗大;利用LCD液晶显示可以工作在低电压、低功耗下,显示界面友好、内容丰富,方便人机交流。
综合考虑,采用LCD来显示波形幅值、频率和相位。
1.7滤波电路设计方案
方案一:利用运放芯片TL082构成的有源二阶巴尔沃基滤波器,它的频率范围可以达到1MHz,远高于最高频率2KHz,而且可以提高输出电压的稳定性。
方案二:采用硬件构建的有源滤波器,通常这种滤波电路主要采用运放、电阻电容组成。其优点是具有不用电感,体积小,重量轻等;缺点是其集成运放的带宽有限,电路的工作频率有限难以做得很高。
由于所设计的信号源的频率相对来说不是很高,采用普通有源滤波器已经可以完成设计的要求,因此选择方案二。
2.理论分析与计算
2.1 信号发生原理
本设计中信号的产生直接用D/A转换器和软件的结合来生成,各种波形的信号数据采用了函数计算的方法来取得:
其中N表示所要取得的点数。考虑到输出波形频率范围为1kHz~2KHz,而D/A转换器的分辨率为8位,最快转换时间为1us,而:
其中fmax为最高频率,t为D/A转换时间,代入数据计算:
N﹦1/(2000Hz 1μs)
可得N=500。但考虑到取N=500时输出波形时间太长,为了尽量提高波形频率,取N=100,即一个基本正弦信号的完整波形有100个数据信号点组成,将波形数据通过长度为100的无符号字符数组存储到RAM中。由于单片机只能输出正电压,且无符号字符数据占一个字节,范围为0~255,故需将各波形一个周期内的100个数据转换为0~255的整形数据,再转换成16进制数。具体计算公式如下:
正弦波:
[Y]﹦128+128sin[(2πi)/200](i=0,1,2,…99)
三角波:
[Y1]﹦128+(128i)/25 (i=0,1,2,…24)
[Y2]﹦255+(255/50)(25-i) (i=25,26,27…74)
[Y3]﹦(128/25)(i-75) (i=75,76,77,…99)
矩形波:
[Y1]﹦255 (i=0,1,2,…49)
[Y2]﹦0 (i=50,51,52,…99)
2.2 信号频域分析原理
在已知时域参数的基础上对信号进行FFT变换,最后实现对信号的频域测量。设x(n)是一个长度为M的有限长序列,则定义x(n)的N点DFT以及X(k)的N点IDFT为
DFT的实质是:有限长序列的傅立叶变换的有限点离散采样——频域离散化方法。DFT存在许多快速算法FFT. FFT的基本思想在于, 将原有的N点序列分成两个较短的序列,这两个序列的DFT组合起来,得出原序列的DFT。
设 ( M为自然数)
将长度为N的序列x(n)按n的奇偶分成两组
即
其中
应用旋转因子的周期性:
上式可见,一个N点DFT已分解为两个N/2点的DFT X1(k)与X2(k)的组合。此时计算量已经变化。将此过程继续进行下去,最后分解为2点FFT.过程图如附录中图 6所示。
采样点数过少,会使栅栏效应和截断效应增强。设对信号进行N点DFT,则相当于在频率区间对信号的频谱进行N点等间隔采样,而仅能得到N个频谱函数值,会漏掉部分频谱值,称为栅栏现象。N的增加,同样会减少截断效应。信号被截断后,原来的离散谱线向附近展宽,使频谱变得模糊。同时引起旁瓣间的干扰,使谱分辨率下降。
2.3 采样频率的设定依据
由采样定理知,采样频率必须至少是信号中最大频率分量频率的两倍,否则就不能从信号采样中恢复原始信号。 为了正确无误地用取样信号VS表示模拟信号Vi,必须满足: fs ≥ 2fimax
式中fs为取样频率,fimax为输入信号Vi的最高频率分量的频率。否则会发生频率混叠现象。在满足该式的条件下,可以用一个低通滤波器将信号Vs还原为Vi,这个低通滤波器的电压传输系数|A(f)|在不低于fimax的范围内应保持不变,而在fs—fimax以前应迅速下降为零,因此,采样定理规定了A/D转换的频率下限。因为每次把取样电压转换为相应的数字量都需要一定的时间,所以在每次取样以后,必须把取样电压保持一段时间。可见,进行A/D转换时所用的输入电压,实际上是每次取样结束时的值。
3.电路与程序设计
根据题目要求,综合分析各项指标后,我们制定总体的设计方案大体为:用ARMLM3S1138作为基本波形产生的核心,通过查表的方式产生正弦波、矩形波、三角波和锯齿波数据,然后通过8位ADC0832芯片产生连续波形。我们以ARMLM3S1138单片机为基本核心构成控制单元,完成对波形的各个参量(包括幅度和频率)的改变、LCD显示、功能选择的控制实现。波形数据表中的波形数据经过D/A芯片ADC0832完成数模转换,再由DAC0832内部的电阻分压网络实现波形幅度的控制,进而经过滤波以及稳幅电路后输出,得到具有一定带负载能力的所需波形。
3.1主控制电路
主控制电路系统结构简图如附录中附4图 1所示。
3.2模拟电路
信号叠加Multisim仿真电路如附录中附4图 2所示;示波器显示波形如附录中附4图 3所示。
3.3程序设计
主程序流程图如附录中附4图 4所示;KEY中断程序流程图如附录中附4图 5所示。
4.系统测试与误差分析
4.1测试仪器
(1)GOS-620示波器
(2)MY 60万用表
(3)频率计
4.2测试方法
采用先局部后整体的方法,分模块进行测试,测试成功之后将各个模块整合,进行总体测试,记录数据,并对其进行分析。单片机系统模块测试从键盘读入键值,经单片机处理后,示波器显示波形,用频率计测量频率、幅度,观察LCD显示是否正常,用万用表测量负载电阻值。
4.3测试数据
4.3.1频率测试
输出波形幅度范围测试在幅度为3V的条件下,测得的频率数据如附录中附4表格 1所示。
由实验数据可知,输出波形的频率在1kHz~2kHz之间,误差不高于1%,很好的满足了基本要求。
4.3.2幅度测试
输出波形频率范围测试在1kHz的条件下,测得的幅度数据如附录中附4表格 2所示。
由实验数据可知,输出波形的频率在1kHz~2kHz之间,误差不高于1%,很好的满足了基本要求。
4.4误差分析
4.4.1量化波形的误差分析
由于RAM中存储的数据字长和D/A位数有限,所以D/A进行幅值量化时会产生幅值量化误差。增加数据字长和D/A位数可以减小这种误差。
4.4.2D/A转换器的非线性引起的误差分析
DAC0832的非理想特性包括:差分、积分的非线性,D/A转换过程中的尖峰电流,转换速率受限(本设计采用DAC0832,上限工作频率1MHz)等。同时由于D/A转换过程中不可避免的存在量化误差,所以产生的波形幅值与频率将会与设定的预期值形成一定的误差。
4.4.3后级运放产生的误差分析
由于集成运放自身存在的输入失调电压和输入失调电流的影响,以及运放本身增益带宽积与上升速率的影响,在输入频率较高时,不可避免会出现相位失真。由于通用板本身结构的,以及电路中两路信号的串扰等影响,都会使得系统存在一定的误差。
4.4.4电源噪声
这种随机噪声也会对输出波形产生一定的影响,使输出纹波增大。为减弱这种噪声,一方面可以选择纹波小的电源,另一方面可以通过电源退耦以减小其影响。
5.总结
通过我们团队三人在四天三夜中的不断努力和团结协作,系统架构设计合理,功能电路实现良好,系统性能优良、稳定,较好地达到了题目要求的各项指标。我们实现了该题目的基本要求,并实现了一部分发挥部分的要求。整个竞赛过程,对我们来说是一个能力提高的过程,我们不仅在编程和电路认识的能力方面有所加强,而且对单片机系统开发有了进一步的熟悉和了解,在意识中树立了工程项目的概念。竞赛的过程又是一个考验我们毅力和团结精神的过程,在整个制作过程中,我们遇到了很多困难和问题,经过我们大家的共同探讨和查阅相关资料,解决重重困难,最终完成了作品。
竞赛过程中,我们也发现了自己在日常的学习中存在很多的问题。按照题目发挥部分的要求,需要实现频域分析,我们花了很多时间寻找相关资料。在制作实际项目的过程中我们发现自己的知识量、实践经验严重缺乏,这也是导致我们最终没有按时完成全部发挥部分要求的一方面重要原因。加强动手能力的培养,积累实践工程经验,也是我们以后所需要努力的方向。
参考文献
[1]陈炳和《计算机控制系统基础》北京航天航空大学出版社
[2]黄志伟《32位ARM微控制器系统设计与实践》北京航天航空大学出
版社
[3]张菊鹏 《计算机硬件技术基础(第二版)》清华大学出版社
[4]胡汉才《单片机原理及其接口技术(第2版)》清华大学出版社
[5]谭浩强《C语言程序设计(第二版)》清华大学出版社
[6]高峰《单片微型计算机原理与接口技术》北京科学出版社
[7]阎石《数字电子技术基础》高等教育出版社
[8]童诗白《模拟电子技术基础》高等教育出版社
附录
附1.单片机最小系统图
附2.部分元器件清单
| 序号 | 名称 | 型号 | 数量 | 功能 |
| 1 | 单片机 | ARMLM3S1138 | 2 | 产生波形 |
| 2 | LCD液晶显示屏 | LCD128 | 1 | 显示 |
| 3 | 数模转换器 | ADC0832 | 2 | 模数转换 |
| 4 | 运算放大器 | OPA2132 | 4 | 波形运算放大 |
| 5 | 电容、电阻、导线 | 若干 |
信号叠加电路图
DAC0832引脚图
附4 各种图表
图 1
图 2
图 3
图 4
图 5
图 6
表格1:
| 预置频率/Hz | 测量频率/Hz | 误差/% | ||||||
| 正弦波 | 矩形波 | 三角波 | 锯齿波 | 正弦波 | 矩形波 | 三角波 | 锯齿波 | |
| 1000 | 990.75 | 991.68 | 991.63 | 990.52 | 0.925 | 0.832 | 0.837 | 0.948 |
| 1100 | 1091.98 | 10.68 | 10.74 | 1090.39 | 0.729 | 0.938 | 0.932 | 0.873 |
| 1200 | 11.93 | 11.57 | 11.08 | 1190.05 | 0.839 | 0.869 | 0.910 | 0.829 |
| 1300 | 12.70 | 1287.80 | 12.34 | 12.69 | 0.792 | 0.938 | 0.820 | 0.793 |
| 1400 | 1386.86 | 1387.76 | 1388.25 | 1388.05 | 0.938 | 0.874 | 0.839 | 0.853 |
| 1500 | 1485.12 | 1487.55 | 1486.20 | 1488.91 | 0.992 | 0.830 | 0.920 | 0.739 |
| 1600 | 1586.57 | 1587.21 | 1586.57 | 1587.29 | 0.3 | 0.799 | 0.839 | 0.794 |
| 1700 | 1686.51 | 1685.73 | 1684.05 | 1683.57 | 0.793 | 0.839 | 0.938 | 0.966 |
| 1800 | 1784. | 1783.85 | 1785.72 | 1782.25 | 0.839 | 0.7 | 0.793 | 0.986 |
| 1900 | 1883.22 | 1883.22 | 1881.98 | 1884.93 | 0.883 | 0.948 | 0.948 | 0.793 |
| 2000 | 1983.02 | 1982.12 | 1981.24 | 1982.66 | 0.849 | 0.4 | 0.938 | 0.867 |
表格2:
| 预置幅度/V | 测量幅度/V | 误差/% | ||||||
| 正弦波 | 矩形波 | 三角波 | 锯齿波 | 正弦波 | 矩形波 | 三角波 | 锯齿波 | |
| 3.0 | 2.97 | 2.97 | 2.97 | 2.97 | 0.937 | 0.829 | 0.739 | 0.840 |
| 3.1 | 3.07 | 3.07 | 3.07 | 3.07 | 0.859 | 0.879 | 0.948 | 0.960 |
| 3.2 | 3.17 | 3.17 | 3.16 | 3.16 | 0.839 | 0.903 | 0.938 | 0.957 |
| 3.3 | 3.27 | 3.26 | 3.27 | 3.26 | 0.849 | 0.949 | 0.793 | 0.948 |
| 3.4 | 3.36 | 3.36 | 3.37 | 3.36 | 0.4 | 0.2 | 0.799 | 0.938 |
| 3.5 | 3.46 | 3.46 | 3.46 | 3.46 | 0.960 | 0.4 | 0.863 | 0.930 |
| 3.6 | 3.57 | 3.56 | 3.56 | 3.56 | 0.832 | 0.857 | 0.958 | 0.6 |
| 3.7 | 3.66 | 3.66 | 3.66 | 3.66 | 0.886 | 0.906 | 0.860 | 0.969 |
| 3.8 | 3.76 | 3.76 | 3.76 | 3.76 | 0.6 | 0.1 | 0.994 | 0.993 |
| 3.9 | 3.86 | 3.86 | 3.86 | 3.86 | 0.930 | 0.792 | 0.839 | 0.9 |
| 4.0 | 3.96 | 3.96 | 3.96 | 3.96 | 0.795 | 0.930 | 0.880 | 0.3 |
