0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

集中式插入法帧同步系统的原理、工作流程及利用VHDL和FPGA进行设计

电子设计 作者:电子设计 2018-11-20 07:21 次阅读

引言

在数字通信系统中,发送端一般以一定数目的码元组成一个个“字”或“句”,即组成一个个数据帧进行传输,因此帧是数据传输的基本单位。不同的通信系统具有不同的帧结构。帧一般分为帧同步码和数据两部分,帧同步码用于标志帧的起始位置;数据则是需要传输的有效码元。帧同步码组的插入方法主要有两种:集中式插入法和间隔式插入法。集中式插入法就是在每帧的开头集中插入帧同步码组的方法;间隔式插入法则是将帧同步码组分散插入到数据流中,即每隔一定数量的信息码元插入一个帧同步码元。本文主要提出一种集中式插入法帧同步的FPGA的设计方案。

一般来讲,帧同步在位同步之后才能进行。虽然信号的频率很容易由位同步信号经过分频得到,但是帧的起始和末尾时刻则无法由位同步信号分频确定。帧同步的主要任务就是要获取每个数据帧的起始及结束位置。随着可编程逻辑器件的发展,采用FPGA实现帧同步等数字系统具有速度快、使用方便、可编程配置各种参数等一系列优点,因而得到了越来越广泛的应用。

1 集中式插入法帧同步的原理及流程

1.1 集中式插入法帧总体结构

集中式插入法是指在每帧数据的开始位置集中插入帧同步码序列的方法。在这种同步传输方式中,被传输的数据比特被编成帧,每帧包括多个数据,帧的首部加一个帧同步码组(也称为帧的标志字),记作U,其长度为M(单位:b),帧内的数据比特数为D.接收端对接收的比特流进行搜索,一旦检测到标志字U,就知道了一帧数据的开始,并据此对帧内的数据进行分组处理,以此建立起同步传输机制。集中式插入法的数据帧格式如图1所示。

集中式插入法帧同步系统的原理、工作流程及利用VHDL和FPGA进行设计

显然,帧同步码组必须满足一定的条件:首先,同步码组要求尽量与所要传输的数据不同,以免将数据误认为是同步码组;其次要求帧同步码组具有尖锐单峰的自相关特性,以便于接收端进行正确检测;第三个要求是长度不能太长,以免占用过多的信道资源。目前常用的帧同步码组主要有广义巴克(Barker)码序列,一些系统也使用具有伪随机特性的m序列作为同步码组。

1.2 帧同步的几种状态

根据帧同步搜索的原理,在帧同步搜索过程中显然存在假锁的可能性(也称虚警概率),因为数据比特所构成的码序列,或部分的标志字与部分的数据比特所构成的长度为M 的码序列也有可能满足检测条件,而被误认为U.因此,为了提高帧同步系统的性能(减小假锁的概率,锁定后尽量增加同步的稳定性),工程上通常通过增加同步流程的复杂性来实现改善性能的目的。一般来讲,将帧同步的过程分为三个状态:搜索态、校核态和同步态,其状态转移图如图2所示。

集中式插入法帧同步系统的原理、工作流程及利用VHDL和FPGA进行设计

搜索态:在数据接收的起始时刻,或帧校核时出现未同步帧,或同步态时发现有多个连续帧未同步时转入搜索态。搜索态下,程序在数据流中持续搜索帧同步码,当从接收到的比特流中找到帧同步码时,表明已搜索到了一个同步帧头,此时输出一个脉冲信号,系统可进入校核态。

校核态:若连续经过N 帧同步码确认搜索态中找到的帧头正确,则系统可立即转入同步状态;否则说明存在假同步,需要返回搜索态重新对帧同步码进行搜索。由首次搜索到帧同步头到进入同步态的N 帧时间叫做后方保护时间。

同步态:帧同步系统处于同步状态时,若没有出现连续M 帧数据未同步,则保持在同步状态。考虑到接收的数据流中可能受外界干扰而存在误码,在同步状态中只有连续M 帧丢失同步码才进入失步状态,并返回搜索态,这个M 帧的时间叫做前方保护时间。

