录放技术在众多领域如旅游业、制造业、服务业等扮演了重要角色。比如,电子导游系统、语音报警系统、公交报站系统等都体现了录放系统技术的应用。语音报警系统、公交报站系统等只需将语音信息预先存储,不需后续改动;但电子导游系统的设计需要考虑两方面因素:一是景点信息量大,系统必须具有大容量的存储能力;二是考虑到景点性质多样,解说风格各异,预先很难保存健全的景区信息,需要系统能实时更新信息,进行信息的替换与新增,提高系统的自主性、便携性、可扩展性。现行的录放方案有很多,常采用集成语音芯片[1, 2]和微处理器+编解码芯片+存储器[3, 4]这2种数字化解决方案。前者优点在于集成度高,音质好,可以保证实时性,缺点是集成容量有限,不能实现超长时间的录放功能;后者优点在于系统可扩展性强,系统组合灵活,保证容量需求,音质好,实时性高,但缺点是代码量多,开发难度大。为解决上述容量和语音信息变更等因素,提出一种大容量实时音频录放系统的设计研究。
为了同时满足大容量和实时性的要求,采用第2种实现方案,设计了基于微处理器+编解码芯片+SD卡的组合,采用乒乓缓冲和定时中断结合技术,很好地解决了上述问题。这一研究不仅在电子导游系统领域,在语音信箱、录音笔、MP3等领域也有非常重要的应用价值。
1 总体方案 1.1 硬件设计方案系统硬件平台基于TI公司生产的DSP系列中的TMS320VC5509A型号作为录放系统的主控平台,其内部集成McBSP(多缓冲串口)、I2C(双总线接口)等控制器;完成音频模数转换功能的芯片选用与DSP接口相兼容的编解码芯片TLV320AIC23,此芯片是TI公司推出的一款高性能立体声音频编解码器;由于SD卡具有超大的记忆容量、快速的存储速率、极大的灵活性等优点,被选作系统的存储媒介。总体的硬件设计如图 1所示。
利用DSP提供的McBSP和I2C控制器与AIC23编解码芯片进行无缝连接,完成控制字与数据信息的传输,实现音频录音、耳机播放等功能;SD卡的控制操作遵循SPI协议,由DSP进行控制。TMS320VC5509A芯片没有集成SPI控制器,需要利用通用IO口模拟SPI协议,控制SD卡进行音频文件的存取工作[5]。
1.2 软件设计方案系统软件设计主要包括系统底层程序设计和功能程序设计2部分。其系统的软件设计流程如图 2所示。
1.2.1 底层程序初始化DSP程序初始化:主要包括确定工作频率,设置存储区,配置McBSP、I2C控制器参数,初始化设置GPIO通用IO口、定时中断等,使系统工作在正常状态[6]。
音频编解码初始化:主要包括音频采样率、采样位数、工作模式等的配置,完成音频录放的接口程序。
SD卡的初始化:主要包括GPIO模拟SPI控制器,SD卡的字节读写、块读写的基本程序设计,为后续文件系统的移植提供读写接口。
1.2.2 功能程序设计FatFs文件系统是一种完全免费开源的FAT文件系统模块,专门为小型的嵌入式系统而设计[7]。本文使用了FatFs Module模块的最新版本R0.09b。其移植程序在SD卡初始化的基础上,针对DSP的硬件平台完成文件系统的接口函数的设计,通过对文件系统的相关宏定义的增减,可以简化系统程序,以此完成文件系统的移植。实现对SD卡中音频文件的有效管理,有效地解决了系统容量大、文件复杂,难以索引的问题。存储在SD卡中的音频文件可被电脑、MP3等智能终端所识别,进行后续处理。
在实现音频录放功能时,为保证音质保真性和录放实时性,要求系统必须具有恒定的采样率,并保证音频存取和编解码模块在运行时不发生冲突。有方案采用双控制器来实现[8],这样不但浪费资源,还增加了硬件的成本,所以考虑采用乒乓缓冲[9]和定时中断相结合的技术来完成音频信息的录放过程,解决DSP串行处理时,导致缓冲区访问冲突或音频信息丢失的现象,这也是实现此方案的关键技术。
2 乒乓缓冲与定时中断结合技术如果录放时间不长,存储量不高,此方案可采用单缓冲技术。编解码芯片接口直接与内存通信,开辟存储空间建立缓冲区,完成音频信息的存取。系统只需单线程:音频录放。但文章研究内容为大容量、实时性录放系统,此技术只能解决音频录放的问题,限于内存空间,容量需求无法达到。因而,外部存储介质采用SD卡存取音频信息实现大容量需求。但外部存储器不同于内存,不能直接实现数据定位,所以实现功能需要双线程参与:音频录放和信息存取。针对单缓冲技术的不足,系统的双线程运行,在设计中提出乒乓缓冲与定时中断结合的方式,有效解决上述问题的同时,降低了微处理器性能需求,提高了运行效率,保证了实时性。
2.1 单缓冲实时录放测试分析采用单缓冲区技术来设计,在数据空间中设置缓冲区A,其原理图如图 3所示。
基于单缓冲技术的系统软硬件完成后进行测试分析,得出以下结论。如果在程序设计中同时进行双线程,会出现缓冲区访问冲突,严重时会导致系统崩溃;如果程序设定了先后的执行顺序,在主程序执行存取任务时,暂时关闭定时器,利用极快的速度来完成存取,然后打开定时器,恢复音频采样,此方法显然会出现音频信息丢失现象,不能满足实时性的要求。通过实验测得基于此方法的录放系统的音频波形如图 4所示。
从图中分析可知,采用单缓冲技术,录制文件存在严重丢失音频信息现象,其波形失真很大,实际播放时,出现严重的噪声,实验测试表明此方法实时性差,不能达到长时间实时音频录制的目的,仅能用于短时间音频录放领域。
2.2 乒乓缓冲实时录放技术在数据空间中设置2个缓冲空间A和B,其工作原理图如图 5所示。
首先将SD卡的内容写到缓冲空间A中,缓冲区满后,启动AIC23在中断程序处理中对缓冲区A进行读写操作,同时主程序需要完成SD卡写缓冲空间B的操作,由于SD卡的一般读写速度可达2 MB/s以上,所以一定比AIC23音频编解码的处理速度快。每当AIC23对其缓冲区的数据处理完成后,会产生相应的结束标志,由主程序进行检测,判断是对A还是B缓冲区进行操作。当AIC23对缓冲区A操作完后,将会转换处理地址到缓冲区B(SD卡的数据已经完成传输),这样不断实现缓冲区A与B的切换,保证AIC23的数据连续,实现音频信号的不间断传输,解决音频录放失真的现象,达到完美录放效果。
在程序的设计中,由于SD存取速度快,还需要考虑SD卡对缓冲区重复处理,影响音频质量的问题,因而在存取流程中增加了切换缓冲标志的判断,避免了这样的问题。如图 6所示是系统音频录入的软件程序流程图,其播放的程序设计思想与其相似。
3 系统测试分析采用乒乓缓冲与定时中断技术,设计并实现了系统的软硬件平台,通过PC机播放一段音频文件,将音频信息由LINE IN接口送到录放系统进行功能测试。
其实验结果显示,录音音质良好,实时性高,不失真,达到了音频录放的目的。通过优质音频编辑软件Adobe Audition及MATLAB软件,观察音频的时域波形可以得到相应的结果如图 7所示。
在图中可以清晰地看到两者波形相似,只在振幅、中心线存在偏差,其主要原因在于AIC23的电压基准和量化误差的影响,但不影响录音音质;同时在波形对比中,也观察到存在微小的音频丢失现象,但这不会影响音频质量和实时性要求,主要是由于定时中断与原文件采样率有偏差所造成,可以通过调整定时中断时间来减少丢失问题。
考虑到音频信号的复杂度,时域波形不能全面分析信号的特性。因而,利用MATLAB对音频信号进行FFT,得到各音频信号的频谱分析[10]如图 8所示。
通过图 8也可以看出,乒乓缓冲技术的频谱所包含的频率范围、强度与原音频文件基本一致,但单缓冲技术的频谱明显有较大失真,不能达到既定要求。
4 结论针对录放系统为满足大容量与实时性的问题,文章提出并设计实现了基于乒乓缓冲技术和定时中断的硬件方案,通过理论分析与实际测试结果证明:
1)此方案设计合理,达到了预期目标。
2)系统支持大容量SD卡,建立文件系统,其音频文件的通用性提高,有效提高系统文件的兼容性。
3)由于系统采用乒乓缓冲与定时中断相结合的技术,保证了系统的需求,降低了对内存容量和处理速度的要求,提高了系统利用率。
该方案不仅可用于电子导游系统领域达到自主录放的目的,而且能够应用于其他语音服务领域如工控系统、自动应答系统、智能化仪表、办公系统等,具有良好的实际应用价值。
[1] | 范寒柏, 陈旭升, 李雪梅. 基于ISD4000系列芯片智能录放系统设计[J]. 电子技术应用, 2007(11): 44-46, 49. |
[2] | 彭希南. 基于SPI接口的ISD4104系列语音录放芯片及其应用[J]. 微型机与应用, 2000(9): 24-26. |
[3] | 史明泉. 基于DSP的语音录放系统的设计[J]. 无线电工程, 2011(12): 53-55. |
[4] | 何苏勤,徐家艳. 基于定点DSP语音录放系统的设计[J]. 微计算机信息,2006, 26: 148-150, 200. |
[5] | 李世奇,董浩斌,李荣生. 基于FatFs文件系统的SD卡存储器设计[J]. 测控技术, 2011, 12: 79-81. |
[6] | 陈泰红, 任胜杰, 魏宇. 手把手教你学DSP:基于TMS320C55x[M]. 北京: 北京航空航天大学出版社, 2011: 4-25. |
[7] | ChaN. FatFs-Generic FAT file system module. [EB/OL]. [2014-01-08].http://elm-chan.org/fsw/ff/00index_e.html. |
[8] | 周克良, 杨丽荣. 基于TMS320C5402的数字压缩语音录放系统[J]. 电子设计应用, 2004(9): 129-130. |
[9] | 李武森, 迟泽英, 陈文建. 高速DSP图像处理系统中的乒乓缓存结构研究[J]. 光电子技术与信息, 2005(3): 76-79. |
[10] | 吴雄英. 语音信号频谱分析仪的设计[D]. 成都: 电子科技大学, 2008: 24-35. |