视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
基于单片机的语音录放系统设计研究
2025-10-03 03:54:34 责编:小OO
文档

学号:
毕业设计(论文)
题  目:

基于单片机的语音录放系统的研究
作    者

届    别

2007
系    别

专    业

电子信息工程
指导老师职    称

讲师
完成时间2007.01~2007.05

摘  要

随着、铁路等部门对语音记录的需求不断增长,出现了许多声音处理的产品。而数字录音系统作为其中的一种,经常用于某些监控对话系统中,在适当的时候用语音实时报告系统的工作状态和提示信号等。

I

本文介绍了一种用单片机实现的嵌入式数字录音系统,该系统为一个数字录音模块,可以将其封装在上面进行二次开发。它采用数字录音的原理,录音时,单片机的CPU将语音信号转换为数字信号,存储存储器中。播放的时候,既可以播放录音文件,也可以播放提前存入存储器中的语音文件。本文首先介绍了实现嵌入式录音的几种技术,然后介绍了数字录音的原理,在这之后进行了系统的总体结构设计和详细的软硬件设计,给出了系统调试过程和实验结果。最后,对系统的应用前景进行了分析并提出了改进设想。

从实验结果来看,本论文所设计的嵌入式数字录音系统稳定性较好。当然要真正做到商业化还需要做很多的改进工作,但它对许多要求录放的场合是十分有用的。

关键词: 嵌入式系统;数字录音;Flash Memory

ABSTRACT

With the growth of the need for sound record in the department of Gongan and Railway, many products for sound disposal have appeared. As one sort of the products, digital recording system is mainly used in the systems of industrial watch and automatic responsion, reporting timely the State of working and warning information, prompt information and explanation.

II

The paper has devised the embedded system of digital recording on the basis of the principle of digital recording. When recording, the microcontroller will convert the analog signals into the digital signals and then store the digital signals in the Flash Memory. While playing the sound, the recording file or the .wav file can be both played. The paper firstly introduces several ways of designing the system,then the principle of digital recording, and then the main architecture of the system and the devising of the hardware and software. At last the future of the system and some thinking of promoting is provided.

The embedded system of digital recording is proved to be stable after the test of it. Obviously the system has to be promoted before its commercialization,yet it is useful highly for the situation needing recording

Keywords: the embedded system;digital recording;Flash Memory

第1章 绪  论

1.1课题背景

随着我国经济建设的迅猛发展,、铁路、民航、金融等部门对语音记录的需求不断增长。把语音生成技术用于工业监控系统、自动应答系统、多媒体查询系统、智能化仪表、办公自动化系统或家用电气产品中,使它们具有语音输出功能,使之能在适当的时候用语音实时报告系统的工作状态、警告信息、提示信息或相关的解释说明等,无疑在提高人机通信能力、减少对错误处理的遗漏、提高系统性能、降低人们的工作强度等方面都有极大的好处。

数字录音系统是将现场的语音模拟信号转变为离散的数字信号,然后存储在一定的存储介质上的一种录音方式,它也是数字语音处理技术中常用的一种方式。采用数字录音技术,有较高的效率和自动化程度,录音时间也长,并可将信息长期保存于存储介质中,同时对语音信息进行编辑整理非常方便,可快速查找。

实现数字录音系统可以采用PC机实现和嵌入式系统实现两种方式。当使用PC机的时候,由于它的体积庞大,耗电高,造价也高,并且在某些情况下系统的稳定性得不到保证所以用PC机来实现前述的各项功能和操作,就受到了一定的。而嵌入式系统的体积小,供电方便,造价低,稳定性也高,所以得到了广泛的应用。

本文中设计的嵌入式数字录音系统,主要是要满足以下几个指标:

(1)足够长的录音时间,至少30分钟以上的时间,主要满足对长时间数字语音记录的需要;

(2)大容量非易失数据的存储器作为存储媒介,可以保存语音文件和一记录;

(3)灵活方便的控制方式,可以随心所欲地进行客户所需要的各种对语音的操作;

(4)好的语音质量的保证,必须有足够高的采样频率; 

(5)合理的数据压缩方式,既保证语音的质量,又要尽可能地充分地利用存储空间;

(6)同时录放音,即实现语音数据全双工传输;

(7)与PC机联机,能够将语音文件传入存储器,以备播放时用。

现阶段下,实现嵌入式录音系统主要有三种方案:语音芯片实现、DSP芯片实现和通用单片机实现。

1 .2 当前嵌入式录音系统实现的方案

1.2.1语音芯片的采用

采用语音芯片进行录音是一种可行的方法,它有音质自然、单片存储、反复录放、低功耗等优点。

现有的主流语音芯片有以下几种:

(1)ISD系列[8]

一块 ISD 芯片上集成有麦克风前置放大器(AMP)、自动增益控制电路(AGC)、抗混淆和平滑滤波器、模拟存储阵列、扬声器驱动器、控制接口和内部精确的参考时钟,外部元件包括:麦克风、扬声器、开关和少数电阻、电容,再加上电源和电池。ISD系列语音芯片包括如下几种:

表1.1 ISD系列语音芯片技术指标

芯片型号录音时间采样频率特点
ISD1400系列

16-20秒

6.4-8.OKHz边缘/电平触发音,EEPROM存储器,真实、自然再现语音和音乐,100,000次录  音周期(典型值)

ISD2500系列

32-120秒

4.0-8.OKHz边缘/电平触发音,EEPROM存储器,实自然再现语音和音乐避免了量化噪音,100,000次录音周期(典型值)

ISD33000系列

60-240秒

