其中:8号引脚Uref是模拟电压输入端,接前置放大器的输出端;CS1和ILEl是来自。DSP芯片的片选与使能信号;XD0~xD7是来自DSP芯片的增益控制信号;DAC0832芯片的Ioutl和Iout2引脚分别接放大器LM357的反向输入端2和同向输入端3;R66为反馈电阻Rf,LLl为放大器输出端。
2.3 滤波电路设计
有源滤波器不仅体积小,而且输出阻抗和截止频率fc无关,能够前、后级之间相互独立的设计。巴特沃斯低通滤波器具有通频带比较平坦,且下降快等优点。在该系统的滤波器设计中,采用多重反馈型5阶巴特沃斯低通滤波器。
2.4 电压抬升与保护电路设计
电压抬升电路由一个OP放大器和一个1.5 V的抬压基准构成。OP放大器的同相输入端接一个稳定的1.5 V基准电压,反相输入端接信号输人端,放大器的增益设置为1,这就实现输入信号的电压反相,且抬压1.5 V。保护电路由一个3 V的稳压管和二极管组成,保证经过电路的电压在O~3 V范围内。
3 算法设计与软件流程实现
TMS320F2812芯片的A/D转换器每次可以采集16路信号,而该采集系统仅有四路输入信号,可以实现简单的过采样,提高采集数据的精度。首先对采集到的信号进行过采样处理,然后计算采集到的信号的幅值,并与设定值做比较以判断调节程控放大器与否,同时把采集到的数据除以其对应的放大增益和进行数字滤波,结果存放在数组中,数组中的数据通过异步串口SCI向上位PC机传输。
3.1 信号幅值检测的算法
在程控放大器的设计中,对被测信号振幅的检测至关重要,它是实现程控放大的关键。以往的程控放大器,多数是根据被测信号的幅值来调节程控放大器的放大倍数,此方法比较合适于直流信号的检测。交流信号的幅值是变化的,若根据被测信号的幅值调节程控放大器的增益,需要时刻改变程控放大器的增益,这将浪费CPU的很多资源,影响了A/D转换的速度,限制了被测信号的范围,因器件程序的计算和器件的延时也会给测量结果带来很大的误差,不适合做高频信号的采集,而且很难满足实时性要求。一般信号的振幅是基本不变或者变化很慢,若根据信号的振幅调节程控放大器的增益,就不需要时刻调节放大器的增益,从而节约CPU的资源,减小采集带来的误差,提高采集数据的准确度。
信号幅值的检测是利用正交锁相型放大器的原理实现的[2],如图3所示。被测信号为x(t),参考信号为r(t)。
在数据采集实验中,通过简单的计算可以得到信号的振幅,并与设定的数值区间做比较,根据比较的结果来调节DAC0832的增益,从而实现放大器根据被测信号的振幅来调节自身的增益,实现信号的自适应放大。
3.2 系统软件实现
DSP2812的编程工具有C语言和汇编语言两种。采用C语言编程,代码可读性、可移植性强,无需详细了解DSP的硬件就可以上手编程,降低了编程难度。一般应用于实时性要求不是特别高的场合。对于高速实时应用,采用C语言和汇编语言混合编程的方法,能把C语言的优点和汇编语言的高效率有机结合起来。系统流程图如图4所示。