丁繼成,賈春
哈爾濱工程大學(xué)自動(dòng)化學(xué)院,黑龍江哈爾濱 150001
大容量音頻實(shí)時(shí)錄放系統(tǒng)的設(shè)計(jì)研究
丁繼成,賈春
哈爾濱工程大學(xué)自動(dòng)化學(xué)院,黑龍江哈爾濱 150001
為滿足大容量實(shí)時(shí)錄放音頻需求,同時(shí)保證音質(zhì)和信息完整性,設(shè)計(jì)了基于DSP、音頻編解碼芯片、存儲(chǔ)介質(zhì)SD卡的大容量音頻實(shí)時(shí)錄放系統(tǒng)軟硬件方案。通過(guò)通用IO口模擬SPI協(xié)議實(shí)現(xiàn)了無(wú)集成SPI接口環(huán)境下的SD卡實(shí)時(shí)讀寫(xiě),解決了系統(tǒng)的大容量問(wèn)題。重點(diǎn)在詳細(xì)測(cè)試分析單緩沖錄放方案的基礎(chǔ)上,提出采用乒乓緩沖和定時(shí)中斷技術(shù)解決音頻錄放實(shí)時(shí)性問(wèn)題。實(shí)際測(cè)試表明,由該方案形成的系統(tǒng)錄放音質(zhì)良好,實(shí)時(shí)性高,能夠滿足大容量存儲(chǔ)應(yīng)用需求。
音頻錄放;DSP;FatFs文件系統(tǒng);乒乓緩沖技術(shù)
錄放技術(shù)在眾多領(lǐng)域如旅游業(yè)、制造業(yè)、服務(wù)業(yè)等扮演了重要角色。比如,電子導(dǎo)游系統(tǒng)、語(yǔ)音報(bào)警系統(tǒng)、公交報(bào)站系統(tǒng)等都體現(xiàn)了錄放系統(tǒng)技術(shù)的應(yīng)用。語(yǔ)音報(bào)警系統(tǒng)、公交報(bào)站系統(tǒng)等只需將語(yǔ)音信息預(yù)先存儲(chǔ),不需后續(xù)改動(dòng);但電子導(dǎo)游系統(tǒng)的設(shè)計(jì)需要考慮兩方面因素:一是景點(diǎn)信息量大,系統(tǒng)必須具有大容量的存儲(chǔ)能力;二是考慮到景點(diǎn)性質(zhì)多樣,解說(shuō)風(fēng)格各異,預(yù)先很難保存健全的景區(qū)信息,需要系統(tǒng)能實(shí)時(shí)更新信息,進(jìn)行信息的替換與新增,提高系統(tǒng)的自主性、便攜性、可擴(kuò)展性。現(xiàn)行的錄放方案有很多,常采用集成語(yǔ)音芯片[1-2]和微處理器+編解碼芯片+存儲(chǔ)器[3-4]這2種數(shù)字化解決方案。前者優(yōu)點(diǎn)在于集成度高,音質(zhì)好,可以保證實(shí)時(shí)性,缺點(diǎn)是集成容量有限,不能實(shí)現(xiàn)超長(zhǎng)時(shí)間的錄放功能;后者優(yōu)點(diǎn)在于系統(tǒng)可擴(kuò)展性強(qiáng),系統(tǒng)組合靈活,保證容量需求,音質(zhì)好,實(shí)時(shí)性高,但缺點(diǎn)是代碼量多,開(kāi)發(fā)難度大。為解決上述容量和語(yǔ)音信息變更等因素,提出一種大容量實(shí)時(shí)音頻錄放系統(tǒng)的設(shè)計(jì)研究。
為了同時(shí)滿足大容量和實(shí)時(shí)性的要求,采用第2種實(shí)現(xiàn)方案,設(shè)計(jì)了基于微處理器+編解碼芯片+SD卡的組合,采用乒乓緩沖和定時(shí)中斷結(jié)合技術(shù),很好地解決了上述問(wèn)題。這一研究不僅在電子導(dǎo)游系統(tǒng)領(lǐng)域,在語(yǔ)音信箱、錄音筆、MP3等領(lǐng)域也有非常重要的應(yīng)用價(jià)值。
1.1 硬件設(shè)計(jì)方案
系統(tǒng)硬件平臺(tái)基于TI公司生產(chǎn)的DSP系列中的TMS320VC5509A型號(hào)作為錄放系統(tǒng)的主控平臺(tái),其內(nèi)部集成McBSP(多緩沖串口)、I2C(雙總線接口)等控制器;完成音頻模數(shù)轉(zhuǎn)換功能的芯片選用與DSP接口相兼容的編解碼芯片TLV320AIC23,此芯片是TI公司推出的一款高性能立體聲音頻編解碼器;由于SD卡具有超大的記憶容量、快速的存儲(chǔ)速率、極大的靈活性等優(yōu)點(diǎn),被選作系統(tǒng)的存儲(chǔ)媒介??傮w的硬件設(shè)計(jì)如圖1所示。
圖1 模塊總體框圖
利用DSP提供的McBSP和I2C控制器與AIC23編解碼芯片進(jìn)行無(wú)縫連接,完成控制字與數(shù)據(jù)信息的傳輸,實(shí)現(xiàn)音頻錄音、耳機(jī)播放等功能;SD卡的控制操作遵循SPI協(xié)議,由DSP進(jìn)行控制。TMS320VC5509A芯片沒(méi)有集成SPI控制器,需要利用通用IO口模擬SPI協(xié)議,控制SD卡進(jìn)行音頻文件的存取工作[5]。
1.2 軟件設(shè)計(jì)方案
系統(tǒng)軟件設(shè)計(jì)主要包括系統(tǒng)底層程序設(shè)計(jì)和功能程序設(shè)計(jì)2部分。其系統(tǒng)的軟件設(shè)計(jì)流程如圖2所示。
圖2 系統(tǒng)存儲(chǔ)音頻軟件流程圖
1.2.1 底層程序初始化
DSP程序初始化:主要包括確定工作頻率,設(shè)置存儲(chǔ)區(qū),配置McBSP、I2C控制器參數(shù),初始化設(shè)置GPIO通用IO口、定時(shí)中斷等,使系統(tǒng)工作在正常狀態(tài)[6]。
音頻編解碼初始化:主要包括音頻采樣率、采樣位數(shù)、工作模式等的配置,完成音頻錄放的接口程序。
SD卡的初始化:主要包括GPIO模擬SPI控制器,SD卡的字節(jié)讀寫(xiě)、塊讀寫(xiě)的基本程序設(shè)計(jì),為后續(xù)文件系統(tǒng)的移植提供讀寫(xiě)接口。
1.2.2 功能程序設(shè)計(jì)
FatFs文件系統(tǒng)是一種完全免費(fèi)開(kāi)源的FAT文件系統(tǒng)模塊,專(zhuān)門(mén)為小型的嵌入式系統(tǒng)而設(shè)計(jì)[7]。本文使用了FatFs Module模塊的最新版本R0.09b。其移植程序在SD卡初始化的基礎(chǔ)上,針對(duì)DSP的硬件平臺(tái)完成文件系統(tǒng)的接口函數(shù)的設(shè)計(jì),通過(guò)對(duì)文件系統(tǒng)的相關(guān)宏定義的增減,可以簡(jiǎn)化系統(tǒng)程序,以此完成文件系統(tǒng)的移植。實(shí)現(xiàn)對(duì)SD卡中音頻文件的有效管理,有效地解決了系統(tǒng)容量大、文件復(fù)雜,難以索引的問(wèn)題。存儲(chǔ)在SD卡中的音頻文件可被電腦、MP3等智能終端所識(shí)別,進(jìn)行后續(xù)處理。
在實(shí)現(xiàn)音頻錄放功能時(shí),為保證音質(zhì)保真性和錄放實(shí)時(shí)性,要求系統(tǒng)必須具有恒定的采樣率,并保證音頻存取和編解碼模塊在運(yùn)行時(shí)不發(fā)生沖突。有方案采用雙控制器來(lái)實(shí)現(xiàn)[8],這樣不但浪費(fèi)資源,還增加了硬件的成本,所以考慮采用乒乓緩沖[9]和定時(shí)中斷相結(jié)合的技術(shù)來(lái)完成音頻信息的錄放過(guò)程,解決DSP串行處理時(shí),導(dǎo)致緩沖區(qū)訪問(wèn)沖突或音頻信息丟失的現(xiàn)象,這也是實(shí)現(xiàn)此方案的關(guān)鍵技術(shù)。
如果錄放時(shí)間不長(zhǎng),存儲(chǔ)量不高,此方案可采用單緩沖技術(shù)。編解碼芯片接口直接與內(nèi)存通信,開(kāi)辟存儲(chǔ)空間建立緩沖區(qū),完成音頻信息的存取。系統(tǒng)只需單線程:音頻錄放。但文章研究?jī)?nèi)容為大容量、實(shí)時(shí)性錄放系統(tǒng),此技術(shù)只能解決音頻錄放的問(wèn)題,限于內(nèi)存空間,容量需求無(wú)法達(dá)到。因而,外部存儲(chǔ)介質(zhì)采用SD卡存取音頻信息實(shí)現(xiàn)大容量需求。但外部存儲(chǔ)器不同于內(nèi)存,不能直接實(shí)現(xiàn)數(shù)據(jù)定位,所以實(shí)現(xiàn)功能需要雙線程參與:音頻錄放和信息存取。針對(duì)單緩沖技術(shù)的不足,系統(tǒng)的雙線程運(yùn)行,在設(shè)計(jì)中提出乒乓緩沖與定時(shí)中斷結(jié)合的方式,有效解決上述問(wèn)題的同時(shí),降低了微處理器性能需求,提高了運(yùn)行效率,保證了實(shí)時(shí)性。
2.1 單緩沖實(shí)時(shí)錄放測(cè)試分析
采用單緩沖區(qū)技術(shù)來(lái)設(shè)計(jì),在數(shù)據(jù)空間中設(shè)置緩沖區(qū)A,其原理圖如圖3所示。
圖3 單緩沖區(qū)設(shè)計(jì)
基于單緩沖技術(shù)的系統(tǒng)軟硬件完成后進(jìn)行測(cè)試分析,得出以下結(jié)論。如果在程序設(shè)計(jì)中同時(shí)進(jìn)行雙線程,會(huì)出現(xiàn)緩沖區(qū)訪問(wèn)沖突,嚴(yán)重時(shí)會(huì)導(dǎo)致系統(tǒng)崩潰;如果程序設(shè)定了先后的執(zhí)行順序,在主程序執(zhí)行存取任務(wù)時(shí),暫時(shí)關(guān)閉定時(shí)器,利用極快的速度來(lái)完成存取,然后打開(kāi)定時(shí)器,恢復(fù)音頻采樣,此方法顯然會(huì)出現(xiàn)音頻信息丟失現(xiàn)象,不能滿足實(shí)時(shí)性的要求。通過(guò)實(shí)驗(yàn)測(cè)得基于此方法的錄放系統(tǒng)的音頻波形如圖4所示。
圖4 原音頻文件與單緩沖技術(shù)波形對(duì)比
從圖中分析可知,采用單緩沖技術(shù),錄制文件存在嚴(yán)重丟失音頻信息現(xiàn)象,其波形失真很大,實(shí)際播放時(shí),出現(xiàn)嚴(yán)重的噪聲,實(shí)驗(yàn)測(cè)試表明此方法實(shí)時(shí)性差,不能達(dá)到長(zhǎng)時(shí)間實(shí)時(shí)音頻錄制的目的,僅能用于短時(shí)間音頻錄放領(lǐng)域。
2.2 乒乓緩沖實(shí)時(shí)錄放技術(shù)
在數(shù)據(jù)空間中設(shè)置2個(gè)緩沖空間A和B,其工作原理圖如圖5所示。
圖5 乒乓緩沖區(qū)的設(shè)計(jì)
首先將SD卡的內(nèi)容寫(xiě)到緩沖空間A中,緩沖區(qū)滿后,啟動(dòng)AIC23在中斷程序處理中對(duì)緩沖區(qū)A進(jìn)行讀寫(xiě)操作,同時(shí)主程序需要完成SD卡寫(xiě)緩沖空間B的操作,由于SD卡的一般讀寫(xiě)速度可達(dá)2 MB/s以上,所以一定比AIC23音頻編解碼的處理速度快。每當(dāng)AIC23對(duì)其緩沖區(qū)的數(shù)據(jù)處理完成后,會(huì)產(chǎn)生相應(yīng)的結(jié)束標(biāo)志,由主程序進(jìn)行檢測(cè),判斷是對(duì)A還是B緩沖區(qū)進(jìn)行操作。當(dāng)AIC23對(duì)緩沖區(qū)A操作完后,將會(huì)轉(zhuǎn)換處理地址到緩沖區(qū)B(SD卡的數(shù)據(jù)已經(jīng)完成傳輸),這樣不斷實(shí)現(xiàn)緩沖區(qū)A與B的切換,保證AIC23的數(shù)據(jù)連續(xù),實(shí)現(xiàn)音頻信號(hào)的不間斷傳輸,解決音頻錄放失真的現(xiàn)象,達(dá)到完美錄放效果。
在程序的設(shè)計(jì)中,由于SD存取速度快,還需要考慮SD卡對(duì)緩沖區(qū)重復(fù)處理,影響音頻質(zhì)量的問(wèn)題,因而在存取流程中增加了切換緩沖標(biāo)志的判斷,避免了這樣的問(wèn)題。如圖6所示是系統(tǒng)音頻錄入的軟件程序流程圖,其播放的程序設(shè)計(jì)思想與其相似。
圖6 系統(tǒng)音頻錄入程序流程圖
采用乒乓緩沖與定時(shí)中斷技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了系統(tǒng)的軟硬件平臺(tái),通過(guò)PC機(jī)播放一段音頻文件,將音頻信息由LINE IN接口送到錄放系統(tǒng)進(jìn)行功能測(cè)試。
其實(shí)驗(yàn)結(jié)果顯示,錄音音質(zhì)良好,實(shí)時(shí)性高,不失真,達(dá)到了音頻錄放的目的。通過(guò)優(yōu)質(zhì)音頻編輯軟件Adobe Audition及MATLAB軟件,觀察音頻的時(shí)域波形可以得到相應(yīng)的結(jié)果如圖7所示。
圖7 原音頻文件與乒乓緩沖技術(shù)波形對(duì)比
在圖中可以清晰地看到兩者波形相似,只在振幅、中心線存在偏差,其主要原因在于AIC23的電壓基準(zhǔn)和量化誤差的影響,但不影響錄音音質(zhì);同時(shí)在波形對(duì)比中,也觀察到存在微小的音頻丟失現(xiàn)象,但這不會(huì)影響音頻質(zhì)量和實(shí)時(shí)性要求,主要是由于定時(shí)中斷與原文件采樣率有偏差所造成,可以通過(guò)調(diào)整定時(shí)中斷時(shí)間來(lái)減少丟失問(wèn)題。
考慮到音頻信號(hào)的復(fù)雜度,時(shí)域波形不能全面分析信號(hào)的特性。因而,利用MATLAB對(duì)音頻信號(hào)進(jìn)行FFT,得到各音頻信號(hào)的頻譜分析[10]如圖8所示。
圖8 音頻信號(hào)的頻譜分析
通過(guò)圖8也可以看出,乒乓緩沖技術(shù)的頻譜所包含的頻率范圍、強(qiáng)度與原音頻文件基本一致,但單緩沖技術(shù)的頻譜明顯有較大失真,不能達(dá)到既定要求。
針對(duì)錄放系統(tǒng)為滿足大容量與實(shí)時(shí)性的問(wèn)題,文章提出并設(shè)計(jì)實(shí)現(xiàn)了基于乒乓緩沖技術(shù)和定時(shí)中斷的硬件方案,通過(guò)理論分析與實(shí)際測(cè)試結(jié)果證明:
1)此方案設(shè)計(jì)合理,達(dá)到了預(yù)期目標(biāo)。
2)系統(tǒng)支持大容量SD卡,建立文件系統(tǒng),其音頻文件的通用性提高,有效提高系統(tǒng)文件的兼容性。
3)由于系統(tǒng)采用乒乓緩沖與定時(shí)中斷相結(jié)合的技術(shù),保證了系統(tǒng)的需求,降低了對(duì)內(nèi)存容量和處理速度的要求,提高了系統(tǒng)利用率。
該方案不僅可用于電子導(dǎo)游系統(tǒng)領(lǐng)域達(dá)到自主錄放的目的,而且能夠應(yīng)用于其他語(yǔ)音服務(wù)領(lǐng)域如工控系統(tǒng)、自動(dòng)應(yīng)答系統(tǒng)、智能化儀表、辦公系統(tǒng)等,具有良好的實(shí)際應(yīng)用價(jià)值。
[1]范寒柏,陳旭升,李雪梅.基于ISD4000系列芯片智能錄放系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2007(11):44-46,49.
[2]彭希南.基于SPI接口的ISD4104系列語(yǔ)音錄放芯片及其應(yīng)用[J].微型機(jī)與應(yīng)用,2000(9):24-26.
[3]史明泉.基于DSP的語(yǔ)音錄放系統(tǒng)的設(shè)計(jì)[J].無(wú)線電工程,2011(12):53-55.
[4]何蘇勤,徐家艷.基于定點(diǎn)DSP語(yǔ)音錄放系統(tǒng)的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006,26:148-150,200.
[5]李世奇,董浩斌,李榮生.基于FatFs文件系統(tǒng)的SD卡存儲(chǔ)器設(shè)計(jì)[J].測(cè)控技術(shù),2011,12:79-81.
[6]陳泰紅,任勝杰,魏宇.手把手教你學(xué)DSP:基于TMS320C55x[M].北京:北京航空航天大學(xué)出版社,2011:4-25.
[7]ChaN.FatFs-Generic FAT file system module.[EB/OL].[2014-01-08].http://elm-chan.org/fsw/ff/00index_e.ht-ml.
[8]周克良,楊麗榮.基于TMS320C5402的數(shù)字壓縮語(yǔ)音錄放系統(tǒng)[J].電子設(shè)計(jì)應(yīng)用,2004(9):129-130.
[9]李武森,遲澤英,陳文建.高速DSP圖像處理系統(tǒng)中的乒乓緩存結(jié)構(gòu)研究[J].光電子技術(shù)與信息,2005(3):76-79.
[10]吳雄英.語(yǔ)音信號(hào)頻譜分析儀的設(shè)計(jì)[D].成都:電子科技大學(xué),2008:24-35.
Design of large capacity real-time audio recording system
DING Jicheng,JIA Chun
College of Automation,Harbin Engineering University,Harbin 150001,China
In order to satisfy the demand of high capacity recording and playing of audio in real timewhile ensuring the tone quality and information integrity,a scheme is presented for hardware and software of a large capacity real-time audio recording system based on digital signal processing(DSP),audio codec chip,and storagemedium SD card.In order to solve the problem of large capacity system,the general IO port is used to simulate SPI protocol to achieve writing and reading through SD card in real-time under non-integrated SPI environment.The emphasis of this paper is to solve the real-time problem of audio recording and playing by the Ping-Pong buffer and timer inter-rupt technology,on the basis of testing and analyzing single buffer recording and playing scheme.The actual test shows that the sound quality recorded by this scheme is good with high real-time performance,therebymeeting the application requirement of large capacity storage.
audio recording and playing system;digital signal processing;FatFs file system;Ping-Pong buffer technique
TN912.3
:A
:1009-671X(2015)01-045-04
10.3969/j.issn.1009-671X.201403015
http://www.cnki.net/kcms/detail/23.1191.U.20150112.1530.009.htm l
2014-03-24.
日期:2015-01-12.
國(guó)家自然科學(xué)基金資助項(xiàng)目(61304234,61273081).
丁繼成(1980-),男,講師,博士;賈春(1991-),男,碩士研究生.
丁繼成,E-mail:aaron.heu@163.com.