基于MSP430的声音定位系统的设计
2014-12-23肖强
肖 强
(中国船舶重工集团公司 第717研究所,湖北 武汉430074)
0 引言
定位系统是当今很热门的一个研究课题,国内外测距定位技术常用到的有激光测距定位,超声波测距定位,GPS定位等,而利用音频信号实现定位的技术也因其低成本,易实现,精确度也较高等优势而在飞速发展,在智能控制领域有着较广泛的应用。
1 系统整体设计
系统主要由移动声源,声音接收处理,软件处理三大部分组成。移动声源主要以小车为载体由蜂鸣器产生周期性的声音信号。声音接收处理由麦克风接收声音信号并对信号进行放大滤波等,直至将信号送入单片机。软件处理部分由送入单片机的信号做出相应判断并控制无线模块发送数据和命令给移动声源,移动声源再做相应调整。
图1 系统总体框图
1.1 声音接收处理部分
采用差分放大器AD620放大接收到的微弱的声音信号,后级利用MAX264构成Q值较高的带通滤波器,滤波之后的信号跟一级放大以提高相邻两脉冲幅度差,放大之后信号再经比较器LM311整形得到脉冲信号作为中断信号送入MSP430处理,处理之后得到时间差数据,通过无线模块NRF24L01将数据送到声源做处理。同时键盘输入的目的坐标点数据也通过无线模块传输到声源。
1.2 移动声源部分
声源载体为步进电机驱动的两轮小车,利用蜂鸣器发声。车上的MSP430控制蜂鸣器发声,无线模块收到来自声音接收处理端发过来的数据后计算出声源坐标,根据目的坐标点由MSP430输出相应PWM波控制步进电机转动使小车移动到目的坐标点。
1.3 软件处理部分
声源发出周期性的声音信号,开始发声时刻通过无线模块给接收端一个标志,接收端开启定时器开始计时,出现有效中断信号后停止计时,即可得到时间差数据。声源部分接收到时间差数据后计算出坐标控制电机运动。
2 系统硬件模块电路设计
2.1 系统可行性分析
声源端和接收端都采用MSP430F449单片机,外部晶振8MHz,则:时钟周期=0.125us.根据系统算法的设计,系统核心是测出声音信号到两接收点的时间差。现系统的精度要求为1cm,声波速度为344m/s,则:时间精度Te=0.01/344=29us。单片机在一个时间精度能够执行的指令个数为:Te/Tsck=29/0.125=232。本系统中,由接收端通过无线信号控制移动声源的停车和移动,所以移动声源的位置误差产生主要是来自于接收端和声源之间的无线通信,而无线通信主要的耗时来自单片机内无线指令的执行,而1cm误差范围内的232条指令时间足够执行无线指令。声源部分的单片机主要负责和接收点之间的无线通信,控制小车运动,产生周期性声波等操作,对精度要求不高。综上所述,采用MSP430F449单片机作为声源端和接收端控制芯片完全满足系统的性能指标。
2.2 功能模块电路设计
2.2.1 差分放大电路设计
采用双麦克风接收声音信号,能大大减小环境噪声干扰,提高共模抑制比。采用仪表放大器AD620进行差分放大,AD620共模抑制比可达100dB以上,能够有效的抑制共模噪声,并且可达到60dB的放大倍数,仅需一个外接电阻就可调节其放大倍数。采用双麦克风差分放大一个重要优势在于:放大输出信号的幅度不再是与声源和麦克风之间的距离成反比,其幅度随声源在平面坐标的不同而随机发生很小范围的波动(这是由于电路放大的是两个麦克风声音信号之差,距离远声音信号之差不会变的很小,距离近声音信号之差也不会很大),这有利于比较器门限的设定。但由于采用双麦克风差分放大,即使AD620放大倍数很高,放大后的信号峰峰值仍然不超过100mv,须进一步放大。系统后级放大采用的是较高Q值的带通滤波器,滤波的同时对中心频率信号也有着很高的放大倍数。
2.2.2 声音信号滤波模块设计
本系统以蜂鸣器作为声源,蜂鸣器发出的声音信号频率为3.6kHz。在声音信号经过前置放大电路以后,会引入高频噪声和低频噪声,因而必须在后级处理模块中接入Q值较高的带通滤波电路,滤波采用MAX264开关电容滤波器,能取得优良的带通滤波特性,同时较高Q值进一步放大信号。MAX264是MAXIM公司的一款通用滤波器,内置两个独立2阶滤波器,可以通过引脚编程设置为低通,高通,带通或陷波滤波器,而且滤波器的Q值可以引脚编程在0.504-90.5之间设定,中心频率F0通过外接时钟和引脚编程设定。经多次测试本系统滤波模块设定的Q值为16.0,Q值的选择较重要,Q值太小或太大都会影响输出信号的质量,必须使滤波输出信号噪声小才能保证后级比较器整形的准确稳定。滤波器时钟为705M,引脚编程设定中心频率为3.6K,以达到最佳滤波效果。由于开关电容滤波器难以避免有高频开关噪声,因而滤波输出信号后接一个简单的RC低通结,即可有效滤除时钟信号带来的高频噪声。
2.2.3 后级放大模块设计
滤波之后的信号噪声幅度在20mv以下,为了便于比较器门限的设定,再跟一级放大以提高比较信号两相邻脉冲幅度之差,这有利于系统的稳定工作。选用高CMRR运放OPA602。
2.2.4 比较整形模块设计
为了能对滤波输出声音信号进行处理,需要将模拟信号整形成能被单片机识别的TTL脉冲信号。采用比较器LM311实现对输出信号的整形,得到的信号接到MSP430扩展的中断口上,以实现对时间差的测量。LM311采用单门限比较,门限电平的设定是很重要的一步,若门限太低则容易将噪声信号比较出来造成时间差的偏差,若门限太高则稳定性不好,时间差测量会随着声源位置的变化而随机产生偏差,这是由于信号幅值的波动引起的。经过多实验次测试本系统的门限设定在100mv,系统能稳定准确地工作。
图2 程序流程图
2.2.5 无线发射模块设计
本系统采用无线收发模块RF24L01进行误差信号的传输。该芯片1.9-3.6V供电,功耗小。其内置2.4GHz天线,并采用高效的GFSK调制,抗干扰能力强。这款芯片制成了PCB板,内置了专门的稳压电路,使其在各类的电源供电情况下,都有很好的通信效果。该模块可以通过软件设置地址,只有收到本机地址时才会输出数据,可直接接各种单片机使用,软件编程十分方便。
3 系统软件设计
声源引导部分的软件设计包括对可移动声源发声命令的发送,时间差信号的接收与处理,载体小车上电机控制命令的发送以及无线发射模块的控制。可移动声源部分的单片机主要完成对无线接收模块上寄存器的查询,得到声源引导部分发出的数据命令,并对可移动声源部分的蜂鸣器和步进电机进行控制,软件设计流程如图2所示。
[1]谢自美.电子线路设计·实验·测试[M].武昌:华中科技大学出版社,2000.
[2]黄根春.电子设计教程[M].北京:电子工业出版社,2007.
[3]沈建华.MSP430系列16位超低功耗单片机原理与应用[M].北京:清华大学出版社,2004.
[4]沈红卫.基于单片机的智能系统设计与实现[M].北京:电子工业出版社,2005.
[5]马中梅,籍顺心.单片机的C语言应用程序设计[M].3版.北京:北京航空航天大学出版社,2003.
[6]戎晓政,刘加.声源定位中的延时估计方法研究[J].电声技术,2010,33(2):42-46.