 
- UID
- 852722
|

数字通信网中,帧同步是同步复接设备中最重要的部分,他包括帧同步码的产生和帧同步码的识别,其中接收端的帧同步识别电路的结构对同步性能的影响是主要的。
1 工作原理
实现帧同步的基本方法是在发送端预先规定的时隙,即帧同步码时隙,插入一组特殊码型的帧同步码组。在接收端利用同步码的自相关性确定帧的同步位置。帧同步码组可以是集中插入的,也可以是分散插入的。对于分散的帧同步码插入方式,其工作原理与集中插入方式相类似,下面就以集中插入帧同步码为例来说明帧同步的工作原理。
帧同步过程有搜索态、校核态和同步态。其状态转换图如图1所示。
搜索态 在数据接收的起始时刻或帧未同步时,帧同步进入搜索态。在数据流中寻找帧同步码(111lOlOOOO);当数据流与帧同步码相同时,表明已搜索到一个同步帧头;可启动进入帧同步的校核状态。
校核态 为了防止信号中出现虚假同步;找到第1组同步码后跳过1帧长度必须再次确认帧同步码。若连续经过M帧同步码确认均同步正确,则系统立即转入同步状态;否则存在假同步;返回搜索态。由首次搜索到帧同步头到进入同步态的M帧时叫后方保护时间。
同步态 帧同步处于同步状态时;若连续N帧帧同步正确则仍保持在同步状态。考虑到接收的数据流帧同步码可能受外界干扰而存在误码,在同步状态中只有连续N帧丢失同步码才进入失步状态,并返回搜索态。其中N帧时叫前方保护时间。由于有前方保护时间,在接收过程中虽然出现某帧同步码误码,但系统并不会立即进入失步状态。由此可减少因误码而进入失步状态的可能性。
2 帧同步实现
我们VHDL语言实现了帧同步的设计,设计程序如下:
首先对相关参数进行定义:
Type State_type Is (S0,S1,S2);
//系统状态(搜索态、校核态、同步态)
Constant Syn_code:bit_vector:=〞110100〞; //帧同步码
Constant Syn_code_length:integer:=6; //帧同步码长度
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; //初始状态
其次,把接收到的数据送人移位寄存器,并对送人的数据同步码检测。当系统处于不同状态时,其状态转换如下:
(1)在搜索态,其VHDL语言描述如下:
If(Clk"Event And Clk=''1'')Then
Case State Is
When So=>If(Reg=Syn_code)Then //搜索态
State:=Sl;
M:=1,
Else
M:=0;
End If; |
|