<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

VHDL語(yǔ)言的幀同步算法實(shí)現

作者: 時(shí)間:2012-03-17 來(lái)源:網(wǎng)絡(luò ) 收藏

數字通信網(wǎng)中,幀復接設備中最重要的部分,他包括幀碼的產(chǎn)生和幀同步碼的識別,其中接收端的幀同步識別電路的結構對同步性能的影響是主要的。

1 工作原理

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

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


本文引用地址:http://dyxdggzs.com/article/155166.htm

搜索態(tài) 在數據接收的起始時(shí)刻或幀未同步時(shí),幀同步進(jìn)入搜索態(tài)。在數據流中尋找幀同步碼(111lOlOOOO);當數據流與幀同步碼相同時(shí),表明已搜索到一個(gè)同步幀頭;可啟動(dòng)進(jìn)入幀同步的校核狀態(tài)。

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

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

2 幀同步

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

首先對相關(guān)參數進(jìn)行定義:

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

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

(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語(yǔ)言描述如下:

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 系統仿真

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

010 11010001010100 010 11010001010100 1010001010100 01010101010100 11010001010100 10000001010100 10000001010100 10000001010100 10

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

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


4 結 語(yǔ)

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>