4.0-8.OKHz自动静噪功能,内置微控制器串行通信接口,EEPROM存储器,真实、自然再现语音和音乐,避免了量化噪音,反复录音十万次

ISD4003系列

4-8分钟

4.0-8.OKH

自动静噪功能,内置微控制器串行通信接口,音质真实自然,EEPROM存储器,反复录音十万次

ISD 系列芯片的控制录放音有两种方式:引脚的边沿或电平触发控制和微控制器串行通信接口控制,这两种方式都不能用类似文件的方式进行控制,因此操作不方便;它的存储器采用的是非易失数据的EEPROM,但它的容量较小,由表1.1可以看出,最大录音时间只有8分钟;另外,ISD系列芯片不能同时进行录放音。由于上述原因,本嵌入式数字录音系统不采用ISD系列语音芯片。

(2)APR系列

APR系列录放语音芯片有以下几种:

表1.2 APR系列语音芯片技术指标

芯片型号录音时间采样频率特点
ISD1400系列

16-20秒

6.4-8.OKHz边缘/电平触发音,EEPROM存储器,真实、自然再现语音和音乐,100,000次录音周期(典型值)

ISD2500系列

32-120秒

4.0-8.OKHz边缘/电平触发放音,EEPROM存储器,真实、自然再现语音和音乐,避免了量化噪音,100,000次录音周期(典型值)

ISD33000系列

60-240秒

4.0-8.OKHz自动静噪功能,内置微控制器串行通信接口,EEPROM存储器,真实、自然再现语音和音乐,避免了量化噪音,反复录音十万次

ISD4003系列

4-8分钟

4.0-8.OKHz

自动静噪功能,内置微控制器串行通信接口,音质真实自然,EEPROM存储器,反复录音十万次

APR系列芯片的控制录放音有两种方式:电平触发录音、边缘触发放音控制和微控制器串行外设接口控制,这两种方式也都不能用类似文件的方式进行控制,因此操作不方便;它的存储器采用的是非易失数据的多段式闪存,由表1.2可以看出,APR系列语音芯片最长的录音时间也只有16分钟;另外,APR系列芯片也不能同时进行录放音,所以本嵌入式数字录音系统亦不采用APR系列语音芯片。

1.2.2 DSP芯片的采用[2][4]

DSP芯片,也称数字信号处理器,是一种特别适合于数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有以下特点:

(1) 在一个指令周期内可完成一次乘法和一次加法运算。

(2) 程序和数据存储空间分开,可以同时访问数据和指令。

(3) 片内具有快速RAM,通常可通过的数据总线进行访问。

(4) 具有低开销或无开销执行循环及跳转操作的硬件支持。

(5) 快速的中断处理和硬件I/O支持。

(6) 在单周期内操作的多个硬件地址产生器。

(7) 可以并行执行多个操作。

(8) 支持流水线操作,不同操作阶段可以重叠执行。

从以上的特点可以看出,DSP芯片具有较快的运算速度和较短的指令周期,它的应用领域也非常广泛,对于语音的处理也是它的一个应用。在本嵌入式数字录音系统中,未选择DSP芯片主要是基于以下几个因素的考虑:

(1) 运算速度。本系统中,对运算速度的要求,主要是要满足每一个AD变换后的数据都能及时地存入存储器,从后面的分析可以看出,通用单片机的处理能力已经可以满足本系统的需要。

(2) 运算精度。本数字录音系统没有复杂的数学计算,所以没有对运算精度的要求。

(3) 片内硬件资源。本数字录音系统由于必须能同时进行录放音,所以AD和DA的功能是必需的,对DSP芯片,若外接AD或DA元件,增加了复杂度,也提高了成本。

(4) 功耗 。DSP芯片实现的功能较多,所以它的功耗相对较高。

(5) 开发调试工具。因为选用DSP芯片的同时,还要增加它的开发调试工具,因此提高了成本。

(6) 价格 。DSP芯片的价格虽然己经降到很低,但相对于C8051F系列微处理器,还是要高一点,因此从成本考虑的话,选择一个价格相对较低的产品可以带来利润和产品竞争力的提高。由于上述原因,本系统未采用DSP芯片,而是选用了通用的单片机。  

1.3 本论文的任务

在铁路公寓的叫班机系统和铁路机车上,都需要播放语音提示,为了界定责任,放音的同时还要将这些语音录制下来,这样在发生事故的时候,从录制的该语音情况就可以判断出谁是事故的责任方。

本系统就是针对类似的这种应用进行设计的,这种嵌入式数字录音系统,可以播放预先存储在存储器里的语音文件或它们的组合,也可以播放录音后存在存储器里的声音文件,在自己播放语音文件的同时,它还可以通过麦克风将该声音连带外界的声音一起录制下来,作为对播放过该语音文件的证明。另外,通过它的TTL232接口,可以向其中输入命令来执行录放音、读取参数、传送文件等多种操作。为了实现这些功能,本嵌入式数字录音系统必须在下列各项指标上达到要求:

(1)录音时间。本系统的录音时间应该在30分钟以上,以满足对长时间录音的需要。为了实现如此长时间的录音,必须有大容量的存储设备。

(2)非易失数据的存储器。语音和录音文件必须能保存下来,才能用来重复播放,以满足需要。

(3) 合适的采样速率。由于本系统处理的不是音乐,而是语音信号,所以11.025KHz的采样速率可以保证录音和放音的质量。

(4)与PC机的联机功能。要实现对本数字录音系统的控制,应考虑与PC机联机,通过TTL232接口发送相应的命令来实现相应的操作,另外也要通过TTL232接口将语音文件传入存储器。

