固态数字语音记录仪的设计与实现
2009-07-27
作者:李鹏怀 戴礼荣 王仁华
摘 要: 介绍一种固态数字语音记录仪的实现方案。它主要由DSP最小系统、液晶显示模块、串行通信接口、键盘电路和片外闪烁存储器电路构成。实现语音信息的采集与播放,并且能够和笔记本电脑通过RS232串行口进行通信。
关键词: 闪烁存储器 DSP RS232 DS12887 G.723.1
数字处理系统由于其可靠性高、可编程性强等优势而广泛地应用于通信、航天制导、仪器仪表等各个领域。此外,随着DSP芯片处理速度的显著提高,DSP正在数字电话、可视电话、多媒体通信中发挥着举足轻重的作用。下文描述以AD公司生产的ADSP-2181为核心构成的固态语音记录仪的设计与实现,用来对电话线路上的语音信号进行实时采集与处理,主要应用于自动监控领域,如监测铁路通信等。
以往,广泛采用磁带作为存储介质的语音记录设备,它虽然也能完成相关功能,但是存在抗震性能差、工作不稳定、定位困难等缺点。因此,固态数字语音仪采用了高性能的闪烁存储器作为存储介质。另外,为了解决语音数据量大从而占用空间大的问题,采用了高速的数字信息处理(DSP)手段对其进行编码压缩,大大减少了存储量。概括之,固态数字语音仪具备以下优点:
·性能价格比高,采用了先进的语音数据的软件压缩算法,存储数据需要的空间小。
·工作稳定,实用性好,无机械磨损。而且文件读取时定位方便。
·抗震性能强,数字语音记录设备全部采用集成电路,无机械部件,完全不受震动的影响,对环境温度、湿度适应能力强。
该数字语音记录仪能实时压缩较长时间的声音信号。显示当前时间和记录语音的时间,通过键盘的按键信号来控制选择录音、放音。
1 语音记录仪硬件设计及其实现
1.1 系统结构
该记录仪系统的组成如图1所示,由以下五个部分构成:
(1)DSP最小系统
它是该系统的核心部分,由一片DSP芯片ADSP-2181和一片EPROM组成。ADSP-2181是Analog Device公司生产的一种性能优越的单片机,适合于高速的数字信号处理。其特点如下:
·外接16.67MHz晶振,指令周期为30ns,33MIPS运算速度,所有指令单周期执行;
·提供Power Down低功耗方式;
·提供一个16位的DMA(IDMA)口,用于高速存取片内存储器;
·提供一个8位自举DMA(BDMA)口,用于从自举程序存储器中装载数据和程序;
·程序RAM24BITX16K,数据RAM 16BITX16K;
·16位字长运算精度;
·提供两个双缓冲区的串口,具有硬件A/μ律编解码和自动缓冲(Autobuff)能力;
·提供六个外部中断、13个可编程I/O引脚和JTAG仿真引脚。
模拟的语音信号通过TP3057的A/D转换变为数字信号送入ADSP-2181(采样率8kHz)。TP3057是美国国家半导体公司生产的A律编/解码器,它包含一个利用A/D和D/A转换结构的A律脉冲编码调制的编解码器/滤波器单片电路和一个串行PCM接口。其中编码部分还包含一个可调输入增益的放大器、一个有源RC前置滤波器、自动调零电路、一个A率压缩编码器。解码部分包括一个A律解码器和截止频率为3400Hz的低通滤波器。前者从A律压扩的信号中重建模拟信号,后者校正译码器的输出的sinx/x响应并滤除高频信号。由于语音数据量很大,因此需要对它进行编码压缩,这里采用ITU-T的G.723.1语音编码协议,由ADSP-2181完成。编码后的数据加入时间头后存入外扩存储器——即闪烁存储器中。
(2)显示模块
采用的是小型液晶显示器,共四行,每行显示20个字符。分别显示当前时间、工作状态(录音、监听、放音和循环放音)、放音搜索时间和当前播放时间。要显示的数据由ADSP-2181写入显示模块的内部RAM之中。
(3) 按键信号接收电路
一共可以接收24种按键信息。键盘电路以串行方式工作。每按下一个键,则在相应的时间段,输出脚出现一个低电平脉冲,根据该脉冲出现的位置,就可以判断出哪一个键被按下。它正常工作需要的时钟信号由ADSP2181提供。系统根据键盘信息进行功能控制:如放音、监听、长期保存和转存等等。
(4) 时钟电路
采用美国DALLAS公司推出的数字时钟芯片DS12887和ADSP-2181相连,在电路通电时其内部电路可以自动对可充电电池充电,充足一次电可使芯片时钟运行半年之久。而且使用时无须外围电路元件,只要选择引脚MOT电平,即可方便地与不同计算机总线连接。它的主要技术特色:
·具有完备的时钟、闹钟及2000年的日历功能;
·具有可编程选择的周期性中断方式和多频率输出的方波发生器功能;
·内部有14个时钟控制器,10个时标寄存器,4个状态寄存器;
·时标可选择二进制或BCD码表示;
·工作电压:+4.5~5.5V
·工作电流:7~15mA;
·工作温度范围:0~70°C
它的8位数据总线和ADSP-2181的数据总线相连,读、写信号由ADSP-2181提供。
(5)闪烁存储器
FLASH MEMORY是一个非易失性固态存储器。它在擦或写时只要5V的工作电压,而且断电以后数据不丢失。在本系统中,它工作所需要的时序信号由ADSP-2181提供。这种存储器的特点是在写之前要以块为单位执行擦除命令,即:使所有字节均变为0xff然后再写入数据。考虑到编码后的语音数据是以word为单位的,而存储器芯片本身是以byte为单位,因此设计时使一片芯片对应一个16bit的高八位,另一片对应低八位。
该记录仪系统还自带有RS232接口,用于与笔记本电脑的通信,接收笔记本电脑发出的读索引信息命令、读参数命令、数据删除命令以及校表命令等等,并通过该串行口向笔记本电脑传送数据。出于数据安全保密要求考虑,该记录仪可以加锁。也就是说只有在开锁状态下,才能执行校表、查看系统参数等一些重要操作。语音数据的记录可以循环进行,连续不间断工作。
1.2 ITU-T G.723.1双速率语音编解码器的主要指标
码流速率:5.27Kbps/6.3Kbps;
时延:最大60ms;
帧边界速率转换;
话音活动检测(Voice Activity Detection);
舒适噪音产生(Comfortable Noise Generator)。
2 语音记录仪软件设计及其实现
数据流程如图2所示。
程序结构中下。
2.1 中断服务程序
·时钟读取服务程序:使用IRQE中断,由DS12887的端产生,中断间隔500ms。程序如下:
·语音采样服务程序:使用Sport0接收中断,中断间隔为125μs(对应8kHz采样率)。程序如下:
2.2 主程序
主程序处于循环工作状态,执行一个主循环约需要20ms时间。流程如图3所示。
开机以后,系统自动检测闪烁存储器的容量(不同型号的记录仪分别对应2、4、6、8片闪烁存储器芯片DA28F640J5),根据它设定录音区的起始和结束地址。存储区分为长期语音保存区和循环录音区,长期语音保存区保存重要的语音信息,不被覆盖。循环录音区可以记录的时间长短与闪烁存储器的容量有关,例如2片型号为DA28F640J5的64Mbits的闪烁存储器可以存储6个小时的语音数据。由于在按帧存储语音的时候加入了时间头信息,因此记录仪可以根据时间信息进行搜索定位,迅速找到对应的语音数据块的位置并且顺序播放。另外还可以由用户指定任意播放的起点和终点进行循环播放直到按下“停止”键为止。
2.3 语音数据转存及处理软件系统
主机程序采用Visual C++编写,通过串行口与记录仪通信。目标是将记录仪中的话音数据传送到笔记本电脑上。记录仪到笔记本电脑的转存主要实现读系统参数、读索引信息、读语音数据块以及写入16字节的机器编码等功能。有关功能项目主要是索引的分析、显示、选择和根据时间进行语音数据块的定位。串行口传输波特率为115.2Kbps。笔记本电脑可以提取、编辑设置记录仪的16字节编码。
本文介绍的固态数字语音记录仪,由于采用了高速DSP技术,能够实时实现包括G.723.1在内的大部分低速率语音编解码算法,降低了数据量,节约了生产成本。当采用不同的语音编解码算法时,只要更换编系统中的EPROM芯片,而不需做任何其它的硬件上的改动。此外,根据用户的需要,可增加或更换不同的功能模块。如可增加电话接口模块及语音处理模块以提高记录的语音的通道数。系统还可以通过串行口与笔记本电脑进行通信。因此。该记录仪具有很高的灵活性,且具备良好的市场竞争能力。
参考文献
1 陈 键.DSP技术及其应用.电子技术,1998;2
2 陈永彬,王仁华.语音信号处理.合肥:中国科学技术大学出版社,1990
3 ADSP-2181 Data Sheet,Analog Devices
4 戴礼荣,李鹏怀,王仁华,宋 彦,李锦宇.可编程低比特率语音编解码器的设计与实现. 1999第九届全国信号处理学术年会(CCSP’99)论文集