图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总线控制数字电位器的流程图 |