一種數(shù)字語音通信系統(tǒng)的DSP實現(xiàn)
關(guān)鍵詞:軟件無線電;DSP;混合編程
1 引言
現(xiàn)代通信系統(tǒng)已不斷由模擬體制向數(shù)字化體制過渡,并越來越傾向于采用“軟件無線電”的設計方案。即通過構(gòu)造通用的硬件平臺,以使各種相關(guān)的通信任務能夠用軟件完成,從而構(gòu)成一個具有高度靈活性、開放性的通信系統(tǒng)?,F(xiàn)代的DSP通用處理器為實現(xiàn)這一方案提供了極大的便利。
軟件無線電的設計思想是:用一個通用、標準、模塊化的硬件平臺為依托,然后通過軟件編程來實現(xiàn)無線電臺的各種功能,從而取代基于硬件、面向用途的電臺設計方法。功能的軟件化實現(xiàn)勢必要求減少功能單一、靈活性差的硬件電路,尤其是減少模擬環(huán)節(jié),并把數(shù)字化處理?A/D、D/A?盡量靠近天線。軟件無線電強調(diào)體系結(jié)構(gòu)的開放性和全面可編程性。它通過軟件的更新來改變硬件的配置結(jié)構(gòu),從而實現(xiàn)新的功能。軟件無線電一般采用標準的、高性能的開放式總線結(jié)構(gòu),此結(jié)構(gòu)利于硬件模塊地不斷升級和擴展。
本文介紹一種利用TMS320C31浮點型DSP芯片為核心來設計并實現(xiàn)甚低頻低碼率數(shù)字化語音通信系統(tǒng)的方法。這種通信系統(tǒng)是以DSP硬件為平臺,并用硬件來實現(xiàn)系統(tǒng)的外圍功能,而用軟件來實現(xiàn)核心部分的數(shù)字化處理,從而完成整個系統(tǒng)的正常通信工作。
2?。模樱杏布脚_
本通信系統(tǒng)的主要功能是實現(xiàn)語音的數(shù)字化傳輸,其系統(tǒng)功能圖如圖1所示。具體工作過程如下:
整個通信系統(tǒng)分為兩大部分,其工作狀態(tài)轉(zhuǎn)換由外附的MCU控制。在發(fā)送時,語音通過克麥風之后進入語音壓縮板進行采樣量化及數(shù)字化壓縮,壓縮后的比特流從串口送入DSP內(nèi)進行調(diào)制,調(diào)制信號依次通過信道DAC、平滑濾波和功放,然后發(fā)送出去;在接收時,前置放大部分送來的信號再經(jīng)過一次放大之后送往信道AD轉(zhuǎn)換器,轉(zhuǎn)換的數(shù)據(jù)FIFO通過中斷方式送給DSP進行解調(diào),在DSP內(nèi)解調(diào)之后的數(shù)據(jù)仍然通過串口送往語音壓縮板解壓后經(jīng)揚聲器輸出。
根據(jù)系統(tǒng)要求,本設計選定的DSP是TI公司的TMS320C31。信道AD轉(zhuǎn)換器件選用ANALOG DE-VICE公司的AD7870,它是一個12bit的ADC,具有2μs的片上信號放大時間和8μs的轉(zhuǎn)換時間,最高轉(zhuǎn)換速率為100kHz,可以提供三種輸出接口方式?12bit并行方式、字節(jié)方式和串行方式?。信道DAC選用的是TI公司的TLV5619,這是一種12bit單通道電壓型DA轉(zhuǎn)換器。系統(tǒng)中的ADC和DAC轉(zhuǎn)換器都以并行12bit方式直接和FIFO相連。FIFO?First In First Out?采用的是雙端口RAM構(gòu)架,其讀指針和寫指針是完全分開的,可實現(xiàn)讀寫操作的完全獨立,因此,這里選用CYPRESS公司的CY7C425。
3 軟件實現(xiàn)
本通信系統(tǒng)中的軟件采用C語言和混合編程,其中主程序和一部分子程序用C語言編寫,而一些運算量比較大的算法子程序則用匯編語言編寫,這樣,既容易進行調(diào)試,又可以提高軟件的執(zhí)行效率,可達到最佳利用DSP芯片的軟硬件資源之目的。
整個軟件的主程序由發(fā)送部分程序段和接收部分段兩部分組成,主程序流程圖見圖2所示,每個程序段又分別是一個獨立的程序體,可以獨立的實現(xiàn)通信系統(tǒng)的發(fā)送和接收功能。
由于要求系統(tǒng)能夠?qū)崟r完成通信任務,故相應的程序須和硬件相互配合,它們各操作之間的同步協(xié)調(diào)要求很高。而本系統(tǒng)可充分利用DSP芯片所提供的中斷和定時器資源來很好地實現(xiàn)系統(tǒng)功能。
串行口發(fā)送/接收中斷子程序用于完成DSP對串口的發(fā)送和接收任務,發(fā)送定時器中斷子程序流程圖如圖3所示,圖4所示是串口接收中斷子程序的流程圖。
在系統(tǒng)實現(xiàn)過程中,由于采用了混合編程,并對運算量比較大的算法用匯編程序來實現(xiàn),因此,在對128點FFT算法采用匯編語言編程后,可經(jīng)CCS仿真進行測試。匯編程序的執(zhí)行時間為111113個時鐘周期?2.78ms?,可在一幀時間內(nèi)?30ms?完成5次FFT和IFFT的幀同步算法,而用C語言實現(xiàn)時的程序執(zhí)行時間為1812409個時鐘周期?45.3ms???梢?,用匯編程序的執(zhí)行效率有明顯的提高。
4 結(jié)束語
DSP軟硬件開發(fā)設計是應用TMS320C31芯片進行的,這一方案在運用仿真器進行軟硬件聯(lián)合調(diào)試時取得了很好的效果,由此可見,在硬件設計合理的情況下,將C語言和匯編語言很好的結(jié)合,可充分發(fā)揮各自的優(yōu)勢,從而達到最佳的設計效果。