2 帧同步系统的VHDL设计与仿真

2.1 总体结构设计

根据实例需求,帧同步码组长度(LenCode)、帧同步码组(FrameCode)、容错位数(ErrorNum)、帧长(Len-Frame)、校核态校核帧数(CheckNum)以及同步态校核帧数(SyncNum)均以常量的形式设置,便于VHDL程序中修改同步参数。系统数据速率及时钟频率为50 MHz.

根据图2所示的结构,很容易想到采用状态机的设计方法来实现同步系统。不论是采用状态机方式,或原理图方式进行VHDL程序设计,最终均可以转换成VHDL代码的形式。显然,直接采用编写VHDL代码的形式,更利于程序的修改及升级维护。因此,本文完全采用代码编写方式来进行程序设计。

图2是一个典型的状态转移图,可以将转移条件看作状态之间的信号接口。整个帧同步系统可以划分为搜索状态模块(Search)、校核状态模块(Check)及同步状态模块(Sync)。除了上电后启动搜索状态之外,当校核未通过(CheckNum 帧内有一个校核帧未同步)或同步态失锁(连续SyncNum 帧未同步)时也需启动搜索状态,因此搜索状态的启动信号有复位信号(rst)、校核态重搜索信号(Research_check)和同步态重搜索信号(Research_sync);校核态的启动信号仅来自于搜索态(search_over),即只有当搜索到帧同步码后才能转入校核态,如果校核通过则送出校核完成信号(check_over),校核未通过则送出重新搜索信号(Research_check);同步态的启动信号仅来自于校核态(check_over),只有校核通过后才能进入同步状态。进入同步态后,持续对同步码组进行检测,当检测到重新失锁后送出Research_sync,重新启动搜索状态。图3为帧同步系统顶层VHDL程序文件采用Synplify Pro综合后的RTL原理图。

2.2 搜索模块的VHDL设计与仿真

搜索模块的对外接口如图3所示。其中,CLK_BitSync及Data_in分别为位同步时钟信号和输入数据;Data_out为经2个时钟周期延时后的比特流数据。对输入数据的延时处理,是为了补偿产生search_over 时的处理时延,以便于脉冲信号search_over 与最后一位帧同步码对齐。

搜索输入比特流中的帧同步码组,首先需要将输入数据送入移位寄存器(Regdin)中,而后将Regdin中的数据与帧同步码组相比即可。程序中将多路启动信号(rst、Research_check、Research_sync)取或后,作为异步复位信号,用于启动一次搜索过程。搜索过程中,采用for循环对寄存器Regdin 与同步码组进行比较,通过逐位比较,每发现1 b不相同,则计数加1,计算出两者之间的汉明距离。计算完汉明距离后,判断是否大于容错门限ErrorNum,如大于容错门限则继续搜索,否则输出同步脉冲search_over,并停止搜索。

集中式插入法帧同步系统的原理、工作流程及利用VHDL和FPGA进行设计

图4为搜索模块的Modelsim仿真波形。其中,帧同步码长度LenCode=7, 帧同步码FrameCode=“1011000”,容错门限ErrorNum=1.可以看出,复位后首先搜索到一次帧同步码组;当Research_check为高电平,启动另一次搜索过程,比特流中搜索到“1001000(ErrorNum=1)”时,此时容错位数设置为1,因此输出同脉冲search_over,并停止搜索过程,即使后续比特流中出现了“1011001(ErrorNum=1)”,仍然不输出同步脉冲。

集中式插入法帧同步系统的原理、工作流程及利用VHDL和FPGA进行设计

2.3 校核模块的VHDL设计与仿真

为便于程序编写,校核模块主要由Check_Ce 进程和Checking 进程组成。Check_Ce 进程用于检测search_over信号,检测到信号出现高电平后,产生长度为CheckNum 帧数据的高电平允许信号CheckCe,并通过计数器Number 来标识每帧中数据及同步码组的位置。产生了CheckCe及Number信号后,Checking进程只需在CheckCe信号为高电平的范围内对同步码组进行校核即可。校核完成后,需要使check_over(连续CheckNum帧均同步)或research_check(CheckNum帧内有一帧未同步)信号产生一个高电平脉冲。帧校核的方法与搜索同步码组的方法类似,即通过汉明距离来判断是否同步。将校核态分成Check_Ce进程和Checking进程来分别进行实现,则每个进程的功能划分更为简单,编程实现时也相对容易得多。