(5)数据的压缩。适当的数据压缩,可以减少存储器空间的用量,增大录音时间,但由于存储器的录音区是循环利用的,为了降低算法的复杂度,少占用更多的系统资源,所以本系统没有采用语音数据的压缩。

第2章 数字录音的基本原理

2.1模拟音频和数字音频[1][9]

声音是由物体振动产生的,振动发声的物体称为声源。在空气中,声源的振动会使周围的空气质点产生一定的疏密变化,并以一定的速度传播出去形成声波。因此声波是疏密波,也称为纵波。[1]

包围地球表面的大气层,随高度的不同而存在不同的大气压强。有声音存在时,大气压强会有微弱的起伏变化,即在静态大气压强上叠加了变化的分量,这个变化的分量称为声压p,通常声压的大小用它的有效值P表示,单位是Pa。人耳刚好能听到的声压约为2×10-5Pa,在房间中大声说话,在相距1米处的声压约为0.05~0.1Pa。声音在1秒间所传播的距离称为声速c,单位是米/秒(m/s),在室温下,1个大气压的空气中,声速约为340m/s.当声源作周期性振动,所发出的声波也是做同样的周期性振动,声源或声波每秒钟内的振动次数称为声音的频率f,单位是赫兹Hz,人耳能听到的声音频率范围是2OHz-20kHz。

单位时间内穿过垂直声波传播方向单位面积的声能称为声强,单位是瓦/平方米(W/m2)。人耳对声振动的感受,在频率及声压级方面都有一定的范围,在这个范围以外的声振动人耳是听不到的。人耳能感觉到的声振动约在20Hz-20kHz之间,称为可听声。紊乱断续或统计上随机的声音称为噪声,对于不需要的声音也称为噪声。噪声也用它的声压级dB数来表示它的大小,称为噪声级。在寂静的环境里,人耳能分辨出轻微的声音,但在嘈杂的环境中,这些轻微的声音就被淹没掉了。由于第一个声音存在而使第二个声音提高的现象称为掩蔽效应。掩蔽效应对数字音频编码起到重要作用。

2.2数字音频技术的概念[1][9]

模拟量是指在时间上和幅度上都是连续的量,声波就是声压幅度随时间连续变化的模拟量,它由传声器转换成声频信号后,也是时间和电压幅度都连续变化的模拟信号。如果幅度只是一些特定值的阶梯波,则是时间连续而幅度不连续的信号。幅度连续而时间不连续的信号是脉冲幅度(PAM)调制信号。时间和幅度都不连续的信号是数字信号。从模拟磁带录音机和数字磁带录音机的比较来看,模拟录音存在很多缺点:

(1) 在录音、编辑和放音过程中混入的各种噪音不能被分离出来,形成对信号的损伤。

(2) 录音媒体的信噪比可成为记录信号信噪比的一部分。

(3) 录音磁头、放音磁头等呈现的非线性会使记录的信号也呈现非线性。

(4) 驱动、转动机械系统的不稳定会造成抖晃。

数录音是将模拟信号转变为离散的数字信号后进行记录的。对于需要多次转接、复制的模拟录音,每转接、复制一次,信号的质量下降程度就要累加一次,而数字录音就没有这一问题。数字录音具有下列优占。

(1) 数字化的标准(取样频率、量化比特数)确定以后,性能的界限也就确定了,性能是稳定的。

(2) 录音是以“0”或“1”数字进行的,放音时,只需判断出“0”或“1”,即判断脉冲“有”“无”即可,因而记录媒体的信噪比与放音信噪比无直接的关系。

(3) 许多器件不需要具有线性。

(4) 驱动、转动系统的不稳定,由于时钟脉冲信号和存储器的作用,不会造成晃。

2.3语音信号的数字化

将模拟信号转变成数字信号,需经过取样、量化和编码三个步骤。

2.3.1取样[1][3]

(1)取样定理

模拟声频信号可用幅度对时间的关系来表示,将模拟信号的幅度以一定的时间间隔取得样值,称为取样(或采样、抽样)。取样的时间间隔称为取样周期,每秒内取样的次数称为取样频率。根据取样定理,当取样频率fs为被取样信号最高频率fh的两倍时,则被取样信号可以被恢复,即fs≥2fh

(2)取样频率

取样频率的选取应考虑以下两点:

1)声频信号的最高频率;

2)防混叠低通滤波器的截止特性。数字音频的质量与采样频率和量化精度有关,数字音频可分为以下几个质量等级[7]:

表 2.1 数字音频质量等级

信号类型频率范围(Hz)

采样频率(KHz

量化精度(位)

电话语音200~340088
宽带音频50~70001616
调频广播20~15K37.816
高质量音频20~20K44.116
由于本系统录音的对象是人说话时的语音,人的语音频率大概在300Hz至3.4KHz之间,根据取样定理,采样频率应该高于6.8K Hz,从表2.1可以看出,普通语音选取的是8 KHz,但为了提高声音的保真度,减少滤波实现的难度,同时与微机的录音频率最大程度地接近,所以系统选取采样频率为11.025KHz。

3) 混叠的防止

经过取样后,原信号的频谱分布要有改变。如果取样频率小于信号最高频率的两倍,或信号的实际最高频率超过了f,则会产生频谱混叠现象,以后就无法将原信号复原,并且出现混叠噪声。为了将声频信号严格在f以下,应先让原信号通过一个高频截止频率为f的低通滤波器后再进行取样。

4) 取样保持电路

取样保持电路是在A/D变换器之前,为使取样保持一定时间而设的。由于A/D变换器的转换需要一定时间才能完成,而输入的模拟信号是不断变化的,因此取样值必须保持一定时间。

