MSP单片机低功耗数字录音仪系统设计方案.docx
《MSP单片机低功耗数字录音仪系统设计方案.docx》由会员分享,可在线阅读,更多相关《MSP单片机低功耗数字录音仪系统设计方案.docx(12页珍藏版)》请在冰豆网上搜索。
![MSP单片机低功耗数字录音仪系统设计方案.docx](https://file1.bdocx.com/fileroot1/2023-2/4/3652634d-aaf3-47ab-8aef-6005fe62f762/3652634d-aaf3-47ab-8aef-6005fe62f7621.gif)
MSP单片机低功耗数字录音仪系统设计方案
封面
作者:
PanHongliang
仅供个人学习
基于MSP430单片机的低功耗数字录音仪的系统设计
1前言
随着数字化家用电器的飞速发展,家庭智能化使得人们的生活方式、工作方式以及思维方式都发生了巨大的变化,未来的世界是数字的世界,未来的生活将是数字化的。
随着国民经济的不断发展,工业自动化水平的不断提高,越来越多的领域要求人们能对各种信息进行实时记录,包括语音、图像等,并且对记录信号的质量和容量的要求也不断提高。
目前市场上的一般的数字录音笔,由于其容量有限以及功耗高,导致录音时间比较短,且无法记录语音信息保存的起始时间,给用户检索及查阅带来诸多不便,因此设计一款不仅具有语音记录功能,并且可以方便用户编辑语音记录的低功耗的数字语音记录仪很有意义。
为了满足便携式系统的低功耗要求,本系统选择了超低功耗的16位单片机MSP430F449作为控制器,结合专门语音DSP芯片D6571E11、大容量闪存以及时钟模块完成数字录音仪的设计。
与一般数字录音笔相比,不仅可记录语音信息,还可自动记录语音记录起始时间,按时间进行排序,用户可以通过键盘和LCD显示器查阅和管理。
由于采用大容量闪存及低功耗控制芯片使系统可长时间记录语音数据,令数字录音仪的使用性能更令人满意。
2系统总体设计及原理
MSP430F449单片机是TI公司推出的一个新型单片机系列,其主要特点是:
超低功耗、16位指令、内置A/D转换器、串行通信接口、硬件乘法器、LCD(液晶)驱动器及高抗干扰能力等,其超低功耗的特性是目前业界所有内部集成Flash存储器产品中功耗最低的一种,在睡眠状态下其电流消耗仅为0.1uA,特别适用于便携式仪器。
强大的中断处理能力使CPU对每一个中断都做出快速响应,从睡眠状态被中断唤醒仅需6us。
D6571E11是一个语音信号处理芯片,其中包含了语音压缩、语音生成、电话线信号监视、闪存管理、以及数字语音回答系统的完全双工功能。
D6571E11完全由控制系统通过一些简单的指令来控制,从而来实现其系统功能,如录音、放音等。
所设计的数字录音仪要实现的主要功能包括:
录音、放音、编辑录音、设定时间等,比较有特色的是它的低功耗和大容量存储。
低功耗数字录音仪的系统总体设计主要分为4大部分:
语音数据采集模块、数据编码压缩模块、数据传输控制模块、数据存储模块。
系统整体框图如图1所示:
图1——系统结构框图
3系统硬件设计
MSP430F449单片机内部具有60KB的FLASH存储器和2KB的RAM存储器,完全满足数据存储和数据处理的要求。
大量外围模块整合到片内,有如下一些模块:
看门狗(WDT)、定时器A(TIME_A)、定时器B(TIME_B)、硬件乘法器、液晶驱动器、12位ADC、端口0~6、基本定时器等。
其中液晶驱动多达160笔段;可软件设置的USART模块能方便地实现和PC机的串行通信;而其JTAG技术、FLASH在线编程技术和支持C语言和汇编语言更使得开发调试变得高效方便。
D6571E1l是一单片数字信号处理器,但包含了所有与控制器、闪存、CODEC的接口电路。
由于D6571E11本身具有管理Flash和CODEC的功能,因此用单片机来控制系统和D6571E的工作,让D6571E11来控制语音数据的采集、压缩和存取等功能。
D6571E11最多可以管理4块4Mbit或1块16Mbit的闪存,而在正常情况下,每4Mbit的存储空间可以持续录音22-25Min。
由于D6571E11本身拥有与FLASH和CODEC的接口电路并且具有相应的管理功能,因此在系统实现过程中,只需利用单片机通过一些状态字和命令字来监视和控制语音DSP工作,所以硬件实现和软件编程都十分简便,只是存储空间有限,语音录音时间有限。
为了进一步扩展语音信号的数据存储空间,延长系统持续录音时间,利用了语音DSP芯片的实时数据传输功能,将Flash挂在单片机上,D6571E11将实时采集语音数据编码压缩后传给单片机,单片机将数据直接存储在FLASH中,回放则将数据读出送给D6571E11,实现语音的记录和回放功能。
系统以MSP430F449为数据处理和控制核心,充分利用MSP430F449丰富的片内资源,结合专门的语音DSP芯片D6571E11负责对语音信号的采集、压缩等处理。
整个系统按功能分成以下7个模块:
电源模块、LCD显示模块、键盘模块、实时时钟模块、录放功能模块、控制模块、数据采集处理模块。
系统硬件结构图如图2所示。
图2——硬件结构图
(1)数据采集处理模块:
主要是专门的语音DSP芯片D6571E11负责对语音信号的采集、压缩、编码等处理。
(2)MSP430F449控制模块:
是个微处理器,负责整个系统各个模块的工作。
(3)电源模块:
整个系统各种芯片的工作电压不一样,分别为+5V和+3.3V,因此需要有电压从+5到+3.3V转换,同时也给单片机提供复位信号。
同时需要提供-5V的电压给模拟电路使用。
(4)LCD显示模块:
采用LCD点阵字符型液晶显示屏显示时间、系统模式、记录时间以及记录信息数等内容,提供一个人机交互的友好菜单界面。
(5)键盘模块:
通过单片机具有中断功能的引脚设计键盘,通过按键执行相应录音功能,包括:
录音、放音、查阅信息、信息删除、修正时间,使用户对录音完成相应的编辑操作。
(6)时钟模块:
采用了DS12C887作为系统时钟的发生器,单片机负责对时钟的读取、记录和显示,为录音提供准确时间信息。
DS12887时钟模块给系统提供时间信息,系统可以实时显示年月日时分秒信息,记录语音模式下自动记录开始时间及结束时间并与语音数据一起存入FLASH中,以便于用户查阅语音存储时间、长度等信息。
(7)录放功能模块:
这是系统设计的核心部分,硬件设计要求实现单片机和语音DSP,单片机和FLASH,以及前端语音信号放大和采集3部分电路。
系统的录音过程就是语音信号经放大、采集、编码、压缩和存储的过程。
语音信号放大是利用模拟运放来实现的,放大倍数可调。
信号采集过程采用了CODEC芯片实现对语音信号的滤波、A/D转换和数字编码。
它的工作过程的控制和语音信号的数据压缩由专门的语音DSP来完成,最后通过数据实时传输功能,将它送给单片机,从而完成对它的存储。
而语音信号回放过程正好相反。
系统的功耗与系统工作频率成正比。
MSP430F449的时钟模块可提供4种时钟信号:
①ACLK(辅助时钟)可由软件选作各个外围模块的时钟信号,一般用于低速外设;②ACLK/n,ACLK经1、2、4、8分频后由P1.5输出仅供外部电路使用;③MCLK(系统主时钟),通过软件选择LFXT1CLK、XT2CLK、DCOCLK,然后经1、2、4、8分频得到,主要用于CPU和系统;④SMCLK(子系统时钟),可由软件选择来自XT2CLK和DCOCLK,主要用于高速外围模块。
不同频率时钟输出给不同的模块,才能实现整个系统的超低功耗。
例如:
在进行录音、回放等功能时,系统使用频率较高的MCLK供给CPU以满足高速数据运算的需要;当系统处于待机态时,则关闭MCLK,SMCLK,这时系统进入LPM3(低功耗模式3),功耗只在uA数量级的范围。
本设计要实现大容量存储,则采用K9F2808作为语音信号的存储器。
它是大容量NAND型闪存芯片,单片容量达16Mx8bit,以其快速读写循环、数据硬件保护、可擦除、I/O口命令,地址/数据总线复用和接口便利等特点,正成为大型数据如语音、数字图像、文件等系统数据的载体。
单片机将D6571E11编码压缩的语音数据存入存储器。
4系统软件设计
系统的软件实现主要是对MSP430单片机编程,通过实现各个模块的功能来实现系统工作。
IAR的EmbeddedWorkbench是一个适应不同CPU的目标系统开发集成环境,它提供方便丰富的窗口界面,使开发效率大大提高。
其中IAR的C430编译器提供了C语言的标准特性,并且添加了许多有利于MSP430系列特性而设计的扩展功能。
由于MSP430F449有JTAG调试接口和电擦写的FLASH存储器,因此采用先下载程序到FLASH内,再在器件内通过软件控制程序运行,由JTAG接口读取片内信息观察程序运行情
况,可方便调试和修改程序。
图3是系统软件流程图。
MSP430实验箱配置的主要功能特点是:
输出电压5v和3.6v;12键的行列按键和独立按键3个独立按键;显示128点(行)×64点(列)LCD点阵模块一个;4种通讯模式SPI、485、232、M_BUS;A/D转换接口;串行EEPROM模块;外部FLASHDATA模块;TIME_A比较/捕获模式接口。
所设计的数字录音仪中涉及到中文菜单实现,供用户选择需要的实现功能。
通过LCD显示和按键配合操作可完成各种功能选择和参数设置,由于全部采用汉字显示菜单,界面友好、直观、便于用户选择数字录音仪的功能,进行操作。
LCD液晶显示点阵模块的汉字,最重要的两个底层驱动函数:
写命令函数write_Command()和写数据函数write_data()
MSP430的P1、P2口具有中断功能,将P2.4~P2.7外接键盘,分别为上移键、下移键、确定键、返回键。
当有键按下时,进入中断,通过查询标志寄存器判断按键,从而实现相应的功能。
在人机界面中,主次菜单的使用已经非常普遍,菜单的嵌套实现也非常方便。
在主菜单中,首先通过按键移动到相应的菜单选项,按确认键后,进入次级菜单。
主程序中首先判断出是否是确认键,如是则结合当前菜单选项的位置,写具体的次级菜单。
次级菜单的显示和主菜单的显示方法完全一致,需要重新初始化LCD。
相应程序见附录。
图3——软件流程图
5结束语
以上介绍了基于单片机MSP430F449、专用语音DSP以及大容量闪存设计数字录音仪的工作原理。
此语音记录系统结构合理,设计简洁,具有友好的人机交互界面,与数字录音笔相比,实现长时间的语音记录和大容量的语音记录存储。
如果更换更大容量存储器或者硬盘可以使语音记录时间增加,性能更佳。
需要有语音DSP,在实验室,即可用MSP430专用开发实验箱和开发集成环境IAR的EmbeddedWorkbench加以实现。
参考文献:
[1]胡大可.MSP430系列FLASH型超低功耗16位单片机[M].北京:
北京航空航天大学出版社,2001
[2]沈建华,杨艳琴,翟骁曙.MSP430系列16位超低功耗单片机原理与应用[M].北京:
清华大学出版社,2004
[3]彭芳,张茂青,钱伟清.基于MSP430的的智能仪表的LCD驱动设计[J].电子工程师,2006,32(8):
41-43.
[4]李自珍,郭宝安.MSP430系列应用结构设计与选型[J].单片机与嵌入式系统应用,2007
附录:
⑴LCD液晶显示点阵模块的汉字,最重要的两个底层驱动函数:
写命令函数write_Command()和写数据函数write_data:
#include
/***********************************
*write_Command(),用于写命令到LCD,
*CS(片选)在此函数外设置
************************************/
voidwrite_Command(charcmd)
{
P2OUT&=0xfb。
//禁止EN
P3DIR=0xff。
P2OUT&=0xfc。
//rs=0,r/w=0
P3OUT=cmd。
P2OUT|=0x04。
//使能
P2OUT&=0xfb。
//禁止
}
/***********************************
*设置显示的位置,片选在函数外部设置
************************************/
voidmove_To(charx,chary)
{
unsignedchartmp。
tmp=(y&0x7f)。
if(tmp<64)//如果位置在Chip1
{
P2OUT&=0xbf。
//cs2=0
P2OUT|=0x08。
//cs1=1
write_Command(0xb8+x)。
//设置x
write_Command(0x40+tmp)。
//设置y
}elseif(tmp>63)//在chip2
{
P2OUT&=0xF7。
//cs1=0
P2OUT|=0x40。
//cs2=1
write_Command(0xb8+x)。
//设置x
write_Command(0x40+tmp-64)。
//设置y
}
}
/*****************************
*write_data,用于写数据到LCD
******************************/
voidwrite_Data(charcontent)
{
P3DIR=0x00。
//置位输入模式
P2OUT|=0x02。
//r/w=1读状态
P2OUT|=0x04。
//chip使能
while((P3IN&0x80)==0x80)。
//检测LCD是否忙
P2OUT&=0xfb。
//disableEN
P3DIR=0xff。
P2OUT&=0xfc。
//rs=0,r/w=0
P2OUT|=0x01。
//rs=1
P3OUT=content。
P2OUT|=0x04。
//p2.2=1使能
P2OUT&=0xfb。
//p2.2=0禁止
}
/*************************************
*清除chip1或者chip2上的某一区域,
选择的区域只是在同一chip上,x是页地址,
Y是列地址,h是多少行,w是指多少列.区域
可以是两个片组成的区域的任何位置
***************************************/
voidclear_Rect(unsignedcharx,unsigned
chary,unsignedcharh,unsignedcharw)
{
unsignedchartmpv,tmp。
for(tmpv=x。
tmpv<(x+h)。
tmpv++)
{
for(tmp=y。
tmp<(y+w)。
tmp++)
{
move_To(tmpv,tmp)。
//移动
write_Data(0x00)。
//清除当前位置的显示内容
}
}
}
/******************************
*初始化LCD
*******************************/
voidinit_LCD()
{
P3DIR=0xff。
//设置P3输出模式
P3OUT=0x00。
//初始值为0
P2DIR|=0xcf。
//P2.0~P3,P2.6,p2.7置为输出模式
P2OUT|=0x48。
//cs1,cs2为1,reset=0
NOP()。
NOP()。
NOP()。
P2OUT|=0x04。
//en=1
P2OUT|=0x80。
write_Command(0xc0)。
write_Command(0x3f)。
//显示开
clear_Rect(0,0,8,64)。
//清除第一块
clear_Rect(0,64,8,64)。
//清除第二块
}
⑵MSP430的P1、P2口具有中断功能,将P2.4~P2.7外接键盘,分别为上移键、下移键、确定键、返回键。
当有键按下时,进入中断,通过查询标志寄存器判断按键,从而实现相应的功能。
以下是键盘中断程序,需要指出的是必须设置一个location_flag指示菜单当前反白位置。
#pragmavector=PORT2_VECTOR
_interruptvoidport_key(void)
{
delay(50)。
while(~P2IN&0XF0)。
//判断是什么键按下
if(P2IFG&BIT4)//P2.4=0上移键按下
{
key_flag=4。
location_flag--。
if(location_flag<0)
location_flag=0。
//修改位置指针
}
elseif(P2IFG&BIT5)
key_flag=5。
//P2.5=0下移键按下
location_flag++;
if(location_flag>3)
location_flag=3。
//修改位置指针
elseif(P2IFG&BIT6)//P2.6=0确定键按下
{
key_flag=6。
}
elseif(P2IFG&BIT7)
{
key_flag=7。
}//P2.7=0返回
P2IFG&=0X0F;//清楚中断标志
}
版权申明
本文部分内容,包括文字、图片、以及设计等在网上搜集整理。
版权为潘宏亮个人所有
Thisarticleincludessomeparts,includingtext,pictures,anddesign.CopyrightisPanHongliang'spersonalownership.
用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。
Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.
转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。
Reproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationfortheuseofnewsorinformativepublicfreeinformation.Itshallnotmisinterpretormodifytheoriginalintentionofthecontentofthisarticle,andshallbearlegalliabilitysuchascopyright.