文档库 最新最全的文档下载
当前位置:文档库 › LNIT-17

LNIT-17

LNIT-17
LNIT-17

LNIT-17

题目:锁定放大器的设计(C题)

摘要:微弱信号检测是发展高新技术,探索及发现新的自然规律的重要手段,对推动很多领域的发展具有重要的应用价值。将淹没在强背景噪声中的微弱信号,运用电子学和近代信号处理手段抑制噪声,进而从噪声中提取和回复有用信号。锁定放大器的设计采用精密放大器,仪用放大器等新型电子元器件实现小信号高倍放大。整个放大器结构由INA826构成的多级交流放大器、OP07构成的带通滤波器、MPY634构成的相敏检波器、OP07构成的参考信号移相器、方波驱动器、低通滤波器、直流放大器等构成。显示电路由MSP430单片机、TLV5618、ADS1115、液晶显示器等构成实现对信号的有效值显示。

1方案比较和论证

1.1总体系统设计

锁定放大器的设计采用精密放大器,仪用放大器等新型电子元器件实现小信号高倍放大。整个放大器结构由INA826构成的多级交流放大器、OP07构成的带通滤波器、MPY634构成的相敏检波器、OP07构成的参考信号移相器、方波驱动器、低通滤波器、直流放大器等构成。显示电路由MSP430单片机、TLV5618、ADS1115、液晶显示器等构成实现对信号的有效值显示。

2 系统硬件设计与实现

2.1 电阻分压衰减网络

电阻分压衰减网络的原理主要是电阻串联分压的知识,输入电路由信号源入信号R (t )输出信号S (t )和两个220K Ω和220Ω的电阻组成,经过计算可得

()()t R R R R t S 2

12

+=

。从公式可以看出,由于分母R1+R2大于R2,所以输出电压小

于入电压。也就是说分压电路是一个对输入信号进行衰减的电路。我们可以通过改变R1或R2的大小来改变输入电压R (t )的大小。通过计算本次设计衰减约1000倍。

图1 锁定放大器基本组成结构框图

信号通道

2.2 加法电路

加法电路的原理是同相放大电路,利用运算放大器来实现加法放大器的功能,输入信号S(t)通过电阻R1加到运算放大器的前一端,输入信号N(t)两个

电阻加到运算放大器的同相端,输出电压V

0通过电阻R3和R4的分压作用,得V

=S

(t)+N(t)。R3为接地电阻,R4为反馈电阻。如图2.1所示

图2.1 加法电路

2.3 前置放大电路

前置放大电路运用两个集成运算放大器INA826的级联,达到对不同信号幅度放大倍数不同的作用。是由前置放大器放大输入的信号,需要先被放大到一定的电平才可以到其它级上。通常前置具有较高的电压增益,可以将小信号放大到标准电平上。

利用三个集成运算放大器,我们可以得到在三部分的增益As=A1*A2*A3,Am=A1*A2,AL=A1*A3,放大倍数依次增大,所得到的输出信号依次减小,变化为10μV,100μV,到1mV。

2.4 带通滤波器

帯通滤波器输入正弦波信号,先通过低通滤波器滤除频率为1100Hz 以上信号,再进过高通滤波器滤除频率为900Hz 以下信号。实现频率在900Hz —1100Hz 的频率能够通过,即通频带为900Hz —1100Hz 。如图2.2所示为通频带为900Hz —1100Hz 的带通滤波器。所用芯片为OP07运算放大器,其中,R1=47k Ω为前端电阻,C2、C4并联等效电容为90nF ,与R3构成低通滤波器。C1、C3并联与R2构成高通滤波器。R4、R5并联与Rf 构成反馈网络实现增益放大。如图2.2所示。

图2.2 带通滤波器

2.5 相敏检波器

相敏检波器采用MPY634芯片,能够实现函数的乘积的作用,原理图如下:

MPY634为Ti 专用乘法器芯片,

()

()()?

??

???----=212121Z Z SF Y Y X X A V OUT 。 当开路时SF=10,A 为可调增益。如图2.3所示。

图2.3 相敏检波器

2.6 低通滤波器

此低通滤波器为两个TI公司的op07构成的有源四阶巴特沃斯滤波器,C2、C4、C5、C7为电源旁路电容,滤除干扰作用。截止频率有电阻电容参数决定。如图2.4所示。

图2.4 低通滤波器

2.7 直流放大器

这一部分,我们运用了同向比例放大的原理,输入信号加到同相端,输出

信号通过两个电阻R

1 和R

2

的分压作用,得到Vn=Vf=R

1

Vo/(R

1

+R

2

),作用于反相

输入端。由于

