軟件無線電是利用大規模集成電路技術,把DSP芯片或通用CPU芯片作為無線通信的基本硬件平臺,將盡可能多的無線通信功能(如調制技術、跳頻、糾錯及加密等)用軟件實現。軟件無線電技術可以用軟件升級來改變無線功能參數,可以按要求的條件編程實現無線通信功能,使系統升級基于軟件,其代價小,靈活性強。用TI公司的TMS320C5420DSP芯片成功設計出一種兼容2FSK,DPSK,QAM等多種調制解調方式的JH5001通信原理實驗系統,下面以 2FSK為例,詳細介紹用DSP軟件實現他的原理。
2FSK調制的DSP軟件實現
2FSK調制的數字振蕩器設計
頻移鍵控FSK調制是用數字基帶信號來控制高頻載波頻率的變化,調制后的載波信號頻率代表了要傳送的數字信號。二進制FSK(2FSK)是用2個高頻載波f1和f2來表示2個數字信號“1”或“0”。2FSK調制的常用方法是將f1和f2的正弦值預先計算出來,制成一個表,DSP工作時僅做查表運算即可實現。在這里采用數字振蕩器方法,用迭代方法產生正弦信號。其原理如下:一個傳遞函數為正弦序列sinkωT的Z變換為:
這是一個二階差分方程,對其求單位沖擊響應便可得到正弦信號sinkXT。利用單位沖擊函數x[k-1]的性質,僅當k=1時,x[k-1]=1,得到下列遞推式:
k=0時y[0]=Ay[-1]+By[-2]+0=0
k=1時y[1]=Ay[0]+By[-1]+C=C
k=2時y[2]=Ay[1]+By[0]+0=Ay[1]
k=3時y[3]=Ay[2]+By[1]
……
k=n時y[n]=Ay[n-1]+By[n-2]
在k》2以后,y[k]能用y[k-1]和y[k-2]計算出來,這樣通過迭代就能得到一系列的y[k]值。所設計的數字振蕩器產生16kHz和 32kHz的正弦信號,分別代表數據0和1,設置采樣頻率為96kHz,通過確定上面遞歸差分方程系數就可求得16kHz和32kHz正弦信號的系數(下標為0的系數是16kHz正弦信號的系數,下標為1的系數是32kHz正弦信號的系數)。
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程序在初始化時先分別計算出產生16kHz與32kHz信號所需要的y[1]和y[2]值,然后開放定時器中斷,以后每次進入定時器中斷服務程序時,利用已計算出的y[1]和y[2]值重新計算出新的y[0]值,對其求單位沖擊響應就可得到16kHz和32kHz的正弦信號。
2FSK調制的定時與中斷設計
為了保證96kHz的采樣頻率,需要用到TMS320C5420的中斷與定時器。定時器主要由3個寄存器組成,分別是定時器寄存器TIM,每計數一次自動減1;定時器周期寄存器PRD,當TIM減為0后,CPU自動將PRD的值裝入TIM;定時器控制寄存器TCR。
定時器控制寄存器TCR各個比特位的具體定義如表1所示。
表1定時器控制寄存器TCR的定義
TMS320C5420的定時器工作原理是:當CLKOUT信號時鐘沿到來時,觸發PSC。PSC是一個減1計數器,CLKOUT信號時鐘沿使PSC減 1,直到PSC為0,然后用TDDR重新裝入PSC,同時將TIM減1,直到TIM減為0,這時CPU發出TINT中斷,同時在TOUT引腳輸出一個脈沖信號,脈沖寬度與CLKOUT一致,然后用PRD重新裝入,重復下去直到系統或定時器復位。
當系統復位或定時器單獨復位時,TIM和PRD都置成最大值FFFH,TDDR位清0,定時器控制寄存器的停止狀態位TSS被清零,定時器啟動,并將定時器擴展周期TDDR中的值加載到定時器預置計數器PSC中,而且將定時器周期寄存器PRD中的值重新加載到定時器寄存器TIM中。
定時器中斷的頻率由式(3)決定:
其中,tC表示CLKOUT的周期,即TINT=95kHz。由式(3)可確定定時時間常數TDDR=0,PRD=333。
TMS320C5420的中斷是通過中斷屏蔽寄存器IMR來實現的。IMR是一個存儲器映射寄存器,用于控制中斷源的屏蔽和開放。當ST1寄存器中的INTM位為0時,全局中斷允許。IMR中的某一位為1時,該中斷開放。以下是IMR寄存器各個比特位的定義:
其中,HPINT表示HPI接口中斷,INT3~INT0為外部引腳產生的中斷;TXINT和TRINT為TDM串口的發送和接收中斷;BXINT和BRINT為BSP串口的發送和接收中斷;TINT為定時器中斷。圖1為 2FSK調制主程序流程圖,圖2為中斷程序流程圖。按圖1和圖2的流程編制程序即可實現2FSK調制功能。
圖2中斷程序流程圖
2FSK解調的DSP軟件實現
2FSK解調的方法有相干解調、濾波非相干解調、正交相乘非相干解調等多種方法,這里采用正交相乘非相干解調法。 輸入信號為
,從而實現了FSK的正交相乘非相干解調。
從以上的分析可以看出,正交相乘非相干解調法關鍵在于正確選擇τ。這里2FSK的采樣率96kHz,每一個比特采樣16個樣點,基帶信號的載頻f0為24kHz,頻偏量$f為8kHz。因而在DSP的處理過程中,延時取一個樣值就可滿足cos(2πf0*τ)=0的條件,從而保證信號通過低通濾波器后的值為±Tbsin(2π△f*τ)。當基帶信號為1時,濾波后得到一個正值;當基帶信號為0時,濾波后得到一個負值,最后判決時就可根據濾波后值的正負判斷。
正交相乘非相干解調的另一個關鍵問題是低通濾波器的實現。為了將二倍頻分量cos[4π(f0±△f)
*t-2π(f0±△f)*τ]去除,需要將相乘后的值通過一個低通濾波器,留下cos2π(f0±△f)*τ]。為此設計了一個51階FIR濾波器,采用漢明窗平方根升余弦滾降。FIR濾波器的差分表達式為:
FIR濾波器沒有反饋回路,是一個無條件的穩定系統。他的單位脈沖響應h(n)是一個有限長序列,當h(n)滿足偶對稱或奇對稱,并且h(n)是一個實數序列時,FIR濾波器具有線性相位的特性。通過對FIR濾波器的結構和他的差分方程分析,可以看出FIR濾波器實際上是一種乘法累加運算,對不同時刻的輸入乘以其加權系數,然后各項相加,不斷地移位輸出,這樣就得到了濾波輸出結果。將式(6)展開即得:
由此式可見,將最新的樣本與h(0)相乘,次新的樣本與h(1)相乘,依次類推,最老的樣本與h(N-1)相乘,然后將這51個乘積相加就得到一個y (n)。然后又讀入一個新樣本,則原來最新的樣本變為次新的樣本,原來最老的樣本則被淘汰。此法的示意圖如圖4所示。
圖4FIR實現示意圖
在編程時,將最新的x(n)的地址給AR4,51階的h(x)放在SCR_WAVE表中。計算時,AR4遞減,且將AR4地址的值與SCR_WAVE逐個相乘,這樣就實現了上述設計思想。
結語
基于DSP實現的2FSK調制解調器在JH5001通信實驗系統中得到成功的應用,在系統硬件不變的情況下只要修改DSP的軟件處理部分就能實現無線參數的改變和增加新的功能,因此軟件無線電技術靈活性很強,他將有著更廣泛的應用前景。
責任編輯:gt
-
處理器
+關注
關注
68文章
19259瀏覽量
229653 -
dsp
+關注
關注
553文章
7987瀏覽量
348760 -
芯片
+關注
關注
455文章
50714瀏覽量
423158
發布評論請先 登錄
相關推薦
評論