图5 是校核模块的Modelsim 仿真波形。其中,帧长度LenFrame=16,校核帧数CheckNum=2,容错门限ErrorNum=0,其余参数与搜索模块相同。从波形上很容易看出,当search_over第一次出现高电平时,其后连续两组同步码均为“1011000(ErrorNum=0)”;当search_over第二次出现高电平时,其后第一组同步码为“1001000(ErrorNum=1)”,第二组同步码为“1011000(ErrorNum=0)”.因此第一次帧校核顺利通过,校核完成后check_over输出一个高电平脉冲,research_check保持为低电平;第二次校核未通过,校核完成后research_check输出一个高电平脉冲,check_over保持为低电平。

集中式插入法帧同步系统的原理、工作流程及利用VHDL和FPGA进行设计

2.4 同步模块的VHDL设计与仿真

为了简化设计,将同步状态分为三个进程来完成,即计数器进程(Counter)、帧校验进程(FrameChecking)和同步校验进程(SyncChecking)。Counter 进程用于产生帧内数据位置的计数,当检测到check_over 信号为高电平时,重新开始以帧周期(LenFrame)循环计数;FrameChecking 进程用于产生帧起始位置的同步脉冲,且高电平脉冲与同步码的最后1 b对齐,该进程首先需要对同步码组进行校核,如校核通过,则在同步码位置处产生一个高电平脉冲FramePosition,如果校验未通过,则在同步码位置不产生高电平脉冲;SyncChecking进程通过判断FramePosition 来确定系统是否处于同步状态,即只需判断FramePosition是否连续在同步码组的位置出现低电平,如连续出现SyncNum 次低电平,则判断为失锁,否则继续维持同步状态。

图6 是同步模块的Modelsim 仿真波形。其中同步态校核帧数SyncNum=2,其他参数与校核态相同。从图中可以看出,当检测到check_over为高电平时,计数器Number开始以周期为帧长LenFrame=16循环计数。当check_over 出现高电平时,其后连续4 组同步码为“1011000(ErrorNum=0)”,“1001000(ErrorNum=1)”,“1001000(ErrorNum=1)”,“1001000(ErrorNum=1)”.由于此时设置的容错门限ErrorNum=0,因此第一帧同步码校核通过,输出了同步脉冲FramePosition,此后出现连续3 个校核未通过的数据帧。同步状态信号State_Sync 高电平状态持续维持了2 帧数据的长度,而后停止同步状态,输出失步信号research_sync,用于启动搜索过程。

集中式插入法帧同步系统的原理、工作流程及利用VHDL和FPGA进行设计

3 帧同步系统的FPGA实现及仿真

本实例的目标器件为XC3S200-4FT200,FPGA实现后,查找表资源(LUTs)占用了484 个(12%),全局时钟资源(GCLKs)占用了1个(12%)。最高系统时钟频率(Maximum frequency)可达54.81 MHz.图7 是帧同步系统的Modelsim 仿真波形。其中,各模块的容错门限ErrorNum均为0,其他同步参数不变。

集中式插入法帧同步系统的原理、工作流程及利用VHDL和FPGA进行设计

图7 实际上对帧同步系统的搜索、校核、校核未通过、失步、重新搜索、重新同步等过程进行了完整的仿真测试。

4 结语

本方案是基于模块化设计思想,采用VHDL语言对帧同步系统进行设计实现,有利于程序的移置及维护。方案设计的关键在于理解各模块之间的信号接口关系及时序关系。在模块设计时,通过进一步合理划分模块内部的结构,可以更好地理清程序思路并提高设计方案的效率。最后利用Modelsim 6.0软件进行了仿真测试。仿真结果表明,该方案中设计的同步系统工作稳定,满足性能要求。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1626

    文章

    21667

    浏览量

    601864
  • 寄存器
    +关注

    关注

    31

    文章

    5317

    浏览量

    120011
  • vhdl
    +关注

    关注

    30

    文章

    816

    浏览量

    128078