Vn是由输出电压V

经过反馈元件R1和R2送回到运放的反相输入端。我们这里选取的是R1=10kΩ和R2= 10kΩ。如图2.5所示。

图2.5 直流放大器

2.8 移相器电路

利用op07运算放大器构成移相电路,其中为了防止衰减过大R1与Rf取47K Ω。滑动变阻器R2可调,其作用使输入正弦波滞后移相0°~180°可调。如图2.6所示。

图2.6 移相电路

2.9 方波形成电路

通过OP07构成的过零比较器实现正弦波到方波的变换。如图2.7所示。

图2.7 方波形成电路

2.10 电源部分

电源电路由电源变压器、整流电路、滤波电路、稳压电路等构成。出于对电路的选择,考虑到放大器的特性,我们选择用电源电路输出的电压用来给各个运算放大器供电。采用220V市电供电,经变压器变压为±18V电压,经整流滤波后接LM317、LM337,再进行滤波后得到稳定的±12V电源给运算放大器供电。

2.11 显示电路

显示电路由MSP430单片机、TLV5618、ADS1115、液晶显示器等构成实现对信号的有效值显示。

系统软件任务主要有A/D转换、D/A转换、液晶显示等实现。系统加电后,主程序首先完成系统初始化,其中包括I/O接口、中断系统、定时器、计数器等工作状态的设置以及系统变量赋值等工作,完成系统初始化后检测输入电压,通过液晶显示输出电压有效值。

3 测试方案与测试结果

3.1 指标参数

(1)外接信号源提供频率为1kHz的正弦波信号,幅度自定,输入至参考信号R(t)端。R(t)通过自制电阻分压网络降压接至被测信号S(t)端,S(t)端幅度

有效值为 10μV~1mV。

(2)参考通道的输出r(t)为方波信号,r(t)的相位相对参考信号R(t)可连续或步进移相180度,步进间距小于10度。

(3)信号通道的3dB频带范围为900Hz~1100Hz。误差小于20%。

(4)在锁定放大器输出端,设计一个能测量并显示被测信号S(t)幅度有效值的电路。所测量的显示值与S(t)有效值的误差小于10%。

(5)在锁定放大器信号S(t)输入端增加一个运放构成的加法器电路,实现S(t)

与干扰信号n (t )的1:1叠加,如图2所示。

(6)用另一信号源产生一个频率为1050~2100Hz 的正弦波信号作为n (t ),将

其叠加在锁定放大器的输入端,信号幅度等于S (t )。n (t )亦可由与获得S (t )同样结构的电阻分压网络得到。锁定放大器应尽量降低n (t )对S (t )信号有效值测量的影响,测量误差小于10%。

(7)增加n (t )幅度,使之等于10S (t ),锁定放大器对S (t )信号有效值的测量误

差小于10%。

3.2 测试仪表

为了确定系统与题目要求的符合程度,对系统中的关键部分进行了实际测试。使用仪器设备见表4—1

3.3 指标测试

1、交流放大器放大倍数测试

根据选择的元器件交流放大器由两极构成,两级放大倍数相同,均为34.13,

图2 锁定放大器叠加噪声电路图

S (t ) n (t )

整体放大倍数1165,实测为1236。误差为5.5%。

2、带通滤波器性能测试

测试条件V+ =12v,V- =-12v,带通滤波器的输入电压Vinp-p =4v测试结果如表4.1。

中心频率990Hz,带宽910Hz-1050Hz。满足设计要求。

3、四阶低通滤波器性能测试

低通滤波器输入信号Vinp-p =2v,对应不同频率输出电压如表4.2。通带电压放大倍数约5倍。截止频率约770Hz。相敏检波器输出的交流信号最低频率2000Hz。低通滤波器满足设计要求。

表4.2四阶低通滤波器测试数据

4、移相器特性测试

用Vinp-p=2V,信号测试,方波相移可以从0°~180°连续可调。输出信号频率幅值不变。

3.4 系统误差分析

测试结果表明,在软硬件结合下,锁定放大器的性能满足题目要求的大部分性能指标,由于时间紧张和水平有限部分电路不完善。测试指标不理想。产生测试误差。

系统误差产生原因主要有以下几方面:

(1)由于测试信号属于微弱小信号,电源噪声以及电路布局不理想引入的干扰,对测试结果产生影响。

(2)由于时间原因电路设计采用多功能板连接,因此干扰严重。

(3)元器件精度引入的误差。

(4)单片机显示引入的量化误差。

4 总结

