基于STM的声源定位装置【实用文档】doc_第1页
基于STM的声源定位装置【实用文档】doc_第2页
基于STM的声源定位装置【实用文档】doc_第3页
基于STM的声源定位装置【实用文档】doc_第4页
基于STM的声源定位装置【实用文档】doc_第5页
已阅读5页,还剩179页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于STM的声源定位装置【实用文档】doc文档可直接使用可编辑,欢迎下载

目录基于STM的声源定位装置【实用文档】doc文档可直接使用可编辑,欢迎下载TOC\o”1—3”\h\z\u1前言PAGEREF_Toc76841HYPERLINK\l_Toc132512总体方案设计PAGEREF_Toc132513HYPERLINK\l_Toc39522.1方案比较PAGEREF_Toc39523HYPERLINK\l_Toc151962.1。1声源信号产生方案PAGEREF_Toc151963HYPERLINK\l_Toc311502.1。2声源的选择PAGEREF_Toc3115032。1.3坐标解算方案PAGEREF_Toc1526942.2方案选择PAGEREF_Toc300624HYPERLINK\l_Toc96533单元模块设计PAGEREF_Toc96536HYPERLINK\l_Toc97083.1各单元模块功能介绍及电路设计PAGEREF_Toc970863。1。1555构成的多谐振荡器电路PAGEREF_Toc1339663。1。2电源电路设计PAGEREF_Toc218547HYPERLINK\l_Toc248783.1.3自动增益控制电路设计PAGEREF_Toc2487873.1。4有源二低通滤波电路PAGEREF_Toc1380083。1.5有源二阶高通滤波电路PAGEREF_Toc164909HYPERLINK\l_Toc295083.1。6STM32F103最小系统电路PAGEREF_Toc29508103.1.7液晶显示电路PAGEREF_Toc2413511HYPERLINK\l_Toc252063.1。8电平转换电路PAGEREF_Toc25206123.2电路参数的计算及元器件的选择PAGEREF_Toc22134133。2。1电源电路参数的计算PAGEREF_Toc1849513HYPERLINK\l_Toc233523。2。2555定时器外围元件参数的计算PAGEREF_Toc23352143。2.3音源坐标位置的计算PAGEREF_Toc13372153.2.3元器件的选择PAGEREF_Toc2114217HYPERLINK\l_Toc76233.3特殊器件的介绍PAGEREF_Toc762319HYPERLINK\l_Toc87443。3。1STM32F103单片机介绍PAGEREF_Toc874419HYPERLINK\l_Toc64223.3.2ILI9320液晶简介PAGEREF_Toc642221HYPERLINK\l_Toc179923。3。3VCA810简介PAGEREF_Toc17992244软件设计PAGEREF_Toc28211264.1软件设计开发环境介绍PAGEREF_Toc3062526HYPERLINK\l_Toc268094.1。1编程软件开发环境介绍PAGEREF_Toc2680926HYPERLINK\l_Toc313574。1。2绘图软件开发环境介绍PAGEREF_Toc3135727HYPERLINK\l_Toc119024.2软件设计流程图PAGEREF_Toc1190228HYPERLINK\l_Toc197774.2。1主程序流程图PAGEREF_Toc1977728HYPERLINK\l_Toc73184.2.1液晶初始化流程图PAGEREF_Toc731829HYPERLINK\l_Toc225114。2.2ADC初始化流程图PAGEREF_Toc2251130HYPERLINK\l_Toc259305系统调试PAGEREF_Toc25930326系统功能、指标参数PAGEREF_Toc3250336.1系统实现的功能336。2系统指标参数测试PAGEREF_Toc1067733HYPERLINK\l_Toc130936.2.1带通滤波器的频率响应PAGEREF_Toc1309333HYPERLINK\l_Toc38046.2。2555定时器构成的多谐振荡器测试PAGEREF_Toc380435HYPERLINK\l_Toc219066.2.3STM32ADC电压采集测试PAGEREF_Toc2190635HYPERLINK\l_Toc281806.2.4VCA810电路测试PAGEREF_Toc2818036HYPERLINK\l_Toc123006。3系统功能及指标参数分析PAGEREF_Toc12300387结论PAGEREF_Toc495239HYPERLINK\l_Toc191478总结与体会PAGEREF_Toc19147409谢辞PAGEREF_Toc106494210参考文献PAGEREF_Toc1694143附录PAGEREF_Toc1949644HYPERLINK\l_Toc6908附录一:部分原理图PAGEREF_Toc690844HYPERLINK\l_Toc28772附录二:部分PCB图PAGEREF_Toc2877245附录三:核心代码PAGEREF_Toc2097746HYPERLINK\l_Toc20902附录四:实物图PAGEREF_Toc2090251HYPERLINK\l_Toc18532附录五:外文资料翻译PAGEREF_Toc18532521前言随着时代的进步,信息产业的发展也是越来越快,特别是在计算机和通讯方面的发展,给人们的生活带来了诸多方便.随着雷达随着雷达侦测技术的兴起,声定位技术曾一度遭到冷冻,法军和美军分别于70年代80年代取消了声测侦察。近年来,由于雷达面临着电子干扰、反辐射导弹、低空突防和隐身技术这四大威胁,越来越容易遭受攻击。因此,人们又开始重视被动式传感器,重新激起对声测技术的兴趣。声源定位作为一种传统的侦察手段,近年来通过采用新技术,提高了性能,满足了现代化的需要,其主要特点是:(1)不受通视条件限制.可见光、激光和无线电侦察器材需要通视目标,在侦察器材和目标之间不能有遮蔽物,而声测系统可以侦察遮蔽物(如山,树林等)后面的声源.(2)隐蔽性强。声测系统不受电磁波干扰也不会被无线电侧向及定位,工作隐蔽性较强.(3)不受能见度限制.其他侦察器材受环境气候影响较大,在恶劣气候条件下工作时性能下降,甚至无法工作。声测系统可以在夜间、阴天、雾天、和下雪天工作,具有全天候工作的特点.声源定位在战场之外也同样具有广泛的应用前景,它可用于电话会议系统、视频会议系统、可视电话等系统中的控制摄像头和传声器阵列波速方向对准正在说话的人;也可用于语音及说话人识别软件的前端预处理,以提供高质量的声音信号,提高语音及说话人识别软件的识别率;亦可用于强噪声环境下的声音获取、大型场所的会议记录,以提高声音拾取质量;还可用于助听装置中,更好地为耳障患者服务等。

