




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳航空航天大学电子信息工程学院毕业设计(论文)第1章 绪论1.1 选题的依据和意义吸声是声波撞击到材料表面后能量损失的现象,吸声可以降低室内声压级。描述吸声的指标是吸声系数a:=e/ei =(ei-er)/ei=1-r式中ei:入射声能;e:被材料或结构吸收的声能;er:被材料或结构反射的声能;r:反射系数。当入射声能被完全反射时,=0,表示无吸声作用;当入射声波完全没有被反射时,=1,表示完全被吸收。一般材料或结构的吸声系数=01,值越大,表示吸声性能越好,它是目前表征吸声性能最常用的参数。不同频率上会有不同的吸声系数,人们使用吸声系数频率特性曲线描述材料在不同频率上的吸声性能。按照iso标准和国家标准,吸声测试报告中吸声系数的频率范围是1005khz。将1005khz的吸声系数取平均得到的数值是平均吸声系数,平均吸声系数反映了材料总体的吸声性能。在工程中常使用降噪系数nrc粗略地评价在语言频率范围内的吸声性能,这一数值是材料在250、500、1k、2k四个频率的吸声系数的算术平均值,四舍五入取整到0.05。一般认为nrc小于0.2的材料是反射材料,nrc大于等于0.2的材料被认为是吸声材料。吸声材料一直是人类吸声降噪采用的主要方法之一,因此快速和准确的测量吸声系数是吸声材料研究与应用领域重要的研究内容之一。常常使用的高吸声系数材料有离心玻璃棉、岩棉等,5cm厚的24kg/m3的离心玻璃棉的nrc可达到0.95。传统的吸声系数测量方法主要有驻波管法和混响室法。驻波管法只能测量垂直入射吸声系数,样品的大小必须与驻波管的大小完全相同,不能测量沙等松散的吸声材料,并且仪器比较笨重,不便于携带,混响室法必须在昂贵的混响室中测量,测量的结果可能大于1,不同的混响室测量的结果有时差别很大,不适于现场测量。因此有必要研究、开发现场实时测量材料吸声系数的测量方法和仪器。双传声器法是通过两个声压传声器测量材料的法向阻抗率来计算吸声系数的一种方法,具有直观、简单、可在现场中测量应用等优点,但是运算比较复杂。 本课题要求对材料吸声系数的测量方法进行对比研究,对测量系统的软硬件进行设计探究。利用dsp的高速运算能力和精确的快速傅里叶变换fft,采用两路完全对称的信号调理电路,实现系统便携现场实时测量。设计基于单片机的测量系统电路图,包括电源模块、白噪声信号发生电路、声强探头电路、信号调理电路、信号调理电路、单片机最小系统以及通信等部分,分析讨论各部分电路的工作原理和设计关键技术。1.2 课题分析1.2.1 主要研究内容根据双传声器法的基本原理设计便携式吸声系数测量仪。通过两路完全对称的信号调理电路同时采集模拟声压信号,经ads7862转换后送给dsp。然后dsp完成傅里叶时频变换fft并计算出吸声系数,最后交给单片机显示并与上位机通信。1.硬件部分:系统硬件主要由程控白噪声信号发生电路、声强探头电路和dsp处理电路三部分组成。程控白噪声信号发生电路主要发射时间可控、带宽可调、功率可调的白噪声信号。声强探头电路是两路完全对称声电转换电路,将传声器探头所在声场的声压信号转换成电信号,通过前置放大器带动长线输出,避免仪器引起声场变化。dsp处理电路主要完成以下功能:控制白噪声发射时间,实时调整放大倍数,采集数据,fft及计算吸声系数等。dsp处理模块是两路对称的模拟信号转换电路,在dsp的控制下将长线传输过来的模拟声压信号,经低通滤波器、程控放大器、模数转换器,转换成数字声压信号送入dsp处理,系统结构如图1.1所示。显示接口通讯接口门控电路扬声器/d转换器传声器a白噪声信号发生电路传声器b待测的吸声材料图1.1 系统结构框图 2.软件部分:系统的软件包括dsp应用程序和单片机应用程序两部分。dsp首先控制发射10 ms白噪声,然后实时调整信号放大倍数并采集数据,准确地将模拟声压信号转换成数字声压信号。在采集结束后,执行512点位码倒置和fft变换子程序,再计算出吸声系数,最后将测量结果通过hpi 接口送给单片机。1.2.2 方案论证1.硬件部分:由于吸声材料的吸声系数是由吸声材料表面特性阻抗表征的,因此通过测量吸声材料的表面特性阻抗就可以得到吸声材料在某一频率的吸声系数。用两个麦克风作为传感器等间距放置于吸声材料表面很近的地方,测得2个麦克风传感器的声压,得到2个麦克风传感器中间点的声压,根据测得的声压求出吸声材料表面的特性阻抗,从而得到吸声材料的吸声系数。因此系统硬件主要由程控白噪声信号发生电路、声强探头电路和dsp处理电路三部分组成。程控白噪声信号发生电路:主要发射时间可控、带宽可调、功率可调的白噪声信号。白噪声是指功率谱密度在整个频域内均匀分布的噪声。所有频率具有相同能量的随机噪声称为白噪声。从我们耳朵的频率响应听起来它是非常明亮的“咝”声(每高一个八度,频率就升高一倍。因此高频率区的能量也显著增强)。白噪声或白杂讯,是一种功率频谱密度为常数的随机信号或随机过程。换句话说,此信号在各个频段上的功率是一样的,由于白光是由各种频率(颜色)的单色光混合而成,因而此信号的这种具有平坦功率谱的性质被称作是“白色的”,此信号也因此被称作白噪声。相对的,其他不具有这一性质的噪声信号被称为有色噪声。理想的白噪声具有无限带宽,因而其能量是无限大,这在现实世界是不可能存在的。实际上,我们常常将有限带宽的平整讯号视为白噪音,因为这让我们在数学分析上更加方便。然而,白噪声在数学处理上比较方便,因此它是系统分析的有力工具。一般,只要一个噪声过程所具有的频谱宽度远远大于它所作用系统的带宽,并且在该带宽中其频谱密度基本上可以作为常数来考虑,就可以把它作为白噪声来处理。例如,热噪声和散弹噪声在很宽的频率范围内具有均匀的功率谱密度,通常可以认为它们是白噪声。使用白噪声是由于不同频率上会有不同的吸声系数。人们使用吸声系数频率特性曲线描述材料在不同频率上的吸声性能。声强探头电路:是两路完全对称声电转换电路,将传声器探头所在声场的声压信号转换成电信号,通过前置放大器带动长线输出,避免仪器引起声场变化。用2个麦克风作为传感器等间距放置于吸声材料表面很近的地方,测得2个麦克风传感器的声压,得到2个麦克风传感器中间点的声压。dsp处理电路:控制白噪声发射时间,实时调整放大倍数,采集数据,fft及计算吸声系数等。dsp处理模块是两路对称的模拟信号转换电路,在dsp的控制下将长线传输过来的模拟声压信号,经低通滤波器、程控放大器、模数转换器,转换成数字声压信号送入dsp处理。双传声器法测量吸声系数需要大量复杂计算,如fft、计算吸声系数,并且白噪声信号的采样时间很短暂,经过筛选,系统dsp选用tms320vc5402。tms320vc5402 具有以下主要特点:先进的多总线结构;多处理单元;多级流水线结构; 特殊的dsp指令; 单周期定点指令执行时间为10ns等。以上这些优点使tms320vc5402 具有较好的数字信号处理能力,适用于fft 变换以及语音噪声信号处理等,功耗低、集成度高,可用电池供电,广泛应用于便携式设备中。系统需要在10 m s内至少采集512个数据,并且为了减少误差、提高测量精度,双通道必须同时采样、进行模数转换,因此选用ads7862。它内部集成2个a /d转换器,共用启动转换信号convst、读写信号、忙信号等控制信号,双路同时采样保持转换,功耗仅为40 mw。因此ads7862在保持系统性能的同时,使系统的硬件电路更加简单便携。并且前端加入运算放大器opa132和4 个电阻,使ads7862 配置为双极性输入,改变电阻大小就可以调整输入的电压范围。2.软件部分:系统的软件包括dsp应用程序和单片机应用程序两部分。dsp首先控制发射10 m s白噪声,然后实时调整信号放大倍数并采集数据,准确地将模拟声压信号转换成数字声压信号。在采集结束后,执行512点位码倒置和fft变换子程序,再根据公式计算出吸声系数,最后将测量结果通过hpi 接口送给单片机。(1) dsp应用程序:用2个麦克风作为传感器等间距放置于吸声材料表面很近的地方,测得2 个麦克风传感器的声压,得到2个麦克风传感器中间点的声压,然后启动ads7862转换,读取两个通道数据至dsp。程序判断数据是否超出范围,如果超出范围则调整放大倍数重新转换。否则判断是否采样结束,如果采样未结束则继续采样,若结束则进行位码倒置进行fft转换。然后根据公式计算出吸声系数,输出给单片机显示。快速傅氏变换(fft),是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。我们采用的fft算法是包装算法:首先2n点实数的连续输入称为“进包”。其次n点的fft被连续运行。最后作为结果产生的n点的合成输出是“打开”成为最初的与dft相符合的2n点输入。使用这一思想,我们可以划分fft的大小,它有一半花费在包装输入o(n)的操作和打开输出上。这样的fft算法迅速,计算速度几乎达到了两次dft的连续输入。fft算法程序主要分3大部分:主程序、波形发生程序和fft程序。波形发生程序首先计算步长,再用sin函数计算当前的波形值。再由fft程序按照编码逆序排列输入序列,运用蝶形算法计算,进而计算出功率谱。 (2) 单片机应用程序:单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器cpu随机存储器ram、只读存储器rom、多种i/o口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、a/d转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 单片机的主要任务是计算和显示吸声系数,与上位机通信等。单片机与dsp最小系统,键盘接口,显示接口和通讯接口连接。通过键盘接口调整放大倍数。通过显示接口显示输出波形和相关数据。显示通过液晶模块来实现。在液晶显示器的实际应用当中,汉字与图形通常都是以图形的方式来显示的。液晶显示模块中的汉字与图形都是像素点进行有规律的组合产生的结果,图形汉字的清晰度以及液晶显示器像素点的多少与点阵之间距离的大小有着很大的关联。所以在显示之前,必须要先建立起该系统需要的汉字库与数字库。在自造字符的时候,最好不要扩充到外围的四条边界的点阵中去,以免显示的内容连在一起。这两种显示方式采用的地址均是按照自左向右,自上到下的顺序进行排列的。所以只要知道了显示器的地址,就能够在其想对应的位置显示出所需要的内容。第2章 硬件设计2.1 程控白噪声信号发生电路由于测量吸声系数需要测量不同频率下吸收和入射的声强,所以需要白噪声发生电路作为声源。白噪声作为一种理想信号,在数学处理上具有简单、方便等优点,所以在系统辨识、线性系统分析和信号分析与处理中都有极重要的地位。在实际工作中,要研究某一系统的随机过程,只要满足该过程的功率谱密度在比系统带宽大得多的频率范围内近似均匀分布这一条件,就可以把它作为白噪声来处理,而不会带来多大误差。然而,市售的白噪声发生器相当昂贵,使它的应用受到一定限制。在对双极性晶体管的散粒噪声的功率特性进行分析之后,利用它在极宽的频带范围内具有均匀的功率谱这一特性,设计实现了一个非常简洁有效的带宽可调的限带白噪声发生器,可以满足实验室或一般应用场合的要求。2.1.1 散粒噪声的特性在双极性晶体管和半导体二极管等器件中,流动的电流不是平滑和连续的,而是各个携带着一个电子电荷的载流子的流动产生的电流脉冲之和。其原因在于这些器件中有势垒存在,而载流子通过势垒是随机发生的一系列独立事件。对于晶体管,当发射结处于正向偏置时,就有载流子越过发射结势垒由发射区注入基区。虽然单位时间内注入基区的载流子平均数是一定的,但是某一个载流子越过势垒进入基区的事件却是随机的,它取决于载流子是否具有足够的能量以及指向结面方向的速度的大小。这就使得注入基区的载流子数目在其平均数附近发生统计起伏,从而引起注入电流的起伏。这种由于载流子各自独立而随机地通过势垒所引起的噪声,称为散粒噪声。电流强度平均值为i 的一系列独立的随机电流脉冲所产生的散粒噪声电流均方值可以表示如下: (21) 其功率谱密度为: (22)由式(22)可知,散粒噪声的功率谱密度与频率无关,属于白噪声。然而值得强调的是该式只在中低频范围内有效,在高频区( 接近1ghz) ,散粒噪声也将随频率的上升而增加。尽管如此,在极宽的频带范围内,其功率谱密度仍与频率无关。而且,实验还发现,pn结反向击穿会使散粒噪声激增。总之,pn 结的散粒噪声具有以下特征:在非常宽的频率围,从几赫兹到微波频段,其功率谱密度与频率无关,即呈白噪声; 基极- 发射极的pn 结反向击穿时,噪声强度激增。因此可以用作高性能的固态噪声源。这样就可通过散粒噪声得到近似的白噪声。2.1.2 发生电路设计声音在空气中的传播速度为340 m /s,在短时间内可以形成多次反射。为了避免多次反射干扰,发射时间必须非常短暂,可利用数字信号控制发射时间。程控白噪声信号发生电路如图2.1所示。图2.1 程控白噪声信号发生电路白噪声信号发生器利用普通双极性晶体管9014 发射结齐纳击穿时产生散粒噪声,再经过一系列处理得到白噪声信号。采用这样的配置,发射极- 基极结的反向击穿电压可以很容易地用一般的频谱分析仪观察,其频谱带宽约为300mhz,而功率输出大约是- 70dbm。为了增大噪声功率,后级电路对散粒噪声进行了放大。首先是将直流信号滤除,并尽量使交流信号通过,因而电容c1的容值和电阻r3 的阻值选择得较大,c1 容值为1f,r3 阻值为200k。ne5532 是一个性能优良的低噪声电压放大器,工作电压为12v,由它组成的跟随器,工作带宽为10mhz,这样经过跟随器的输出噪声带宽限制在10mhz 内,峰-峰值范围为5mv。信号再经过一级电压增益为100 的放大电路,然后输入给一个4 阶的butterworth 开关电容低通滤波器电路,该电路的低通截止频率在0 30khz 范围内是可调的,只需调节tlc14cp时钟输入端的频率fclock,其中时钟频率f clock=1/ 169 rc,r 为电位器r8的阻值,通过调节r8,可以方便地改变输入时钟频率。截止频率f co 和时钟输入的频率fclock有关系,这样也就改变了截止频率率f co,从而改变了输出信号的带宽。而为了精确控制白噪声发射时间,电路中加入了cd4051。cd4051是单8通道数字控制模拟电子开关,有3个二进制控制输入端a、b、c 和inh 输入,具有低导通阻抗和很低的截止漏电流。幅值为4.5 20 v的数字信号可控制峰值至20 v 的模拟信号。其中,二进制控制输入端a、b、c 接地,选通通道0;inh 连接到dsp的xf引脚,通过控制xf引脚电平的高低就可以控制白噪声发射的时间。为了增大输出信号,后级采用输出放大电路,保证了在输出负载不小于200时,输出信号的幅度可以在10v 范围内调节。2.2 dsp和ads7862之间的连接双传声器法测量吸声系数需要大量复杂计算,如fft、计算吸声系数,并且白噪声信号的采样时间很短暂,经过筛选,系统dsp选用tms320vc5402。tms320vc5402 具有以下主要特点: 先进的多总线结构; 多处理单元; 多级流水线结构; 特殊的dsp指令; 单周期定点指令执行时间为10 ns等。以上这些优点使tms320vc5402 具有较好的数字信号处理能力,适用于fft 变换以及语音噪声信号处理等,功耗低、集成度高,可用电池供电,广泛应用于便携式设备中。系统需要在10 m s内至少采集512个数据,并且为了减少误差、提高测量精度,双通道必须同时采样、进行模数转换,因此选用ads7862。它内部集成2个a /d转换器,共用启动转换信号convst、读写信号、忙信号等控制信号,双路同时采样保持转换,功耗仅为40 mw。 因此,ads7862在保持系统性能的同时,使系统的硬件电路更加简单便携。并且前端加入运算放大器opa132和4 个电阻,使ads7862 配置为双极性输入,改变电阻大小就可以调整输入的电压范围。ads7862和dsp的连接图如图2.2所示。图2.2 ads7862和dsp的连接图2.3 声强探头电路的实现吸声系数测量仪的接收部分是声强探头电路。声强探头电路是两路完全对称声电转换电路,将传声器探头所在声场的声压信号转换成电信号,通过前置放大器带动长线输出,避免仪器引起声场变化。接收装置为传声器,传声器是将声音信号转换为电信号的能量转换器件。灵敏度是话筒在单位声压激励下输出电压与输入声压的比值,其单位是mv/pa。为与电路中电平的度量一致,灵敏度也可以分贝值表示。 2.3.1 移相式正弦波发生电路为了进行仿真,使用移相式正弦波发生电路当作接收到的声音信号。移相式正弦波发生电路如图2.3所示。图2.3 移相式正弦波发生电路移相式正弦波是由三节rc超前或滞后移相反馈网络和反相放大器组成,常用于产生低频正弦信号。三节rc电路含180相移,与负馈放大器正好在该频率上构成正反馈,与负反馈放大器正好在该频率上构成正反馈,满足振荡的相位平衡条件,若适当选择稳幅负反馈网络的反馈电阻rf,使放大器闭环增益大于1,即满足振荡的振幅条件,就能在输出端得到正弦波振荡信号。2.3.2 功率放大电路由于发射端需要使用扬声器发射出白噪声,但三极管产生的白噪声功率较小,所以需要功率放大电路进行放大,驱动扬声器。而由话筒接收到的信号功率一样很小,所以同样需要功率放大电路进行放大。该功率放大电路使用lm386对信号进行放大。lm386是一种音频集成功放,具有自身功耗低、更新内链增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点的功率放大器。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6v电源电压下,它的静态功耗仅为24mw,使得lm386特别适用于电池供电的场合。 lm386的外形和引脚的排列如图2.4所示。引脚2为反相输入端,3为同相输入端;引脚5为输出端;引脚6和4分别为电源和地;引脚1和8为电压增益设定端;使用时在引脚7和地之间接旁路电容,通常取10f。查lm386的datasheet,电源电压4-12v或5-18v(lm386n-4);静态消耗电流为4ma;电压增益为20-200;在1、8脚开路时,带宽为300khz;输入阻抗为50k;音频功率0.5w。图2.4 lm386的外形和引脚的排列图由于传声器输出电压仅为几十mv,为了进行下一步的计算,要使用功率放大器对信号进行放大。lm386的1脚和8脚是增益调整引脚,其内部为一个约为1.35k的电阻,1,8脚开路的时候,增益最小约为20倍(26db),当1,8脚交流短路,增益最大,达到200倍(46db),在1,8之间串联电阻,可调整增益在20倍到200倍之间变化。具体的计算公式可参考如下: gain = 30000/(150+(1350*r)/(1350+r) (23)其中r为1,8脚之间串联的电阻,单位为 ,(1350*r)/(1350+r)即两电阻的并联值。功率放大电路如图2.5所示,电压放大倍数约为20倍。图2.5功率放大电路2.4 a/d转换模块adc0809是cmos器件,不仅包括一个8位的逐次逼近型adc,而且还提供一个8通道的模拟多路开关和通道寻址逻辑。利用它可直接输入8个单端的模拟信号分时进行a/d转换,在多点巡回检测和过程控制、运动控制中应用十分广泛。adc0809的内部结构如图2.6所示。in0in7:8路模拟输入,通过3根地址译码线adda、addb、addc来选通一路。d7d0:a/d转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。8位排列顺序是d7为最高位,d0为最低位。图2.6 adc0809内部结构框图adda、addb、addc:模拟通道选择地址信号,adda为低位,addc为高位。地址信号与选中通道对应关系如表2.1所示。表2.1 地址信号与选中通道的关系地 址选中通道addcaddbadda000011110011001101010101in0in1in2in3in4in5in6in7vr(+)、vr(-):正、负参考电压输入端,用于提供片内dac电阻网络的基准电压。在单极性输入时,vr(+)=5v,vr(-)=0v;双极性输入时,vr(+)、vr(-)分别接正、负极性的参考电压。ale:地址锁存允许信号,高电平有效。当此信号有效时,a、b、c三位地址信号被锁存,译码选通对应模拟通道。在使用时,该信号常和start信号连在一起,以便同时锁存通道地址和启动a/d转换。start:a/d转换启动信号,正脉冲有效。加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始a/d转换。如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。eoc:转换结束信号,高电平有效。该信号在a/d转换过程中为低电平,其余时间为高电平。该信号可作为被cpu查询的状态信号,也可作为对cpu的中断请求信号。在需要对某个模拟量不断采样、转换的情况下,eoc也可作为启动信号反馈接到start端,但在刚加电时需由外电路第一次启动。oe:输出允许信号,高电平有效。当微处理器送出该信号时,adc0809的输出三态门被打开,使转换结果通过数据总线被读走。在中断工作方式下,该信号往往是cpu发出的中断请求响应信号。本设计中adc0809与单片机的接口电路如图2.7所示。adc0809的ale与start管脚接到p1.4,eoc管脚接到p3.3,oe管脚接到p1.5,转换结果输出d0d7与单片机的p0口直接相连。图2.7 a/d转换电路2.5 lcd显示模块本系统的显示部分采用lcd1602芯片,lcd显示模块是把lcd显示屏、背景光源、线路板和驱动集成电路等部件构造成1个整体作为1个独立部件使用,只留1个接口与外部通信。lcd引脚功能如表2.2所示:表2.2 1602引脚功能表引脚符号功能说明1vss一般接地2vdd接电源(+5v)3v0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度)。4rsrs为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5r/wr/w为读写信号线,高电平时进行读操作,低电平时进行写操作。6ee(或en)端为使能(enable)端,下降沿使能。7db0低4位三态、 双向数据总线 0位(最低位)8db1低4位三态、 双向数据总线 1位9db2低4位三态、 双向数据总线 2位10db3低4位三态、 双向数据总线 3位11db4高4位三态、 双向数据总线 4位12db5高4位三态、 双向数据总线 5位13db6高4位三态、 双向数据总线 6位14db7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15bla背光电源正极16blk背光电源负极显示模块通过这个接口接收显示的命令和数据,并按指令和数据的要求进行显示,外部电路通过这个接口读出显示模块的工作状态和显示数据。1602液晶模块内部的字符发生存储器(cgrom)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每1个字符都有1个固定的代码。用户对模块写入适当的控制命令,即可完成清屏、显示、地址设置等操作。本设计采用并行方式控制,lcd与单片机的接口电路如图2.8所示。图2.8 lcd显示电路lcd1602的e管脚接到p3.2,rs管脚接到p3.0,r/w管脚接到p3.1,通过软件设置,当e=0时,lcd1602开始工作。当r/w=0,rs=0时,单片机可以向lcd写指令,当rs=1,r/w=0时,单片机可以向lcd写数据,单片机的p2口和lcd的db端口相连,当p2口输出数据时,通过软件程序控制,将数据进行一系列的计算,最后在lcd上显示。2.6单片机最小系统本课题选用atmel公司的at89c51,它以经典的8031为内核,有一个8位的微处理器,不仅可以处理字节数据,还支持位操作。at89c51具有4kb的eeprom,将cpu和存储器组合在单个芯片中,并与工业标准的at89c51型机的指令集和输出引脚兼容,从而为很多嵌入式控制提供了灵活性高且价格低廉的方案。其主要特性如下:寿命达1000次写/擦循环;时钟频率范围为0hz24mhz;三级程序存储器锁定;1288位内部ram;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗闲置和掉电模式;片内振荡器和时钟电路;32位可编程i/o线;4个8位并行i/o口:p0、p1、p2、p3。at89c51具有很强的运算、控制能力,完全能够满足本课题的各项指标要求。图2.9为at89c51引脚分布。 图2.9 at89c51引脚分布p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。 p3口也可作为at89c51的一些特殊功能口。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr的8eh地址上置0。此时ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。1. 复位电路设计单片机启动运行时,都需要先复位,其作用是使cpu和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。单片机本身是不能自动进行复位的,必须配合相应的外部电路。单片机的复位通常分为三种:自动复位、手动复位、看门狗复位。只要给引脚reset加上2个机器周期以上的高电平信号,就可使at89c51复位。因为at89c51内部没有看门狗,所以其复位电路只能采用自动和手动复位。本设计采用自动复位,电路如图2.10所示。图2.10 复位电路2. 晶振电路设计at89c51内部有一个用于构成振荡器的高增益反相放大器,引脚xtal1和xtal2分别是此放大器的输入端和输出端。此放大器可与作为反馈元件的片外晶振一起构成自激振荡器。外接晶振以及电容c1和c2接在放大器的反馈回路中,构成并联谐振电路。外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。本系统晶振值取为12mhz,电容应尽可能的选择陶瓷电容,相应容值约为30pf,晶体振荡电路如图2.11所示。图2.11 晶振电路第3章 软件设计 软件设计包括总体程序、a/d转换、白噪声发生、fft转换、lcd显示等模块。本章主要介绍各个模块的软件设计思想及流程设计。3.1 主程序流程图主程序流程如图3.1所示。dsp首先控制发射10 ms白噪声,然后实时调整信号放大倍数并采集数据,准确地将模拟声压信号转换成数字声压信号。在采集结束后,执行512点位码倒置和fft变换子程序,再计算出吸声系数,最后将测量结果通过hpi 接口送给单片机。单片机将eoc置0,则将数据传送给单片机的p2口。单片机经过计算后将数据传给lcd液晶屏显示。lcd上显示输入电压和吸声系数。图3.1 dsp应用程序流程图3.2 白噪声发生程序首先对dsp 进行初始化,设置10 m s定时中断,xf置高电平,停止发射白噪声信号; 然后,xf 置低电平发射白噪声信号,dsp开始采集数据; 直到发生10 m s定时中断,xf置高电平停止发射白噪声信号,完成数据的采集,从而达到利用数字信号来控制白噪声信号发射的目的。这里我们用单片机来实现吸声系数的测量。由于单片机计算速度有限,我们用频率为10khz的正弦波代替白噪声。如果需要计算完整的吸声系数需要用运算速度较快的dsp(数字信号处理器)来进行快速傅里叶变换,进而计算各个频率下的平均吸声系数。白噪声程序流程图如图3.2所示。图3.2 白噪声程序流程图3.3 ad0809转换程序adc0809的工作时序如图3.3所示。图3.3 adc0809工作时序当通道选择地址有效时,ale信号一出现,地址便马上被锁存,这时转换启动信号紧随ale之后(或与ale同时)出现。start的上升沿将逐次逼近寄存器sar复位,在该上升沿之后的2us加8个时钟周期内(不定),eoc信号将变低电平,以指示转换操作正在进行中,直到转换完成后eoc再变高电平。微处理器收到变为高电平的eoc信号后,便立即送出oe信号,打开三态门,读取转换结果。 模拟输入通道的选择可以相对于转换开始操作独立地进行(当然,不能在转换过程中进行),然而通常是把通道选择和启动转换结合起来完成(因为adc0809的时间特性允许这样做)。这样可以用一条写指令既选择模拟通道又启动转换。在与微机接口时,输入通道的选择可有两种方法,一种是通过地址总线选择,一种是通过数据总线选择。如用eoc信号去产生中断请求,要特别注意eoc的变低相对于启动信号有2us+8个时钟周期的延迟,要设法使它不致产生虚假的中断请求。为此,最好利用eoc上升沿产生中断请求,而不是靠高电平产生中断请求。本设计采用查询的方法来确定a/d转换是否完成,并将转换的结果由p1口读入单片机。单片机先给出启动信号start脉冲,然后查询检测转换结束信号eoc,当eoc为高电平转换结束后,单片机给出oe使能信号,从p1口读取转换结果。程序流程图如图3.4所示。图3.4 a/d 程序流程图3.4 fft程序快速傅氏变换(fft),是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它的优点是节省运算量,算法迅速,能够节约存储空间,降低设备成本。fft并不是一种新的变换,它是离散傅立叶变换(dft)的一种快速算法。由于我们在计算dft时一次复数乘法需用四次实数乘法和二次实数加法;一次复数加法则需二次实数加法。每运算一个x(k)需要4n次复数乘法及2n+2(n-1)=2(2n-1)次实数加法。所以整个dft运算总共需要4n2次实数乘法和n*2(2n-1)=2n(2n-1)次实数加法。如此一来,计算时乘法次数和加法次数都是和n2成正比的,当n很大时,运算量是可观的,因而需要改进对dft的算法减少运算速度。根据傅立叶变换的对称性和周期性,我们可以将dft运算中有些项合并。我们先设序列长度为n=2l,l为整数。将n=2l的序列x(n)(n=0,1,n-1),按n的奇偶分成两组,也就是说我们将一个n点的dft分解成两个n/2点的dft,他们又重新组合成一个n点dft。一般来说,输入被假定为连续的。当输入为纯粹的实数的时候,我们就可以利用左右对称的特性更好的计算dft。程序主要分为3大部分:主程序、波形发生子程序和fft子程序。主程序主要功能为初始化工作变量,调用波形发生子程序产生3个正弦波,然后调用fft子程序计算功率谱。波形发生子程序主要功能为发生波形,计算步长并用标准c的sin函数计算当前的波形值(128点)。fft子程序主要功能为运用快速傅立叶变换计算功率谱。首先按照编码逆序排列输入序列,然后用蝶形算法进行计算,计算出功率谱,最后返回计算结果。程序首先定义采样点为128点,然后初始化工作变量,将需要用到的公式定义好。然后输入波形并进行采样。将输入采样的波形值赋值给变量的实部,虚部赋0 。代入公式(31)进行计算。 (31)最后fft子程序将运算出的结果赋值给data并返回。并且通过波形图观察输出波形。对比快速傅立叶变换程序与ccs软件计算的功率谱。程序流程图如图3.5所示。图3.5 fft子程序流程图3.5 lcd1602初始化程序lcd1602的基本的操作分为以下四种: 表 3.1 lcd寄存器选择表rsr/w-操 作00数据寄存器写入01数据寄存器读出10指令寄存器写入11指令寄存器读出当读状态时单片机输入指令:rs=0,rw=1,e=1;当读数据时单片机输入指令:rs=1,rw=1,e=1。状态或数据由db0-db7数据口读进单片机。其读操作时序如图3.6所示:图3.6 lcd1602读时序写指令时单片机输入:rs=0,rw=0,e=下降沿脉冲,单片机向db0db7输入指令码 ;写数据时单片机输入:rs=1,rw=0,e=下降沿脉冲,单片机向db0db7输入数据。其写操作时序如图3.7所示:图3.7 lcd1602写时序1. 忙信号检测:检测液晶是否处于忙碌状态,如果处于忙碌状态,则不可对液晶进行操作,否则可以进行读写和显示操作。忙碌标志位为bf(即lcd1602数据引脚的最高位db7位),bf=0表示忙碌,bf=1表示空闲。在读取过程中要等待4个机器周期的时间已留给硬件足够反映的时间,程序流程图如图3.8所示。图3.8 忙信号检测流程图2. 写数据程序:向液晶发送需要显示的数据程序。首先检测液晶是不是处于忙碌状态,如果不忙碌,写入写数据指令rs=1,rw=0,e=0,在单片机p2口给出要显示的数据。写指令程序:对液晶进行写指令的操作。首先检测液晶是不是处于忙碌状态,如果不忙碌,写入写指令rs=0,rw=0,e=0,在单片机p0口给出要写入的指令码,液晶在初始化的时候需要输入一系列的指令。显示之前需要对液晶进行初始化,设置液晶的显示模式为显示开,无光标,指令码为0x38;光标不闪烁,指令码为0x0c;字符不移,指令码为0x06;将以前的显示内容清除,指令码为0x01。 图3.9 写数据流程图 图3.10写指令流程图第4章 联合调试联合调试是最关键也是难度最大的环节,它既要求软件使用和程序编写的能力,又要求有对硬件电路调试的能力。本章主要对硬件各个部分和总体电路进行调试,硬件和软件也在调试过程中不断完善。4.1 基于dsp的fft变换测试fft程序是在dsp开发环境ccs中完成的,具体过程如下:1. 首先将ccs设置成软件仿真环境。如图4.1所示,删除原有设置,选择c55xx rev3.0 cpu 添加并保存。图4.1 设置ccs为软件仿真模式2. 建立工程fft.pjt,写入程序。如图4.2所示,将fft的程序写入。图4.2 建立工程并写入程序3. 编译并下载程序。4. 打开观察窗口,进行如图4.3和图4.4所示的设置,分别为输出类型、名称、输入数据起始地址、输入数据个数及修改数据类型等。图4.3 test wave波形设置图4.4 fft波形设置5.清除显示:在以上打开的窗口中单击鼠标右键,选择弹出式菜单中“clear display”功能。6.设置断点:在程序fft.c中有注释“break point”的语句上设置软件断点。7.运行并观察结果。(1)选择“debug”菜单的“animate”项,或按f5键运行程序。(2)观察“test wave”窗口中的时域图形。(3)在“test wave”窗口中点击右键,选择属性,更改图标显示为fft。观察频域图形。 (4)观察“fft”窗口中的由ccs计算出的正弦波的fft。程序运行后共产生3个波形。test wave的波形如图4.5所示,test wave是输入的正弦波的波形,幅度为1024的正弦波。程序计算它的fft,并将结果显示在名为fft的波形窗口中。fft的波形如图4.6所示,横坐标为功率,纵坐标为频率。ccs计算出的功率谱如图4.7所示,横坐标为功率,纵坐标为频率。通过比较fft的波形图和ccs计算的功率谱即可检验程序的正确性。图4.5 test wave的波形图如图4.5所示,测试波形为正弦波,幅度为1024,采样点取128。输入如图所示正弦波,通过程序运算即可得到下图所示的功率谱。程序运用蝶形算法计算,首先按照编码逆序排列输入序列,再代入公式运算,继而将结果输出在波形图上。图4.6 fft的波形图如图4.6所示,通过程序运算出的fft波形图横坐标为功率,纵坐标为频率。图中显示功率在3左右的频率最大,为3.3e+4,两边逐渐减小到0 。由此可见程序运算出的fft功率比较集中。图4.7 ccs计算出的功率谱如图4.7所示,由ccs计算出的功率谱较为精确,虽然同样比较集中,但细节更为清楚。相比较而言,二者图形比较接近,说明程序运算的频域图和ccs计算结果相近。但存在误差,可能是由程序运算不足和采样点数较少造成的。可以通过增加采样点数和优化算法实现,但过多的采样点数会影响程序的运行速率,对硬件的要求也会相对提高。所以应该从硬件和准确率之间权衡。总体来说由于采用快速傅立叶变换算法而大大提高了运算速率。而基于dsp更能体现dsp的实时性的特点,所以可以在许多便携设备上得到广泛应用。通过以上对比发现运用fft算法所生成的波形图与ccs软件计算出的功率谱基本相同。这表明fft算法程序可以近似算出输入波形的功率谱,但还存在误差。比如局部细节无法计算出来,频率数值存在误差等。这些可以用增加采样点来实现,随着采样点的增加,相应的误差会逐渐减小。但另一方面,增加采样点意味着工作量的增加。这给硬件系统带来了更高的要求,要求硬件系统在短时间内采样更多的点。在速率较低的硬件上无法实现。还有一些误差是算法本身带来的,比如运算的先后次序和优化程度等。这就需要从不断的实验和摸索中尽量减少误差。总体而言,本次课程设计用fft算法所生成的波形图与ccs软件计算出的功率谱基本相同,达到了预期效果。这样我们便可以通过dsp进行快速傅里叶变换进而计算出各个频率下的吸声系数。4.2 a/d转换电路与显示模块调试a/d转换电路软件调试如图4.8所示,图中转换的模拟电压为由in0输入的5v模拟电压,转换的数字结果为out=5.00v,显示在液晶lcd上。图4.8 a/d转换电路与显示模块软件调试图a/d转换电路与显示模块硬件调试如图4.9所示,硬件使用自带a/d转化器的单片机。通过初始化可以将p1口做为a/d使用。这里将p1口悬空,即输入信号为0,lcd显示out=0.00v。 图4.9 a/d转换电路与显示模块硬件调试图由于a/d转换出的数据是以0-255的数字进行表示的。在电压为0时对应的数字量是0,在电压为5v时对应的数字量为255。通过数字量可以计算出输出端的电压值。a/d转换电路软件和硬件的调试结果如表4.1所示,从表格数据可以看出a/d转换结果在电压为整数时完全一致,由此可以说明实物连接正确,并且转换结果很精确,经过调试,硬件电路a/d转换电路运行良好,硬件连接和转换、显示结果正确,达到了所需要求。表4.1 a/d转换结果电压值(v)a/d转换结果单片机运算结果(v)0.00002.501272.53.051563.054.062074.064.4 电路总体调试吸声系数检测系统仿真结果如图4.10所示。ad转换器输入端电压为2.74v,输入电压为5.00v。根据公式=e/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实习生签约协议书
- 岗位劳动合同汇编二零二五年
- 二零二五版租赁院落合同
- 住宅铺位合同标准文本
- 房屋买卖协议合同书模板二零二五年
- 二零二五全新一部分股份转让协议
- 买卖楼房佣金合同样本
- 中标后实验设备合同样本
- 供热管网维护合同样本
- 个人采购材料合同样本
- 2025年上半年上海青浦新城发展(集团)限公司自主招聘9名易考易错模拟试题(共500题)试卷后附参考答案
- 墙纸墙布施工工艺标准化流程
- 水泥混凝土路面翻修施工方案详解
- 《射雕英雄传》好书读后感
- DB51T 2049-2015 建筑消防设施检测规范
- 【MOOC】风景背后的地貌学-华中师范大学 中国大学慕课MOOC答案
- 护理感动案例
- 2024版《安全生产法》考试题库附答案(共90题)
- 企业天然气转让协议书范文范本
- 带式运输机传动装置的设计
- 玩具照相机细分市场深度研究报告
评论
0/150
提交评论