锁定放大器的设计采用精密放大器,仪用放大器等新型电子元器件实现小信号高倍放大。整个放大器结构由TLV826构成的多级交流放大器、OP07构成的带通滤波器、MPY634构成的相敏检波器、OP07构成的参考信号移相器、方波驱动器、低通滤波器、直流放大器等构成。显示电路由MSP430单片机、TLV5618、ADS1115、液晶显示器等构成实现对信号的有效值显示。测试结果基本符合设计要求,实现绝大部分性能指标。

在本次设计的过程中,遇到了许多困难,开始设计进度比较慢,但通过仔细的分析和进行多方面的调整后解决了问题,从中我们对电子专业知识与技能得到了更多的理解与提高。比赛中三个人分工明确,积极配合,最终完成了设计,这使我们深刻地体会到了共同协作和团队精神的重要性。总之,这次比赛对我们每个人都影响非常深刻。

参考文献:

[1]《微弱信号检测》,高晋占著,清华大学出版社,2004年;

[2]《电子设计与制作100例》,张金著,北京:北京电子工业出版社,2009年;

[3]《模拟电子线路基础》,吴运昌著,广州:华南理工大学出版社,2004年;

[4]《数字电子技术基础》,阎石著,北京:高等教育出版社,1997年;

[5]《实验电子技术》,王振宇等著,北京:电子工业出版社,2004年;

附录:

附1:主要元器件清单:

1、单片机MSP430 G2553

2、12位D/A转换器TLV5618

3、16位A/D转换器ADS1115

4、液晶QC12864B

5、仪用放大器INA826

6、高精度运算放大器OP07

7、稳压芯片LM317、LM337

8、精密放大器OPA2320

附3:程序清单

#include

#define uint unsigned int

#define uchar unsigned char

/**********12864引脚定义********************/ #define LCD_CS_H P2OUT|=BIT3//片选

#define LCD_CS_L P2OUT&=~BIT3

#define LCD_SID_H P2OUT|=BIT4//串行数据

#define LCD_SID_L P2OUT&=~BIT4

#define LCD_SCLK_H P2OUT|=BIT5//时钟

#define LCD_SCLK_L P2OUT&=~BIT5

/***********ADS_1115引脚定义*****************/ #define SCL 0x01

#define SDA 0x20

#define SCL_SEL P2SEL &= ~SCL

#define SCL_DDR_OUT P2DIR |= SCL

#define SCL_OUT P2OUT

#define SCL_H SCL_OUT |= SCL

#define SCL_L SCL_OUT &= ~SCL

#define SDA_SEL P1SEL &= ~SDA

#define SDA_DDR_OUT P1DIR |= SDA

#define SDA_DDR_IN P1DIR &= ~SDA

#define SDA_OUT P1OUT

#define SDA_IN P1IN

#define SDA_H SDA_OUT |= SDA

#define SDA_L SDA_OUT &= ~SDA

/************************************

* ADDR---> GND

* VDD ---> 3.3V

* SCL ---> P2.6

* SDA ---> P2.7

* AINp=AIN0, AINn=GND

************************************/

/**********ADDR宏定义***************/

#define ADDRESS_0 0x90 //ADDR PIN ->GND

#define ADDRESS_1 0x92 //ADDR PIN ->VDD

#define ADDRESS_2 0x94 //ADDR PIN ->SDA

#define ADDRESS_3 0x96 //ADDR PIN ->SCL

/************POINTER REGISTER*****************/ #define Pointer_0 0x00 //Convertion register

#define Pointer_1 0x01 //Config register

#define Pointer_2 0x02 //Lo_thresh register

#define Pointer_3 0x03 //Hi_thresh register

/************CONFIG REGISTER*****************/ #define OS_0 0x0000

#define OS_1 0x8000

#define MUX_0 0x4000 //AINp=AIN0, AINn=GND

#define MUX_1 0x5000 //AINp=AIN1, AINn=GND #define MUX_2 0x6000 //AINp=AIN2, AINn=GND #define MUX_3 0x7000 //AINp=AIN3, AINn=GND #define MUX_4 0x0000 //AINp=AIN0, AINn=AIN1 #define MUX_5 0x1000 //AINp=AIN0, AINn=AIN3 #define MUX_6 0x2000 //AINp=AIN1, AINn=AIN3 #define MUX_7 0x3000 //AINp=AIN2, AINn=AIN3

#define PGA_0 0x0000 //FS=6.144V

#define PGA_1 0x0200 //FS=4.096V

#define PGA_2 0x0400 //FS=2.048V

#define PGA_3 0x0600 //FS=1.024V

#define PGA_4 0x0800 //FS=0.512V

#define PGA_5 0x0A00 //FS=0.256V

#define PGA_6 0x0C00 //FS=0.256V

