【word】 基于ARM11的麦克风控制器软件平台研究
基于ARM11的麦克风控制器软件平台研究
与开发-j舞j己口I1年l1月第
3口卷第1l期—一
基于ARM11的麦克风控制器软件平台研究
杨秋虎
(昆明船舶设备试验研究中心昆明650051)
摘要:大多数会议存在时间利用率不高的问题,为了提高工作效率,提出了基于ARM11的嵌入式平台的麦克风控制器
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
,并完成了麦克风控制器的软硬件设计.麦克风控制器软件部分主要利用PC,ARM开发板完成软件平台的构建,软件
设计主要由QtCreator软件完成开发,且可以提供手动工作和自动工作两种模式,测试结果能够很好地实现对发言时间的控
制,具有良好的人机交互性和稳定性.
关键词:麦克风控制器;QtCreator;ARM11;Linux
中图分类号:TP216文献标识码:B
Softwareplatformresearchanddesignof
microphonecontrollerbasedonARMll
YangQiuhu
(KunmingShipborneEquipmentReaserch&TsetCentre,Kunming65
0051,China)
Abstract:Thereexitsawasteoftimeinvariesofconference.Weproposedamicrophonecontrollerdesignschemebased
ontheARM11embeddedplatformtOimprovetheworkingefficiency,andcompletedthesoftwareandhardwaredesignre—
speetively.ThePCandARMdevelopmenttoolsareemployedtoachievethebuildingofthesoftwareplatform.TheQt
Creatorisadoptedtofulfillthesoftwaredesignandaffordtwoworkingmodenamedmanualmodeandautomaticmode.
Theexperimentalresultsshowthatthemicrophonecontrollerisstableandreliable.Itpossessesgoodhuman-computer
interactionandportability.
Keywords:microphonecontroller;QtCreator;ARMll;Linux
0引言
在会议进行过程中,由于发言人对发言的时间难以进
行控制,所以普遍存在时间利用率不高等缺点.麦克风控
制器的本质就是通过预先设置定时时间,对每个发言人的
发言时间进行控制,在定时时间到以前,对发言人进行提
示,并且到定时时间时自动关闭麦克风,这可以提高工作
效率并且保证会议的延续性.麦克风控制器的主要工作
流程如图I所示.
1麦克风控制器工作原理
该麦克风控制器提供手动工作和自动工作两种模式
选择,分别针对不同的场合.手动工作模式主要是依靠人
工操作来实现,每次开始发言前都需要进行时间设置和手
动开始.自动工作模式经过预先设置后,自行判断是否有
人发言,若有人发言则自动进行计时,无人发言或发言结
收稿日期:2011-8—21
束后计时器自动清零并关闭麦克风,进人下一个发言的环
节.在发言定时时间到前一分钟会自动发出警告声,并且
语音提示时间只剩1rain,提醒发言人控制发言时间,定时
时间到后,自动关闭麦克风开关,发言结束.
麦克风控制器硬件实现主要是通过控制继电器的通
断来实现,通过对人声信号进行采集,判断是否有人开始
发言,以此来控制继电器实现麦克风的通断.麦克风控制
器的主要功能是基于Tiny6410开发板实现的.Tiny6410
是一款以ARM11芯片(三星$3C6410)作为主处理器的
嵌入式核心板,该CPU基于ARM1176JZF-S核设计,运
行频率533MHz,接口资源丰富,广泛用于汽车电子,工业
控制和导航系统中.
利用Tiny6410,可以很好地实现AD数据采集,GPIO
口控制以及蜂鸣器报警等麦克风控制器所需要的功能.
通过ADC进行数据采集判断是否有人进行发言,定时时
间到后通过控制GPIO实现继电器的通断来控制麦克风
中国科技核心期刊
213l1年l1月
第]口卷第lI期
通断,利用蜂鸣器进行报警并播放提示音.
(a)手动工作模式流程
(b)自动工作模式流程
图1麦克风控制器基本工作流程
2麦克风控制器的软件平台构建
软件平台的构成主要包括两部分,一部分针对PC;一
部分针对ARM开发板.要完成软件的开发,必须在这两
部分上完成软件平台的搭建和软件的配置.
麦克风控制器的所有软件开发都是在Linux环境下
实现的,Linux系统是一种类Unix的完整操作系统,功能
强大,运行稳定,且是开源的_1].Linux系统支持X86,
ARM等大多数常见硬件架构和TCP/IP等主流网络协
议,具有良好的跨平台功能,所以被广泛用于与嵌入式系
统和移动设备中].ARMLinux的内核可以根据特定
硬件环境裁剪出具备适当功
该设计使用QtCreator
够跨平台运行,支持Linux,
QtDesigner,图形化的GDB调试前段,集成qmake构建
工具等.
软件平台的构建应该分为以下几个步骤:
1)建立交叉编译环境
在Linux平台下,需要为开发板编译内核和各种应用
程序,提供交叉编译工具链,本设计中使用的是arm—linux-
gcc一4.5.1,它默认采用armv6指令集,支持硬浮点
运算.
2)解压安装内核源代码,目标文件系统,Busybox源
代码,Busybox是一个Linux轻型指令集,这里使用的版
本是Busybox-1.13.3.
3)配置和编译linux内核,这个过程需要的时间
较长.
4)安装QtSDK和QtCreator并完成相应的配置.
3麦克风控制器软件设计实现
依据麦克风控制器的的工作要求,麦克风控制器的软
件设计需要实现以下功能:
1)利用QtCreator可以实现麦克风控制器的界面设
计,在此基础上完成触摸屏相应动作软件编程,实现对硬
件的控制;
2)AD数据采集,用于对麦克风接收到的人声数据进
行采集,并判断是否有人在发言;
3)GPIO控制,通过控制继电器实现麦克风的通断和
控制蜂鸣器的发声.
3.1信号与槽机制
信号与槽机制(signalg~slot)作为Qt最重要的特性,
提供了任意两个Qt对象之间的通信机制.信号会在
某个特定情况或动作下被触发,槽是用于接收并处理信号
的函数.要将一个窗口中的变化情况通知给一个窗口,则
一
个窗口发送信号;另一个窗口的槽接收此信号并进行相
应的操作,即可实现两个窗口的通信.每个Qt对象都包
含预定的信号和槽,当某一特定事件发生时,一个信号被
发射,与信号相关联的槽对相应信号完成相应的处理.
麦克风控制器的界面设计.
依据麦克风控制器的功能要求,利用QtCreator绘制
麦克风控制器的界面,界面主要包括三个部分,分别是模
式选择界面,时间设置界面和计时界面,各个界面分别如
图2所示.
图2(a)界面完成了模式的选择,分别是手动模式和
自动模式.图2(b)完成了定时时间的设置,分别定义了
四个通道,通过”+”和”一”来实现时间的增减,其中自定
义模式不限制发言的时间,只显示计时的时间.图2(c)是
定时界面,主要完成计时时间的显示,这3个窗口是主要
的功能界面,包含了麦克风控制器的主要功能.
中国科技核心期刊
(a)模式选择界面
(b)时间设置界面
几
U…
j
遮面一l
(c)计时界面
图2话筒控制器功能界面
3.2手动模式的实现
首先定义一个定时器timer1,通过获取时间设置界
面中的定时时间来初始化定时器,这里定义了一个槽函数
led(),通过下面的语句来实现槽函数led()与定时器的
关联:
connect(timer1,SIGNAL(timeout()),this,SL0T
(1ed()));
timerl一>start(1000);
timeout()是定时器每计时一秒都会触发的一个函
数,利用此函数对计时界面进行刷新”.当定时时间到
了之后,断开槽函数与定时器的关联,蜂鸣器发出提示音,
并且播放语音提示,这些功能通过以下语句来实现:
if((min=一O)&(see=一0)//定时时间到
{
ioc=open(“/dev/IOC”,O—RDONLY);
m—fd=open(“/dev/pwm”,O_RDONLY);
disconnect((timer1,SIGNAL(timeout()),this,
SL0T(1ed()));
ioctl(m—fd,PWM—IOCTL_ST0P);//开蜂鸣器
system(“madplay/3.mp3”);//播放提示音
close(ioc);//麦克风关闭
close(m—fd);
}
一
42一
己口I1年I1月
第]口卷第fI期一
执行完上述过程之后,执行返回,即可开始进行下一
次计时时间的设置,等待下一次发言.
3.3自动模式的实现
自动模式相比手动模式而言,功能要更为复杂,在时
间设置界面选择好时间开始后,即进入计时界面,当有人
开始发言时,5S之后自动开始计时,计时时间到后麦克风
会自动关闭,等待下一个人发言,15S后麦克风自动打开.
如果存在超时情况,则麦克风会持续关闭.如果有人提前
结束发言,则麦克风也能进行判断,清零计时时间,为下一
个人的发言做好准备.同自动模式一样,这里也定义了一
个定时器,并且使其与led()函数进行关联.
connect(timerl,SIGNAL(timeout()),this,SLOT
(1ed()));
在一个人发言的过程中,为了方便控制,将其分为了
三个阶段:第一个阶段是开始发言,这个阶段需要
检测
工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训
是
否有人声,假如有持续五秒的人声,则开始计时;第二个阶
段是发言结束的阶段,即当定时时间到或者是检测到已经
没有人发言,则完成一系列的动作,打开蜂鸣器,播放提示
音,关闭麦克风;第三阶段是发言结束后,假如在定时时间
到后发言仍在继续,则每隔5S检测是否有人发言,若有
人发言,则麦克风持续关闭,如果持续15S无人发言,则重
新打开麦克风等待下一次发言.这里设置了一个标志位
sttime,当sttime为0,1,2时,分别对应三个不同的阶段.
自动模式的软件流程图如图3所示.
软件编程的关键在于实现自动检测判断是否有人声.
AD每一秒每次采集1200个数据,如果1200个数据中有
100个数据超过了门限值,则
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示这一秒有人声,如果连
续5S都有人声,则表示已经有人开始发言.假如这1200
个数据中,有1100个数据小于门限值,则表示这1S没有
人声.如果连续5S都没有人声,表明这时没有人在发
言.在三个阶段内,通过判断是否有人声,来实现相应
的动作,第一阶段代码如下所示:
if(sttime=一0)
{
len一::read(ac—
fd,buffer,sizeofbuffer);//获得AD
采集数据
for(inti一0;i<1200;i++)
{if(buffer[i]~一120)j++;)
if(j>一lOO)//采集数据进行门限判断
{count++;
times++;)//秒数自加
if((count~5)×%5))
{times=0;
count一0.
sttime=1;
min=data::min;//初始化定时器
中国科技核心期刊
一一蘧燕一一
j一习固口口瞰一
己口l1年l1月
第]口卷第1I期
}的两种工作模
其他两个阶段也是类似的,只是不同的阶段需要不同尤其是采用A
的标志位,都是依据类似的代码进行判断.人机交互以及
图3自动模式软件流程
4系统测试结果
麦克风控制器整机安装如图4所示,测试时针对不同
人声进行测试均可能够有效地实现话筒的通断,符合设计
要求.
图4麦克风控制器整机实物
5结束语
本文中所设计的麦克风控制器,具有应用于不同场合
间,极大地提高工作效率.
参考文献
[1]朱新华,杨润生.基于ARM的数据采集系统设计[J].
电子测量与仪器,2008,22(z2):243—246.
[2]周旭,李小敏,俞承芳.基于ARM的集散系统上位机
设计_J].仪器仪表,2006,27(z1):704—706.
[3]乐燕芬.ARM嵌入式系统启动过程
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
及实现[J].
仪器仪表,2006,27(z3):2549—2550
[4]竺乐庆,张三元,幸锐.基于ARM与WinCE的掌纹
鉴别系统_J].仪器仪表,2009,30(12):166—17O.
[5]杨帆,戴胜华,刘泽.铁路移频信号检测系统设计与实
现口].电子测量与仪器,2010,24(5):100—105.
[63宋宝华.Linux设备驱动开发详解[M].北京:人民邮
电出版社,2010.
[7]张立峰,陈爱国,李晓光.基于ARM—Linux的自动站
设计[J].电子测量技术,2009,30(1):92—93,103.
[8]张单群,李斌.基于ARM的无线传感器网络网关设
计_J].国外电子测量技术,2010,29(5):72—74.
[9]蔡志明,卢传富,李立夏,等.精通Qt4编程[M].2版.
北京:电子工业出版社,2011.
E10]成洁,卢紫毅.Linux窗口程序设计一Qt4精彩实例分
析[M].北京:清华大学出版社,2010.
[11]徐诚,高莹婷等.Linux环境C程序设计[M].北京:清
华大学出版社,2010.
[12]钱能.c++程序设计教程[M].北京:清华大学出版
社,1999.
作者简介
杨秋虎,硕士研究生毕业于华中科技大学,现为中船
重工昆明船舶设备研究试验中心技术员,主要研究方向嵌
入式系统软件研究.
中国科技核心期刊-——43—-——