DVB-C解交织器的FPGA实现

发布者:BlissfulDreams最新更新时间:2006-10-12 来源: 电子设计应用关键字:脉冲  顺序  延时  同步 手机看文章 扫描二维码
随时随地手机看文章
卷积交织和解交织原理简介

  在DVB-C系统当中,实际信道中的突发错误往往是由脉冲干扰、多径衰落引起的,在统计上是相关的,所以一旦出现不能纠正的错误时,这种错误将连续存在。因此在DVB-C系统里,采用了卷积交织来解决这种问题。它以一定规律扰乱源符号数据的时间顺序,使其相关性减弱,然后将其送入信道,解交织器按相反规律恢复出源符号数据。

  DVB-C的卷积交织和解交织原理为:交织由I=12(I为交织深度)个分支构成。每个分支的延时逐渐递增,递增的单元数M=n/I=204/12=17(M为交织基数)。这里的数据单位为字节。0支路无延时,1支路延时17个符号周期,11支路则延时l7×11个符号周期。输入端有一开关随着时间推移依次连接各个延时支路,输出端有一开关与输入端一一对应,同步连接各延时支路。


            图1 解交织器的实现框图


         图2 解交织器的Modelsim仿真图

解交织器的实现
解交织器的FPGA实现原理

  本文采用RAM分区循环移位法来实现,因为RAM里面暂存一位数据,只需要用一个逻辑门大小的资源,比基本寄存器暂存一位数据需要12个逻辑门大小的资源要优化很多。用RAM分区循环移位法来实现解交织器,就是把RAM分成11个区。每个区的大小为(单位为字节):

  Ni=M*(I-i-1)(i=0,1,2, …,(I-1))
  这里i为RAM所分区的区号。


  因为11支路不需要延时,所以 RAM的11分区大小即N11为0。本文在RAM前面设置一个地址控制器,这是解交织器关键的一步。RAM每区有一个首地址和区内偏移地址,分别用一个寄存器来存储。在地址控制器里产生每区的首地址和区内偏移地址,从而进一步产生RAM的读写地址。

解交织器的FPGA实现

  把解交织器的深度I和基数M设成参数,以增强程序的通用性。如果以后设计的解交织器的系数I和M需要改动,只要把参数值重新设置一下就可以了,不需要改动程序。由前面的计算可知,解交织器总共需要延时的比特数,也就是RAM的大小应该为8976比特。

  可以用下面一段程序实现首地址的初始化:
  FirstAddr[0]=0;
  for(i=1;i<(I-1);i=i+1)
  FirstAddr[i]=(I-i)*M+FirstAddr[i-1];

  也就是说0~11支路的首地址在RAM中分别为0,187,357,510,646,765,867,952,1020,1071,1105。

  RAM每区的字节数可以由参数来表示,即为(I-i-1)*M,i为分支号。

  每区内偏移地址SectAddr[i]初始化为0,每写入一个数据,递增1并与由参数表示的每区的字节数进行比较,若两数相等,则SectAddr[i]重新设为零,保证区内偏移地址在每区内循环移动。

  由上可知,RAM每区的读写地址为:FirstAddr[i]+SectAddr[i](i为RAM分区号)

  图1所示的就是由Altera MegaWizard工具配置的双口RAM。RAM每区的读写地址相同,也就是先读出给定地址单元的数据后,再写入新的数据。这里要同时发生读写操作,所以要使用双口RAM。每隔一个时钟周期,RAM读写指针就跳到下一个RAM区,这样读写指针在RAM的11个区循环移动,实现解交织。

  图2为解交织器在Mentor公司的Modelsim SE环境下的逻辑仿真图。Clk为时钟信号,Reset为异步复位信号,ClkEn为时钟使能信号,高电平有效,FrameFirstIn为帧同步信号,高电平有效。DeinterleaverIn为输入数据。设计时要注意数据同步问题,要不然会造成数据错位,导致设计的失败。DeinterleaverIn为了在selector模块输入时和RAM的输出数据q保持同步,要作相应的延时,同步延时后DataIn4,同理,对应地RAM的输入数据DataIn1,selector模块的使能信号ClkEn4等也是经过同步处理得到。Flag为selector模块的选择控制信号,当Flag信号为0~10时,选择RAM的输出数据q作为输出,而当Flag=11时,则选择DeinterleaverIn经过同步处理后的数据DataIn4作为输出,从而保证在解交织器的11支路实现无延时输出。在解交织器的最前面输出的字节有些是无效的,加一个DataEffect模块是为了等全部字节都有效时,才把FrameFirstOut信号置高,告诉后面的模块数据开始全部有效。

  从资源利用方面考虑,使用RAM分区循环移位法来实现DVB-C解交织器比全部用基本寄存器或用配置FIFO的方法来实现要优化得多。

  为了更好地验证,本文把设计在synopsys 公司的synplify pro软件环境下进行综合,选用Altera公司的Cyclone EP1C12Q240C8器件。因为使用了软核IP,所以再把生成的*.vqm文件导入synopsys公司的QuartusII 软件进行再综合,选择同样的器件类型和型号,结果说明采用双口RAM设计所使用的逻辑单元较少,而且使用的8976比特RAM资源占用了Cyclone器件中的3个M4K,只有全部存储资源的3%。

