陳 咪
(中國(guó)電子科技集團(tuán)公司第七研究所,廣東 廣州 510220)
在無(wú)線通信系統(tǒng)中,語(yǔ)音通信業(yè)務(wù)是最基本的業(yè)務(wù)保障。由于無(wú)線信道具有不穩(wěn)定性,無(wú)線傳輸存在帶寬的限制和距離的要求,必須對(duì)語(yǔ)音數(shù)據(jù)信息進(jìn)行壓縮。高效率、低速率的語(yǔ)音編解碼方案既能保證無(wú)線語(yǔ)音通信的質(zhì)量,又能降低對(duì)無(wú)線通信傳輸速率的要求。本文介紹一種基于語(yǔ)音處理芯片TLV320AIC29及WT3080的語(yǔ)音編解碼設(shè)計(jì)方案,通過(guò)ZYNQ7015的軟件,能夠獲得低至2.4 kb/s的語(yǔ)音聲碼話數(shù)據(jù)。
語(yǔ)音信號(hào)編解碼系統(tǒng)實(shí)現(xiàn)的功能包括語(yǔ)音信號(hào)模數(shù)/數(shù)模轉(zhuǎn)換、語(yǔ)音信號(hào)壓縮編碼及語(yǔ)音信號(hào)采集。為了使系統(tǒng)具有擴(kuò)展性,本設(shè)計(jì)方案選擇獨(dú)立的語(yǔ)音處理芯片分別完成模數(shù)轉(zhuǎn)換及編碼壓縮功能。語(yǔ)音編解碼系統(tǒng)設(shè)計(jì)如圖1所示。
圖1 系統(tǒng)設(shè)計(jì)示意圖
為了支持全雙工通信,系統(tǒng)設(shè)計(jì)分為發(fā)送處理和接收處理兩部分。發(fā)送部分將模擬話音采樣,進(jìn)行壓縮編碼,之后送至無(wú)線通信協(xié)議棧發(fā)送。接收處理部分從無(wú)線通信協(xié)議棧接收話音數(shù)據(jù),先將壓縮的話音數(shù)據(jù)進(jìn)行解碼,之后將解碼后的數(shù)據(jù)轉(zhuǎn)換為模擬話音。
TLV320AIC29的功耗和采樣率為線性正比例關(guān)系,配置TLV320AIC29的采樣率為8 kb/s,既能滿足WT3080壓縮編碼所需的采樣數(shù)據(jù),又能兼顧芯片的功耗[1]。國(guó)際電信聯(lián)盟(International Telecommunication Union,ITU)將話音質(zhì)量等級(jí)分為5級(jí),為了滿足話音質(zhì)量3級(jí)的要求,語(yǔ)音信號(hào)壓縮編碼后的速率為2.4 kb/s。系統(tǒng)設(shè)計(jì)參數(shù)如表1所示。
表1 系統(tǒng)設(shè)計(jì)參數(shù)
硬件連接關(guān)系如圖2所示。由于ZYNQ7015的可編程邏輯(Programmable Logic,PL)側(cè)IO數(shù)目較多且可以使用軟件配置,因此TLV320AIC29以及WT3080均連接在ZYNQ7015的PL端,通過(guò)片內(nèi)總線與可編程系統(tǒng)(Programming System,PS)進(jìn)行通信。TLV320AIC29的工作時(shí)鐘由ZYNQ7015的PL經(jīng)過(guò)MRCC端口輸出提供,便于軟件配置。根據(jù)芯片手冊(cè),WT3080的工作時(shí)鐘采用的固定的16.384 MHz,由外部晶振提供。
圖2 硬件連接圖
可編程邏輯與TLV320AIC29的接口包括電源、復(fù)位、配置SPI接口及數(shù)據(jù)SPI接口。其中,配置SPI接口用于設(shè)置TLV320AIC29的工作參數(shù),數(shù)據(jù)SPI接口用于完成采樣數(shù)據(jù)的收發(fā)。TLV320AIC29的工作主時(shí)鐘由ZYNQ7015的PL提供,時(shí)鐘頻率為16.384 MHz。
語(yǔ)音編解碼系統(tǒng)軟件架構(gòu)設(shè)計(jì)如圖3所示。PS的軟件分為應(yīng)用層和驅(qū)動(dòng)層,其中應(yīng)用層根據(jù)系統(tǒng)功能完成語(yǔ)音處理芯片參數(shù)設(shè)置及語(yǔ)音數(shù)據(jù)讀寫,驅(qū)動(dòng)層完成接口時(shí)序及PL的中斷響應(yīng)[2]。PL的軟件分為接口時(shí)序模塊和數(shù)據(jù)緩存模塊,其中接口時(shí)序模塊完成串口及SPI接口的時(shí)序信號(hào)產(chǎn)生,數(shù)據(jù)緩存模塊以FIFO的形式完成芯片與PS間的數(shù)據(jù)速率匹配[3]。
圖3 軟件架構(gòu)設(shè)計(jì)
數(shù)據(jù)的讀寫由PS發(fā)起,數(shù)據(jù)讀寫軟件的運(yùn)行狀態(tài)分為發(fā)送狀態(tài)和接收狀態(tài)[4]。其中,發(fā)送狀態(tài)是指從MIC獲取話音數(shù)據(jù)進(jìn)行壓縮編碼,經(jīng)由無(wú)線信道傳輸,接收狀態(tài)則與發(fā)送狀態(tài)相反,從無(wú)線信道獲取數(shù)據(jù)進(jìn)行話音數(shù)據(jù)解碼。解碼后的數(shù)據(jù)進(jìn)行數(shù)模轉(zhuǎn)換,轉(zhuǎn)換后的模擬信號(hào)經(jīng)過(guò)放大,通過(guò)聽筒進(jìn)行播放[5]。以系統(tǒng)處于發(fā)送狀態(tài)為例,數(shù)據(jù)處理流程如圖4所示。
圖4 發(fā)送狀態(tài)數(shù)據(jù)處理流程
采集語(yǔ)音數(shù)據(jù)時(shí),TLV320AIC29芯片首先完成語(yǔ)音數(shù)據(jù)的模數(shù)轉(zhuǎn)換,以8 kS/s的采樣率采集16 bit位寬的話音數(shù)據(jù)。PL接收SPI的數(shù)據(jù)至緩存FIFO。FIFO設(shè)計(jì)為寬度16 bit,深度為512,F(xiàn)IFO滿時(shí)產(chǎn)生中斷信號(hào)至PS。PS中斷響應(yīng)函數(shù)通過(guò)AXI總線進(jìn)行FIFO數(shù)據(jù)的讀取[6]。PS讀取完畢512深度的數(shù)據(jù)后,進(jìn)行一次壓縮編碼,之后將讀取的話音數(shù)據(jù)經(jīng)過(guò)AXI總線發(fā)送至PL的WT3080數(shù)據(jù)緩存FIFO。PL通過(guò)串口將話音數(shù)據(jù)發(fā)送至WT3080,WT3080完成壓縮編碼后將2.4 kb/s的聲碼話數(shù)據(jù)發(fā)送至PL。PL將接收的數(shù)據(jù)存儲(chǔ)至FIFO。FIFO滿時(shí)產(chǎn)生中斷信號(hào),PS響應(yīng)中斷信號(hào),讀取壓縮編碼的數(shù)據(jù),將數(shù)據(jù)發(fā)送至無(wú)線空口[7,8]。
系統(tǒng)處于接收狀態(tài)時(shí),數(shù)據(jù)處理流程與發(fā)送狀態(tài)相反。
采用頻率1 kHz的單音信號(hào)進(jìn)行測(cè)試。測(cè)試信號(hào)由標(biāo)準(zhǔn)音頻信號(hào)源產(chǎn)生。將軟件采集的數(shù)據(jù)導(dǎo)出,通過(guò)MATLAB進(jìn)行頻域分析。實(shí)際采集數(shù)據(jù)的頻域曲線如圖5所示。由圖5可以看出,本設(shè)計(jì)方案采集的數(shù)據(jù)的信噪比符合設(shè)計(jì)要求。
圖5 1 kHz單音信號(hào)的頻域
本文給出了一種適合窄帶無(wú)線通信的語(yǔ)音數(shù)據(jù)編解碼的設(shè)計(jì)方案。該設(shè)計(jì)方案采用低功耗專用芯片配合軟件編程實(shí)現(xiàn)了低速率語(yǔ)音數(shù)據(jù)采集及編解碼,從信源側(cè)降低了對(duì)無(wú)線通信傳輸能力的要求。未來(lái)通過(guò)軟件編程,可進(jìn)一步配置編解碼系統(tǒng)的工作參數(shù),滿足不同窄帶無(wú)線通信系統(tǒng)對(duì)語(yǔ)音業(yè)務(wù)的要求。