#define PGA_7 0x0E00 //FS=0.256V

#define MODE_0 0x0000

#define MODE_1 0x0100

#define DR_0 0x0000 //Data Rate = 8

#define DR_1 0x0020 //Data Rate = 16

#define DR_2 0x0040 //Data Rate = 32

#define DR_3 0x0060 //Data Rate = 64

#define DR_4 0x0080 //Data Rate = 128

#define DR_5 0x00A0 //Data Rate = 250

#define DR_6 0x00C0 //Data Rate = 475

#define DR_7 0x00E0 //Data Rate = 860

#define COMP_MODE_0 0x0000

#define COMP_MODE_1 0x0010

#define COMP_POL_0 0x0000

#define COMP_POL_1 0x0008

#define COMP_LAT_0 0x0000

#define COMP_LAT_1 0x0040

#define COMP_QUE_0 0x0000

#define COMP_QUE_1 0x0001

#define COMP_QUE_2 0x0002

#define COMP_QUE_3 0x0003

#define TRUE 1

#define FALSE 0

/*************ADDR Initial********************/

#define ADDRESS ADDRESS_0 //ADDR PIN ->GND

#define ADDRESS_W ADDRESS |0x00 //写地址

#define ADDRESS_R ADDRESS|0x01 //读地址

/*************Config Initial*********************/

#define OS OS_1 //0X8000

#define MUX MUX_1 //AINp=AIN0, AINn=GND #define PGA PGA_1 //FS=6.144V

#define DR DR_0 //Data Rate = 860

#define COMP_QUE COMP_QUE_3

unsigned char t_DAS;

int Format[5];

float VIN_DAS;

unsigned int Config;

unsigned char Writebuff[4],Readbuff[3];

unsigned int Result[2];

int D_ADS; //转换的数字量

float VIN_DAS; //输入的电压值

unsigned char t_DAS;

int Format[5]={0}; //转换的数字量转换成十进制

/*******************************************

函数名称:delay

功能:延时约15us的时间

参数:无

返回值:无

********************************************/

void Delay(void)

{

unsigned char i;

for(i = 0;i < 15;i++)

_NOP();

}

/******************延时1ms的时间*********************/ void Delay_1ms(void)

{

unsigned char i;

for(i = 150;i > 0;i--)

_NOP();

}

/*******************************************

函数名称:Start

功能:完成IIC的起始条件操作

参数:无

返回值:无

********************************************/

void Start(void)

{

SCL_H;

SDA_H;

Delay();

SDA_L;

Delay();

SCL_L;

Delay();

}

/*******************************************

函数名称:Stop

功能:完成IIC的终止条件操作

参数:无

返回值:无

********************************************/ void Stop(void)

{

SDA_L;

Delay();

SCL_H;

Delay();

SDA_H;

Delay();

}

/******************************************* 函数名称:ACK

功能:完成IIC的主机应答操作

参数:无

返回值:无

********************************************/ void ACK(void)

{

SDA_L;

_NOP();

_NOP();

SCL_H;

Delay();

SCL_L;

_NOP();

_NOP();

SDA_H;

Delay();

}

/******************************************* 函数名称:NACK

功能:完成IIC的主机无应答操作

参数:无

返回值:无

********************************************/ void NACK(void)

{

SDA_H;

_NOP();

_NOP();

SCL_H;

Delay();

SCL_L;

_NOP();

_NOP();

SDA_L;

Delay();

}

/**********检查应答信号函数******************/ /*如果返回值为1则证明有应答信号,反之没有*/ /******************************************* 函数名称:Check

功能:检查从机的应答操作

参数:无

返回值:从机是否有应答:1--有,0--无

********************************************/ unsigned char Check(void)

{

unsigned char slaveack;

SDA_H;

_NOP();

_NOP();

SCL_H;

_NOP();

_NOP();

SDA_DDR_IN;

_NOP();

_NOP();

slaveack = SDA_IN&SDA; //读入SDA数值

SCL_L;

Delay();

SDA_DDR_OUT;

if(slaveack)

{

return FALSE;

}

else

{

return TRUE;

}

}

/***************Write a Byte****************/

void Write_1_Byte(unsigned char DataByte)

{

int i;

for(i=0;i<8;i++)

{

if(DataByte&0x80) //if((DataByte<

SDA_H;

else

SDA_L;

Delay();

SCL_H;

Delay();

SCL_L;

Delay();

DataByte <<= 1;

}

SDA_H;

_NOP();

}

/***************Write N Byte****************/

unsigned char Write_N_Byte(unsigned char *writebuffer,unsigned char n) {

int i;

for(i=0;i

{

相关文档