<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于DSP的IP電話設計

          基于DSP的IP電話設計

          作者: 時間:2011-10-28 來源:網絡 收藏
          與ADC、DAC之間的通信

          本文引用地址:http://www.ex-cimer.com/article/150087.htm

          本系統(tǒng)所選用的G.728標準的語音編碼算法需要8kHz的采樣速率,所以這里我們對ADC和DAC要求就是最高采樣率或轉換時間不低于8kHz。

          根據語音信號的特點,我們選用TI公司的TLC32044芯片,這是一片集成了ADC和DAC功能的芯片。它的最高轉化速率為19.2kHz,轉換位數為14位,輸入電壓帶范圍可調,有標準同步串口,還有輸入濾波器和輸出重構濾波器,這樣可以省去模擬濾波器的。TMS320VC5409與TLC32044的接口電路如圖3所示。

          圖3 與DAC、ADC的接口電路

          圖4 與雙端口RAM的接口電路

          圖5 PC19025雙端口RAM接口電路

          DSP與雙端口RAM之間的通信

          為了體現(xiàn)PCI總線速度快的優(yōu)點,我們選用速度較快的雙端口RAM CY7C133-25,最大傳輸速率為25ns。雙端口RAM在DSP的數據空間的地址映射為8000H-87FFH。

          這里需要強調的是雙端口RAM的BUSY信號。我們并不使用這個信號,因為我們分別對雙端口RAM的不同部分進行操作,所以避免了可能發(fā)生的任何沖突,因此省去了BUSY信號,BUSY信號懸空。電路的電壓轉換和地址譯碼同樣由CPLD來完成。


          PCI9052與雙端口RAM之間的通信

          DSP的任務是完成語音的編碼和解碼,然后再通過PCI總線與計算機進行數據交換。這里我們使用了PCI接口芯片PCI9052。所以,問題就變成了DSP與PCI9052之間的通信。DSP與PCI9052之間用一片雙端口RAM(容量為2k×16bit)進行數據交換。

          由于PCI9052具有5個局部地址空間和4個局部設備片選信號,所以連線變得相當簡單,我們只需要將雙端口RAM映射到其中一個局部地址空間,然后使用其中的一個片選信號連接到雙端口RAM的,最后將PCI9052的讀寫信號(R/W)和對應連接到雙端口RAM的R/W和。這樣就省去了地址譯碼等外圍邏輯電路。

          軟件系統(tǒng)

          系統(tǒng)要實
          現(xiàn)的算法就是語音編碼算法,還要完成與計算機的數據交換。軟件部分的主要作用是用嵌入式操作系統(tǒng)中的TCP/協(xié)議對需要傳送的語音編碼信號進行打包,再通過計算機上的網卡將數據通過Internet傳送到接收方,并把接收到的TCP/包還原為原來的語音編碼信號,最后通過PCI總線傳輸給DSP進行語音解碼。

          結語

          實踐證明,本系統(tǒng)方案的主要優(yōu)點是對計算機硬件的要求不高,處理速度快,語音的輸入輸出系統(tǒng)單獨集成,信噪比(SNR)高,具有相當的適用和推廣價值。


          上一頁 1 2 下一頁

          關鍵詞: 設計 電話 IP DSP 基于

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();