结语
  
  虽然采用卷积交织会在刚开始传输数据的时候输出一些无效数据,在系统中引入一定的延时,但是它能把突发干扰造成的突发错误分散成随机错误,利于RS纠错,这样一权衡,有延时也是很值得的。本文利用EDA工具完成解交织器的设计,并且采用Verilog和原理图协同输入的设计方法,大大提高了设计效率。这里设计的解交织器具有通用性,如果要用不同深度I和基数M的解交织器,只要重设程序里的参数值就可以了,非常方便。

关键字:脉冲  顺序  延时  同步 引用地址:DVB-C解交织器的FPGA实现

上一篇:德州仪器推出业界最低成本的浮点 DSP
下一篇:基于现场可编程门阵列的数控延时器的设计

推荐阅读最新更新时间:2024-05-02 20:26

浅谈PLC编程容易忽略的延时问题
PLC在机械加工类的专用设备中有很大的应用,然而有一个问题常常被初入门的编程人员忽略,即延时问题。 简单的说,以气缸为例,PLC判断动作有没有完成是依靠限位开关的(有些不重要的地方也有靠延时的),而限位开关如磁环检测开关,有一定测量范围,换句话就是说,PLC判断动作已经完成而事实上机构动作还没有完成。如果在机械加工中不重视这个问题,那么加工的精确性会大打折扣,出现残次品。 每一步的动作完成,需要加一个延时,以保障动作的完成,一般就200-500ms吧,气缸特别大的可以增大。
[嵌入式]
浅谈PLC编程容易忽略的<font color='red'>延时</font>问题
脉冲发生器_脉冲发生器用途_脉冲发生器价格
脉冲发生器是用来发生信号的系统,产生所需参数的电测试信号仪器。按其信号波形分为四大类。 用途 1、液压脉冲发生器液压脉冲发生器包括一个安装在进水管(1)上的液压气动蓄能器(2),此蓄能器通过第一导管(3)与振荡发生器(4)连接,振荡发生器再通过第二导管(5)与水流转换器(6)连接。水流转换器包括工作喷嘴(7)和排水喷嘴(8)。第二导管(5)至少由两段不同直径的管子(9、10)连接而成,前一段(9)的直径为后一段(10)的直径的两倍。 2、高压脉冲发生器可调宽毫微秒组合高压脉冲发生器 实用新型涉及一种毫微秒脉冲发生器,可用作超声波发生器震源。为改善余波及适应不同频率换能器而设计。由中央控制、脉冲形成及电源三大部件组成。中央控制部分同
[测试测量]
<font color='red'>脉冲</font>发生器_<font color='red'>脉冲</font>发生器用途_<font color='red'>脉冲</font>发生器价格
同步信号源的作用
在激光器电源中,同步信号源的作用有以下几点:1,为主放电回路的放电开关产生触发脉冲.如果脉冲激光器每秒工作40次,那么同步信号源就应该提供频率为40HZ的触发脉
[模拟电子]
<font color='red'>同步</font>信号源的作用
丹佛斯变频器开环驱动永磁同步电机
引言         化纤行业纤维牵伸和玻璃制造行业成品传输都要求非常高的转速控制精度,一般采用永磁同步电机驱动,并用变频器作开环调速驱动,丹佛斯变频器由于性能稳定、可靠性高,在这两个行业有很久的应用历史。为了进一步提高设备运行的可靠性和改善永磁同步电机低速时的输出性能,我们就永磁同步电机的基本特性进行分析,提出了一些有益的办法。 一、永磁同步电机的结构特点:   普通的永磁同步电机机构如图一,定子为普通的硅钢片,导磁性能良好;转子表面覆盖永磁体,转子内部依然为导磁性能良好的铁。转子与定子之间的气隙约0.2毫米,与普通异步电机相仿。         图1,永磁同步电机的结构         现代主
[嵌入式]
最简短且高效的脉冲输出程序
设MCS-51单片机使用12MHz晶振,欲使用定时器在P1.0口产生占空比约30%,周期为60ms的脉冲。 ;============================================ 最佳答案: ORG 0000H MOV TMOD, #01H SETB TR0 LOOP: MOV R2, #3 SETB P1.0 REPEAT: MOV TH0, #(65536 - 20000) / 256 MOV TL0, #(65536 - 20000) MOD 256 JNB TF0, $ CLR TF0 CLR P1.0 DJNZ R2, REPEAT JM
[单片机]
Atmel Studio 6中延时函数错误的解决方法
错误 __builtin_avr_delay_cycles expects an integer constant. 经过查找发现是头文件版本更新所致。delay.h文件214行说明如下: Note: The new implementation of _delay_us(double __us) with __builtin_avr_delay_cycles(unsigned long) support is not backward compatible. User can define __DELAY_BACKWARD_COMPATIBLE__ to get a backward compatible delay.
[单片机]
超宽带窄脉冲发射芯片及应用系统电路实现
前言 超宽带(Ultra-wideband,UWB)是近年来备受关注的一种全新的无线通信技术,其利用极大带宽、极低功耗的无线信号来传输高速信息。超宽带技术通常利用极窄的脉冲信号(宽度小于1ns)来进行数据传输,脉冲信号的时间分辨率很高,可用于精确的定位应用,精度可达到厘米量级。 本文利用单片机和自主设计的TH-UWB02超宽带发射芯片实现了一个超宽带窄脉冲发射机电路,能够发送高速率的窄脉冲超宽带脉冲序列,由接收机解调后可以实现高速数据的无线传输,可用于无线数据传输、射频标签等领域。 电路设计 本文介绍的超宽带窄脉冲发射机采用TH-UWB02实现窄脉冲信号的产生和信号调制,工作电压为1.8V时,能够在每个输入数据的上升沿产生
[单片机]
超宽带窄<font color='red'>脉冲</font>发射芯片及应用系统电路实现
一文介绍电机控制的流程及组成:同步、定时和软件
同步和定时 每个实时应用程序的首要任务是适当的定时、同步和确定性的系统响应,设计电机控制软件时必须特别注意这些方面。 从本质上讲,该过程听起来非常简单:系统读取传感器值、处理控制算法、监控系统安全并通过调整 PWM 输出的占空比来管理输出级。 微小的时序错误可能会导致严重的系统响应错误、运行不稳定和性能不佳。 为了确保一切按预期运行,保持同步并确保系统的确定性至关重要。 在这里,我要强调的是,我们正在处理一个“硬实时系统”,在严格的期限内完成任务绝对至关重要。 电机控制器软件可以使用合适的 RTOS(实时操作系统)作为没有操作系统的裸机解决方案来实现,或者作为多核混合解决方案来实现,其中一些 CPU 内核在裸机模式下
[工业控制]
一文介绍电机控制的流程及组成:<font color='red'>同步</font>、定时和软件
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved