在語音的數字通信和數字存儲等應用領域,需要對多路語音信號進行實時采集和壓縮處理。如某語音記錄設備,需要對8路語音信號進行實時采集和壓縮處理,而且要求對采集到的語音數據的壓縮率盡量高。一般地,當要求語音數據壓縮后的碼流在10 Kbps左右時,需要采用語音的模型編碼技術。而模型編碼算法的運算量很大。因此,如一方面要求對多達8路的語音信號進行實時采集,另一方面又要求對各路的語音信號進行較高壓縮率的實時壓縮處理,對數據采集和處理系統提出了更高的要求。 由于VLSI技術的迅速發展,DSP(Digitalsig-nal processor數字信號處理器)的性能價格比得到了很大的提高,使得利用DSP的高速數據管理能力和處理能力來實現高速數據采集和處理成為實時數據采集和處理的一個新的發展方向。基于此,本文介紹的多路語音實時采集與壓縮處理系統采用了高速DSP技術。 1 系統結構與工作原理 1.1 系統主要性能指標 采集語音信號通道數:8 語音信號帶寬:300~3 400 Hz 采樣速率:8 000 Hz 語音回放通道數:1 每路語音信號壓縮后碼流:13 Kbps 擴展ISA總線接口 系統在結構上包括三個主要部分,即8通道A/D和1通道D/A部分,DSP最小系統及DSP的DMA與ISA總線的接口。如圖1所示。 1.2 A/D及D/A 該部分由9片A-Law CODEC芯片TP3057組成。其中8片構成8通道A/D轉換器,另一片構成D/A轉換器,直接由DSP控制。該芯片采樣數據是8 000×8 bit A-Law PCM數據,每通道數字信號的輸入和輸出是64 KbpsPCM同步串行碼流。數據傳輸碼流速率是2.048 Mb/s。8片A-Law CODEC均掛接在同一2.048 Mb/s的同步串行數據總線上,2.048 Mb/s的數據分為32個時隙,每個通道的64Kbps數據的傳輸占用32個時隙中的一個。具體占用那一個時隙由時隙分配控制電路確定。 1.3 DSP最小系統 DSP是本系統核心部分,它完成對2.048 Mb/s的同步串行數據總線的控制,及對高達2.048 Mb/s串行數據碼流的采集、8路輸入語音的壓縮處理和1路語音的解壓縮處理。本系統采用的DSP是AnalogDevice公司的定點DSP,即ADSP-2181,其主要功能與特點如下: (1)外接16.67 MHz晶振,指令周期為30 ns,33 MIPS運算速度,所有指令單周期執行。 (2)提供一個16位的DMA(IDMA)口,用于高速存取片內存儲器及裝載數據和程序。 (3)提供一個8位自舉DMA(BDMA)口,用于從自舉程序存儲器中裝載數據和程序。 (4)程序RAM 24Bit×16 K,數據RAM 16Bit×16 K。 (5)16位字長運算精度。 (6)提供兩個雙緩沖區的串口,具有硬件A/u律編解碼和自動緩沖(Auto-buffer)能力,其中的串口0具有多通道(Multichannel)的功能。 (7)提供6個外部中斷、13個可編程I/O引腳和JTAG仿真引腳。 由于DSP的上述功能和特點,使得DSP與A/D及D/A電路實現了無縫連接。其中串口0連接8路A/D的2.048 Mb/s的同步串行數據總線,串口1連接D/A CODEC電路。由于DSP具有16 K的程序RAM和16 K的數據RAM,所以對于本系統無需外擴存儲器,即由單片DSP就構成了本系統所需的最小DSP系統。 1.4 DSP的DMA與ISA總線的接口 ADSP2181片內集成了一個直接訪問其內部存儲器的16位DMA端口(IDMA PORT)。主機通過此接口可以直接訪問ADSP2181片內的程序和數據存儲器的任一單元。因而主機可以通過此端口對DSP加載程序、下載程序、讀取片內執行的狀態、實現與DSP的數據傳輸等操作。IDMA端口總線的16位數據和地址是復用的。由于DSP的程序存儲器是24位的,而DMA的數據總線寬度是16位,故對程序存儲器操作時,分為兩次,先對高16位操作,然后接著對最低8位操作。通過IDMA端口的存、取操作分如下兩步進行: ·IDMA地址鎖定操作 通過IDMA的地址鎖存信號(IAL),將14比特的地址信息和1比特的存儲器類型信息通過IDMA總線,在地址鎖存信號(IAL)的降沿時被鎖入到DSP片內的IDMA地址鎖存器。14比特地址信息確定了ADSP片內的存儲器地址,而存儲器類型位用來區分操作是對程序存儲器或數據存儲器。 ·數據存、取操作 當地址信息被放入到IDMAA寄存器中后,通過加IDMA的IWR,IRD信號,實現對片內的指定地址的信息進行讀、寫操作。每次讀、寫操作后存儲器的地址值將自動的遞增,為下一次的讀寫操作做好準備。 本系統中通過ISA總線的I/O操作及IDMA口對DSP的內部存儲器進行訪問的。通過硬件譯碼滿足IDMA時序要求的控制信號IAL,IWR,IRD等及DSP的復位信號(RESET)。該接口占用了16個I/O地址空間。 1.5 通過IDMA端口裝載程序 ADSP2181通過兩種機制在上電、復位后自動裝載DSP程序。兩種機制由MMAP和BMODE兩個引腳的電平控制。當MMAP=0,BMODE=1時,ADSP2181自動在系統復位時,通過IDMA端口由主機加載DSP程序。主機首先必須裝載除程序的第一條指令外其它程序和數據到DSP的片內程序存儲器,最后才寫入對應程序RAM第一個單元的第一條指令。一當程序存儲器的0地址被寫入程序代碼后,DSP立即從地址0開始執行程序。 2 8路語音信號的數據采集 8路語音數字信號通過一2.048 Mb/s的同步串行數據總線傳輸到DSP。其中每個通道的數據是64 Kbps,每個通道占用2.048 Mb/s的同步串行數據總線的32個時隙中的一個,因此,共占用8個時隙。DSP通過對時隙分配電路的控制給8個通道各分配一個時隙。這樣,8個通道的每個通道的數據都在由DSP指定的時隙中傳輸。 DSP的串口0是一個可編程的最大數據傳輸速率能達到4.096 Mb/s的同步串行口。DSP串口0的操作在接收到一個WORD或發送完一個WORD的數據時,從DSP內部RAM讀、寫一個WORD的數據需要占用DSP的一個機器周期(33 ns),在接收和發送過程中不占用DSP的處理時間。由此可見,DSP的串口0具有很強的數據采集與控制能力。 利用串口0的較強的數據采集與控制能力,很容易實現通過2.048 Mb/s的同步串行數據總線對8通道語音數字信號的采集與控制。首先,編程DSP的串口0的同步時鐘信號及幀同步信號分別為2 048 kHz和8 kHz,這兩個信號控制CODEC的A/D轉換速率和位傳送速率,同時同步時鐘信號還可供CODEC的A/D轉換的時鐘。再者,編程DSP的串口0工作于多通道模式,打開32個時隙中對應的8通道的時隙接收,使對應的每通道字(WORD)長為8位,選擇A-Law壓/擴,并打開自動緩沖功能并設置自動緩沖指針。當如上對串口0初始化并打開串口0的接收中斷后,串口0將接收到的8 WORD的按A-Law解壓的數據存放在自動緩沖指針指向的長度為8的緩沖區中,自動緩沖指針自動回位,同時產生一個硬件接收中斷。 3 多路語音實時壓縮處理 3.1 壓縮算法 考慮到壓縮率的要求和實時的要求,在本系統中采用13 Kb/sRPE-LTP-LP編解碼算法[GSM],該算法的特點是在模型編碼算法中較為簡單,語音質量高達到了通信等級,同時具有較高的壓縮率。該算法的編碼算法包括以下幾個主要部分: 3.1.1 預處理部分 去除原始語音信號S0(n)中的直流分量得到S0f(n),再通過一階的FIR濾波器進行高頻預加重,得到信號S(n)。 3.1.2 LPC分析 按每160個樣本點將信號S(n)進行分幀,對每幀數據計算出8個LPC反射系數γ(i),i=0,1,2,…,7;再轉換成對數面積比參數LAR(i),i=1,2…7;并對所得的LAR(i)進行量化編碼得到LARC。 3.1.3 短時分析濾波 短時分析濾波是一個8級格型濾波器,通過短時分析濾波,得到線性預測(LP)余量d(n)。 3.1.4 長時預測 利用長時預測綜合對LP短時余量信號d(n)處理以進一步的去除冗余度。長時預測是按子幀進行處理的,每一幀分成4個子幀。 3.1.5 規則脈沖編碼 對經過短時、長時預測后得到的LP余量信號,進行加權濾波、規則脈沖提取和量化編碼。 在本系統的DSP上該算法實時實現性能如下: ·碼流速率13 Kb/s ·編碼運算量 3 MIPS ·解碼運算量 0.7 MIPS ·程序量 2 KWORD ·占用數據RAM 1 KWORD 3.2 多路語音實時壓縮處理的軟件實現 由于實時實現13 Kb/sRPE-LTP-LP編碼算法只占用了DSP的3MIPS的運算量,而解碼運算量為0.7 MIPS故在本系統的具有33 MIPS的運算速度的DSP上,可軟件實時實現多達10通道的13Kb/sRPE-LTP-LP編碼算法和1通道的解碼算法。同時,還有2MIPS的運算速度用于系統控制與管理。根據本系統的要求,已成功實現了8通道的13Kb/sRPE-LTP-LP編碼算法和1通道的解碼算法。因此,本系統的DSP在完成要求的多路語音采集與壓縮處理任務的條件下,還有一定的處理能力用于系統其它的擴展處理上。本系統的多路語音實時壓縮處理的系統軟件框圖如圖2所示。 由圖2可以看出,軟件設計主要包括4大部分: ·命令解釋與控制模塊 ·13 Kb/sRPE-LTP-LP編解碼模塊 ·多通道語音編解碼控制模塊 ·接口功能模塊 3.2.1 命令解釋與控制模塊 命令解釋與控制模塊主要是用于解釋由PC機通過IDMA口發來的各種命令,如發送或接收編解碼數據、設置PC機與DSP的數據傳輸數據量的大小、查詢編解碼狀態以及啟動,停止編解碼操作等。該模塊不直接與PC機打交道,而是通過接口功能模塊,間接實現與主CPU的數據信息交換。 3.2.2 13 Kb/sRPE-LTP-LP編解碼模塊 該模塊是一個單通道13 Kb/sRPE-LTP-LP語音編解碼模塊。它是本系統的語音壓縮處理的核心部分,為使該模塊具有通用性,為該模塊單獨形成一個ADSP-2100系列語言庫,可與任何其它ADSP-2100系列模塊相連。 3.2.3 多通道語音編解碼控制模塊 該模塊基于單通道13 Kb/sRPE-LTP-LP語音編解碼模塊,實現多通道語音編碼和單通道語音解碼。對于多通道語音編碼,一方面,當某通道采集到一幀160點的語音數據時,調用語音編碼模塊對該幀進行編碼,并將編碼后的語音數據按約定的格式存放到各通道的編碼數據緩沖區中;另一方面,由于語音的模型編碼是前后幀相關聯的,所以該模塊還必須將當前通道的當前幀編碼后的必須保存的數據和狀態進行保存,以及在調用語音編碼模塊對當前幀進行編碼前,恢復上一幀編碼后的數據和狀態。對于單通道語音解碼,則只需在接收到由PC機傳送來的壓縮數據后,調用解碼模塊,然后將解碼后的160點語音數據送到D/A的串口1發送緩沖區。 3.2.4 接口功能模塊 該模塊實現DSP與PC機的數據的實際交換工作,同時也實現DSP的數據采集與控制。由于它是軟件設計中唯一與硬件相關的模塊,故該模塊在設計上盡量與其它模塊獨立。這樣,當硬件有所改變時,可不必改變其他模塊。 4 結 論 本系統由于采用了DSP技術,使得多路語音的采集和壓縮處理得以實時實現。同時還使系統具有較高的可編程性能。基于該系統的某語音記錄儀已經通過省、部級的鑒定。本系統的成功設計說明數據采集與處理系統采用基于DSP技術,將大大提高系統的高速數據的實時采集和實時處理的能力。而且,當今的DSP的處理速度和數據管理能力還在迅速地提高,其價格也降到能應用于一般的應用場合。如ADSP-21061,40 MIPS的運算速度,10個DMA控制器,40位浮點運算精度,數據管理能力可達240Mbytes/s,其售價也只有30~40美元。因此,開發和研究基于DSP技術的數據采集與處理系統具有重要的實際意義。 |