基于TMS320C5420的2FSK設(shè)計(jì)與實(shí)現(xiàn)
摘要:基于dsp的軟件無線電技術(shù)在通信領(lǐng)域得到了廣泛的應(yīng)用。我們使用ti公司的tms320c5420dsp芯片成功設(shè)計(jì)了一種兼容2fsk,dpsk,qam等多種調(diào)制解調(diào)方式的jh5001通信原理實(shí)驗(yàn)系統(tǒng),在系統(tǒng)硬件不變的情況下只要修改dsp的軟件處理部分就能實(shí)現(xiàn)無線參數(shù)的改變和增加新的功能。詳細(xì)介紹了用dsp實(shí)現(xiàn)2fsk調(diào)制解調(diào)的算法,并就解調(diào)中所應(yīng)用的數(shù)字濾波器做了具體分析。
關(guān)鍵詞:dsp;軟件無線電;fsk;調(diào)制與解調(diào);數(shù)字濾波器 軟件無線電是利用大規(guī)模集成電路技術(shù),把dsp芯片或通用cpu芯片作為無線通信的基本硬件平臺(tái),將盡可能多的無線通信功能(如調(diào)制技術(shù)、跳頻、糾錯(cuò)及加密等)用軟件實(shí)現(xiàn)。軟件無線電技術(shù)可以用軟件升級(jí)來改變無線功能參數(shù),可以按要求的條件編程實(shí)現(xiàn)無線通信功能,使系統(tǒng)升級(jí)基于軟件,其代價(jià)小,靈活性強(qiáng)。用ti公司的tms320c5420dsp芯片成功設(shè)計(jì)出一種兼容2fsk,dpsk,qam等多種調(diào)制解調(diào)方式的jh5001通信原理實(shí)驗(yàn)系統(tǒng),下面以 2fsk為例,詳細(xì)介紹用dsp軟件實(shí)現(xiàn)他的原理。 2fsk調(diào)制的dsp軟件實(shí)現(xiàn) 2fsk調(diào)制的數(shù)字振蕩器設(shè)計(jì)
頻移鍵控fsk調(diào)制是用數(shù)字基帶信號(hào)來控制高頻載波頻率的變化,調(diào)制后的載波信號(hào)頻率代表了要傳送的數(shù)字信號(hào)。二進(jìn)制fsk(2fsk)是用2個(gè)高頻載波f1和f2來表示2個(gè)數(shù)字信號(hào)“1”或“0”。2fsk調(diào)制的常用方法是將f1和f2的正弦值預(yù)先計(jì)算出來,制成一個(gè)表,dsp工作時(shí)僅做查表運(yùn)算即可實(shí)現(xiàn)。在這里采用數(shù)字振蕩器方法,用迭代方法產(chǎn)生正弦信號(hào)。其原理如下:一個(gè)傳遞函數(shù)為正弦序列sinkωt的z變換為: 其中,a=2cosωt,b=-1,c=sinωt。設(shè)初始條件為0,求出式(1)的反z變換為: 這是一個(gè)二階差分方程,對(duì)其求單位沖擊響應(yīng)便可得到正弦信號(hào)sinkxt。利用單位沖擊函數(shù)x[k-1]的性質(zhì),僅當(dāng) k=1時(shí),x[k-1]=1,得到下列遞推式:
k=0時(shí) y[0]=ay[-1]+by[-2]+0=0
k=1時(shí) y[1]=ay[0]+by[-1]+c=c
k=2時(shí) y[2]=ay[1]+by[0]+0=ay[1]
k=3時(shí) y[3]=ay[2]+by[1]
……
k=n時(shí) y[n]=ay[n-1]+by[n-2] 在k>2以后,y[k]能用y[k-1]和y[k-2]計(jì)算出來,這樣通過迭代就能得到一系列的y[k]值。所設(shè)計(jì)的數(shù)字振蕩器產(chǎn)生16khz和 32khz的正弦信號(hào),分別代表數(shù)據(jù)0和1,設(shè)置采樣頻率為96khz,通過確定上面遞歸差分方程系數(shù)就可求得16khz和32khz正弦信號(hào)的系數(shù)(下標(biāo)為0的系數(shù)是16khz正弦信號(hào)的系數(shù),下標(biāo)為1的系數(shù)是32khz正弦信號(hào)的系數(shù))。 a0=2cosω0t=2cos(2π×16000/96000)=1
b0=-1
c0=sinω0t=sin(2π×16000/96000)=0.86602540
a1=2cosω1t=2cos(2π×32000/96000)=-1
b1=-1
c1=sinω1t=sin(2π×32000ˆ96000)=0.86602540 dsp程序在初始化時(shí)先分別計(jì)算出產(chǎn)生16khz與32khz信號(hào)所需要的y[1]和y[2]值,然后開放定時(shí)器中斷,以后每次進(jìn)入定時(shí)器中斷服務(wù)程序時(shí),利用已計(jì)算出的y[1]和y[2]值重新計(jì)算出新的y[0]值,對(duì)其求單位沖擊響應(yīng)就可得到16khz和32khz的正弦信號(hào)。 2fsk調(diào)制的定時(shí)與中斷設(shè)計(jì)
為了保證96khz的采樣頻率,需要用到tms320c5420的中斷與定時(shí)器。定時(shí)器主要由3個(gè)寄存器組成,分別是定時(shí)器寄存器tim,每計(jì)數(shù)一次自動(dòng)減1;定時(shí)器周期寄存器prd,當(dāng)tim減為0后,cpu自動(dòng)將prd的值裝入tim;定時(shí)器控制寄存器tcr。 定時(shí)器控制寄存器tcr各個(gè)比特位的具體定義如表1所示。
表1 定時(shí)器控制寄存器tcr的定義 tms320c5420的定時(shí)器工作原理是:當(dāng)clkout信號(hào)時(shí)鐘沿到來時(shí),觸發(fā)psc。psc是一個(gè)減1計(jì)數(shù)器,clkout信號(hào)時(shí)鐘沿使psc減 1,直到psc為0,然后用tddr重新裝入psc,同時(shí)將tim減1,直到tim減為0,這時(shí)cpu發(fā)出tint中斷,同時(shí)在tout引腳輸出一個(gè)脈沖信號(hào),脈沖寬度與clkout一致,然后用prd重新裝入,重復(fù)下去直到系統(tǒng)或定時(shí)器復(fù)位。 當(dāng)系統(tǒng)復(fù)位或定時(shí)器單獨(dú)復(fù)位時(shí),tim和prd都置成最大值fffh,tddr位清0,定時(shí)器控制寄存器的停止?fàn)顟B(tài)位tss被清零,定時(shí)器啟動(dòng),并將定時(shí)器擴(kuò)展周期tddr中的值加載到定時(shí)器預(yù)置計(jì)數(shù)器psc中,而且將定時(shí)器周期寄存器prd中的值重新加載到定時(shí)器寄存器tim中?! 《〞r(shí)器中斷的頻率由式(3)決定: 其中,tc表示clkout的周期,即tint=95khz。由式(3)可確定定時(shí)時(shí)間常數(shù)tddr=0,prd=333?! ms320c5420的中斷是通過中斷屏蔽寄存器imr來