基于TMS320C5402的數字壓縮語音錄放系統
系統簡介
本文引用地址://tjguifa.cn/article/21588.htm本系統的主要功能是通過對語音信號進行壓縮,以實現高效率數字錄音,可用于電話留言,語聲應答等場合。采用磁帶錄音實現電話留言,雖然錄音的時間較長,但不便于查找和保存。數字錄音可以克服磁帶錄音的缺點,不僅查找速度快,而且對錄音信息進行編輯整理也非常方便,更為方便的是數字錄音信息可以轉存在計算機硬盤或光盤上以便長期保存。但是數字錄音的缺點是要實現長時間錄音需要很大的存儲空間,因此本系統一方面采用存儲量為16mb的單片閃速存儲器km29n160,另一方面采用2.0kb/s的速率對語音進行壓縮,采用這兩種方法后,可以實現2小時以上的數字錄音。
系統硬件設計
整個硬件設計包括三個部分,一是tms320c5402 dsp處理系統,包括tms320c5402、程序存儲器、數據存儲器、模數轉換電路等;二是閃速存儲器及其與tms320
c5402的接口部分;三是at89c51主處理器部分,包括at89c51處理器、鍵盤顯示電路及at89c51與tms320c5402接口。圖1是整個硬件系統的示意框圖。
dsp處理系統
tms320c5402 dsp處理系統主要完成語音的壓縮和解壓縮功能。系統主要由tms320c5402、eprom 27c256-15(1片)、高速ram cy7c199-10(2片)、譯碼電路、晶體振蕩器、模數轉換電路等構成。其中,eprom存儲引導信息和程序代碼,其地址為數據空間的8000h~ffffh,dsp芯片加電運行時將eprom中的程序代碼搬移到高速ram中。高速ram的存取時間為10ns,可以全速執行,地址為0000h~7fffh,共32k字,程序和數據均可訪問。adc采用motorola公司的pcm編解碼器mc14lc5480,這個芯片集語音a/d、d/a及抗混疊濾波于一體,采用單5v供電方式,tms320c5402提供了可與pcm編碼器等串行器件接口的串行口,因而只需將相應的引腳一一連接即可。其接口電路如圖2所示。
主從系統設計
整個系統由at89c51和tms320c5402兩個處理器以主從方式連接,其中at89c51作為系統主機,完成系統的人機接口和對tms320c5402的控制。單片機與dsp之間通過hpi-8連接,標準的hpi-8口是一個8位的并行端口,可以用來實現dsp和主設備或主處理器接口,雙方通過共享tms320c5402的片上存儲器完成通信。單片機為主控部分,采用端口方式直接訪問hpi口。hpi口主要由地址寄存器(hpia)、控制寄存器(hpic)、數據寄存器(hpid)、hpi存儲器和hpi控制邏輯組成。對hpi口進行數據讀寫需要三個步驟:設置控制寄存器、寫地址寄存器和讀寫數據寄存器。單片機和dsp的hpi口硬件接口如圖3所示。
系統軟件設計
tms320c5402的軟件設計
tms320c5402的軟件包括eprom引導程序和系統軟件兩部分。其中,eprom引導程序比較簡單,其作用是將系統軟件從低速eprom搬移到高速ram中。系統軟件由三部分組成:即主程序、串行中斷服務程序和int0中斷服務程序。
主程序完成系統的初始化,包括從閃速存儲器中讀取已經存入的語音段數及數字音量等信息。完成初始化過程后,tms320c5402就等待從a
t89c51主處理器發來的各種命令,根據不同命令調用相應的處理程序。
串行中斷服務程序完成語音的輸入/輸出和數據格式的轉化功能,由于pcm編解碼器輸出的數據是8位m律數據,因此需將m律數據轉化為線性格式的數據以便tms320c5402進行處理。同樣,tms320c5402輸出的線性數據也需轉化為8位m律才能送至pcm編解碼器進行d/a變換。
int0中斷服務程序主要用來接收從at89c51送來的各種命令,并且設置相應的命令標志以便tms320c5402在主程序中識別并調用相應的子程序。
at89c51的軟件設計
at89c51軟件主要包括初始化程序、主程序、定時中斷服務程序和int0中斷服務程序。在初始化程序中,完成at89c51的初始化、tms320c5402的復位、從tms320c5402獲得已存入閃速存儲器的語音段數和數字音量等。主程序主要是按鍵處理程序。定時器中斷服務程序每隔10ms中斷一次,增加程序所需的各種計數器的值,并置各種定時到達標志以便主程序判斷使用。
結語
本文已經給出了硬件平臺和軟件設計
思路,只要制作出硬件平臺,并將仿真好的程序移植到dsp平臺上就可以實現數字壓縮語音錄放,經試用具有很好的語音錄放效果。
相關推薦
-
| 2003-11-06
-
| 2003-11-06
-
| 2009-07-06
-
| 2007-03-22
-
-
-
| 2007-03-22
-
| 2009-07-06
-
| 2009-07-06
-
| 2009-07-06
-
-
-
-
| 2003-11-06
-
| 2010-01-15
-
| 2007-03-22
-
| 2010-01-15
-
| 2010-01-15
-
| 2003-11-06
-
-
| 2007-03-22
-
| 2007-03-22
-
| 2003-11-06
-
-
| 2010-01-18
-
| 2010-01-15
-
| 2009-07-06



評論