四川職業(yè)技術(shù)學(xué)院 謝大川 李海兵
移頻鍵控(FSK)是數(shù)字信息傳輸中使用較早的一種調(diào)制形式,它由于其抗干擾及衰落性較好且技術(shù)容易實(shí)現(xiàn),因而在集散式工業(yè)控制系統(tǒng)中被廣泛采用。以往的鍵控移頻調(diào)制解調(diào)器采用“固定功能集成電路+連線”方式設(shè)計(jì);集成塊多,連線復(fù)雜,容易出錯(cuò),且體積較大,本設(shè)計(jì)采用Lattice公司的FPGA芯片,有效地縮小了系統(tǒng)的體積,降低了成本,增加了可靠性,同時(shí)系統(tǒng)采用VHDL-87語言進(jìn)行設(shè)計(jì),具有良好的可移植性及產(chǎn)品升級(jí)的系統(tǒng)性。
在二進(jìn)制頻移鍵控中載波頻率隨著調(diào)制信號(hào)1或者0而變,1對(duì)應(yīng)于載波頻率f1(或者w1),0對(duì)應(yīng)于載波頻率f2(或者w2),二進(jìn)制頻移鍵控已調(diào)信號(hào)的時(shí)域表達(dá)式為:
2FSK信號(hào)波形可以看作兩個(gè)2ASK信號(hào)波形的合成。圖1是相位續(xù)的2FSK信號(hào)波形。
首先我們設(shè)置了一個(gè)輸入電平判斷器,能夠通過不同的輸入電平值啟動(dòng)不同的輸出端口,調(diào)制流程圖見圖2。
然后根據(jù)FSK的特點(diǎn)我們分別設(shè)置兩個(gè)計(jì)數(shù)器:計(jì)數(shù)器1和計(jì)數(shù)器2,其中計(jì)數(shù)器2的進(jìn)位頻率為計(jì)數(shù)器1的進(jìn)位頻率的2倍,通過計(jì)數(shù)器的進(jìn)位端控制正弦信號(hào)發(fā)生器的輸出頻率,這樣我們可以通過對(duì)兩個(gè)計(jì)數(shù)器的切換實(shí)現(xiàn)對(duì)輸出正弦信號(hào)頻率的控制.
首先設(shè)計(jì)輸入電平判斷器:輸入電平判決器共有一個(gè)輸入和兩個(gè)輸出端口,根據(jù)輸入端口電平高低的不同對(duì)兩個(gè)不同的輸出口置高電平,其中當(dāng)某一端口為高電平時(shí)另一端口必為低電平,可以設(shè)計(jì)程序如下:
其中din為輸入電平端口用于和輸入信號(hào)相連,dout1和dout2是輸出電平端口,用于和下一級(jí)電路元件級(jí)連作為控制。
其次我們再設(shè)計(jì)用于調(diào)控輸出頻率的兩個(gè)計(jì)數(shù)器。根據(jù)2FSK的特點(diǎn)輸出的正弦波應(yīng)該有兩個(gè)不同的頻率,因此我們需要兩個(gè)計(jì)數(shù)器并且兩個(gè)輸出頻率不能相同。采用quartuesII帶有的宏功能模塊分別設(shè)計(jì)兩個(gè)計(jì)數(shù)器其中一個(gè)為8位一個(gè)為7位。在相同的記數(shù)時(shí)鐘的激勵(lì)下他們的最高位的跳變頻率不相同,這樣就實(shí)現(xiàn)了頻分的目的。具體實(shí)現(xiàn)如圖2。
其中P1為計(jì)數(shù)器1,采用同步清零方式,它的計(jì)數(shù)周期為:時(shí)鐘頻率/2的8次方,在此我們采用輸出端的最高位即第7位與下級(jí)電路相連作為下級(jí)電路的輸入頻率。并且該頻率作為“1”碼的輸出頻率.
P2為計(jì)數(shù)器2,采用同步清零方式,它的計(jì)數(shù)周期為:時(shí)鐘頻率/2的7次方。在此我們采用輸出端的最高位即第6位與下級(jí)電路相連作為下級(jí)的的輸入頻率,并且該頻率作為“0”碼的輸出頻率。
我們將判決器的“1”電平輸出口與計(jì)數(shù)器P1計(jì)數(shù)使能端相連,取反和計(jì)數(shù)器本身的進(jìn)位信號(hào)“相與”后接入計(jì)數(shù)器的同步清零端,當(dāng)輸入電平為“1”碼時(shí)計(jì)數(shù)器P1開始工作;當(dāng)輸入電平為“0”碼時(shí)計(jì)數(shù)器P1不工作并且通過相關(guān)的連接方式將計(jì)數(shù)器P1的輸出相位置零保證每次“1”碼重新到來是的相位能從固定值開始。
我們將判決器的“0”電平輸出口與計(jì)數(shù)器P2計(jì)數(shù)使能端相連,取反和計(jì)數(shù)器本身的進(jìn)位信號(hào)“相與”后接入計(jì)數(shù)器的同步清零端,當(dāng)輸入電平為“0”碼時(shí)計(jì)數(shù)器P2開始工作;當(dāng)輸入電平為“1”碼時(shí)計(jì)數(shù)器P2不工作并且通過相關(guān)的連接方式將計(jì)數(shù)器P2的輸出相位置零保證每次“0”碼重新到來是的相位能從固定值開始。
最后設(shè)計(jì)正弦信號(hào)的發(fā)生器分兩步驟:首先設(shè)計(jì)一個(gè)地址發(fā)生器。采用計(jì)數(shù)器實(shí)現(xiàn)我們設(shè)計(jì)了一個(gè)采用同步清零6位的計(jì)數(shù)器利用計(jì)數(shù)器的6位輸出端作為地址控制正弦信號(hào)的ROM,圖4為調(diào)制部分信號(hào)輸出實(shí)現(xiàn)圖。
采用VHDL語言方式實(shí)現(xiàn)ROM文件程序思路如下:
with addr(地址信號(hào)名)select
data(輸出數(shù)據(jù)端口名)<=“11111111”(輸出數(shù)據(jù))when“000000”(地址信號(hào)),通過編譯仿真得到仿真波形圖如圖5。
從仿真圖形上可以看到“1”碼信號(hào)在調(diào)制后產(chǎn)生的正弦波信號(hào)頻率是“0”碼信號(hào)在調(diào)制后產(chǎn)生的正弦波信號(hào)頻率的1/2。符合調(diào)制要求。
解調(diào)過程主要是通過過零點(diǎn)檢測實(shí)現(xiàn):其基本原理是根據(jù)頻移鍵控的過零率的大小來檢測已調(diào)的信號(hào)中頻率的變化。
從圖6中可以看出在同樣的時(shí)間內(nèi),傳“0”碼中出現(xiàn)“0”的個(gè)數(shù)為傳“1”碼的兩倍,由此我們可以通過在相同的時(shí)間段內(nèi)判斷碼形為“0”的次數(shù)判斷其為“0”碼還是“1”碼,圖7為解調(diào)流程圖。
首先我們設(shè)計(jì)一個(gè)過零點(diǎn)計(jì)數(shù)器pq,該計(jì)數(shù)器的功能是在輸入的正弦信號(hào)全為“0”時(shí)計(jì)數(shù)值自動(dòng)加1,相關(guān)程序要點(diǎn)如下:.
圖1 2FSK波形
圖2 調(diào)制流程圖
圖3 調(diào)制部分地址產(chǎn)生電路實(shí)現(xiàn)圖
圖4 調(diào)制部分信號(hào)輸出實(shí)現(xiàn)圖
圖5 調(diào)制模塊仿真圖
圖6 兩種傳輸波形的比較
圖7 解調(diào)流程圖
圖8 解調(diào)部分實(shí)現(xiàn)圖
圖9 解調(diào)部分方針圖
其中din[7..0]是8位正弦信號(hào)的輸入口,reset為清零端,dout[3..0]為過零點(diǎn)計(jì)數(shù)值輸出端。
接下來我們設(shè)計(jì)一個(gè)數(shù)值判決器,用于判決過零點(diǎn)的數(shù)目根據(jù)數(shù)目的不同分別譯出高低電平從而實(shí)現(xiàn)解調(diào)的目的。程序要點(diǎn)如下:
其中sin1[3..0]為過零點(diǎn)數(shù)目輸入端,res為清零端,sout為解調(diào)信號(hào)輸出端。
當(dāng)res信號(hào)的“0”到“1”跳變到來時(shí),將過零點(diǎn)計(jì)數(shù)器送來的過零點(diǎn)數(shù)目進(jìn)行比較。當(dāng)過零點(diǎn)數(shù)目大于等于2是判斷為低電平,反之判斷為高電平。從而實(shí)現(xiàn)解調(diào)。
另外為了提高準(zhǔn)確性實(shí)現(xiàn)在單位時(shí)間內(nèi)進(jìn)行過零點(diǎn)數(shù)目的比較,我們還應(yīng)該在設(shè)置一個(gè)計(jì)數(shù)器采用同步清零方式,利用它的進(jìn)位端信號(hào)作為過零點(diǎn)計(jì)數(shù)器和數(shù)值判決器的reset和res信號(hào)這就保證了在固定的時(shí)間內(nèi)測量過零點(diǎn)的數(shù)目。
具體實(shí)現(xiàn)電路如圖8。
通過編譯和仿真得到波形圖9。
從波形圖我們可以看出:在兩次判決時(shí)間點(diǎn)上根據(jù)輸入信號(hào)的不同,解調(diào)信號(hào)分別為“1”和“0”。從而實(shí)現(xiàn)了解調(diào)功能。
根據(jù)我們以上的試驗(yàn)可以得出采用FSK調(diào)制方式能很好的傳輸信號(hào)。另外根據(jù)需要調(diào)整輸入時(shí)鐘,以可以獲得不同頻率的載波,從而克服來自外界的干擾實(shí)現(xiàn)各種遠(yuǎn)距離信號(hào)傳輸。
[1]曹志剛,錢亞生.現(xiàn)代通信原理[M].清華大學(xué)出版社,1992.
[2]劉篤仁,楊萬海.在系統(tǒng)可編程技術(shù)及其器件原理與應(yīng)用[M].西安電子科技大學(xué)出版社,2000.
[3]黃智偉.FPGA系統(tǒng)設(shè)計(jì)與實(shí)踐[M].電子工業(yè)出版社,2005.
[4]黃繼業(yè),潘松.EDA技術(shù)實(shí)用教程[M].科學(xué)出版社,2002.
[5]黃正瑾.可編程邏輯擊鍵設(shè)計(jì)[M].復(fù)旦大學(xué)出版社,1997.
[6][美]UWE MEY.數(shù)字信號(hào)處理的FPGA實(shí)現(xiàn)[M].