收藏 人收藏

    评论

    相关推荐

    基于FPGA同步系统设计方案

    本文介绍了集中式插入法同步系统的原理,分析了同步
    发表于 11-11 13:36 4838次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>帧</b><b class='flag-5'>同步</b><b class='flag-5'>系统</b>设计方案

    基于FPGA延迟线插入法的半导体激光测距[

    测量电路。测试结果表明,FPGA延迟线插入法可以将单点时间分辨率提高到80ps,多次测量可达40ps,对应距离分辨率为毫米级。将其应用于脉冲激光测距系统,进行了测距实验研究,给出了实验
    发表于 05-13 09:04

    FPGA设计中同步系统的实现

    FPGA设计中同步系统的实现数字通信时,一般以一定数目的码元组成一个个“字”或“句”,即组成一个个“
    发表于 08-11 16:22

    FPGA设计中同步系统的实现

    FPGA设计中同步系统的实现数字通信时,一般以一定数目的码元组成一个个“字”或“句”,即组成一个个“
    发表于 08-11 17:44

    集中式网络故障诊断

    集中式网络故障诊断
    发表于 08-08 14:22

    请问怎样去建立一套有效的光网络集中式测量系统

    光网络集中式测量系统有哪些优点?光网络集中式测量系统是由哪些部分构成的?光网络集中式测量系统有哪
    发表于 04-15 06:41

    求分享一种集中式插入法同步FPGA的设计方案

    本文主要提出一种集中式插入法同步FPGA的设计方案。
    发表于 06-02 06:07

    集中式IT的可用性

    企业一直承受着改善工作流程、降低成本和更快交付产品的压力。使用远程访问和集中式IT基础设施,组织可以在加速上市时间方面取得巨大飞跃,同时从大幅降低成本中获益。远程工作人员需要快速响应的远程访问,尽管
    发表于 08-31 07:26

    概述隔离式电源集中式电源架构

    这里写目录标题概述隔离式电源集中式电源架构分布式电源架构:个人理解概述· 集中式电源架构(CPA):效率高,但成本高,PCB占用面积大。· 分布式电源架构(DPA):节省成本和PCB占用面积,需要
    发表于 11-11 07:07

    集中式电源架构和分布式电源架构

    电源,然后经过板上电源模块转换到各个目标电源进行使用,电源架构一般有集中式电源架构和分布式电源架构。1、集中式电源架构即输入电压直接通过隔离DCDC模块转换到各个目标电压,但成本高,占用PCB面积大。2、分布式电源架构输入电源经
    发表于 11-15 07:11

    普通集中式空调系统

    一、普通集中式空调系统的构成、特点、过程、能耗分析定义:定风量,全空气,单风道 1.系统构成:    风机、空气处理器(AHU)、风阀、风道、新风口、排风口
    发表于 10-24 10:57 0次下载

    基于LonWorks技术的集中式空调系统

       简要介绍了LonWorks技术和集中式空调系统,设计了一个基于LonWorks技术的集中式空调系统。通过解析LonWorks智能节点各模块的硬件结构,介绍了
    发表于 12-08 17:15 18次下载

    C语言冒泡、插入法、选择排序算法分析

    C语言冒泡、插入法、选择排序算法分析
    发表于 09-06 15:51 44次下载

    如何进行集中式抄表

    低廉,施工方便,效果好。集中式抄表方案一般采用RS-485抄表方案和半载波抄表方案为选择之一。 一、集中式抄表的原理 集中抄表系统是将电表上的数据通过传感器以脉冲信号方式传输给
    的头像 发表于 08-18 13:00 845次阅读

    集中式逆变器的主要优势 集中式逆变器的主要缺点

    集中式逆变器的主要优势 集中式逆变器的主要缺点 集中式逆变器是一种常见的太阳能发电系统的核心组件,它将直流电转换为交流电,应用于电网连接或独立供电。
    的头像 发表于 01-31 17:38 1593次阅读