5) 取样产生的孔径效应

取样定理所叙述的由取样的PAM 信号可以完全恢复原模拟信号是有条件的,即取样脉冲的宽度(即脉冲所占时间)应为无限小,但实际的取样脉冲都有一定的宽度,这就会使恢复的模拟信号的高频特性产生失真,这种效应称为孔径效应。实验证明,当取样脉冲宽度为取样周期的1/4时,孔径效应所产生的高频损失约为0.2dB,人耳对它不能察觉到,不会成为问题。

2.3.2量化[1][3]

(1)量化的概念

将模拟信号的取样值,经“四舍五入”的方法转换成一种数字信号的过程称为量化。在数字语音技术中,我们采用二进制表示一个数,即用“1”“0”来表示一个数,逢2进1,用电路的接通和断开即可实现。采用二进制时的有效位数称为比特数或位数,在进行舍入运算的过程中会产生舍入误差。

由取样定理知道,如果取样频率能满足这个定理,就会完全恢复原波形,但要真正完全恢复原波形,则需要无穷多位数。在通常的数字系统中,每个取样点都会产生舍入误差,并且存在与这种舍入误差相应的失真和噪声,称为量化噪声或量化失真。量化阶 梯数,或量化级数,是指量化所能取值的数目。以二进制量化时,位数越多,量化阶梯数也就越多,16位的量化阶梯数为65536个,量化误差己很小。对于量化阶梯相等的量化方法称为线性量化或均匀量化,不相等则称为非线性量化或不均匀量化。均匀量化的量化噪声也是恒值,因此信号幅度大时,信噪比高;信号幅度小时,信噪比低,噪声较明显。非均匀量化在信号幅度小的时候,量化阶梯高度也小,信噪比可以较好。信号幅度大的部分,量化阶梯高度也大,虽然量化噪声大,但由于人耳的掩蔽效应,对信号幅度大时增大的噪声会感觉不出来。由表2.1 可以看出,对于普通语音,量化精度选取8位就可以满足数字化语音质量的要求,因此本系统的量化位数就选取8位。2量化噪声

                                                                (2.1)

当声噪信号为正弦波时,并且峰峰值为1,则在单位负载上的功率S为

                                                                 (2.2)

于是,可以算出以dB表示的信噪比为

                                                     (2.3)

可见,量化比特数M越大,信噪比越好。量化噪声是均匀分布在0-fs/2的频带中,另外量化噪声的振幅为常数,它等于△,不随信号大小而改变,因而当信号很大时,系统的信噪比很高;但当信号很小时,则量化噪声对系统的音质影响就将十分明显。量化噪声的减低对于量化噪声可采用在信号中加给高频抖动信号的方法,量化后,再减去高频抖动信号,而使量化噪声白噪声化。量化噪声随量化比特数增大而相应减小,但不能减为零。量化噪声是不同于白噪声(即等带宽能量相等的噪声)的一种高频噪声,它是由比较少的孤立频谱重叠而成的噪声。因此在听感上与白噪声不同,是一种较粗糙的、刺耳的、称为颗粒性噪声的声音。可以将一种称为高频脉动的、与量化阶梯高度相等的小振幅白噪声与信号重叠,经量化后,颗粒性噪声即被白噪声化,使听感变好。

理论上将与量化阶梯高度v相等的均匀分布的高频抖动在量化前先与信号相重叠,量化后再将高频抖动除去,量化噪声就成为宽度为V、电功率v2/12的均匀分布的白噪声。另外 ,还可由过取样减低量化噪声,利用非均匀量化的输入输出特性也可减低量化噪声。

2.3.3编码[1][3]

二进制使用“0”或“1”两个数字,逢二进一,用二进制数表示某一数值时,这一二进制数称为字,这种表示过程称为二进制编码。常用的各种二进制码有自然二进制码、偏移二进制码、2的补码、偏移反射二进制码和折叠二进制码。将模拟信号转换为数码,然后再转换成二进制数字信号的方法称为脉冲编码调制(PCM),冠以脉冲是因为转换后的数字信号以脉冲形式出现。

2.4数字信号的检错、纠错及模拟信号的恢复

2.4.1数字信号的检错和纠错[1]

数字信号在传输或记录过程会产生误码,根据产生的状态,误码可分为随机性误码和突发性误码两类。随机性误码是指彼此孤立的误码,突发性误码是指彼此连续的集中误码。

为了避免重放已记录的数字信号时,由于各种原因所造成的连续的突发性误码影响重放,采取在记录时改变数字信号的顺序,重放时再按原来顺序重排回来的措施称为交织。经过交织,可以将记录媒质上所产生的突发性误码,在信号恢复为原来顺序后被分散开形成随机性误码,以便于采取措施进行纠错。常用的检错和纠错方法有:奇偶校验码、交叉交织码、循环冗余校验码和邻接码。

2.4.2模拟信号的恢复

数字信号经反交织、纠错码处理和D/A变换后,还要经窗口电路和低通滤波器才能恢复为模拟信号。

(1)窗口电路

D/A 变换器的输出信号需馈送到一个窗口电路,窗口电路是由一个模拟开关和两个缓冲放大器组成。因为D/A变换器的输出信号必须经过一定时间后才能达到稳定值,利用来自模拟开关的控制信号,可在波形稳定后读出电压值,输出PAM信号。

(2)解调低通滤波器

当窗口电路输出的PAM信号,如果设计得使下一个脉冲正好在上一则通过低通滤波器后的脉冲串可变为各个脉冲响应的合成波,重现出原信号的波形。

