《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 一种嵌入式数字语音录放系统的设计
一种嵌入式数字语音录放系统的设计
中电网
摘要: 数字录音系统具有PC机实现和嵌入式系统实现两种方式。使用PC机由于其体积庞大,耗电高,造价也高,并且在某些情况下,系统的稳定性得不到保证,所以用PC机来实现各项功能和操作,就会受到一定的限制。而嵌入式系统则具有体积小、供电方便、造价低、稳定性高等优点,所以得到了广泛的应用。
Abstract:
Key words :

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

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

数字录音系统具有PC机实现和嵌入式系统实现两种方式。使用PC机由于其体积庞大, 耗电高, 造价也高, 并且在某些情况下, 系统的稳定性得不到保证, 所以用PC机来实现各项功能和操作, 就会受到一定的限制。而嵌入式系统则具有体积小、供电方便、造价低、稳定性高等优点,所以得到了广泛的应用。

1 总体硬件方案

本系统采用包含有A/D与D/A电路的语音芯片来实现模拟信号和数字信号的相互转换,而不需要再另外设计专门的A/D与D/A变换电路。在语音信号从驻极体*进入通用单片机之前, 通常应该进行信号的放大和滤波处理, 所以,应有相应的输入电路和器件; 同样, 在放音的时候, 在信号经过D/A变换后, 也要经过滤波和放大处理,最后通过扬声器将语音播放出来。另外,本系统还可以从外部播放设备接收已有的语言信号, 并将语音信号存储在语言芯片中, 然后在播放时将语音信号直接传送到外部功放设备以达到更大输出功率,从而加强了本系统的兼容性、可扩展性和嵌入性。其系统总体结构如图1所示。

系统总体结构框图

图1 系统总体结构框图

为了实现更多的功能, 本系统加入了其他外围硬件设备, 其扩展功能模块及系统总体结构框图如图1所示。本系统扩展有两个可选的液晶显示器LCD1602 和LCD12864, 而最终采用的LCD1602液晶显示器的特点是体积小, 功耗低,具有背光功能,采用通用接口芯片, 兼容性高。

时钟芯片DS1302则是具有串行输入输出高性能的通用时钟芯片。测温芯片DS1820体积小,并可用数据线供电, 同时具有独特的单线口(只需一个接口引脚即可通讯) 是其最大特点。存储器AT24C02,采用串口通讯技术,可三位寻址。系统中的红外接收放大头可接收通用遥控器的命令, 用于实现短距离控制和数据采集功能。

2 软件设计

系统软件主要用于控制和协调单片机及外部设备, 是无需用户干预的各种程序的集合, 它的主要功能是调度、监控和维护系统;负责管理系统中各种独立的硬件, 使得它们可以协调工作。

系统软件可使使用者或其他系统将其当作一个整体而不需要顾及到底层每个硬件是如何工作的。

下面介绍本系统的软件设计。

2.1 系统主程序

系统功能的实现依赖于软硬件的协同工作。

软件开发工作可由单片机控制软件来实现。它能实现录/放音、中断放音、停止录音、读取参数等功能。

单片机控制软件采用循环查询方式, 即各种操作都有一个按键控制, 系统会循环检查按键值(SW1~SW6), 若发现某按键置0,即执行相应的操作, 若有按键同时置0, 则按照程序的顺序先后执行。图2所示是本系统的主程序流程图。

主程序流程图

图2 主程序流程图

2.2 中断子程序

在单片机工作的同时, 不论是录音还是放音, 系统都要完成三个过程的处理, 其目的是提高系统的处理能力。中断程序是在微观上的顺序执行,但在宏观上是并行执行的。

软件程序首先是初始化, 即进行开中断准备工作。然后是定时器开始定时中断, 即在单片机运行一个机器周期后,片内中断存储器自动加1,直至存储器溢出后, 中断标志位置1, 单片机在下一个机器周期里响应中断子程序,最后, 中断子程序结束, 返回中断前的主程序继续运行, 程序又开始等待下一次中断。循环中断子程序的工作流程如图3所示。

循环中断处理子程序流程图

图3 循环中断处理子程序流程图

2.3 录音和放音子程序

录音初始化首先会通过查找系统参数找到录音区的空白块和空白页的起始地址, 语音文件的数据就从该地址开始存储;同时读出最大录音时间和长度, 这两个参数是用来自行停止录音的。

当没有收到录音结束的命令时, 如超过最大时间或长度, 录音即自行停止。读出这两个参数后,先打开控制A/D变换速率的定时器, 然后再打开A/D变换操作。图4所示是录音子程序流程图。

录音结束后, 首先停止当前操作, 然后语音芯片掉电待命; 最后返回主程序继续运行。

放音初始化主要是根据输入语音文件所在起始块的地址, 从指定地址开始发出放音命令, 接着再发送从当前地址开始的放音命令直到播完(EOM) 或存储器末尾为止(OVF); 若按下STOP键, 则可直接停止放音并返回主程序。其放音子程序流程图如图5所示。

录音子程序流程图 放音子程序流程图

 图4 录音子程序流程图      图5 放音子程序流程图。

3 PCB板设计

电路图设计完成后, 即可进行PCB板的制作。本项目中用Protel99SE软件进行版图绘制,设计中充分考虑了电磁兼容等问题。图6所示是本系统的PCB的制作版图。

 PCB的制作版图

图6 PCB的制作版图

4 结束语

为满足高端用户的需求, 本系统的硬件还可以进行升级, 也可选用其他的40脚直插的单片机AT89C52、AT89S52、AT89C53、AT89S53、STC89S51、STC89S52、STC89S53等;对于现今的语音芯片而言ISD4003、ISD4004都是可选的;升级存储器也是本系统的一个亮点,系统可使原有2K 字节的存储器升级为4KB、8KB、64KB、128KB,甚至还可以达到几兆的特定容量。所有可替换的元件都具有较好的兼容性, 可满足各类场合下的应用要求。

此内容为AET网站原创,未经授权禁止转载。