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