第三章 系统的硬件设计

在前一章介绍的数字录音原理的基础上,结合实际的情况和需要,从系统的任务和要求入手,开始对系统进行总体设计。

3.1系统的硬件总体设计

嵌入式数字录音系统应由下面各部分组成,如图3.1所示。

本嵌入式数字录音系统采用包含有AD与DA电路的单片机来实现模拟信号和数字信号的相互转换,因此不需要再另外设计专门的AD与DA变换电路,其中单片机中的DA变换己实现窗口电路的功能,所以本系统也无需再设计窗口电路。在语音信号从驻极体麦克风进入通用单片机之前,应该进行信号的放大和滤波处理,所以应有相应的输入电路和器件;同样在放音的时候,信号经过DA变换后,也要经过滤波和放大处理,最后通过扬声器将语音播放出来。

为了保证录音时间满足要求,本系统连接了一片Flash Memory来存储语音文件和其它的相关参数。Flash Memory又称闪烁存储器、快闪存储器,是一种高密度低成本的大容量新型半导体存储器,由于Flash Memory断电后数据不会丢失,同时它的容量较大,32M的空间在11.025KHz的速率下,录音可达到40多分钟的时间。因此,Flash Memory是实现本系统各种功能的保证,也是系统的关键技术之一。考虑到应对本数字录音系统进行控制,以实现录放音等操作,所以本系统设计了TTL232接口与PC机相连,PC机发送相应的指令控制单片机进行不同的操作。

本系统主要由通用单片机、一片Flash Memory,输入信号放大电路和输出信号电路组成,通过TTL232接口与PC机相连,当PC机发出相应的指令,系统可执行相应的操作,这些操作包括:录音开始、录音结束、放音开始、中断放音、传送文件、擦除块、读取系统参数、读取列表区数据[6]。如下图3.2:

                输入

                输出                                               

PC机

                                                         TTL232接口

图3.2  系统硬件结构图

在录音时,声音信号放大后通过AD管脚进入单片机,经过AD转换后,数据被存储在Flash Memory 中,放音时单片机将存储在Flash Memory中的语音数字信号(可以是录音数字文件数据,也可以是固定的语音文件数据)。经过DA转换后再经DA管脚输出,经输出电路通过扬声器将声音播放出来。

录音的命令格式是:RECORD[文件名],[日期],[时间],[格式]#;录音结束的命令格式是:END#。

放音的命令格式是:PLAY[文件名],[日期],[时间],[格式]#;中断放音的命令格式是:STOP#。

传送文件是将特定语音的语音文件从PC机通过TTL232串口传入Flash Memory中,当播送特定的语音时,可以将这些固定语音的语音文件进行拼接,然后播放出来。擦除块是将Flash Memory中存储的某些数据删掉,以写入新的数据。读取系统参数是将Flash Memory中存储的诸如版本号、日期、录音区和放音区开始地址、总长度、首尾指针以及录音最大长度、格式等系统信息通过TTL232串口传送至PC机以备察看和使用。读取系统参数的命令格式是:READ#。

由于列表区存储的是语音文件的信息,如:文件名、日期、时间、起始地址、长度和格式,所以读取列表区数据就是将这些信息通过TTL232串口传送至PC机,使用户可以了解文件的各种信息以及存储区的使用情况。读取列表区参数的命令格式是:LIST1/2#。

系统在实现录放音的功能时,采样频率为11.025KHz。在输入录音命令和文件名等参数之后,系统开始录音,输入停止录音命令或录音时间达到预设值后,系统即停止录音。在播放语音文件时,只要输入放音命令和要播放的连续文件名即可,可以中断正在播放的语音来进行其它的操作。

3.2 C8051F020简介[5]

3.2.1 微处理器

本系统中选择Cygnal公司的C8051F系列,原因是:C8051F系列单片机有丰富的模拟和数字资源,并采用了一些在单片机中前所未有的新技术,在CPU的内部和外部有几项关键性的改进,提高了整体性能,更易于在最终应用中使用。它有如下的优点:

(1) 高速的CIP-51内核。为了提升速度,DALLAS公司PHILIPS公司采用传统的改变总线速度的方法,将机器周期从12个缩短到4个和6个,速度提升有限。C8051F单片机使用Cygnal的专利CIP-51内核,CIP-51核采用流水线结构,机器周期由标准8051的12个系统时钟周期同期降为1个系统时钟周期,处理能力大大提高,大部分C8051F单片机的峰值性能达到25MIPS。CIP-51的中断系统可以提供22个中断源,允许大量的模拟和数字外设中断微控制器。一个中断驱动的系统需要较少的MCU干预,却有更高的执行效率。

(2) I/O实行交叉开关配置。迄今为止,I/0端口大都是固定为某个特殊功能的输入/输出口,可以是单功能或多功能,I/0端口可编程选择为单向/双向以及上拉、开漏等。固定方式的I/0端口,既占用引脚多,配置又不够灵活。为此,Scenix公司在推出的8位SX单片机系列中,采取虚拟外设的方法将I/0的固定方式转变为软件设定方式。而在C8051F中,则采用开关网络以硬件方式实现I/0端口的灵活配置。在这种通过交叉开关配置的I/0端口中,单片机外部为通用I/0端口,如P0.P1和P2。内有输入/输出的电路单元通过相应的配置寄存器控制的交叉开关配置到所选择的端口上。