本文所设计的基于STM32的声源定位装置,通过555定时器构成的多谐振荡器,分别产生1KHZ的方波信号,然后为了便于ADC的采样,使输出信号在一定范围内,我们将该方波信号分别送入自动增益控制电路中进行放大。在接收端,我们采用固定的四个坐标点,分别测量声源与各自的相位差,主要是通过柱体极话筒接收发射来的方波信号,然后经过由NE5532形成的带通滤波器进行滤波,最终送入ADC转换器,然后通过相应的算法计算出声源的具体位置。本文从硬件和软件两个方面入手,其中涉及到了声学、机械能和电能之间的相互转换、电子线路、数字信号处理、软件设计和算法设计等多个技术方面的领域,特别是在声音信号的坐标位置确定过程中,牵扯到了解方程组的知识,且为了降低系统的误差,我们多设计了一个测量点求其平均值,使其成为了超定方程组,更好地达到了设计的要求。声音是人类常用的工具,是传递和获取信息中非常重要的一种.不同物体往往发出自己特有的声音,而根据物体发出的声音,就可以判断出物体的方位。现在,人类已经进入信息化时代,声源定位技术的研究,使人们能更加有效地产生、获取和应用处理声音信息,这对于当今社会的发展具有十分重要的意义.2总体方案设计在无噪声、无混响的情况下,声源距离越近,接收到的幅值当然也就越高,这就有可能使信号输出的幅值超出ADC采样的范围,从而给测量值带来很大的误差。本次设计由于有两个声源位置,因此必须要对他们所产生的信号进行很好的处理,这样才有可能较为准确的计算出声源的坐标。声源定位技术具有被动探测方式、不受通讯条件干扰、全天候工作等特点,但是由于周围复杂的环境,想要十分精确的确定某一声源的位置,还是相对困难的.因此,必须采取一个妥善的实施方案。另外,在设计中我们必须遵循项目设计的原则,分析项目需求,从而实现最优化.2。1方案比较2。1。1声源信号产生方案方案一:用常用的STC89C51单片机来产生500HZ的方波,利用单片机背部定时器溢出中断次数达到我们所设计的值时,就将相应的I/O引脚状态取反,这样就产生了占空比为50%的方波音源信号。方案二:用NE555构成的多谐振荡器来产生频率为500HZ的方波信号作为声源信号。它的原理是用内部定时器来构成时基电路,外部通过简单的电路配合所需要的信号,该电路搭建简单,原理容易理解,电路中的元器件参数也比较好计算.方案比较:在方案一中,用单片机产生的方波,虽然程序设计比较简单,但是硬件电路搭建比较麻烦,而且所利用的单片机资源太少,这样就显得浪费,并且性价比很低。方案二中,虽然由555产生的方波信号不是很稳定,但是整个电路设计简单,方便调试,555定时器价格便宜,性价比较高.因此选择方案二。2.1.2声源的选择方案一:采用低音扬声器作为声源。扬声器是一种把电信号转变为声信号的换能器件。将单片机产生的频率为500Hz的信号接在扬声器的接收端,扬声器能发出强度比较大的声音信号。方案二:采用无源蜂鸣器作为声源。无源蜂鸣器在提供一定频率的方波震荡源时,能够发出声音。试验中用无源蜂鸣器发声时,声音比较清晰,但声音强度比扬声器稍弱。方案比较:两种器件发出的声音都能被接收端检测出来.方案一中,扬声器需要消耗较大的功率,结合现代社会电子产品低功耗的要求,这样就浪费了能源.方案二中,蜂鸣器是一种低功耗的器件,而且是我们经常使用的声源,价格也很低廉,也能达到设计的要求。因此选择方案二.2。1.3坐标解算方案方案一:利用双曲线上的点到焦点距离差一定,可确定多条双曲线,求其交点,即可解算出坐标。但算曲线存在盲区,不能满足定位精度。方案二:根据两点到其中一点的距离差,用三角形法,求出坐标,再利用第三点到这点的距离差来校正坐标,即可解算出坐标。方案三:直接利用matlab算出坐标和四点距离差,然后分析数据,找到坐标和距离差之间的关系,直接写关系解算,思路简单,但是计算机分析数据量大,难以实现.方案比较:方案一中,如果声源刚好位于距离四个接收源相等的位置,那么就无法该处的声源坐标,存在计算的盲区。方案二中,通过方程组可以解除坐标x和y,并且还是超定方程组,可以求平均值使我们的测量更为准确.方案三中,matlab的数据分析量太大,难以实现。因此,坐标解算方案选择方案二.2。2方案选择通过以上分别对声源、声源的产生以及坐标计算算法的讨论,分别综合以上方案得到我们设计的系统框图如图2。1所示:电源电路部分电源电路部分555定时器组成的声源AGC电路带通滤波器ADC转换STM32F103单片机液晶显示图2.1系统的结构框图从本设计的基本要求出发,再结合现有的实验室条件和实际应用,本设计采取了以上的系统框图。在该图中,555定时器通过外围少量元器件可以组成多谐振荡器,AGC电路是由VCA810构成的,主要是用来将输出信号控制在一定范围内。带通滤波器的通频带为50HZ,采用的是巴特沃斯相应的压控电压源电路(VCVS),该电路输入阻抗很高,输出阻抗很低,电路性能稳定。此次系统采用计算相位差的方法,得到各个固定坐标与生源坐标之间的距离差,然后建立相应的方程组,解出我们所需要的声源坐标。本次设计方案的选取是综合考虑了成本、硬件电路绘制、软件编写、功能指标等的结果.3单元模块设计每一个系统的构成都是由单元模块电路组成的,因此模块电路的设计是项目完成的基础。本次设计从功能性来分,将模块分成了几大部分,包括电源电路部分、声源产生部分、自动增益控制部分、STM32F103最小系统部分、带通滤波器部分和液晶显示部分.就本系统而言,由于涉及到很多方面的问题,例如噪声对生源的影响和算法对最后结果误差的影响等,因此,需要每个模块都必须调试好,然后模块与模块之间的相互连接必须要兼容.在此次设计中,为了保证测试结果的准确性,我们也可以多列几组方程够成超定方程,然后对每个算出的坐标值求其平均值,这样使整个设计更加完美。3.1各单元模块功能介绍及电路设计3.1.1555构成的多谐振荡器电路555定时器在我们平时设计中很多时候都会用到,他的结构决定了他的多功能用途,而且构成不同的需求电路时,只需要在其外围添加很少的元器件。它可以组成施密特触发器、单稳态触发器和多谐振荡器等。如图3.1所示,就是采用了555定时器构成的多谐振荡器电路.J1和J2分别是接插件VCC和GND,R1、R2和C1决定了音源信号的频率.J3是音源输出端。图3.1555构成的多谐振荡器3.1。2电源电路设计电源是每个电子产品的必需,是每个电子系统设计的心脏。由于此设计需要用到+5V和-5V电压并且要求电源本身给信号处理电路带来的干扰要小,所以我们采用了LM7805与LM7905芯片来设计。首先,我们将220V、50Hz的市电通过环形变压器转化成8V的交流,然后通过整流、滤波和稳压的方法得到我们想要的输出。如图4。1所示,J1是变压器交流输入,通过四个二极管的整流之后,在进行C1、C2、C3、C4的滤波,然后送给三端稳压器,得到+5V和—5V直流电压.由接插件J2输出.在PCB的绘制中,C5和C6需要尽可能的靠近稳压芯片,这样可以减少电路走线给系统带来的干扰,减少纹波对声源信号的干扰,增加系统的可靠性。图3.2电源电路3.1。3自动增益控制电路设计自动增益控制电路的设计是为了满足ADC采样的需求,将音源信号稳定在一定范围内。本次电路所采用的是VCA810高增益调节范围的运算放大器,具有较高的共模抑制比,并在两个高阻抗输入的共模输入范围,允许VCA810提供差分接收器的操作与增益,以地为参考的输出信号,零差分输入电压,给出一个很小的直流偏移误差0V输出.低输入噪声电压,确保良好地信噪比。如图所示,是本次所涉及的AGC电路。其中,J8是产生的音源信号输入端,经过50欧姆的匹配电阻R9到地,R10是用于消除在V-输入端的偏置电流.每个电源引脚上都连接了两个电容:一个大电容取值在2。2uF到6.8uF范围内,用于有效的排除低频信号对电路的干扰,而小的的电容C9与C10是用于高频信号滤除,起到去耦作用。增益控制引脚是VCA810芯片的第三脚,在该电路中将其用接插件J9引出,方便我们调试。最后经过AGC电路的音源信号由J10输出.图3.3VCA810外部电路3.1.4有源二低通滤波电路如图3。4所示,是本次设计的二阶低通有源滤波电路,该电路的作用是用于将接收到的音源信号进行处理,滤除掉550HZ以上频率的信号。由于音源信号是由555定时器产生的500HZ的方波信号,所以我们决定将低通滤波器的截止频率设置为550HZ,通过相应参数的计算,可以得出R3、R4、C3、C4的大小。在满足品质因素Q的情况下,为使电路较为稳定的工作,我们选择了R5和R6相等。在该电路中,J4是连接柱体极话筒的接插件,将接收到的音源信号传输给低通滤波器。为了消除高频干扰,和VCA810一样,我们也在NE5532的电源引脚处设计了C7和C8,J5是经过低通滤波器后的输出测试点.图3。4二阶低通有源滤波电路3。1.5有源二阶高通滤波电路滤波器的设计是每个信号处理电路都必须用到的,已经成为了信号处理的一种基本手段,本设计就是采用的是二阶低通滤波器与二阶高通滤波器级联的方式实现对音源信号进行处理的.处理的基本思想和二阶低通滤波器相似,由于设置了100HZ的通频带,而音源信号的频率为固定的500HZ,因此将截止频率fc设定为450HZ,通过时间常数RC可以计算出相应的阻容元件的值。有源滤波除了滤除谐波外,同时还可以动态补偿无功功率,反应动作迅速,并且在滤波的同时还可以对信号进行放大.本电路中的C5、C6、R7、R8就是决定截止频率的关键元器件.为了保证电路稳定工作,增益最大不能超过2倍,因此本设计将NE5532的第6引脚和第7引脚直接连接.经过低通滤波器后的音源信号已经比较完整,但还是里面还可能存在一部分影响音源信号的低频信号,因此还必须的通过高通滤波器.低通滤波器的输出端接接插件J6,然后滤除低频信号后,再将信号由J7输出。图3。5有源二阶高通滤波电路3。1.6STM32F103最小系统电路本电路的核心部分就是STM32F103,其工作频率为72MHZ,内置高速存储器,包括了128K字节的闪存和20K字节的SRAM。在STM32F103的最小系统电路中,包括了晶振电路和复位电路.如图3。6所示,C7、C8和CY1与微控制器的引脚12、13分别相连,构成了系统的时钟电路。R10、C10按键一起和微控制器的复位管脚相连,组成了系统的复位电路,当按键按下时,微控制器就立即复位,又从新回到原始状态开始执行程序.复位电路与晶振电路一起保证了系统的正常有序的运行。图3.6STM32F103最小系统电路3.1。7液晶显示电路现在数字电路的设计都离不开有好的人机界面,因为他可以更直观的给用户展示系统的性能,它是和用户最直接的对话者。本次设计显示设备采用的是彩色图形点阵液晶显示器ILI9320,它具有屏幕大(320X240),分辨率高,显示字体圆润,显示内容多,价格实惠等优点。下图为其接口电路。ILI9320的16位并行数据接口连接到STM32的PB口,STM32的IO口为16位的,刚好和ILI9320的16位并行接口完美连接。和普通的12864点阵液晶一样,ILI9320也留有片选端(CS)、读写控制端(RD)、数据命令选择端(WR)。图3.7液晶显示电路3.1.8电平转换电路由于设计采用的是32位的单片机,因此在进行程序的烧写和下载时,我们需要计算机与单片机进行通信。PC机自带有RS—232标准串行口,而我们所使用的SSTM32F103是TTL电平,因此,我们需要自己添加一个电平转换电路。此设计采用的是MAXIM公司生产的MAX232电平转换芯片。它是一种单电源、低功耗的RS-232接口芯片,额定电流300uA。通过USB转串口后,再由MAX232芯片完成RS-232与TTL电平之间的转换,就可以与单片机进行通信了。其原理图下图4.7所示:图3.8电平转换电路3.2电路参数的计算及元器件的选择基于STM32的音源位置测量的设计中参数的计算主要包括了三个部分:电源设计参数计算、555定时器构成多谐振荡器参数的计算以及音源坐标求解的计算。通过这些计算之后,才能更好地更合理的选择元器件,做到满足性能要求的同时,将价格降到最低.3.2.1电源电路参数的计算本次设计采用的是直流+5V和-5V输出的电源.整流二极管组成的单相桥式整流电路,将交流电压V2变成脉动的直流电压,在经过滤波电容C滤除纹波,输出直流电压V1。V1和交流电压的有效值V2之间的关系为V1=(1。1—1.2)V2。下面重点从两个方面来计算部分参数。一、变压器的选取功率电源变压器的作用是将来自电网的220V交流电压u1变换为整流电路所需要的交流电压u2。电源变压器的效率为:其中:是变压器副边的功率,是变压器原边的功率.一般小型变压器的效率如表1所示:表1小型变压器的效率副边功率VA<1010—3030—8080—200效率0.60。70。80.85因此,当算出了副边功率后,就可以根据上表算出原边。电源变压器电压变换公式为:其中:N1为原边线圈扎数,N2为副边线圈扎数。根据以上的公式运算出本设计选用功率为50W的变压器。二、整流二极管的选取每只整流二极管承受的最大反向电压值为:通过每只二极管的平均电流为:在该式子中,R为整流滤波电路的负载电阻。它为电容C提供放电回路,RC放电时间常数应满足RC〉(3—5)×0.5T,其中T为50HZ交流电压周期.通过以上的运算,本次设计采用整流二极管1N4001,其极限参数(反向击穿电压和额定工作电流)满足我们设计要求。3。2。2555定时器外围元件参数的计算用555定时器组成的多谢振荡器如图3.9所示,在接通电源以后,电容C2被充电,当Vc上升到时,使输出Vo为低电平,同时放电三极管T导通,此时电容C2通过R2和T放电,Vc下降。当Vc下降到时,Vo反转为高电平。电容C2放电所需的放电时间为(公式一)当放电结束时,T截止,Vcc将通过R1和R2向电容器C2充电,Vc由上升到所需的时间为(公式二)当Vc上升到时,电路又翻转为低电平。如此周而复始,于是在电路的输出端就得到一个周期性的矩形波。其振荡频率为:(公式三)图3.9仿真计算555外围元件图通过公式一、公式二和公式三的计算,在确定音源频率为500HZ的条件下,我们得出在C取值为100nF的时候,令R1=R2,则可以计算出R的取值为9。533KΩ。3.2。3音源坐标位置的计算设坐标纸为图中的矩形ABCD。声源在点O,拾音器分别位于矩形四角A、B、C、D。声源到A点的距离为Da,到B点的距离为Db,到C点的距离为Dc,到D点的距离为Dd。分别经过时间Ta,Tb,Tc,Td后,拾音器A、B、C、D接收到信号,然后可以计算出三个时间差值t1,t2,t3,声音传播速度为v。通过下列算法后可计算出声源O的坐标值(x,y):图3.10音源坐标位置求解图定位算法一:QUOTE(1)QUOTE(2)QUOTE(3)QUOTE(4)单片机检测到的为四个时间点算出三个时间差,上面四个式子可用时间差表示出QUOTEQUOTE;(5)QUOTE;(6)QUOTE;(7)QUOTE;(8)解出:QUOTE;QUOTE;QUOTE;QUOTE;QUOTE;QUOTE;上式总共两个未知数四个等式,可以根据任意三个式子解出一组解,总共会有两组解。由于测出的结果会有误差,所以将所得的两组解进行平均值求解,则结果误差会减小,准确度会进一步提高。该算法程序比较简短,适合用单片机处理.3.2.3元器件的选择元器件的选取在电路的设计中十分重要,有时候直接关系到你的设计是否能够成功,而且如果是在具体参数指标上面的要求的项目或科研上,元器件的选择正确与否直接影响到指标上不上得去。所以我们在做设计时一定要选择好自己的功能指标所需求的元器件。本次设计就有几个重要元器件的选取。Ⅰ音频滤波器运放的选取:音频运算放大器的选取中需要考虑的因素有很多,下面例举一下重要的指标:a,增益带宽积GBW。该参数会影响音源的清晰度,如果不计成本的话,GBE的值越大越好,前置放大器、输入缓冲、线路放大器对此要求不高,音调电路、功放推动、DAC缓冲输出、有源滤波器等应该重视这个参数.b,压摆率SR。该参数会影响到声音细节的表现,尽管音频信号的上限只有20KHZ,但是音乐信号的频谱极为丰富复杂,瞬时幅度/时间的变化率有时会达到一个很高的水平,从音频应用来看,最好高于10V/us,不宜低于1V/us。c,电源抑制比PSRR。对电路的噪声尤其是电源的噪声,如交流哼声的抑制。对于开关电源来说,高音的清晰度也会受到影响,如高音听起来发毛等.从音频应用实践来看,按典型值计算最好高于80dB,不低于100dB为最佳。d,共模抑制比CMRR。决定了电路的抗干扰的能力,尤其是输入回路。从音频应用的实践来看,按典型值计算最好高于80dB,不低于100dB为最佳。e,总谐波失真THD(+N)。这个参数越低越好,不过还是需要注意过于追求低失真的倾向。对于音频应用,应该重视fin为1KHZ和10KHZ以及整个音频频带内的这个数值的平均程度,如果在音频频带内的失真,频率曲线欺负过大就不好。如果在音频频带内这个曲线比较平直而且低于0.0005%就足够好了,我们一般得到的数据是fin为1KHZ和10KHZ的典型值。结合以上这些参数规定的范围和本设计的音源相结合,并在考虑成本的条件之下,综合选择了NE5532常用的音频放大器。Ⅱ微控制器的选取:由于本次设计后端运算较为复杂,微控制器需要做到主要三个方面的工作:1,控制ADC进行采样。2,将得到的数据进行处理,计算出音源坐标。3,实时显示在液晶屏幕上。尤其是在第二方面的工作要求STM32F103的运算速度足够的块,才有可能保证我们采集的点不错位,否则的话,就会带来很大的误差。所以选择的微控制器必须具有下面几个重要特点和资源.(1)很强的兼容性。STM32F103xx是一个完整的系列,其成员之间是完全地脚对脚兼容,软件和功能上也兼容。在参考手册中,STM32F103x4和STM32F103x6被归为小容量产品,STM32F103x8和STM32F103xB被归为中等容量产品,STM32F103xC、STM32F103xD和STM32F103xE被归为大容量产品。同时,STM32F103xx增强型产品与现有的STM32F101xx基本型和STM32F102xx

