目前,大多數(shù)數(shù)字對講機方案都是基于通用芯 片平臺,集成度低,功耗較高,價格昂貴,調試復 雜,不利于產(chǎn)業(yè)化。隨著集成電路技術的發(fā)展,基 于聲碼器與微控制器的對講機方案得到了較快的發(fā) 展,聲碼器通常使用專用語音編解碼芯片完成語音 收稿日期:2012-05-11。
男,碩士研究生,主要研究方向為無線通信系 統(tǒng)、語音信號處理、FPGA開發(fā);楊驍(1978-), 男,講師,博士,主要研究方向為模擬集成電 路設計、混合信號集成電路設計、射頻集成電 路設計、信號處理。
數(shù)字化處理。為了簡化系統(tǒng)維護,方便使用操作, 采用通用數(shù)字信號處理器作為基帶處理核心,實現(xiàn) 聲碼器功能,使語音處理靈活,具有更好的通用性和 擴展性。
1系統(tǒng)的硬件設計
根據(jù)該基帶系統(tǒng)在功耗、成本及擴展性等方面 考慮,需要完成模擬語音信號數(shù)字化轉換及處理, 無線信道傳輸。系統(tǒng)總體結構方案如圖1所示。
圖1系統(tǒng)硬件結構
系統(tǒng)主要由AIC23數(shù)模轉換模塊、DSP語音處
理模塊、微控制單元(MCU)模塊和CC1101射頻模 1^4部分構成。
1. 1 DSP處理模塊
基帶系統(tǒng)處理核心是基于通用DSP形成的數(shù)字 語音處理單元,實現(xiàn)數(shù)模轉換模塊AIC23的控制, 完成MELP聲碼器。選擇TMS320VCM10作為基帶系 統(tǒng)處理核心,它有如下特點⑴:雙乘加器(MAC)結構, 代碼執(zhí)行效率高;320KWord的RAM,可以減少擴展功 耗較大的片外存儲芯片;豐富的片上外設,如:外部 存儲器接口(EMIF,External Memory Interface)、 直接內存存取(DMA, Direct Memory Access)控制 器、多通道緩沖串行口(McBSP,Multi-channel Buffered Serial Port)等;先進的電源管理技術 降低系統(tǒng)功耗。通過EMIF接口擴展256KWord的 Flash存儲器,用于上電后系統(tǒng)程序的加載,和電 源、時鐘管理、JTAG模塊構成DSP的最小系統(tǒng)。
1.2數(shù)模轉換模塊
TLV320AIC23是H公司推出的一款高性能、低 功耗立體聲音頻編解碼器[a。它可以和TI的DSP無 縫連接,通過DSP的McBSP接口與其進行連接, McBSP 1用于配置工作參數(shù),McBSP2用于傳送模數(shù) (A/D)、數(shù)模(D/A)轉換的數(shù)據(jù)。AIC23和DSP的 輸入輸出接口(I/O)電壓兼容,使系統(tǒng)設計簡單。
1. 3 MCU模塊
控制器MCU主要實現(xiàn)對外圍器件的控制和設 置,進行按鍵掃描檢測、基帶信號的發(fā)送與接收、 與DSP之間數(shù)據(jù)的交換和實現(xiàn)通信協(xié)議。選擇 MSP430F149作為主控制器 ' 其通用同步/異步接 收/發(fā)送器(USART)串口與DSP進行通信。USART1 與DSP的McbspO接口連接,通過串行外設接口 (SPI) 進行數(shù)據(jù)通信;USART0與射頻模塊進行連接通信。 1. 4射頻模塊
射頻模塊主要完成數(shù)字基帶信號調制解調,規(guī) 定比特符號和碼元之間的關系,并建立頻率同步和 碼元同步。射頻模塊采用TI的CC1101芯片,集 成了一個高度可配置的基帶調制解調器,支持四進 制頻移鍵控(4FSK)、高斯頻移鍵控(GFSK)、最小 移頻鍵控(MSK)等調制方式。單片機通過SPI方式 實現(xiàn)對CC1101運行參數(shù)和64字節(jié)發(fā)送/接收先入先 出隊列(FIFO)的控制[3]。
2系統(tǒng)軟件的設計
軟件主要是DSP與MSP430的程序設計,包括數(shù) 據(jù)采集、語音處理、MCU控制處理。接收時,CC1101 接收無線傳輸來的調制信號,解調后送到MSP430完 成數(shù)據(jù)組幀恢復,得到數(shù)字編碼碼流。與DSP進行 通信,DSP對其進行解碼恢復成數(shù)字語音碼流,送到
AIC23進行D/A轉換為話音信號。發(fā)送時,由麥克 風輸入的語音經(jīng)AIC23進行A/D采樣,由DSP進行數(shù) 字壓縮編碼,再送到單片機進行填充組幀,最后由 射頻模塊進行調制后發(fā)射出去。
2. 1數(shù)據(jù)采集
DSP與AIC23之間的數(shù)據(jù)交換采用DMA的工作 方式減輕數(shù)據(jù)采集時DSP的負擔,同時進行聲碼 器處理。采用兵兵(Ping-Pong)存儲結構,每當串 口 Mcbsp2發(fā)送/接收到一個單元數(shù)據(jù),自動觸發(fā)DMA 將其存入一個存儲塊中,例如Ping存儲區(qū),當存儲 滿時會中斷CPU進行數(shù)據(jù)處理。同時,DMA會自動 去操作Pong存儲區(qū),繼續(xù)采集數(shù)據(jù)。這樣可以有效 防止數(shù)據(jù)在處理時被新數(shù)據(jù)覆蓋的情況,而且 Ping-Pong之間自動切換,可以不間斷對數(shù)據(jù)進行 采集,適合流水線式處理,完成數(shù)據(jù)的無縫緩沖與 實時處理。
2. 2語音處理
語音處理模塊主要實現(xiàn)MELP聲碼器算法5]。 語音幀長22. 5 ms,每幀數(shù)據(jù)用54 bit進行編碼。 MELP聲碼器分為分析器和合成器兩部分。分析器實 現(xiàn)對原始語音信號進行幀分析處理,其流程圖如圖 2所示。首先經(jīng)過高通濾波器進行預處理,濾除直流 工頻干擾,然后完成各個語音段的特征參數(shù)(基音 周期、帶通清/濁音強度、非周期脈沖標志、線譜 對(LSF, Linear Spectrum Pairs)參數(shù)、增益估計 和傅里葉譜幅度等)的提取,最后進行量化編碼和 組幀。
圖2 MELP聲碼器分析流程
合成器用于對接收到的碼流進行解碼恢復,首 先進行解包、排列,然后譯碼生成混合激勵信號, 先后經(jīng)過自適應譜增強,線性預測編碼參數(shù)(LPC, Linear Predictive Coding)合成濾波,增益控 制,脈沖離散濾波等步驟處理,在接收端重構輸入 的語音信號[5]。合成器的流程圖如圖3所示。
聲碼器模塊采用MELP標準的C程序開源代 碼。在DSP移植過程中,需要對其進行優(yōu)化,以滿 足實時性要求。主要從以下幾個方面對MELP的定 點C代碼進行優(yōu)化。
圖3 MELP聲碼器合成流程
(1)編譯器優(yōu)化選項和inline函數(shù)方法優(yōu)化[6]
采用優(yōu)化選項的優(yōu)化級別-02,得到較高的代碼
優(yōu)化效率。對小函數(shù)用inline關鍵字限定,當函數(shù) 較常被調用時,可以減少調用的時間開銷,獲得較好 優(yōu)化效果。
(2)使用ETSI函數(shù)m
調用mathhalf文件中基本運算函數(shù)非常頻繁, 運行效率低。將這些函數(shù)用ETSI函數(shù)代替,當代碼 中調用了這些函數(shù)時,編譯器會自動把優(yōu)化過的匯 編代碼嵌入到程序中,可以節(jié)省很多時鐘周期,優(yōu)化 效果很好。
(3)數(shù)據(jù)內存的優(yōu)化
對存儲器進行合理規(guī)劃,將程序代碼和常量系 數(shù)分配到單訪問隨機存儲器(SARAM,Single Access RAM)中,把頻繁訪問的變量、堆棧等放在雙訪問隨 機存儲器(DARAM,Dual-Access RAM)中,充分利用 片內內存,提尚程序的執(zhí)行效率。
(4)對程序結構進行簡化
對代碼結構進行優(yōu)化,減少一些不必要的代碼 的運行,比如logicO;等測試函數(shù)。將算法中用到 MEM—ALL0C0等動態(tài)分配內存的函數(shù),根據(jù)運行時所 需的空間大小在函數(shù)中直接給出,減少庫函數(shù)的調 用,防止破壞軟件流水執(zhí)行。
(5)循環(huán)優(yōu)化[8]
對算法中循環(huán)部分進行優(yōu)化。利用其硬件結構、 尋址方式進行修改,減少分支和調用等指令,合理 安排代碼處理流程。充分利用其指令執(zhí)行時的流水 線特點,提局執(zhí)行效率。
DSP程序的控制流程如圖4所示。程序中設置 兩個長度為180字編碼和解碼緩沖塊。當接收緩沖 區(qū)滿180樣點時,DMA中斷CPU進行處理,把數(shù)據(jù) 復制到編碼緩沖塊中并進行MELP編碼,處理得到的 數(shù)據(jù)通過DMA復制到發(fā)送緩沖存儲器,送到MCU進 行后續(xù)處理。解碼過程是將MCU發(fā)來的幀比特數(shù)據(jù), 經(jīng)過MELP解碼后存儲解碼數(shù)據(jù)到解碼緩沖塊中,然 后將合成語音數(shù)據(jù)發(fā)送到AIC23進行話音的回放。