(3) 双重系统时钟。C8051F单片机内部有一个能工作的时钟发生器并具有外部振荡器驱动电路。在复位后内部时钟发生器被默认为系统时钟。外部振荡器可以使用晶体、陶瓷谐振器、电容、RC电路或外部时钟源产生系统时钟。如果需要,时钟源可以在运行期间在内部振荡器和外部振荡器之间切换。这种时钟切换功能在低功耗系统中是非常有用的,它允许MCU从一个低频率(节电)外部晶体源运行,当需要时再周期性的切换到高速的内部振荡器。

(4) 在系统调试。C8051F单片机具有片内JTAG和调试电路,通过4脚的JTAG接口并使用安装在最终应用系统中的器件就可以进行非侵入式、全速的在系统调试。Cygnal的调试系统支持观察和修改存储器和寄存器、支持断点、观察点、堆栈指示器和单步执行。调试时不需要额外的目标RAM,程序存储器、定时器或通信通道,并且所有的模拟和数字外设都正常工作。当MCU单步执行或遇到断点而停止运行时,所有的外设(ADC除外)都停止运行,以保持同步。对于开发和调试嵌入式应用来说,该系统的调试功能比采用标准MCU仿真器要优越得多,标准MCU仿真器要使用在板仿真芯片和目标电缆,还需要在应用板上有MCU的插座。Cygnal的调试环境既便于使用又能保证精确模拟外设的性能。

(5) 多源复位。迄今为止的80C51系列单片机多数停留在只提供引脚复位一种方法。为了系统的安全和CMOS单片机的功耗管理,对系统的复位功能提出了越来越高的要求。Cygnal公司的C8051F把80C51单一的外部复位发展成多源复位。C8051的多复位源提供了上电复位、掉电复位、外部引脚复位、软件复位、时钟检测复位、比较器0复位、WDT复位和引脚配置复位。众多的复位源为保障系统的安全、操作的灵活性以及零功耗系统设计带来极大的好处。

(6) 最小功耗系统的最佳支持。在CMOS系统中,按照CMOS电路的特点,其系统功耗WS为:

                       WS=CV2f                          (3.1)

式中, C为负载电容,V为电源电压,f为时钟频率。C8051F是8位机中首先摆脱5V供电的单片机,实现了片内模拟与数字电路的3V供电,大大降低了系统功耗;完善的时钟系统可以保证系统在满足响应速度要求下,使系统的平均时钟频率最低;众多的复位源使系统在掉电方式下,可随意唤醒,从而可灵活地实现零功耗系统设计。因此,C8051F具有极佳的最小功耗系统设计环境。C8051F虽然摆脱了5V供电,但仍可与5V电路方便地连接。所有1/O端口可以接受5V逻辑电平的输入,在选择漏开加上拉电阻到5V后,也可驱动5V的逻辑器件。

在C8051F系列单片机中,常用的有C8051F310,F020,F022,F005,和F330,其基本参数如下

表3.1常用C8051F系列单片机的型号和参数

芯片

型号MIPS

(峰值)

FLASH

存储器

(字节)

RAM

(字节)

外部

存储器

接口

数据

I/0口

ADC精

度及转

换速率

DAC

输出

F3102516K1280--2910bit,

21ch,

200ksp

--
F02025K432512bit,

8ch,

100ksps

12bit,

2ch

F02225K43258bit,

8ch,

500ksps

12bit,

2ch

F0052532K2304--312bit,

8ch,

100ksps

12bit,

2ch

 F330258K768--1710bit,

16ch,

200ksp

10bit,

lch

从表3.1可以看出,在时钟频率为25MHz时,各个芯片的速度可达到25MIPS,能满足本系统的要求。

3.2.2 C8051F020的资源和特性

C8051FO20器件是完全集成的混合信号系统级MCU芯片,具有个数字I/O引脚。其主要特性如下:

(1)高速、流水线结构的8051兼容的CIP-51内核(可达25MIPS) 

(2)全速、非侵入式的在系统调试接口(片内)

(3)真正12位、100ksps的8通道ADC,带PGA和模拟多路开关

(4)两个12位DAC,可编程更新时序

(5)K字节可在系统编程的FLASH存储

(6)4352(4096+256)字节的片内RAM

(7)可寻址K字节地址空间的外部数据存储器接口

(8)硬件实现的SPI.SMBus/I'C和两个UART串行接口

(9)5个通用的16位定时器

(10)具有5个捕捉/比较模块的可编程计数器/定时器阵列

(11)片内看门狗定时器、VDD监视器和温度传感器

具有片内VDD监视器、看门狗定时器和时钟振荡器的C805IF020是真正能工作的片上系统。所有模拟和数字外设均可由用户固件配置为使能或禁止。FLASH存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051固件。

片内JTAG调试电路允许使用安装在最终应用系统上的产品MCU进行非侵入式(不占用片内资源)、全速、在系统测试。该测试系统支持观察和修改存储器和寄存器,支持断点、观察点、单步及运行和停机命令。在使用JTAG调试时,所有的模拟和数字外设都可全功能运行。每个MCU都可在工业温度范围(-45℃到+850℃)内用2.7V-3.6V的电压工作。端口I/O.瓜ST和JTAG引脚都容许5V的输入信号电压。C8051FO20为100脚TQFP封装。其参数如下:

MIPS(峰值):25        FLASH存储器:k        RAM: 4352

外部存储器           SMBus/I'C              SPI

UART: 2个            定时器(16位)           可编程计数器阵列

数字端口I/0          12位100kspsADC输入     10位100ksps ADC输入

8位500kspsADC输入                           电压基准

温度传感器           DAC分辨率:12           DAC输出:2

电压比较器:2         封装:100TQFP

