时间:2024-08-31
蒋涛(四川师范大学物理与电子工程学院,四川成都,610068)
一种无线键控系统的设计与实现
蒋涛
(四川师范大学物理与电子工程学院,四川成都,610068)
在嵌入式系统设计中,经常需要将外部的参数和键盘命令通过无线的方式传递给系统。常见的蓝牙和WIFI模块需要较高的成本,本系统主要服务于课程教学,为了降低成本,本文设计和实现了一种基于DTMF信号的无线键控系统。该系统利用任何手机都具备的DTMF信号作为传输载体,采用Goertzel算法实现按键检测,减轻了后端处理器的负担。在不用安装无线模块的情况下,低成本地实现了无线键控的功能。经MATLAB仿真和DSP实验,表明本系统的设计方案是可行的,系统能够接收手机命令和执行相应的控制功能。
键控系统;DTMF信号;Goertzel算法
在嵌入式系统的设计中,经常需要通过无线方式给受控系统传递命令和参数。近年来,无线通信技术发展迅速,多种无线通信手段都能满足这种需求,比如WIFI、Bluetooth、ZigBee等短距离无线通信技术。特别是近年物联网技术的迅猛发展,出现了ESP8266、CC2540、CC2530等电路模块,不管是向云端传输传感数据,还是通过无线方式向系统传递信息和参数都非常容易实现。但上述提及的技术手段需要发送方和接收方必须具备相应的通信模块,增加了系统方案的成本。本文设计的系统服务于数字信号处理课程教学,让学生能生动形象地学习DFT变换和Goertzel算法。出于教学和成本的考虑,不需要上述复杂的通信手段实现键控系统。由于移动通信技术的蓬勃发展,手机的普及率非常高,手机成为与钥匙、钱包类似的东西,是每个人必备的物品。双音多频信号(DTMF)是电话系统中电话机与交换机之间的一种用户信令,每部手机都具备DTMF信号的产生功能,同时麦克风接口是实验室很多开发板和电子设备的标配。本文提出了一种利用手机的DTMF信号,通过音频传递的方式,实现了一种无线键盘控制的方案。经过MATLAB仿真和DSP实验验证,该方案是可行和有效的,几乎不需要额外成本。通过该系统的设计与教学演示,使得学生增加了学习数字信号处理理论的乐趣,对信号的频谱分析有了更深刻的理解。
本文提出的系统主要实现了无线键盘控制功能,由手机和键盘受控系统构成,系统原理框图如图1所示。
图1 系统原理框图
手机利用拨号键盘产生DTMF音频信号,驱动扬声器发声。扬声器发出的声音信号传递到受控系统的麦克风,由麦克风采集声音信号,经AD采样后送到微处理器进行分析。微处理器运行相应的算法判断手机拨号界面的什么按键按下,根据按键的预设功能判断出传递的参数和命令,继而驱动外设控制机构,实现系统的控制功能。
1.1 DTMF信号的产生
DTMF(Dual Tone Multi Frequency)信号是音频电话的拨号信号,DTMF在数字通信及其它方面有广泛的应用,成为现代通信系统的一个标准[1]。DTMF信号是用7个单音频信号任意两个进行组合来表示0到9、*和#共12个拨号音,具体的组合方式见表1所示。实现表1的音频组合信号的方法很多,常见的有三种:(1)利用数学公式计算正弦函数的值(2)利用二阶数字正弦波振荡器产生正弦波(3)采用直接频率合成DDS技术,通过查表法获取正弦波的值。本教学演示系统重点在于DTMF信号的检测,直接利用任何手机本身就具有的DTMF信号来完成信号的产生。用音频线很容易从手机耳机插孔中获取想要的DTMF信号。为了方便验证系统方案的可行性,不失一般性,本文采用了安卓APP应用软件DTMF Tone Ad来完成DTMF信号的产生,在此对软件作者表示感谢。该软件安装完成后,打开软件会得到如图2所示的界面,按下需要的键就可以产生对应的DTMF信号并通过扬声器传输出去。
表1 DTMF信号的音频组合方式
图2 DTMF Tone Ad软件界面
1.2 DTMF信号的检测
根据DTMF信号的产生原理可知,利用DFT变换检测接收到的信号频率,很容易确定手机端按下的键值。DFT变换可以采用快速傅里叶变换算法来实现,但这种方案加重了微处理器的工作负担。仔细分析DTMF信号的特点会发现,DTMF信号的频谱只会在7个单音频率的两个频率点上出现峰值。换句话说,只需要关心这7个频点的频谱信息,没有必要计算信号在整个频段上的频谱。Goertzel算法[2]可以完成关心频点频谱的计算,不像DFT计算信号整个频谱的信息,因此计算效率更高。本文采用了Goertzel算法来实现按键信号的检测,非常适合处理能力不强的处理器。下面对Goertzel算法[3]做简单介绍,设有限长序列x( n)的N点DFT为X( k),公式两端同时乘以WN-kN可得
图3 直接II型结构图
该系统是IIR系统,为了实现该系统,可以采用直接II型基本结构,如图3所示。
2.1 系统仿真
为了验证系统实现的可能性,先对DTMF信号检测算法进行MATLAB仿真。本系统采用的TMS320F28335开发板上有AIC23B芯片,能够完成语音信号的采集。手机利用DTMF Tone Ad软件完成DTMF拨号音的产生,AIC23B芯片采集音频信号后存储到FLASH芯片。将FLASH芯片存储的音频数据导出扩展名为dat的文件,由MATLAB的textread函数读入进行分析。不失一般性,以按键1的处理为例进行阐述。为了方便数据处理,将数据分为205个数据点为一帧。由于按键并不是连续的,需要对数据进行能量检测得到真正有效的数据帧再进行数据分析。设置好数据的采样率,这是正确识别按键的关键,利用MATLAB自带的函数goertzel进行分析,可得图4的频谱图线。结合表1可以判断出按键1按下,从结果看出,按键检测算法是可行的。
图4 按键信号的谱线图
2.2 DSP实现
为进一步对上述仿真结果进行验证,在DSP嵌入式系统上实现了按键检测算法,并通过对 LED 灯的控制来完成系统搭建和验证。该系统虽然在DSP系统上搭建,程序很容易移值到其它嵌入式MCU。为了方便学生完成音频信号的采集,现在的DSP开发板大多带有MIC接口,开发板上也具有AIC23B芯片。AIC23B芯片具备音频输入和输出功能,它是一款高性能立体声音频编解码芯片。AIC23B芯片内部集成了模数转换(ADC)和数模转换(DAC)部件,采用了先进的Sigma-delta过采样技术,可以在8~96kHz采样率范围内提供16,20,24,32比特采样[4]。整个系统的原理图如图5所示。
DTMF信号通过麦克风接到AIC23B芯片的MICIN引脚,通过芯片内部的AD模块采集。AIC23B芯片包含控制和数据两个通道,控制通道主要用于微处理器给AIC23B内的控制寄存器写数据,完成采样率控制等各种控制功能。采样后的音频数据通过数据通道传递给DSP芯片的MCBSP模块,程序利用按键检测后的结果,通过GPIO模块完成受控设备的控制。整个系统主要采用C语言实现,非常方便移植到其它处理器。程序流程图如图6所示。
图5 按键检测的硬件原理框图
图6 按键检测算法流程图
程序先完成DSP程序的初始化设置,然后对knNW的实部和虚部进行处理和计算。对一些迭代变量进行初始化后,通过控制通道向AIC23B芯片写数据。最后初始化MCBSP-A部件,设置中断服务程序。当接收到音频样本时就进入中断,为检测出有效的音频数据,将205个数据组合为一帧,根据数据能量判断出有效数据。启动Goertzel算法的迭代方程,算出感兴趣频率成分的频谱值。最后利用排序得出幅度最大的两个频率分量,根据频率分量的组合判断出按键。系统使用LED灯模拟受控设备,执行LED灯的开和关闭操作。经过实验,上述程序能够实现无线接收手机的按键命令,完成LED灯的控制功能。以按键1为例,在程序中定义频率数组f[7]={697,770,852,941,1209,1336,1477},利用m1和m2作为频率的检索指示变量,检测结果如图7所示,根据表1可判断按键1被按下。
图7 按键检测结果
本文完成了一种无线键控系统的设计与实现,该系统利用任何手机都具有的DTMF信号作为控制信号,实现了无线键控功能。系统接收端只需要简单的音频采集组件,成本非常低。设计该系统的主要目的是辅助信号处理课程的教学,若用于实际还需考虑通信距离和噪声抑制等复杂问题。信号的采集和处理不再使用开发板,而直接利用手机的麦克风和处理器来完成,在手机上完成信号的分析和处理。在相应的引导下,学生能主动思考手机和信号处理领域的一些创新应用。
[1] 王乙斐,游舟浩,王颖,青海银. DTMF信号的合成与识别[J].电子设计工程,2011,19 (7) :71-73.
[2]李羽,张晋涛,孙志锋,焦建格.基于Goertzel算法的感应电机参数离线辨识[J].工业控制计算机,2015,28 (12) :162-164.
[3]邵朝,阴亚芳,卢光跃. 数字信号处理[M].北京:北京邮电大学出版社,2004.
[4]陈斌,冯燕. 基于DSP的耳机噪声抵消系统的设计与实现[J].电声技术,2010,34(4):79-82.
电流调节器很快压制了电流,并出现超调,约为3.39%,小于所要求的5%。本阶段,ASR迅速饱和。
第二阶段恒流升速阶段,由于电流上升受到了压制,电流在达到Idm之后的变化不再明显。但由于ASR饱和,转速飞速上升,超过给定值n*,ASR退饱和,此时到达第三阶段转速调节阶段,ASR调节作用立刻恢复,n和Id回降,n稳定在n*处,Id=IdL=0A (空载)。得出转速超调σn%≈5.5%。符合设计的要求[8]。
4.2 故障仿真与分析
图3 断路控制单元
调速系统运行时,突发的反馈通路断线对工业生产带来较大风险,借助Simulink[9]对这一故障进行仿真,以转速反馈断线为例。本文设计了断路控制单元来控制断线,如图3所示,通过设定Clock的计时时间,即可控制断线时间。
通常ASR在第一阶段内饱和,并在第二阶段结束时退饱和,而ASR反馈断线正相当于其饱和。所以说两者的区别只存在于第三阶段,反馈断线后的ASR无法正常“退饱和”;且在电流调节器作用下,dI持续减小,负载阻碍作用减小。
本文详细地介绍了双闭环直流调速系统的工程设计方法并进行了仿真分析。在此基础上,本文对突发的反馈断线问题进行了探究,提出了一种断线的Simulink仿真方法,并对此故障进行了理论的分析,对于调速系统和运动控制的研究具有一定的意义。
参考文献
[1]胡寿松. 自动控制原理(第四版)[M].科学出版社, 2001.
[2]阮毅, 陈维钧.运动控制系统[M].清华大学出版社, 2006.
[3]王兆安, 刘进军.电力电子技术(第五版)[M]. 2009.
[4]StephenD.Umans, 乌曼, 刘新正,等.电机学[M].电子工业出版社, 2014.
[5]倪中远.直流调速系统[M].机械工业出版社, 1996.
The design and implementation of one wireless key-controlled system
Jiang Tao
(School of Physics and Electronic Engineering, Sichuan Normal University, Chengdu Sichuan,610068)
It is usual that external parameter and keyboard command are transmitted to embedded system using wireless method. The common bluetooth and WIFI modules require higher costs. The system mainly serves the course teaching. In order to reduce costs, this paper designs and implements a wireless key-controlled system based on DTMF signals. It used DTMF signal of any mobile phone as transmission medium. The burden of back-end processors was reduced using goertzel algorithm. Low-costwireless key-controlled systemcome true without using wireless module.MATLAB simulation and DSP experiment show that the design scheme of this system is feasible, and the system can receive the commands and perform corresponding control functions.
key-controlled system; DTMF signal;goertzel algorithm
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!