USB基本型产品全兼容。(2)嵌套的向量式中断控制器(NVIC)。STM32F103xx增强型产品内置嵌套的向量式中断控制器,能够处理多达43个可屏蔽中断通道(不包括16个Cortex™—M3的中断线)和16个优先级.●

紧耦合的NVIC能够达到低延迟的中断响应处理●

中断向量入口地址直接进入内核

紧耦合的NVIC接口

允许中断的早期处理

处理晚到的较高优先级中断●

支持中断尾部链接功能

自动保存处理器状态

中断返回时自动恢复,无需额外指令开销

该模块以最小的中断延迟提供灵活的中断管理功能.(3)强大功能的ADC模块。STM32F103xx增强型产品内嵌2个12位的模拟/数字转换器(ADC),每个ADC共用多达16个外部通道,可以实现单次或扫描转换。在扫描模式下,自动进行在选定的一组模拟输入上的转换.ADC接口上的其它逻辑功能包括:●同步的采样和保持●交叉的采样和保持●单次采样ADC可以使用DMA操作。模拟看门狗功能允许非常精准地监视一路、多路或所有选中的通道,当被监视的信号超出预置的阀值时,将产生中断.由标准定时器(TIMx)和高级控制定时器(TIM1)产生的事件,可以分别内部级联到ADC的开始触发和注入触发,应用程序能使AD转换与时钟同步。支持在线下载程序,更容易上手,学习和使用起来也比较轻松方便.综合本设计的需求和现有的条件,最终确定选取STM32F103VET6为此次设计的微控制器。3.3特殊器件的介绍3.3.1STM32F103单片机介绍STM32F103最高的工作频率可达72MHZ,在村舒淇的0等待周期访问时可达1.25DMips/MHZ。该芯片是TI公司推出的中等容量的微控制器,32位基于ARM核心的带64或128K字节闪存的微控制器,具有USB、CAN、7个定时器、2个ADC和9个通信接口,每个方面都很符合本次设计的需求。下面介绍一下STM32F103几个重要参数方面的特色:1。外部中断/事件控制器(EXTI)外部中断/事件控制器包含19个边沿检测器,用于产生中断/事件请求。每个中断线都可以独立地配置它的触发事件(上升沿或下降沿或双边沿),并能够单独地被屏蔽;有一个挂起寄存器维持所有中断请求的状态。EXTI可以检测到脉冲宽度小于内部APB2的时钟周期。多达80个通用I/O口连接到16个外部中断线.2.时钟和启动系统时钟的选择是在启动时进行,复位时内部8MHz的RC振荡器被选为默认的CPU时钟,随后可以选择外部的、具失效监控的4~16MHz时钟;当检测到外部时钟失效时,它将被隔离,系统将自动地切换到内部的RC振荡器,如果使能了中断,软件可以接收到相应的中断.同样,在需要时可以采取对PLL时钟完全的中断管理(如当一个间接使用的外部振荡器失效时)。