C8051F020有一个片内12位SARADC(ADCO),一个9通道输入多路选择开关和可编程增益放大器。该ADC工作在100ksps的最大采样速率是可提供真正的12位精度。ADCO的电压基准可以在DACO输出和外部VREF引脚之间选择。C805IF020器件的ADCO有其专用的VREFO输入引脚,片内15ppm/℃的电压基准可通过VREF输出引脚为其它系统部件或片内ADC产生基准电压。

ADC完全由CIP-51通过特殊寄存器控制。有一个输入通道被连到内部温度传感器,其它8个通道接外部输入。8个外部输入通道的每一对都可被配置为两个单端输入或一个差分输入。系统控制器可以将ADC置于关断状态以节省功耗。

可编程增益放大器接在模拟多路选择器之后,增益可以用软件设置,从0.5到16以2的整数次幕递增。当不同ADC输入通道之间输入的电压信号范围差距较大或需要放大一个具有较大直流偏移的信号时(在差分方式,DAC可用于提供直流偏移),这个放大环节非常有用。A/D 转换 有4种启动方式:软件命令、定时器2溢出、定时器3溢出和外部信号输入。这种灵活性允许用软件事件、外部硬件信号或周期性的定时器溢出信号触发转换。一次转换完成可以产生一个中断。在转换完成后,10或12位转换结果数据字被锁存在两个特殊功能寄存器中,这些数据字可以用软件控制为左对齐或右对齐.窗口比较寄存器可被配置为当ADC数据位于一个规定的范围之内或之外时向控制器申请中断。

3.3 Flash Memory[6][13]

由于Flash Memory的容量, 并且录音区又是循环使用的,所以本系统中的语音数据没有压缩。它的组织与使用情况如图3.3所示:

对于Flash Memory的组织是以块为单位的,第一块存储系统的参数,如:版本编号、日期、录放音列表去、数据区的开始地址、总长度、首指针、尾指针等。录放音列表区分别占一块,存储关于文件的参数,诸如:文件名、日期、时间、起始地址、长度和格式等。放音数据区存储的是提前录制好的、由PC机传送过来的语音文件,播放这些文件或者他们的组合时,也是从这里读取数据。

录音数据区存储的是录音文件,对于录音数据区的管理是采用循环利用的方式,即录音文件依次存储,当剩余空间小于系统参数之一最大录音长度时,就将录音数据区最前面的文件删除,这样就保证剩余的空间可以存储下一个录音文件。这时文件的参数发生变化,也需要增加或删除录音列表区文件的参数。同样,录音列表区的空间也是循环利用的,这是通过列表区的尾指针来实现的。当指针指到该块的末尾时,若要指向下一个文件参数,就需要指回该块的开始处。

3.4 输入放大电路和输出电路的设计

系统的输入放大电路这样实现滤波、语言信号的放大和语音信号幅度的功能,而输出电路主要实现功率的放大,起到隔离和加强输出信号的作用。根据系统的硬件结构图和对硬件的设计,可设计出电路如附录I。

嵌入式数字录音系统的电路板外观图如3.4。

图3.4 系统电路板图

第四章 系统的软件设计

4.1  软件的总体设计[11][12][14]

系统功能的实现依赖于软硬件的协同工作。软件开发有两部分的工作,它们是单片机控制软件和PC机控制软件。单片机控制软件实现录放音、中断放音、停止录音、读取参数等功能,PC机控制软件实现向单片机传送系统参数和语音文件功能。

单片机控制软件采用循环查询方式,即各种操作都有一个标志位,系统循环检查各标志位,若发现某标志位置1,即执行相应的操作,若有标志位同时置1,则按照程序的顺序先后执行。主程序流程如图4.1。 

图4.1 主程序流程图

循环处理子程序:

从TTL232接口传送到单片机的如果是完整的操作命令,则命令字符转入命令处理子程序处理,命令参数则转入参数处理子程序进行处理。在传 送 语 音文件数据时,由于Flash Memory读写是以一页为单位的,所以当单片机接受到一页数据的时候才进行处理。

在录放音过程中,不论是录音还是放音,都是分三部分进行的,这样做的目的是能够同时录放音,即在微观上是顺序执行,但在宏观上是并行执行的。首先是初始化,即进行录音或放音的准备工作,然后是录音或放音的执行,即向Flash Memory种写入语音数据或从Flash Memory中读出语音数据,最后是录放音结束,进行一些收尾工作。

若要了解系统的一些工作状况,可通过从Flash Memory中读取系统参数和录音区参数、放音区参数来实现。这些参数有的是预先存入Flash Memory中的,有的是进行录音后才存入Flash Memory中的。循环处理子程序工作流程如图4.2所示:

    

图4.2循环处理子程序流程图

4.2 单片机控制程序

单片机控制程序在收到PC机传送的命令和数据将进行相应的处理,另外还实现将语音文件写入Flash Memory、录放音初始化、录放音、录放音结束、读取系统参数和列表区参数的功能,各操作相应的标志位来控制。系统的主程序以循环查询的方式检测各标志位,有标志位置“1”即执行相应的子程序。

4.2.1 文件传送子程序

该程序接受PC机传送来的语音文件和列表文件,进行数据的校验,如果无误则写入Flash Memory写操作以一页(512byte)为单位,相应的地址中。由于Flash Memory因此接收数据也是以一页为单位,因此接收数据也是以一页为单位。数据丢失或有误,则重新传送刚才的数据页。流程图如图4.3所示:

图4.3 文件传送子程序流程图

4.2.2 录音子程序

