基于单片机的环境噪声测量仪Word下载.docx
《基于单片机的环境噪声测量仪Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的环境噪声测量仪Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
4.4结果分析·
第五章总结·
12
参考文献·
13
附录
噪声测量仪软件程序清单·
14
PCB图·
19
噪声测量仪元器件清单·
20
一原理分析和说明
噪声测量仪的基本工作原理是:
由传声器将声音转换成电信号,再由前置放大器变换阻抗,使传声器与衰减器匹配。
放大器将输出信号加到计权网络,对信号进行频率计权(或外接滤波器),然后再经衰减器及放大器将信号放大到一定的幅值,送到有效值检波器(或外按电平记录仪),在指示器上给出噪声声级的数值。
噪声测量仪器是一种电子仪器,但又不同于电压表等客观电子仪表。
由于人耳的听阈一般是20mPa(微帕),痛阈一般是200Pa(帕),其间相差107倍,这样宽广的声压范围很不容易测量,而且人耳对声压的变化的分辨具有非线性特征。
因此,声学中常用声压级LP来反映声压的变化,将声压p的声压级表示成:
LP=20lg(p/p0)dB
(1)其中,基准量p0为20mPa。
当p=p0时,Lp=0dB,而当p=200Pa时,LP=140Db。
噪声测量仪测量声压时,采用1KHZ纯音输入0.2秒到0.25秒或0.5秒以上,即可得到真实声压级或平均声压级。
考虑到人耳对不同频率的响度感觉,在测量噪声中,常取40方(phon)等响曲线的反曲线对声压级进行计权校正,即用A计权网络测得A声级,写成dB(A)。
表1给出了倍频带中心频率与A声级的校正量之间的关系。
在把声信号转换成电信号时,可以模拟人耳对声波反应速度的时间特性;
对高低频有不同灵敏度的频率特性以及不同响度时改变频率特性的强度特性。
因此,声级计是一种主观性的电子仪器。
表1–倍频带中心频率与A声级校正量的关系
倍频带中心频率(Hz)
31.5
63
125
250
500
1K
2K
4K
8K
16K
A声级校正量(dB)
-39.4
-26.2
-16.1
-8.6
-3.2
0.0
1.2
1.0
-1.1
-6.6
二方案设计与论证
方案1:
本噪声测量仪采用了AT89S51单片机为判别显示核心,由电容驻极式无指向性MIC将噪音声波转换为电压信号后,通过由AD637为主要元器件组成的交直转化电路,将交流转化为脉动直流,然后进入由运放LM324组成的运放电路进行信号放大,放大倍数大约为600倍。
这种方案系统规模小、稳定度低,放大信号采集难以达到理想结果。
图一方案1-噪声测量仪设计组成框图
方案2:
本噪声测量仪主要由传声器、信号调理模块、数据采集处理模块及人机界面等组成.传声器将噪声转换成电压信号,经信号调理模块按人耳在高低频具有不同灵敏度的特性进行频率计权、对数检波(集成交直流转换器AD637),其后送入数据采集处理模块(单片双积分A/D转换器ICL713)实现A/D转换、时间计权(电容滤波器MAX7490)。
微处理器根据键盘设置的功能运行相应的程序模块,将测量结果进行存储、显示,RS232接口可以与上位机、打印机或其他记录、分析设备实现通信.这种方案的优点是结构紧凑、可实现复杂测量与控制;
缺点是硬件电路复杂,在高频情况下易产生干扰。
图二方案2-噪声测量仪设计组成框图
方案3:
本噪声测量仪采用高灵敏度、无指向性驻极体传声器将环境噪声传换为电信号。
然后再经由运放LM324构成的三级放大电路,再通过由LM331组成的电压/频率转换电路,输出的频率信号变成TTL电平送给单片机作为计数脉冲。
经单片机处理噪声声压量化数值由74LS248译码驱动的两位高亮度LED数码管显示,这样噪声声压级被实时测量出了。
这种方案电路系统规模小,有一定灵活性,但不适宜测量高速信号或复杂信号,难以达到题目要求。
图三方案3-噪声测量仪设计组成框图
方案4:
本噪声测量仪采用高灵敏度、无指向性驻极体传声器将环境噪声传换为电信号,完成数据采集。
采用高精度仪表放大器AD620作为数据采集的接口,对转化的电信号进行放大,放大后的信号一部分通过单片机控制的选通信号开关CC4051。
另一部分通过双路/通用开关电容滤波器MAX7490进行滤波,然后通过交/直转化器AD637进行交直转化,将转化得到的直流输入低噪声单运放OP07,然后再通过A/D转化器ADC0804,将得到的数字信号输入单片机,最后通过与单片机输出端相接的译码显示电路输出显示。
本方案兼顾了前几种方案的优点,系统规模小,结构紧凑,可实现复杂测量与控制。
图四方案4-噪声测量仪设计组成框图
方案确定:
综合以上四种方案的优缺点以及题目的基本要求和发挥要求,我们选用第四种方案。
三电路设计
3.1.噪声信号采集电路设计:
采用高灵敏度、无指向性驻极体传声器将环境噪声传换为电信号,传送到三放大运算器AD620完成数据采集。
根据检测的噪声分贝以及噪声分贝与输出电压的关系式可以确定输出电压信号的范围:
u(t)=P(t)*S
(1)
式中:
s传声器的灵敏度;
p(t)为被测瞬时声压:
根据声压级计算公式为L。
=20*lg(P/Po)
(2)
P0为基准声压;
P为被测声压.
假设传感器的灵敏度为50mV/Pa,则可以确定输出的电压有有效值的范围,大约为1.8uV~10mV。
图五噪声信号采集电路原理图
3.2.交直流转化电路设计:
采用高性能真有效值转化芯片AD637,将交流转化为直流。
其中MC1403是低压基准芯片,为系统中AD637等芯片提供精准基准电压。
通过AD637将大范围的电压信号计算成dB形式的电压后输出。
利用对数关系进行真有效值的交直流转换。
根据芯片说明,对芯片的输出进行校准,同时输出分辨率为100mV/dB。
然后调节基准的0dB输出时的输入电压和R1,使输入大于1.1V时,就可以保证输出电压不会超限。
这里可以取输入为2V时,输出为0dB。
此时电压输出范围为-4.6V~9.6V左右。
采用15V电压供电,输入的电压范围能够保证在10mV~7V之间。
图六交直流转化电路原理图
3.3.放大电路设计:
主要采用低噪声单运放OP07构成的放大电路进行信号放大。
其中OP07同时具有输入偏置电流低(OP07A为+2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。
零点电流输入时,输入电压为:
4.25×
25=(2.5×
100)/(225+100),结果:
106.25=10*,误差:
0.0014。
满度电流输入时的满度输出电压:
(20.5×
25-10*)×
(11.31/1+1)=4999.09,误差:
0.00018。
图七放大电路原理图
3.4.单片机控制电路设计:
采用由AT89C51单片机与A/D转化器ADC0804组成的数模信号转化与控制电路。
为了调试方便,在Vin输入端使用一个电位器(可调电阻)。
在单片机读操作过程中,ADC0804会在信号的作用下把转换完成的信号传送到总线,如果使用“MOVX”指令可以是任意的地址值。
ADC0804的A/D转换时钟是一个RC振荡器,振荡频率f=1/1.。
其中100kHZ≤f≤1460kHZ,推荐值为R=10k,C=150pF。
时钟决定ADC0804的运行速度,时钟f值高时,A/D运行速度快,但精度会有所下降,时钟f值低时,A/D运行速度慢,但精度会高一些。
在f=640K时,A/D转换时间是100us。
图八单片机控制电路原理图
3.5.显示输出电路设计:
主要采用由数码管组成的输出显示电路。
图九显示输出电路原理图
3.6.整机电路以及软件设计的流程图:
图十整机电路图
图十一软件设计流程图
四测试方法与测试结果
4.1.测试仪器:
表二测试仪器列表
仪器名称
型号规格
频率计
SAMPOCN3165
示波器
HitachiV-1060
交流有效值测试表
HP34401
函数信号发生器/计数器
EE1641B
单片机仿真器
ICE16
4.2.测试方法:
(A)部分功能测试:
AD637具有电平或dB输出功能。
计算dB的内部电路量程为60Db。
调节Rt建立0dB电平。
外接的运算放大器用于dB的满量程校准以及补偿dB电路的+0.33%/℃的温度漂移。
dB输出校准步骤如下:
(1)使Vin=1.00V直流电压或1.00V有效值电压。
(2)调节Ri,使dB输出为0.00V。
(3)使Vin=0.10V
(4)调节R2,使dB输出端电压为-2.00V,在这里,选1V为基准电压。
事实上,对任何选定的dB基准电压值,都可按上述步骤调Rin和R1来校准。
(B)整机调试:
主要任务是检测算法及校正数值。
系统总装完成后,数码管根据现场噪声声压大小显示当前分贝值。
这些参数与实际要求数据相比较,存在误差。
调整转化程序中的参数,固定基本消除,但存在非线性误差。
根据实测数据,确定非线性校正数据,调整有关程序和电路。
4.3.测试结果:
我们设计的系统不仅完成了题目的基本功能、基本指标,而且有很大发挥。
表三测试结果
基本要求
发挥部分
实际性能
能测量固定声源的分贝值,测量范围达到40~70dB
测量范围达到40~100dB
实现
分辨率:
0.5dB
提高测量分辨率为0.1dB
频率范围:
300~8000Hz
具有显示噪声分贝值的功能
有超限报警功能,并且报警值可以设定
具有分段测试功能,低分贝测试段和高分贝测试段
其他:
增加抗干扰措施;
合理布线,减少线间干扰;
特别注重对信号线、地线的处理;
每个芯片都加退耦电容
4.4.结果分析:
(1)频率误差来源:
①噪声采集传感器及其电路灵敏度不够,精度不高。
②运算放大器稳定度不够,电压信号的微小振荡使输出和设定值之间存在误差,这是频率误差的主要来源。
(2)幅值误差来源:
①ADC0804为一只具有20引脚8位CMOS连续近似的A/D转换器,满量程为5V的量化误差为±
(1/2)×
(1/28)×
5V≈±
10mV。
按满度归一化的相对误差为±
(1/28)=±
0.2%。
RCE838电子-技术资料-电子元件-电路图-技术应用网站-基本知识-原理-维修-作用-参数-电子元器件符号②由于电路板本身尺寸大小质量的限制,影响了整个电路的布局和走线,从而引入了一定的噪声和干扰。
五总结
本系统以AT89C51芯片为控制显示核心部件,根据非电量转化为电量测试原理,数模转换,交直转换技术及单片机控制数码管显示等知识,通过软件仿真实现了基本要求功能,和发挥部分功能。
在系统实际设计的过程中,我们力求在保证实现功能的前提下,力求硬件线路简单,充分发挥软件编程方法灵活的特点,并最大限度挖掘单片机内资源,来满足系统设计要求。
因比赛时间限制,该系统还有很多值得改进的地方:
例如可采用可编程逻辑器件来代替逻辑功能固定的中小规模集成块、采用高精度电位器对运放进行调零、使数学模型精确化以及线性组合电压波形的实行算法进一步完善。
参考文献
[1]张友德,等.单片微型机原理、应用与实验.上海:
复旦大学出版社,2006.
[2]王质朴,等.MCS-51单片机原理接口及应用.北京:
北京理工大学出版社,2009.
[3]易克初.语音信号处理[M].北京:
国防工业出版社,2000.
[4]胡广书,数字信号处理:
理论算法与实现[M].北京:
清华大学出版社,1997.
[5]高成,张栋,王香芬.最新集成电路测试技术[M].北京:
国防工业出版社,2009:
11-40.
[6]张大彪.电子测量技术与仪器.北京:
电子工业出版社,2008.
[7]肖景和.集成运算放大器应用精粹.北京:
人民邮电出版社,2006.
[8]全国大学生电子设计竞赛组织委员会.全国大学生电子设计竞赛获奖作品选编(2007).北京:
[9]邹逢兴.集成模拟电子技术.电子工业出版社,2005.
[10]黄正谨.电子设计竞赛赛题解析.南京:
东南大学出版社,2003.
噪声测量仪软件程序清单
#include<
reg52.h>
#defineucharunsignedchar
#defineuintunsignedint
//
sbitE=P2^7;
sbitRW=P2^6;
sbitRS=P2^5;
ucharp(inti)
{
uchart[6];
intsum,shu,t1,t2;
shu=P1;
t1=shu/16;
t2=shu%16;
sum=32*t1+2*t2;
if((sum/100+48)==48)t[0]='
'
;
elset[0]=sum/100+48;
t[1]=(sum%100)/10+48;
t[2]='
.'
t[3]=sum%10+48;
t[4]='
d'
t[5]='
B'
return(t[i]);
}
voidreset(void)
{
((void(code*)(void))0x0000)();
}
/********************************************************************
*名称:
delay()
*功能:
延时,延时时间大概为140us.
*输入:
无
*输出:
***********************************************************************/
voiddelay()
{
inti,j;
for(i=0;
i<
=100;
i++)
for(j=0;
j<
=20;
j++)
}
voiddelay1()
=300;
=200;
enable(uchardel)
命令函数
输入的命令值
voidenable(uchardel)
P0=del;
RS=0;
RW=0;
E=0;
delay();
E=1;
write(uchardel)
写数据函数
需要写入数据
voidwrite(uchardel)
RS=1;
初始化
voidL1602_init(void)
enable(0x01);
enable(0x38);
enable(0x0c);
enable(0x06);
enable(0xd0);
L1602_string(ucharhang,ucharlie,uchar*p)
改变液晶中某位的值,如果要让第一行,第五个字符开始显示"
abcdef"
,调用该函数如下
L1602_string(1,5,"
abcdef;
"
)
行,列,需要输入的数据
voidL1602_string()
inti;
ucharb;
ucharq[9]="
NoisedB:
b=0x80;
enable(b);
i<
9;
i++)
write(q[i]);
voidL1602_xian()
b=0xC5;
6;
write(p(i));
}}
Main()
主函数
*