多个预分频器用于配置AHB的频率、高速APB(APB2)和低速APB(APB1)区域.AHB和高速APB的最高频率是72MHz,低速APB的最高频率为36MHz。3.自举模式在启动时,通过自举引脚可以选择三种自举模式中的一种:a,从程序闪存存储器自举。b,从系统存储器自举。c,从内部SRAM自举

0~40MHz。4.供电方案●

VDD

=

2。0~3.6V:VDD引脚为I/O引脚和内部调压器供电。

VSSA,VDDA

=

2。0~3。6V:为ADC、复位模块、RC振荡器和PLL的模拟部分提供供电。使用ADC时,VDDA不得小于2。4V.VDDA和VSSA必须分别连接到VDD和VSS.

VBAT

1。8~3。6V:当关闭VDD时,(通过内部电源切换器)为RTC、外部32kHz振荡器和后备寄存器供电。5.供电检测器本产品内部集成了上电复位(POR)/掉电复位(PDR)电路,该电路始终处于工作状态,保证系统在供电超过2V时工作;当VDD低于设定的阀值(VPOR/PDR)时,置器件于复位状态,而不必使用外部复位电路.器件中还有一个可编程电压监测器(PVD),它监视VDD/VDDA供电并与阀值VPVD比较,当VDD低于或高于阀值VPVD时产生中断,中断处理程序可以发出警告信息或将微控制器转入安全模式。PVD功能需要通过程序开启。6.DMA灵活的7路通用DMA可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输;DMA控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断.

每个通道都有专门的硬件DMA请求逻辑,同时可以由软件触发每个通道;传输的长度、传输的源地址和目标地址都可以通过软件单独设置。