录音初始化首先是通过查找系统参数找到录音区空白块、空白页的起始地址,语音文件的数据就从这地址开始存储;同时读出最大录音时间和长度,这两个参数是用来自行停止录音的。当没有收到录音结束的命令时,超过最大时间或长度时,录音即自行停止。读出这两个参数后,打开控制AD变换速率的定时器,然后打开AD变换操作。录音时,每当AD转换后的数据满一页,就将其写入Flash Memory中当一块写满后,空白指针就指向下一空白有效块。录音子程序流程图如图4.4。

录音结束后,首先停止AD转换,然后将控制变换速率的定时器关掉。这时候,变换后的数据可能不满一页,将这些数据写入Flash Memory中,由于录音区的空白位置指针、文件数目等参数己经变化,所以系统要修改这些参数,为下次和其它操作打下基础。这时,还要检查剩余的空间是否小于最大录音空间,若小的话,要将录音区的最后一个文件删去,这样就为下次的录音留有了空间。可见本系统中,录音区的空间是循环利用的,以便满足在具体的应用中对空间的要求。若删除了最后一个文件,则应该修改系统的参数。如图4.5,图4.5为录音结束子程序流程图。

4.2.3 放音子程序

放音初始化土要是根据输入的文件名在列表区查找匹配的语音文件,若找到则取得语音文件所在起始块地址和文件长度,然后读出语音文件的前两页数据到两个读数据缓区,再打开DA变换器,准备进行DA变换,为放音做准备。最后是打开控制DA变换速率的定时器。如图4.5,图4.5为录音初始化流程图。放音结束子程序是在放音结束后,首先关掉定时器和DA转换,然后察看是否是播放文件的最后一个,因为播放文件的时候可能同时播放几个文件,若不是的话则播放下一个文件,直到播完为止。如图4.6,图4.6为放音结束子程序流程图。

图4.6 放音子程序初始化流程图

4.7 放音结束子程序流程图

第五章  总结

本文在深入分析研究数字录音理论的基础上,论述了一种嵌入式数字录音系统的设计和实现。本系统主要由单片机和Flash Memory组成,它能够接收从串口发送来的语音文件并把它存在Flash Memory中,在需要的时候可以播放这些文件或者它们的组合;另外,本系统还可以实现录音的功能,即通过麦克风将语音信号输入,经过变换后的数据存储在录音数据区内,需要的时候再播放出来。本系统最大的一个特点是同时录放音的功能,对需要这种功能的场合无疑是一个很大的支持。还有,本系统可作为一个数字录音模块进行封装,在其上可以进行二次开发,实现更多更强的功能。现在,系统已经过测试,具有很好的稳定性。嵌入式数字录音系统体积小,控制灵活,造价低,应用范围广。

虽然本系统的设计满足了性能和使用的要求,但还有一些需要改进角地方:比如数据的压缩。本系统的Flash Memory容量较大,且录音数据区可循环使用,为了减少工作的复杂度和减少对单片机资源的占用,因此数据没有压缩也能满足通常情况下对录音时间的要求。但是,在单片机资源允许的情况下,压缩数据可以提高Flash Memory的利用率,使录音时间更长,对本系统的推广和应用无疑是很大的帮助。

参考文献

[l] 张绍高.《数字音频技术原理及应用》.第1版.北京:国防工业出版社,2000.7

[2] 张伟雄.《OSP芯片的原理与开发应用》.第l版.北京:电子工业出版社,1997.9

[3] [美]Ken C.Pohlmann.《数字音频原理及应用》.苏菲.第4版.北京:电子工业出版社,2002,2

[4] 李兰友,韩其睿,江忠.《数字信号处理单片机及其应用》.第1版.北京:电子工业出版社,1997.8

[5] 潘琢金.《C8051FO20混合信号ISP FLASH微控制器数据手册》2002.10

[6] 《K9F56XXXOB Flash Memory使用手册》.2002.8

[7] 钟玉琢等.《多媒体计算机技术基础及应用》.第1版.北京:高等教育出版社,1999.6

[8] 余祖俊等.《微机检测与控制应用系统设计》.第1版.北京:北方交通大学出版社,2001.6

[9] 钟玉琢,洗伟锉,沈洪编著.《多媒体技术基础及应用》.北京:清华大学出版社2000年

[10] 薛钧义张彦斌等编著.《凌阳16位单片机原理及应用》.北京:北京航空航天大学出社2003年

[11] 谭浩强编著.《c程序设计》.北京:清华大学出版社1999年

[12] 夏宽理编著.《c语言与c程序设计》.上海:复旦大学出版社1994年

[13] 窦振中编著.《单片机外围器件实用手册一存储器分册》.北京:北京航空航天大学出版社1998年

[14] 周航慈编著.《单片机应用程序设计技术》.北京:北京航空航天大学出版社2003年

[15] Arnold Berge.《嵌入式系统设计》.北京:电子工业出版社2002年

[16] Omar M.K., Hasegawa-Johnson M., Levinson S., Gaussian mixture models of phonetic boundaries for speech recognition, Automatic Speech Recognition and Understanding, 2001. ASRU '01. IEEE Workshop on,9-13 Dec. 2001

致  谢

在老师的悉心指导下,本课题各项研究工作进展顺利,更重要的是我对基于单片机的语音录放系统有了较深刻的理解。袁老师在论文选题、参考书目、方法研究等方面给了我耐心细致的指导和帮助,使我免去不少麻烦,少走很多弯路,并在学术文章和论文的修改、审阅上字斟句酌,导师严谨的治学态度,求实的工作作风使我受益匪浅,在此,向我的指导老师表示最衷心的感谢和最诚挚的敬意!

同时,也感谢系里其他指导老师对我的指点和帮助!

附录下载本文

显示全文
专题