高精度正弦全自动激励信号源的设计与实现
1.引言
在许多工程测量中,都需要某种固定频率的正弦信号作为激励源,如利用模拟传感器的输出情况对所研制的监测系统、检测单元进行功能的验证:或者进行采集量程的标定工作等。在这些情况下,直接采用一个性能优越的信号发生器固然可以满足工作要求,但是这又带来了新的问题,一方面信号发生器是外配仪器,增加了系统的成本,另一方面也不便于自动化测量。利用D/A转换器加高阶滤波器的方式也可实现以上功能要求,但是在windows操作平台下,对软件技术提出了更高的要求。本文在科研项目的研究工作中恰好遇到了这样一个问题,在信号的检测与标定工作中需要一个120Hz、峰值从0.01V到10V可调的、失真小于1%的高精度正弦激励信号。本文采用常规的电路实现了这个功能。
2.原理与实现过程简述
本科研项目是基于PC-104总线的某型飞机发动机参数的检测系统,该系统需要一个用于飞机振动校准的激励信号给定单元。经仔细分析技术指标的要求,该单元需要一个幅值从0.01伏到10伏可调,且给定幅值稳定、波形失真小、频率为120Hz的交流信号源,幅值给定以0.01伏为一个间隔。如果我们利用砖码称重的原理,能很快地完成这一功能。显然,信号激励中只需要小数点后两位,即正弦信号峰值变化范围从10mV到10V,它有一位整数位、两位小数位。如果我们集中实现一个120Hz的高精度正弦波振荡器,然后从中取5伏、4伏、2伏、和l伏的“砖码”信号,可以通过电子开关组合,再用加法器形成l伏到10伏之间的任意一个峰值,类似地用0.5伏、0.4伏、0.2伏和0.1伏的“砖码”信号可以形成0.1伏到0.9伏的正弦信号,用0.05伏、0.04伏、0.02伏和0.01伏的“砝码”信号可以形成0.01伏到0.09伏的正弦信号,这三组“砝码”信号组合在一起则可以给出峰值从0.01伏到10伏、幅值变化台阶为0.01伏的任一峰值的正弦激励信号,完全可以满足工程的需要。
根据上述分析,我们设计出如图1所示的硬件框图。在图1中,正弦波信号源选用MAX038芯片,其输出正弦波频率可以在较宽的范围内调节,该芯片内部的结构设计可以保证向外提供失真度小于1%的正弦信号;为了提高信号的比例精度,所有的分压电阻全部定制,阻值精度可达千分之一;运放选用低漂移运放LM124;电子开关选用高性能的MAX4536的4路单刀单掷开关;另外,考虑到电子开关导通后有几十欧姆的压降,为了减小其影响,在加法器中反馈电阻与累加电阻均选择为几十千欧左右,进一步削弱电子开关导通电阻在比例加法器中的影响。由于以上措施的作用,可以大幅度提高电路在实际使用中的性能。
在图1所示电路中,电子开关为译码后控制,一位控制码控制一路开关,因此电子开关的控制共需要12个数字量输出接口,这在笔者所采用的嵌入式系统中是不允许的,因为没有这么多的资源,为了进一步满足系统的要求,采用单并转换技术,用三片4位移位寄存器CT1194串联组成一个12位的移位寄存器,框图如图2所示。
图1中,12个电子开关共有4096种组合,其每种组合对应着一个特定大小的正弦交流信号,这些电子开关的控制,虽然需要12个I/O口,但只要借助于图2的串入并出移位寄存器,我们通过数据口DATA1和时钟口CLK两个输出口可以把4096种组合的任意一种送到Q1到Q12上,从而用两个I/O口实现了12路电子开关的控制。而在笔者所用的PC-104的I/O卡中,其外扩I/O口是用8255实现的,由于8255的C口具有位控功能〈位置位或位清零〉,则从C口中任取两位作为移位寄存器的数据端口和时钟端口,在12个脉冲上升沿作用下,可以将任意一个12位二进制数送到Q1到Q12口,从而完成对电子开关的期望控制,在图l中Vout处得到所希望幅值大小的定频正弦波。
3.实现过程
为了获得激励信号所需要的幅值,本单元使用PC.104的I/O模块的C口的位控功能对电子开关进行控制。首先在控制面板上给出激励信号所需的幅值,然后将此值利用5421码序列进行编码,所谓5421码是指码制相应位的权值分别为5、4、2、1,即相应位为1时所代表的十进制值分别是5、4、2、1。具体的编码规则如表1所示。对激励所需幅值编码后,将所得二进制编码按由低到高的顺序输入移位寄存器,该编码由寄存器并行输出给电子开关的控制端,控制开关的开闭,从而控制加法器的输出结果,获得所需幅值的正弦激励信号。控制过程的流程图如图3所示,为了更详细地介绍此流程的实现过程,下面举例进行说明。
砝码\十进制数
对应于激励实际需要的数值
0
1
2
3
4
5
6
7
8
9
5
0
0
0
0
0
0
0
0
1
1
4
0
0
0
0
1
1
1
1
0
1
2
0
0
1
1
0
0