基于DSP的多路語音實時采集與壓縮處理系統(tǒng)
在語音的數(shù)字通信和數(shù)字存儲等應用領域,需要對多路語音信號進行實時采集和壓縮處理。如某語音記錄設備,需要對8路語音信號進行實時采集和壓縮處理,而且要求對采集到的語音數(shù)據(jù)的壓縮率盡量高。一般地,當要求語音數(shù)據(jù)壓縮后的碼流在10 Kbps左右時,需要采用語音的模型編碼技術。而模型編碼算法的運算量很大。因此,如一方面要求對多達8路的語音信號進行實時采集,另一方面又要求對各路的語音信號進行較高壓縮率的實時壓縮處理,對數(shù)據(jù)采集和處理系統(tǒng)提出了更高的要求。
由于VLSI技術的迅速發(fā)展,DSP(Digitalsig-nal processor數(shù)字信號處理器)的性能價格比得到了很大的提高,使得利用DSP的高速數(shù)據(jù)管理能力和處理能力來實現(xiàn)高速數(shù)據(jù)采集和處理成為實時數(shù)據(jù)采集和處理的一個新的發(fā)展方向?;诖?,本文介紹的多路語音實時采集與壓縮處理系統(tǒng)采用了高速DSP技術。
1 系統(tǒng)結構與工作原理
1.1 系統(tǒng)主要性能指標
采集語音信號通道數(shù):8
語音信號帶寬:300~3 400 Hz
采樣速率:8 000 Hz
語音回放通道數(shù):1
每路語音信號壓縮后碼流:13 Kbps
擴展ISA總線接口
系統(tǒng)在結構上包括三個主要部分,即8通道A/D和1通道D/A部分,DSP最小系統(tǒng)及DSP的DMA與ISA總線的接口。如圖1所示。
1.2 A/D及D/A
該部分由9片A-Law CODEC芯片TP3057組成。其中8片構成8通道A/D轉(zhuǎn)換器,另一片構成D/A轉(zhuǎn)換器,直接由DSP控制。該芯片采樣數(shù)據(jù)是8 000×8 bit A-Law PCM數(shù)據(jù),每通道數(shù)字信號的輸入和輸出是64 KbpsPCM同步串行碼流。數(shù)據(jù)傳輸碼流速率是2.048 Mb/s。8片A-Law CODEC均掛接在同一2.048 Mb/s的同步串行數(shù)據(jù)總線上,2.048 Mb/s的數(shù)據(jù)分為32個時隙,每個通道的64Kbps數(shù)據(jù)的傳輸占用32個時隙中的一個。具體占用那一個時隙由時隙分配控制電路確定。
1.3 DSP最小系統(tǒng)
DSP是本系統(tǒng)核心部分,它完成對2.048 Mb/s的同步串行數(shù)據(jù)總線的控制,及對高達2.048 Mb/s串行數(shù)據(jù)碼流的采集、8路輸入語音的壓縮處理和1路語音的解壓縮處理。本系統(tǒng)采用的DSP是AnalogDevice公司的定點DSP,即ADSP-2181,其主要功能與特點如下:
(1)外接16.67 MHz晶振,指令周期為30 ns,33 MIPS運算速度,所有指令單周期執(zhí)行。
(2)提供一個16位的DMA(IDMA)口,用于高速存取片內(nèi)存儲器及裝載數(shù)據(jù)和程序。
(3)提供一個8位自舉DMA(BDMA)口,用于從自舉程序存儲器中裝載數(shù)據(jù)和程序。
(4)程序RAM 24Bit×16 K,數(shù)據(jù)RAM 16Bit×16 K。
(5)16位字長運算精度。
(6)提供兩個雙緩沖區(qū)的串口,具有硬件A/u律編解碼和自動緩沖(Auto-buffer)能力,其中的串口0具有多通道(Multichannel)的功能。
(7)提供6個外部中斷、13個可編程I/O引腳和JTAG仿真引腳。
由于DSP的上述功能和特點,使得DSP與A/D及D/A電路實現(xiàn)了無縫連接。其中串口0連接8路A/D的2.048 Mb/s的同步串行數(shù)據(jù)總線,串口1連接D/A CODEC電路。由于DSP具有16 K的程序RAM和16 K的數(shù)據(jù)RAM,所以對于本系統(tǒng)無需外擴存儲器,即由單片DSP就構成了本系統(tǒng)所需的最小DSP系統(tǒng)。
1.4 DSP的DMA與ISA總線的接口
ADSP2181片內(nèi)集成了一個直接訪問其內(nèi)部存儲器的16位DMA端口(IDMA PORT)。主機通過此接口可以直接訪問ADSP2181片內(nèi)的程序和數(shù)據(jù)存儲器的任一單元。因而主機可以通過此端口對DSP加載程序、下載程序、讀取片內(nèi)執(zhí)行的狀態(tài)、實現(xiàn)與DSP的數(shù)據(jù)傳輸?shù)炔僮?。IDMA端口總線的16位數(shù)據(jù)和地址是復用的。由于DSP的程序存儲器是24位的,而DMA的數(shù)據(jù)總線寬度是16位,故對程序存儲器操作時,分為兩次,先對高16位操作,然后接著對最低8位操作。通過IDMA端口的存、取操作分如下兩步進行:
·IDMA地址鎖定操作
通過IDMA的地址鎖存信號(IAL),將14比特的地址信息和1比特的存儲器類型信息通過IDMA總線,在地址鎖存信號(IAL)的降沿時被鎖入到DSP片內(nèi)的IDMA地址鎖存器。14比特地址信息確定了ADSP片內(nèi)的存儲器地址,而存儲器類型位用來區(qū)分操作是對程序存儲器或數(shù)據(jù)存儲器。
·數(shù)據(jù)存、取操作
當?shù)刂沸畔⒈环湃氲絀DMAA寄存器中后,通過加IDMA的IWR,IRD信號,實現(xiàn)對片內(nèi)的指定地址的信息進行讀、寫操作。每次讀、寫操作后存儲器的地址值將自動的遞增,為下一次的讀寫操作做好準備。
本系統(tǒng)中通過ISA總線的I/O操作及IDMA口對DSP的內(nèi)部存儲器進行訪問的。通過硬件譯碼滿足IDMA時序要求的控制信號IAL,IWR,IRD等及DSP的復位信號(RESET)。該接口占用了16個I/O地址空間。
1.5 通過IDMA端口裝載程序
ADSP2181通過兩種機制在上電、復位后自動裝載DSP程序。兩種機制由MMAP和BMODE兩個引腳的電平控制。當MMAP=0,BMODE=1時,ADSP2181自動在系統(tǒng)復位時,通過IDMA端口由主機加載DSP程序。主機首先必須裝載除程序的第一條指令外其它程序和數(shù)據(jù)到DSP的片內(nèi)程序存儲器,最后才寫入對應程序RAM第一個單元的第一條指令。一當程序存儲器的0地址被寫入程序代碼后,DSP立即從地址0開始執(zhí)行程序。
2 8路語音信號的數(shù)據(jù)采集
8路語音數(shù)字信號通過一2.048 Mb/s的同步串行數(shù)據(jù)總線傳輸?shù)紻SP。其中每個通道的數(shù)據(jù)是64 Kbps,每個通道占用2.048 Mb/s的同步串行數(shù)據(jù)總線的32個時隙中的一個,因此,共占用8個時隙。DSP通過對時隙分配電路的控制給8個通道各分配一個時隙。這樣,8個通道的每個通道的數(shù)據(jù)都在由DSP指定的時隙中傳輸。
DSP的串口0是一個可編程的最大數(shù)據(jù)傳輸速率能達到4.096 Mb/s的同步串行口。DSP串口0的操作在接收到一個WORD或發(fā)送完一個WORD的數(shù)據(jù)時,從DSP內(nèi)部RAM讀、寫一個WORD的數(shù)據(jù)需要占用DSP的一個機器周期(33 ns),在接收和發(fā)送過程中不占用DSP的處理時間。由此可見,DSP的串口0具有很強的數(shù)據(jù)采集與控制能力。
利用串口0的較強的數(shù)據(jù)采集與控制能力,很容易實現(xiàn)通過2.048 Mb/s的同步串行數(shù)據(jù)總線對8通道語音數(shù)字信號的采集與控制。首先,編程DSP的串口0的同步時鐘信號及幀同步信號分別為2 048 kHz和8 kHz,這兩個信號控制CODEC的A/D轉(zhuǎn)換速率和位傳送速率,同時同步時鐘信號還可供CODEC的A/D轉(zhuǎn)換的時鐘。再者,編程DSP的串口0工作于多通道模式,打開32個時隙中對應的8通道的時隙接收,使對應的每通道字(WORD)長為8位,選擇A-Law壓/擴,并打開自動緩沖功能并設置自動緩沖指針。當如上對串口0初始化并打開串口0的接收中斷后,串口0將接收到的8 WORD的按A-Law解壓的數(shù)據(jù)存放在自動緩沖指針指向的長度為8的緩沖區(qū)中,自動緩沖指針自動回位,同時產(chǎn)生一個硬件接收中斷。
評論