在各类遥感遥测系统中,模拟信号的动态范围通常都很大,一般在几mV至几十V范围内(动态范围可达80_90db),有的甚至是几pV_几百V(动态范围可达160db以上)。而且信号的干扰源多,有时甚至掩盖掉有用信号,很难辨识是有用信号还是干扰信号。此外,不同的材料、形状、尺寸,不同的类型,不同的测量速度,得到的信号频谱不同,受干扰信号的特点也不同。对这样的信号进行采集处理,为保证精度,检测系统首先需要对大动态模拟信号的动态范围进行压缩,即对mV甚至pV级的信号进行放大,对几十V甚至几百V的信号进行衰减,将信号的变化幅度调整到A/电路所需要的范围。针对这一问题,本文提出了一种基于I2C总线的新型可编程增益放大器的设计方法,可根据输入的模拟信号大小,自动选择量程进行放大/衰减。
可编程增益放大器的硬件电路
遥感遥测系统的数据采集部分通常包括一个可编程增益放大器,来确保不同幅度的信号经A/D转换后为满分辨率的信号。大的信号需要少量甚至无需放大,小的信号则需要高放大倍数来减少转换器噪音的影响。对于动态范围很大的模拟输入信号,就需要根据信号的大小提供相应的放大倍数,本文提出的可编程增益放大电路就是通过单片机改变输出数字量来控制放大电路的增益,从而达到控制输出信号幅度的目的。其原理框图如图1所示。
图1 可编程增益放大器硬件原理图
按照功能,硬件可分为五个部分:(1)增益可变放大器;(2)微控制器;(3)数字电位器;(4)多路开关选择。
电路特点及功能
该电路以单片机89C2051为核心组成微处理系统,用软件实现放大器增益的智能控制。该电路先对输入信号的大小进行判断,以一定算法得到相应放大倍数,然后转化为增益码再通过I2C总线传递给数字电位器,选择相应的反馈电阻输出,从而改变放大器的放大倍数。
微控制器及A/D转换电路
在模拟输入信号进入微控制器前,首先要将模拟信号转换成数字信号,本文微控制器部分选用单片机AT89C2051,充分利用AT89C2051在对单输入信号的A/D转换方面的优势。该芯片利用P1.0、P1.1两个I/O口,再配以简单的外围电路,通过软件编程即可实现单输入的A/D转换,不需要专门的外部A/D芯片,该方法降低了开发成本、减少了电路体积和器件。
数字电位器
AT89C2051对转换后的数字信号进行处理,得到相应的放大倍数,转化为增益码输出到数字电位器,由增益码控制数字电位器的阻值输出,从而改变增益可变放大器的放大倍数。
本文数字电位器采用Xicor公司的X9241芯片,该芯片是把四个非易失性数控电位器集成在一个单片的CMOS微电路。单个数控电位器包含63个电阻单元,可实现64级增益控制,四个电位器串联则可以提供256级的增益控制。若256级增益设置仍然不能满足大动态范围信号的要求,那么可以采用多片X9241串联的方法解决。
在每个电阻单元之间和二个端点都有可以被滑动单元访问的抽头点,滑动单元在阵列中的位置由用户通过I2C串行总线传递增益码来控制,X9241自带I2C二线接口,接法简单,使用方便,可灵活控制滑臂位置,改变阻值大小。
增益可变放大器及多路选择开关
X9241芯片的四数控电位器集成特性提供了足够大的阻值范围,可满足大动态范围信号放大的增益要求。
因此根据模拟输入信号的大小,通过单片机获得相应的增益控制码,同时控制多路选择开关,选择X9241相应的档位输出,即可获得不同的阻值大小,控制增益可变放大器的放大倍数。
本文选用的增益可变放大器为ADI公司的AD623,具有低噪声、高共模抑制比和低漂移等优点。AD623可产生的增益范围,性能极限主要决定于外部电阻。其中由X9241提供,具体设计时采用X9241W芯片,其内部四个数控电位器的阻值均为,因此其增益范围为,增益误差小于0.05%,且呈现极好的交流特性,具有25MHz的增益带宽积、的转换速率和的响应时间。
可编程增益放大器的软件设计
设计过程当中,数字电位器滑臂位置的控制起着非常重要的作用,对它的控制是通过总线实现的。总线是目前常用的一种双向串行总线,其二线制的结构非常简单,可靠性和抗干扰性较好,同时具有接法简单、使用灵活等优点。
单片机AT89C2051没有专用的总线接口,要用普通I/O口来模拟实现,所以对该可编程增益放大器的设计来说,其软件模拟总线的实现在软件设计中就显得相当重要。
在单片机中使用I/O口模拟总线时,只需将单片机的两个I/O口,在软件中分别定义成SCL(串行时钟信号)与SDA(串行数据信号),与X9241的两个接口连接,再加上上拉电阻即可。其连接图为:
图2 单片机与X9241之间的I2C连接
普通口模拟I2C总线的硬件连接非常简单,主要是软件模拟I2C总线的数据传送。一次完整的数据传送包括开始、数据发送、应答以及停止等典型信号。此外,在软件模拟过程中,还需注意的一点,即对标准I2C总线的数据传送,规定了严格的时序要求,以保证数据传送的可靠性。I2C总线上时钟信号的最小低电平周期为,最小高电平周期为,总线时钟频率为,根据这些要求,具体实现时,我们采用时钟信号的最小、最高周期均定为。
图3为软件模拟I2C总线控制数字电位器的流程图。对X9241的控制主要由三个字节实现,第一字节为器件地址,即X9241的地址;第二字节为命令内容和电位器的选择,即选择读/写四个电位器中的哪一个;第三字节为滑臂位置控制,即选择具体的阻值大小。
图3 软件模拟I2C总线控制数字电位器的流程图
结语
按照上述方法设计的可编程增益放大电路,克服了传统可编程放大器增益范围小的缺点,X9241四数字电位器的串联使用,扩大了增益范围、提高了增益精度。此外,便于与单片机接口,可以在线修改,调整设计。I2C总线的运用降低了噪声干扰,在干扰环境下也能够高精度放大信号,简化了设计。
上述设计经系统整体调试,放大器的非线性误差,增益为100和500时的输出噪声分别为20mV和50mV,共模抑制比,基本满足预定的性能要求。该电路已在一些微弱激光检测系统中获得了应用。