新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > VHDL語言實現(xiàn)的幀同步算法

        VHDL語言實現(xiàn)的幀同步算法

        作者: 時間:2010-08-01 來源:網(wǎng)絡 收藏
        數(shù)字通信網(wǎng)中,幀復接設備中最重要的部分,他包括幀碼的產(chǎn)生和幀同步碼的識別,其中接收端的幀同步識別電路的結(jié)構(gòu)對同步性能的影響是主要的。

        1 工作原理

        幀同步的基本方法是在發(fā)送端預先規(guī)定的時隙,即幀同步碼時隙,插入一組特殊碼型的幀同步碼組。在接收端利用同步碼的自相關性確定幀的同步位置。幀同步碼組可以是集中插入的,也可以是分散插入的。對于分散的幀同步碼插入方式,其工作原理與集中插入方式相類似,下面就以集中插入幀同步碼為例來說明幀同步的工作原理。

        幀同步過程有搜索態(tài)、校核態(tài)和同步態(tài)。其狀態(tài)轉(zhuǎn)換圖如圖1所示。


        本文引用地址:http://www.104case.com/article/157290.htm

        搜索態(tài) 在數(shù)據(jù)接收的起始時刻或幀未同步時,幀同步進入搜索態(tài)。在數(shù)據(jù)流中尋找?guī)酱a(111lOlOOOO);當數(shù)據(jù)流與幀同步碼相同時,表明已搜索到一個同步幀頭;可啟動進入幀同步的校核狀態(tài)。

        校核態(tài) 為了防止信號中出現(xiàn)虛假同步;找到第1組同步碼后跳過1幀長度必須再次確認幀同步碼。若連續(xù)經(jīng)過M幀同步碼確認均同步正確,則系統(tǒng)立即轉(zhuǎn)入同步狀態(tài);否則存在假同步;返回搜索態(tài)。由首次搜索到幀同步頭到進入同步態(tài)的M幀時叫后方保護時間。

        同步態(tài) 幀同步處于同步狀態(tài)時;若連續(xù)N幀幀同步正確則仍保持在同步狀態(tài)。考慮到接收的數(shù)據(jù)流幀同步碼可能受外界干擾而存在誤碼,在同步狀態(tài)中只有連續(xù)N幀丟失同步碼才進入失步狀態(tài),并返回搜索態(tài)。其中N幀時叫前方保護時間。由于有前方保護時間,在接收過程中雖然出現(xiàn)某幀同步碼誤碼,但系統(tǒng)并不會立即進入失步狀態(tài)。由此可減少因誤碼而進入失步狀態(tài)的可能性。

        2 幀同步

        我們了幀同步的設計,設計程序如下:

        首先對相關參數(shù)進行定義:

        type state_type is (s0,s1,s2);
        //系統(tǒng)狀態(tài)(搜索態(tài)、校核態(tài)、同步態(tài))
        constant syn_code:bit_vector:=110100; //幀同步碼
        constant syn_code_length:integer:=6; //幀同步碼長度
        constant max_m:integer:=2; //前方保護幀數(shù)
        constant max_n:integer:=3; //后方保護幀數(shù)
        variable m:integer range 0 to max_m:=0;
        //連續(xù)獲取同步碼數(shù)
        variable n:integer range 0 to max_n:=0;
        //連續(xù)丟失同步碼數(shù)
        variable reg:bit_vector(syn_code_length downto 1);
        //移位寄存器
        variable state:state_type:=s0; //初始狀態(tài)

        其次,把接收到的數(shù)據(jù)送人移位寄存器,并對送人的數(shù)據(jù)同步碼檢測。當系統(tǒng)處于不同狀態(tài)時,其狀態(tài)轉(zhuǎn)換如下:

        (1)在搜索態(tài),其描述如下:

        if(clk'event and clk='1')then
        case state is
        when so=>if(reg=syn_code)then //搜索態(tài)
        state:=sl;
        m:=1,
        else
        m:=0;
        end if;

        (2)在校核態(tài),其描述如下

        if(clk'event and clk='1')then
        case state is
        when s1=>if(reg=syn_code)then //校核態(tài)
        m:=m+1;
        if(m=max_m)then
        state:=s2;
        m:=O;
        end if;
        else
        state:=s0;
        m:=0;
        end if;

        (3)在同步態(tài),其VHDL語言描述如下:

        if(clk'event and clk='1')then
        case state is
        when s2=>if(reg=syn_code)then //同步態(tài)
        n:=0;
        else
        n:=n+1;
        if(n=max_n)then
        state:=s0;
        n:=Os
        end if
        end if

        3 系統(tǒng)仿真

        假定同步碼為110100,幀長為14,前方保護為2幀,后方保護為3幀,輸人數(shù)據(jù)data為:

        010 11010001010100 010 11010001010100 1010001010100 01010101010100 11010001010100 10000001010100 10000001010100 10000001010100 10

        則輸出syn的仿真波形如圖2所示。

        由圖2可以看出,系統(tǒng)剛開始時處于搜索態(tài),當系統(tǒng)捕獲到同步碼時,即進入校核態(tài);當系統(tǒng)連續(xù)2次捕獲到同步碼時,系統(tǒng)進入同步狀態(tài)。在同步態(tài),系統(tǒng)只有連續(xù)3次丟失幀同步碼時才確認失步,重新進入搜索態(tài)。在具體應用中,可根據(jù)實際需要對程序中的同步碼、幀長、前后方保護時間進行調(diào)整,使系統(tǒng)處于最佳工作狀態(tài)。


        4 結(jié) 語

        由于VHDL對設計的描述具有相對獨立性,因此設計者可以不懂硬件的結(jié)構(gòu),只需知道設計的目標。這種設計方法集設計、模擬、綜合為一體的設計方法,能有效地縮短電路設計周期,減少可能發(fā)生的錯誤,降低了開發(fā)成本,在未來現(xiàn)代數(shù)字系統(tǒng)中將會起著越來越重要的作用。用VHDL來進行數(shù)字系統(tǒng)設計既方便又簡單,還具有良好的可移植性和維護性,代表著現(xiàn)代數(shù)字系統(tǒng)設計的走向。


        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 旌德县| 将乐县| 科技| 义马市| 清流县| 临海市| 灯塔市| 洪雅县| 屏边| 呼和浩特市| 城固县| SHOW| 承德县| 二连浩特市| 汨罗市| 儋州市| 德阳市| 襄城县| 信丰县| 定陶县| 宁安市| 温州市| 科尔| 六枝特区| 昌都县| 赣州市| 元朗区| 潼南县| 铁岭市| 普兰县| 洮南市| 姚安县| 黄山市| 祁东县| 卓尼县| 卓资县| 台州市| 江门市| 同心县| 科技| 开原市|