DMA可以用于主要的外设:SPI、I2C、USART,通用、基本和高级控制定时器TIMx和ADC.7.引脚分配图STM32F103有很多形式的封装,也有不同数目的管脚类型,本次设计采用的是LQFP100引脚的芯片,其引脚分配图如下图3.11所示。图3。11STM32F103引脚分配图3.3.2ILI9320液晶简介接口标准:ILI9320有可以用来读写寄存器和显示图表存储器的系统接口和用来显示动态图形的RGB输入接口。用户可以选择一种接口来显示动态或静态的图像。所有的数据是存在GRAM中的,这样可以降低数据传输的工作,只有必须更新的数据才被传送。用户还可以通过使用窗口地址功能来更新GRAM中的一部分数据.ILI9320通过使用RGB接口和VSYNC接口来传送要显示的数据,这样可以避免图像在显示屏中移动.在RGB模式下,数据是通过控制信号ENABLE,VSYNC,HSYNC,DOTCLK和数据总线DB[15:0]来写入GRAM中的.在VSYNC模式下,内部显示时序与帧同步信号是同步的。这种接口模式能够能过系统接口来显示动态图像.在这种情况下,有特定的条件来约束将数据写入RAM的速度与方法。图3.12ILI9320和单片机的连接示意图寄存器描述:ILI9320采用的是18位总线接口结构的高性能微处理器.ILI9320所有的功能模块在收到由外部微处理器以18、16、9、8位接口方式发的正确命令后才能工作.索引寄存器(IR)储存着可以写入指令与显示数据寄存器的地址。寄存器选择信号(RS),读写信号(nRD/nWR)和数据总路线(D17—0)是用来读写指令和数据的。ILI9320寄存器分为以后几类:索引寄存器用来指定寄存器的地址或将要写入RAM的地址。状态寄存器表明了当前ILI9320内部的状态。L[7:0]表明了当前驱动TFT面板的驱动行的位置。设置OSC位为1启动内部晶体振荡器,设置0停止内部晶体振荡器。启动后至少等待10ms来确保振荡器稳定,然后再设置其它功能。读这个寄存器将会读出设备的代码号。B/C:0:帧/场反转1:行反转。EOR:EOR=1与B/C=1用来设置行反转。SS:选择驱动源输出的方向。当SS=0,输出方向是比S1到S720当SS=1,输出方向是从S720到S1除了移动方向之外,通过设置SS和BGT位可以改变R,G,B在源驱动引脚上的配置。设置SS=0,分配R,G,B到源驱动引脚是从S1到S720。设置SS=1,分配R,G,B到源驱动引脚是从S7201到S1.当改变SS或BGR位时,RAM中的数据必须要重写。SM:设置门驱动管脚与GS位(R60h)来为模块选择最佳的扫描模式。AM控制GRAM更新方向.当AM=0,地址以水平写方向更新。当AM=1,地址以垂直写方向更新.当通过寄存器R16和R17设置了窗口功能时,只有可以编写的GRAM区域是根据I/D[1:0]和AM的设置来更新.I/D[1:0]控制着当更新完一个像素数据后,址计数器的自动增1或减1。ORG当开启窗口区域时,根据ID的设置来移动起始地址.在窗口地址区域使用高速RAM写方式写数据时,这个功能才使能。ORG=0:起始地址不能移动。在这种情况下,在窗口区域中根据GRAM地址映射来指定一个地址开始写操作。ORG=1:起始地址00000h根据ID设置来移动。注意:1、当ORG=1,仅有起始地址00000H能通过R20H,R21H被设置在RAM中。2、在RAM读操作中,确保ORG=0。BGR交换写入数据中的R和B。BGR=0:按照RGB的顺序写入像素数据.BGR=1:把RGB变为BGR的顺序写入GRAM。TRI当TRI=1,数据是通过8-bit的接口以8-bitx3transfers的模式传输到内部的RAM中。它也可以以16—bit或SPI的接口方式传输数据,这样配合DFMbit可以实现262K色。当不使用这些接口时,确保TRI=0。3。3.3VCA810简介VCA810是直流耦合、宽带、连续可变电压控制增益放大器。它提供了差分输入单端输出转换,用来改变高阻抗的增益控制输入超过-40dB增益至+40dB的范围内成dB/V的线性变化。从±5V电源工作将调整为VCA810的增益控制电压在0V输入-40DB增益在-2V输入到+40dB。增加地面以上的控制电压将衰减超过80dB的信号路径.信号带宽和压摆率保持在整个增益的不断调整range。This40分贝/V的增益控制精确到±1.5分贝(±0。9分贝高档)。许在一个AGC应用的增益控制电压为接收使用信号强度指示器(RSSI)的精度为±1.5分贝。VCA810具有以下的优点:1、高增益调节范围:±40分贝2、微分/单端输出3、低输入噪声电压:4、恒定带宽与增益:达到35MHz5、较高的分贝/V的增益线性度:±0。3分贝6、增益控制带宽:25MHz的7、低输出直流误差:〈±40mv8、高输出电流:±60毫安9、低电源电流:24.8毫安VCA810SOIC封装引脚如图3.13所示:图3.13VCA810引脚图引脚1:信号的同相输入端+Vin引脚2:信号地GND引脚3:增益控制端,电压范围是-2V-0V引脚4:悬空(不连接)引脚5:信号输出端Vout引脚6:供电电源正向端+Vs引脚7:供电电源反向端—Vs引脚8:信号的反相输入端-Vin4软件设计4。1软件设计开发环境介绍4.1.1编程软件开发环境介绍图4。1MDK软件开发环境窗口RealViewMDK开发套件源自德国Keil公司,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具.RealViewMDK集成了业内最领先的技术,包括μVision3集成开发环境与RealView编译器。支持ARM7、ARM9和最新的Cortex—M3核处理器,自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟,性能分析等功能,与ARM之前的工具包ADS等相比,RealView编译器的最新版本可将性能改善超过20%。RealViewMDK支持的Cortex-M3核是ARM公司最新推出的针对微控制器应用的内核,它提供业界领先的高性能和低成本的解决方案,未来几年将成为MCU应用的热点和主流。目前国内只有ARM公司的MDK和RVDS开发工具可以支持Cortex—M3芯片的应用开发。RealViewMDK无需寻求第三方编程软件与硬件支持,通过配套的ULINK2仿真器与Flash编程工具,轻松实现CPU片内Flash、外扩Flash烧写,并支持用户自行添加Flash编程算法;而且能支持Flash整片删除、扇区删除、编程前自动删除以及编程后自动校验等功能,轻松方便.μVision3IDE主要特性:功能强大的源代码编辑器;可根据开发工具配置的设备数据库;用于创建和维护工程的工程管理器;集汇编、编译和链接过程于一体的编译工具;用于设置开发工具配置的对话框;真正集成高速CPU及片上外设模拟器的源码级调试器;高级GDI接口,可用于目标硬件的软件调试和ULINK2仿真器的连接;用于下载应用程序到FlashROM中的Flash编程器;完善的开发工具手册、设备数据手册和用户向导。4.1.2绘图软件开发环境介绍图4.2Altium软件开发环境窗口Altium(前身为Protel国际有限公司)由NickMartin于1985年始创于塔斯马尼亚州霍巴特,致力于开发基于PC的软件,为印刷电路板提供辅助的设计。最初的DOS环境下的PCB设计工具在澳大利亚得到了电子业界的广泛接受,在1986年中期,Altium通过经销商将设计软件包出口到美国和欧洲。随着PCB设计软件包的成功,Altium公司开始扩大其产品范围,包括原理图输入、PCB自动布线和自动PCB器件布局软件。80年代晚期,Altium公司意识到在开发利用MicrosoftWindows作为平台的电子设计自动化EDA软件方面存在商机。虽然Windows平台在处理性能和可靠性上取得了进步,但当时很少有用于Windows平台的EDA软件,而当时越来越多的设计工程师使用基于Windows的操作系统。于是,在1991年Altium公司发布了世界上第一个基于Windows的PCB设计系统,AdvancedPCB。在后来几年里,凭借各种产品附加功能和增强功能所带来的好处,Altium建立了具有创新意识的EDA软件开发商的地位。4。2软件设计流程图程序开始4。2.1主程序流程图程序开始初始化STM32初始化STM32内部AD初始化TFT液晶初始化TFT液晶采集AD四个通道电压值采集AD四个通道电压值计算音源位计算音源位置并显示图4.3软件设计流程图程序开始运行后,首先对TSM32内部12位ADC进行初始化,紧接着对ILI9320TFT液晶进行初始化。然后STM32开始依次采集内部AD4个通道的电压,计算出音源的位置并在TFT液晶上以X坐标和Y坐标显示出来。4。2.1液晶初始化流程图开始调用液晶开始调用液晶初始化程序初始化连接初始化连接到液晶的IO设置液晶显示方向,显示方式设置液晶显示方向,显示方式其他程序其他程序图4。4液晶初始化流程图voidLCD_Init()//初始化lcd{RCC—〉APB2ENR|=1〈〈3;//先使能外设PORTB时钟RCC—>APB2ENR|=1<<4;//先使能外设PORTC时钟RCC->APB2ENR|=1〈<0;//开启辅助时钟JTAG_Set(0x01);//开启SWDGPIOC—>CRH&=0XFFFFF000;//PORTC6~10通用推挽输出GPIOC->CRH|=0X00000333;GPIOC—〉CRL&=0X00FFFFFF;GPIOC-〉CRL|=0X33000000;GPIOC-〉ODR|=0X07C0;GPIOB-〉CRH=0X33333333;//PORTB通用推挽输出GPIOB—〉CRL=0X33333333;GPIOB-〉ODR=0XFFFF;LCD_WriteReg(0x0037,0x1407);LCD_WriteReg(0x0012,0x01b8);LCD_WriteReg(0x0029,0x0048);LCD_WriteReg(0x0001,0x0100);//显示方向LCD_WriteReg(0x0002,0x0700);LCD_WriteReg(0x0003,0x1230);LCD_WriteReg(0x0061,0x0001);LCD_WriteReg(0x0007,0x0173);}4。2。2ADC初始化流程图开始调用液晶开始调用液晶初始化程序初始化连接初始化连接到AD的IO设置AD时钟,工作模式等参数设置AD时钟,工作模式等参数开启AD开启AD转换图4。5液晶初始化流程图voidAdc_Init(void){RCC—〉APB2ENR|=1〈<2;//使能PORTA口时钟GPIOA—>CRL&=0XFFFF0000;//PA0123anolog输入RCC->APB2ENR|=1<<9;//ADC1时钟使能RCC->APB2RSTR|=1〈〈9;//ADC1复位RCC—〉APB2RSTR&=~(1<<9);//复位结束RCC->CFGR&=~(3<<14);//分频因子清零RCC—>CFGR|=2〈<14;ADC1—>CR1&=0XF0FFFF;//工作模式清零ADC1—>CR1|=0<<16;//独立工作模式ADC1->CR1&=~(1〈〈8);//非扫描模式ADC1-〉CR2&=~(1<〈1);//单次转换模式ADC1->CR2&=~(7<〈17);ADC1->CR2|=7〈〈17;//软件控制转换ADC1—>CR2|=1<〈20;//使用用外部触发(SWSTART)!!!必须使用一个事件来触发ADC1-〉CR2&=~(1<〈11);//右对齐ADC1—>SQR1&=~(0XF〈<20);ADC1->SQR1&=0<<20;//1个转换在规则序列中也就是只转换规则序列1ADC1—>SMPR2&=0XFFFFF000;//通道0,1,2,3采样时间清空ADC1->SMPR2|=7〈<9;//通道3239.5周期,提高采样时间可以提高精确度ADC1->SMPR2|=7<<6;//通道2239.5周期,提高采样时间可以提高精确度ADC1-〉SMPR2|=7〈〈3;//通道1239。5周期,提高采样时间可以提高精确度ADC1->SMPR2|=7〈〈0;//通道0239.5周期,提高采样时间可以提高精确度ADC1-〉CR2|=1<<0;//开启AD转换器ADC1-〉CR2|=1<<3;//使能复位校准while(ADC1-〉CR2&1<<3);//等待校准结束ADC1-〉CR2|=1〈<2;//开启AD校准while(ADC1->CR2&1<〈2);//等待校准结束5系统调试本次设计系统的调试包括了硬件调试与软件调试。其中硬件调试包括了555构成的多谐振荡器的调试、带通滤波器电路调试和AGC电路的调试。555用作产生声源,其频率的的大小由外部元器件的电阻和电容决定,幅值由供电电源VCC决定.带通滤波器电路采用的是压控电压源型,分别由二阶低通滤波器和二阶高通滤波器组合而成,在保证3dB内频带宽度为100HZ,带通滤波器中心频率为500HZ的情况下,确定低通滤波器和高通滤波器的截止频率Wc分别为450HZ与550HZ,并且为了使电路稳定的工作,在要求相应的品质因素Q的情况下,还需要考虑增益Av必须要小于或者等于2,因此音频运算放大器NE5532所组成的反馈放大电路的放大倍数最多等于2,在设计中需要正确计算外围电阻R和电容C的参数,最好是参照电子线路设计中的参数值来确定,这样取得的效果会更好。在AGC电路中,VCA810的电压控制端VC需要预留出来,方便我们测试,由于VCA810的增益范围是在-40dB—+40dB,所以能满足ADC采样的需求电压值,很容易就达到了采样需求。在软件方面的调试,首先是编写液晶驱动程序,只有液晶成功驱动能够进行正常显示才能进行后续软件调试工作。在网上收集一些关于ILI9320驱动芯片的2.8寸TFT液晶显示程序及资料,很据时序图和资料在原有程序的基础上进行修改。很快液晶就能正常显示。液晶正常显示后就是对STM32的内部12位ADC进行驱动,以便采集4个方位上接收到的音源信号。参考STM32的例程里面的ADC程序进行修改,将例程里面的单通道采集修改成4通道采集,并将采集结果显示在液晶上。这样通过液晶显示结果修改ADC程序效率较高,能够快速发现程序的不完善地方。然后模拟采集到的音源电压给ADC4个通道输出4个电压值,通过对比液晶上的显示结果对ADC进行校准。做到这里软件底层驱动基本上编写完成。接下来的主要任务就是编写算法将ADC4个通道采集到的电压转换成音源坐标.6系统功能、指标参数6.1系统实现的功能本设计所实现的功能是对二维平面内音源位置的确定,可用于现实生活中的定位系统,并将坐标值显示出来,给人们一种确定的位置信息,方便他们之间的通讯和查询等.该技术不但可以应用于日常生活中,而且还可以应用于军事上,是一种重要的军事侦察手段,他是声学与电子相结合的一种技术.通过本次设计,对每个模块的进行一次测试与调试,然后将模块连接在一起,最终基本达到了设计的要求,完成了设计的预期目标,实现了音源定位。该设计在在前端设计时,也做了很多工作与相应的仿真,而且在选择AGC电路时候,对VCA810的选取也做了仔细分析,这给以后的工作带来了很大的方便。6.2系统指标参数测试6。2。1带通滤波器的频率响应本设计通过Proteus软件对电路中重要参数进行了仿真测试,图6。1和图6。2分别展示的是二阶低通滤波器与二阶高通滤波器的频率响应图。通过该仿真图可以看出,本次设计所选带通滤波器的组成元器件的参数选择是合理的,—3dB的通频带为450Hz—550Hz,而且波形较为陡峭,对干扰信号的衰减较强,对我们的声源信号进行了很好的保护。图6。1550HZ二阶低通滤波器频率响应图6.2450HZ二阶高通滤波器频率响应6.2.2555定时器构成的多谐振荡器测试由555定时器构成的多谐振荡器中,有两个关键的门槛电压值分别为和,此电路中的VCC电压值即为电源电压。下图是555构成的方波发生器。图6.3双T陷波器的仿真效果图分析:图中黄色的线条表示的是产生的方波信号,我们可以看出一个周期的时间为2ms,因此得到了我们所要的500HZ的方波信号,而且波形形状较好,满足设计要求.由于555定时器背部的比较器灵敏度较高,而且采用差分电路形势,因此该电路受电源电压和温度的干扰都比较小.6.2.3STM32ADC电压采集测试下表6.1列出了STM32ADC采集到的电压与实际电压值之间的对比,通过对比可以发现,STM32ADC采集到的电压精度较高,电压跳动小;在1。0V到3。0V的测量范围内误差最小,根据此调试经验,在设计AGC电路时尽量将电压波动范围设置在1。0V到3。0V的范围内。能够满足本设计的需要。表6.1STM32ADC电压采集测试表测试通道测试次数实际值(V)测量值(V)测量误差110.100.1220.0%20。500.5510.0%31.000.955。0%42.002.084。0%53.003.124.0%210。100.1110。0%20.500。5918.0%31.001.1111.0%42.001。990。5%53。003.113。7%310.100。1110.0%20。500.4510.0%31.000.964.0%42。002。147.0%53。003.196。3%410。100.0910.0%20.500.476。0%31.001。055。0%42。002.094.5%53.003.1244。0%6.2.4VCA810电路测试可变增益模块选用TI公司的高增益可调宽带压控放大器VCA810,其特性包括高增益可调范围-40~+40dB,增益控制准确度±1.5dB(高精度型号为±0.9dB),差分输入单端输出,不变的增益带宽35MHz,dB/V增益线性度±0。3dB,增益控制带宽25MHz,低输出DC误差小于40mV,高输出电流±60mA,低工作电流24.8mA。VCA810的工作原理是通过对其引脚3施加直流电压来控制增益的大小。控制电压与增益的函数关系式为:当Vc从0V变化到—2V时,增益从-40dB线性地变化到+40dB。另外,当Vc电压超过0V时,增益为-80dB。当工作在手动模式时,通过电位器分压来提供Vc信号,当工作在预设模式时,通过键盘输入增益值,然后经过单片机D/A输出提供Vc信号。调试测试板如图6.4所示:图6.4VCA810测试电路板通过本次测试,从理论上讲,VCA810的增益控制电压在0V时应为—40dB,在—2V时应为+40dB,但是在实际测试中,很难到这样的指标,本次AGC模块中在接近+30dB的时候就开始出现波形的失真,而且放大倍数在12倍左右就很难再向上面提升,经过分析有可能是因为VCA810有输入电阻,存在阻抗匹配,且自身容易产生自激所致。但是对于本次设计在+30dB的范围内已经足够了,如果需要达到更高要求的增益控制,我们可以选择用两个VCA810级联的方式来实现.在设计中,我们需要-2V-0V的控制电压,那么我们可以简单的搭建一个由OP07构成的反相器来完成.6.3系统功能及指标参数分析此次设计基本完成了设计之初所预想的功能,完成了基于STM32的音源坐标定位装置的工作,比较成功的设计了带通滤波器(BPF)、方波发生器和AGC电路,并将实测的音源坐标值完整的显示出来。关于指标方面,测试结果与实际音源位置存在一定的误差,因为声速会随外界环境的不同而不同,如温度介质,而且声音在传播过程中会受到其他噪声的影响,因此就系统本身而言,存在误差是在考虑范围内的。并且在整个系统运算中我们所用的声速为340m/s,这样计算出来的结果与实际值之间不可避免的产生了误差,但这种误差是允许存在的,且对结果不会产生很大的影响,基本上满足设计的要求。7结论本文通过精心构思,方案论证,最终设计出了预期目标的声源定位装置。从得到题目以后,开始划分每一个需要的模块,然后选取每个模块中的核心芯片,围绕到核心芯片设计电路,达到模块的功能指标,最后将每个模块连接起来,系统调试.该设计是以STM32F103为核心,该芯片用作处理器和运算器,是一款32为位的嵌入式芯片,其内部资源十分丰富,也正好满足本次设计的要求。通过此次设计,从整个系统来看,虽然满足了设计的基本要求,但是还存在一定的误差,此类误差的引起产生的原因有很多很多,我们必须在尽可能保留原有声源信号的基础上,对其余杂音、噪音等进行相应的去除,并且还需要考虑设计成本。整个系统的设计流程是:声源由555定时器构成多谐振荡器产生,设计的中心频率可以通过外围阻容元件设定,然后将产生的声源送入AGC自动增益控制中,稳定输出信号在一定范围内,然后AGC电路输出信号送入到柱体极话筒,通过了一个由NE5532构成的带通滤波电路,对接收到的音源信号进行滤波,最后将整理后的信号送入到ADC中,经过STM32F103控制采样后,再对这些数据进行处理和相应的运算,最后解出音源坐标。此外,本次设计虽然取得了成功,但也还不是最优的的方案。对坐标的运算结果还存在一定的误差。另外,本次设计的算法中还没有考虑声音在遇到障碍物时的折射现象,如果是测试音源在反射、折射的条件下,估计误差还会加大。所以在以后的设计中,还需要进一步完善硬件电路和软件算法,争取得到更加精确地结果。8总结与体会本次设计从整个过程来讲还是比较成功的。首先,通过对构成基于STM32的音源定位系统的功能模块划分,然后对其中重要的三个模块进行了方案论述与比较,决定了采用以555为发生源并配以AGC电路与带通滤波电路的前端硬件设计。由于该设计计算量比较大,需要求解超定方程组,所以后端的元算起采用了TI公司的ARM嵌入式芯片STM32F103。整个设计通过Proteus的仿真设计,再到AltiumDesignerWinter9的原理图设计,最后通过PCB板的绘制,加工焊接后,做成我们需要的硬件电路,在硬件电路基本调试完成之后,再由IAR软件提供相应的编程与调试环境,最终完成系统设计.基于STM32的音源测量装置具有实用性强、结构简单、方便扩展、外围元件少及成本低等诸多优点,在实际应用中,可以实时测试出某一未知声源的具体为止,广泛应用于雷达监测方面.经过一段时间的努力,本次毕业设计已接近尾声。但是在设计中仍然存在某些方面的不足,诸如校正问题、测量精度的进一步提高和功能的扩展问题等,这些都会在以后的研究中得到解决.通过本课题的设计,从原理图到PCB,从实际硬件电路的搭建、调试到软件系统的设计、编写等,所有的这些工作形成了一个完整的系统。通过本次的毕业设计,自己学到了很多东西。首先,对模拟电路有了更深入的了解,对运放的参数有了更为深入的认识,特别是在选择有源滤波器和自动增益放大电路时,对其中的增益带宽积、压摆率和增益范围等参数的理解。其次,在电路的调试中,让我感觉到了元器件的选型和仔细阅读其PDF的重要性,一个设计的指标的好坏与器件的选型密不可分,因为元器件的特性就决定了某一些指标的极限参数。这也是要求我们认真阅读每一个PDF,特别是国外的一些资料。另外,还要学会怎么去阅读一类元器件的资料,也就是哪些参数是最重要的,是我们设计所要求的。比如,在ADC转换器的选型时,我们除了看它的工作电压外,还必须要看其基准电压、ADC位数、通道数以及转换速度等参数,在一些特别大的系统中,还需要考虑其操作时序是否简单,可编程性强不强等。再次,自己在精神品质方面也得到了一定的锻炼,磨练了自己刻苦专研的意志.但是,在设计之中也发现了自己的一些问题,比如对新知识的学习比较慢,对信息的获取和接收效率较低,而且在以后的设计中,应该更多的考虑工程与社会、经济、文化和环境等方面的关系。让工程项目具有更好的综合价值。最后,通过本次的设计,使自己意识到了工程应用中考虑到的诸多方面的因素,感觉到了一个项目和工程的运行不是那么简单的事情,需要考虑到项目需求、市场需求、人员分配、工程进度以及市场价值等多方面的因素.自己也对嵌入式单片机有了更深入的理解,体会到了他们丰富资源的优势和强大。无论是硬件制作还是软件编程方面,由于嵌入式技术在现代工业、电子产品范围内已经逐渐体现出了其优越性,它与外围简单电路配合,再添加上优化程序就可以构建我们想要的产品,因而也使得本设计得以实现.9谢辞经过近一学期的忙碌学习和工作,本次毕业设计已接近尾声。作为一个学生,在设计之中,难免会遇到一些棘手的问题,而且经验匮乏。幸亏有曹林老师细心的指导,才使设计得以顺利完成。在这里,首先我要感谢我的指导老师,他在百忙之中抽出时间来和我们进行交流,对问题进行多方面的论证,使我学会了从多角度的去看待一个事件,也使我意识到了书本之外的一些东西。曹老师严谨的态度和一丝不苟的工作作风是我在以后学习和生活中的榜样。曹老师不仅在软件方面的技术能力很强,而且在硬件电路的分析上也是很厉害,他的某一些解题思路和软件算法非常有新意。另外,他在平时人际交流的方式和为人处事的态度也非常值得我认真学习。本次设计是我在大学学习中用时最长、内容涉及最广泛、工作量最大的一次设计。通过本次设计,我理解了再玩曾以了项目的时候,首先要进行需求分析,设定好相对应的功能和技术指标,然后根据市场分析认清产品的性价比,从而才能用工程的方法很好的解决问题。此外,此次设计还得到了创新实验室的同学们的悉心指导.为此,我必须还得感谢创新实验室的同学们对我的无私的帮助。在论文即将完成之际,无限的喜悦和感激溢于言表。最后,再一次感谢曹林老师无微不至的关爱和指导,感谢电气信息学院的老师们对我们的培养。在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取进一步提升电路设计方面的能力。10参考文献[1]康华光。电子技术基础.模拟部分。第五版。北京:高等教育出版社,2005[2]谢自美。电子线路设计.实验。测试第三版.武汉:华中科技大学出版社,2006[3]陈志旺.STM32嵌入式微控制器快速上手[M].北京:电子工业出版社,2012[4]刘军.例说STM32[M].北京:北京航空航天大学出版社,2011[5]彭刚、秦志强。基于ARMCortex-M3的STM32系列嵌入式微控制器应用实践[M]。北京:电子工业出版社,2011[6]谢沅清。信号处理电路[M].北京:电子工业出版社,1984[7]朱达斌.模拟集成电路的特性及应用[M].北京:航空工业出版社,1994[8]张晔,王玉民主编.单片机应用技术[M].西安:高等教育出版社,2006[9]刘茜.单片机通信技术与工程实践[M].北京:人民邮电出版社,2005[10]张毅刚主编。单片机原理及应用.北京:高等教育出版社,2003[12]谭浩强。C程序设计.第三版.北京:清华大学出版社,1991[13]李东生.Protell99SE电路设计技术入门与应用.电子工业出版社,2004[14]陈晓平.Protell99SE电子电路CAD应用教程.东南大学出版社,2005[15]黎文模。Protelldxp电路设计与实例精解[M]。北京:人民邮电出版社,2006[16]孙肖子。电子设计指南[M]。北京:高等教育出版社,2006[17]门宏.怎样看电子电路图[M]。北京:人民邮电出版社,2007[18]AxelBuchner,RaoulBell.Soundsourcelocationmodulatestheirrelevant—soundeffect.Memory&Cognition,2008,36(3),617-628[19]D.H.Youn,N.Ahmed,G.C。Carter,OnusingtheLMSalgorithmfortimedelayestimation,IEEETransactionsonAcoustics,SpeechandSignalProcessing,1992,Vol.30(5):798~801附录附录一:部分原理图附录二:部分PCB图附录三:核心代码/*ADC采样部分*/#include<stm32f10x_lib.h>#include"adc.h"voidAdc_Init(void){//先初始化IO口RCC—>APB2ENR|=1<〈2;//使能PORTA口时钟GPIOA—〉CRL&=0XFFFF0000;//PA0123anolog输入RCC—>APB2ENR|=1<<9;//ADC1时钟使能//通道10/11设置RCC-〉APB2RSTR|=1〈〈9;//ADC1复位RCC-〉APB2RSTR&=~(1〈<9);//复位结束RCC->CFGR&=~(3〈<14);//分频因子清零RCC->CFGR|=2<<14;//SYSCLK/DIV2=12MADC时钟设置为12M,ADC最大时钟不能超过14M!否则将导致ADC准确度下降!ADC1->CR1&=0XF0FFFF;//工作模式清零ADC1—〉CR1|=0〈<16;//独立工作模式ADC1—〉CR1&=~(1〈〈8);//非扫描模式ADC1->CR2&=~(1<<1);//单次转换模式ADC1->CR2&=~(7〈<17);ADC1—>CR2|=7〈<17;//软件控制转换ADC1-〉CR2|=1<<20;//使用用外部触发(SWSTART)!!!必须使用一个事件来触发ADC1-〉CR2&=~(1〈<11);//右对齐ADC1->SQR1&=~(0XF〈〈20);ADC1—>SQR1&=0〈<20;//1个转换在规则序列中也就是只转换规则序列1//设置通道0~3的采样时间ADC1—〉SMPR2&=0XFFFFF000;//通道0,1,2,3采样时间清空ADC1->SMPR2|=7〈<9;//通道3239.5周期,提高采样时间可以提高精确度ADC1—>SMPR2|=7<<6;//通道2239.5周期,提高采样时间可以提高精确度ADC1—>SMPR2|=7〈〈3;//通道1239.5周期,提高采样时间可以提高精确度ADC1-〉SMPR2|=7<<0;//通道0239.5周期,提高采样时间可以提高精确度ADC1—〉CR2|=1<<0;//开启AD转换器ADC1-〉CR2|=1<<3;//使能复位校准while(ADC1->CR2&1〈<3);//等待校准结束//该位由软件设置并由硬件清除.在校准寄存器被初始化后该位将被清除.ADC1->CR2|=1〈<2;//开启AD校准while(ADC1->CR2&1<〈2);//等待校准结束//该位由软件设置以开始校准,并在校准结束时由硬件清除}u16Get_Adc(u8ch)//设置转换序列{ADC1-〉SQR3&=0XFFFFFFE0;//规则序列1通道chADC1-〉SQR3|=ch;ADC1—〉CR2|=1<<22;//启动规则转换通道while(!(ADC1->SR&1<<1));//等待转换结束returnADC1-〉DR;//返回adc值}/*主函数部分*/#include"sys.h"#include"delay。h"#include"ADC。h"intmain(){Stm32_Clock_Init(9);//系统时钟设置delay_init(72);//延时初始化RCC—>APB2ENR|=1<<2;Adc_Init();LCD_Init();while(1){display_X(Get_Adc(0x00));delay_ms(250);display_Y(Get_Adc(0x01));delay_ms(250);}}/*测试部分*/#include〈stm32f10x_lib。h〉#include”num.h”#include"sys。h"#include”delay.h"#defineLCD_CSPCout(9)//数据/命令PC8#defineLCD_RSPCout(8)//数据/命令PC8#defineLCD_WRPCout(7)//写数据PC7#defineLCD_RDPCout(6)//读数据PC6u8num[19][240]={{…}}//相应汉字的ASCII码voidLCD_data(u16data)//写数据{LCD_RS=1;//写数据标志LCD_CS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论