利用FPGA实现多路话音/数据复接设备

发布者:平章大人最新更新时间:2006-10-25 来源: 今日电子关键字:信道  双向  数据  时序 手机看文章 扫描二维码
随时随地手机看文章
1.引言

  随着现代通信向着多业务方向发展,为了节省信道资源、降低调制解调设备的复杂度,数据复接设备得到了更充分的利用。它能将多路不同类型的数据流复接成一路高速数据流,通过信道传输,在收端分接出发端对应的数据流,以实现多业务双向通信。

  这里利用了XILINX公司的VIRTEX-ⅡPRO系列FPGA实现了数据复接、数据分接及帧同步过程。之所以选用FPGA完成设计功能,是由于数据复接、分接涉及大量的时序过程,FPGA综合工具应用了广泛的时序调整与流水处理技术以改善时序电路性能。巧妙地应用流水处理技术,可以实现输入输出端口之间寄存器的移动和均衡实现逻辑的分隔,并且不会对原有设计引入额外的处理等待延迟,可以实现高性能设计的高效率综合,确保最优的时序性能。该设备输入端是8路话音,16路数据,其中8路并行输入的话音均分为V1、V2,16路并行输入的异步数据均分为d1、d2,设备完成将并行输入复接为一路高速数据流(复接后的帧格式见图3)经过信道传送后再由分接模块分解出各个支路。设计流程图见图1所示。

 

  本文结构安排如下:首先,介绍引言部分;其次,对数据复接分接、帧头同步捕获以及由DDS进行时钟分频做了详细的设计分析,并给出了相应的设计流程图和原理图;再次,分析仿真结果,从结论对设计过程进行验证;最后,总结全文。

2.数据复接方法与实现

  数字复接的方法主要有按位复接、按字复接和按帧复接三种。按位复接又叫比特复接,即复接时每支路依次复接一个比特。按位复接方法简单易行,设备也简单,存储器容量小,目前被广泛采用,其缺点是对信号交换不利。按字复接,一个码字有8位码,它是将8位码先储存起来,在规定时间对各个支路轮流复接,这种方法比较复杂,具体原因后续分析。还有一种是按帧复接,这种方法的存储容量要求太大,而且不适用于同步与异步复接情况。这里选用按字复接,原因是经过ADPCM编码后进入的话音数据为4bit并入(共2路),这里将一组V1,V2看为8bit(1个字),数据异步接收后出来的数据,每组也为8bit。

  在设计数据复接与分接设备过程中,主要有用DDS生成所需时钟、帧结构定义、码速调整、控制模块设计、帧同步头捕获设计几大难点,现分别做一说明:

  1) DDS生成时钟:本设计的晶振为30MHz,由总体考虑所需的话音时钟为8kHz,异步数据为117kHz。所以可以先由30MHz时钟源由DDS得到4.096MHz的时钟,再由4.096MHz这个时钟进行512分频得到8kHz时钟,由4.096MHz时钟进行35分频得到117kHz时钟,具体原理图见图2。对于DDS控制字的求解针对此设计可由以下公式得到32位码字:(见书P50)

 

  其中gen_constant为生成控制字的模块,clk_512和clk_35为分频模块。

  2) 帧结构定义:对于输入话音V1和V2其写入时钟为8kHz的同步时钟,数据d1和d2其写入时钟为117kHz的异步时钟。帧同步头选用2个255bit的m序列后补一个0作为256bit同步头,并存放在ROM中。他们经过复接后得到117kHz的高速数据流,送入信道,接收端通过同步头捕获模块进行帧同步,捕获后由数据分接模块进行分路,得到发端对应的8路话音,16路数据。由于本设计输入端还需要插入数据指示、话音信令等码元(以供区分业务类别),在此,我分析了复接端多路输入时钟与合路后读取时钟的关系,同时综合考虑同步话音的解复接后的连续性以及异步数据的重要性等问题,定义如图2的帧格式。

  这里需要强调的是异步数据在帧格式里的定义,数据是突发性质的异步数据,虽然数据的传输速率很高为117kbps,但是其平均速率很低,经过实际分析其平均速率约0.6K×8bps,而且该数据作为控制指令所以在帧格式设计时要特别注意,此处定义帧格式时对数据每字重复传送3次以提高可靠性。

 

  3) 码速调整:码速调整部分主要是缓冲存储器,还包括一些必要的控制电路,这里缓冲器选用Asynchronous FIFO。在很多设计中,是通过扣除一个读取脉冲的方法来防止缓存器的信息被取空,这样做的问题是需要判断写入写出时钟的相位关系,并且输出同类型数据将存在不连续性。在设计中通过利用帧定义格式以及设计一个读时钟控制模块来避免缓冲读空问题,保证了各类数据的连续性。缓冲的深度与输入有很大关系。现计算FIFO要求具备的最低深度(其宽度话音为4bit,数据为8bit):

  首先对FIFO的工作过程做一个简要说明,Asynchronous FIFO是一个先入先出存储器,并具有支持读写时钟不同步的功能,在输出口有empty指示(empty=1,表示下一时钟所读的数据为无效数据,反之为有效)。这里在控制模块中要求在最后一位即第211个bit处对设备中所有FIFO复位,目的是防止缓冲存储器被取空。

  输入端单路话音是以8×4(Kbit)传送,成帧后每个数据包512(bit)中包含单路话音40×4(bit),数据包以117kbps传送,则话音写入FIFO的速率与读取FIFO的速率可以表示为(1)、(2)两式所示。
V话音=8×4(kbps) (2)
Vread=[40/(512/117)]×4=9.14×4(kbps) (3)
ΔV=1.14×4(kbps) (4)

  设缓冲区深度为X,则在7个数据包完成时间内由速率差完成的深度为:
ΔX=1.14×7×512/117=34.92 (5)

  这个即话音FIFO的最小深度,这里选择深度为64,宽度为4bit的Asynchronous FIFO。

  对于异步数据在每个数据包512bit中留出了8×3×3bit空间,由于数据量很小,且考虑到每帧开始会对设备所有FIFO复位一次,在此不需要考虑写入读出的时钟问题,FIFO的深度只要大于7×3就可以。对于加强数据可靠性,重传3次的问题在FIFO中不加考虑,由控制模块完成。最后定义数据FIFO深度32,宽度8bit的Asynchronous FIFO。








 


  4) 控制模块的设计:这部分设计关键是对时钟的控制以及时隙的安排,这个也是整个复接设备设计的主要难点,同步报头的插入使能信号、帧格式的定义都有控制模块中一个12位计数器来统一控制。对于异步数据每个字节重复3次传送这个过程的设计,这里主要引入模块设计,它通过前后时隙空余期间,利用时钟上升沿与下降沿一起促发,将FIFO的输出扩展为1个与FIFO输出同相的信号并存入本地RAM,这样解决了FIFO的先入先出的工作特点(同个数据无法返回再读)。对于分接模块,难点同样也是在异步数据部分,由于在帧格式中预定了数据重复3次发送,所以在分解模块中采取的是3中取2的方法,对异步数据进行判决。

  5) 帧头同步捕获模块的设计:由于m序列具有很强的自相关性,利用255的m序列末尾加1个0作为同步头。当输入序列匹配与本地码相匹配时将出现相关峰值(输入序列存放在移位寄存器中),当不匹配时相关值很小。这里用2个上述码字,分别作为帧同步头和保密机同步头,其相关捕获过程的MATLAB仿真图如图3所示。这里在256和512处出现了相关峰值,即在这2点处本地码与寄存器中数据匹配相关。相关检测技术在很多文献都有介绍,这里采取的也是通用的方法,只是在具体实现时,根据256bit来设计了一个移位寄存方法,采取2个4×64bit的移位寄存器作为输入序列的存放地点,分别用于帧同步头和保密机同步头捕获时输入序列与本地码元的自相关。由于在设计中需要捕获成功的使能信号提前一个时钟周期,因此本文的解决方法是将本地码沿着输入序列的反方向循环移动1bit,这样可以在序列进入255bit时得到相关峰,以提前1个时钟周期给出捕获成功的使能信号。

  由于信道中存在干扰,在控制模块中不可以用m序列的自相关大小作为捕获判断基准值,这里设置的捕获环路的基准值,它是通过相关峰值加上一定的偏移值而定的,这样可使得同步的误判率减小。用户还可以通过设定软基准值,即通过信噪比来自适应决定偏移值,这样可以更加可靠的达到同步状态。

3.仿真结果分析

  通过在ISE软件中编写UCF文件,把程序下载到xc2vp20-fg676中测试通过,已经作为总体设计的一部分投入使用,并使用正常。在此,对整个设计用Modesim进行仿真一下,并给出结果:当话音输入为图5所示,从0000到0110,写入FIFO时钟如图v_in_buff_w为8kHz,则输出见图6所示,当时钟下降沿促发得empty为0后,下一时钟下降沿所抽取的数据为开始的有效值。

  需要说明的是话音是同步的,必须保证话音输出要连续,确保这个连续性跟定义的帧格式大小以及信道传送的速据速率等因数有关。

  对于异步数据部分需要不断的对empty信号进行判断,以确定下个时钟下降沿抽取的数据是否有效,根据FIFO工作特点输出指示empty为0后,下一个时钟下降沿取得的数据有效,输入数据见图7,相应的输出结果见图8。

4.总结

  数据复接在多业务通行中应用广泛,它能将多路不同类型的数据流复接成一路高速数据流,通过信道传输,在收端分接出发端对应的数据流,以实现多业务双向通信。数据复接设备的设计方法多样,这里所做的设计方法具有一定的通用性与实用性,给出了同步、异步合路的解决方案,并且介绍了利用DDS进行产生所需时钟的方法。在设计帧结构以及FIFO深度方面,本文也做了较详细的推理。由于在设计数据复接、分解过程中,大量涉及进程概念,时序性很强,所以选用FPGA去完成软过程,这相比其他器件可以进行更有效的时序调整与流水处理技术,进而改善时序电路性能。

参考文献
1 曾凡鑫.关于本原M序列的一些自相关函数取值.通信学报,1997,第9期,26-30
2 “异步传输模式交换机的复接设备”技术指标 专利号:972458913 [美] Bob Zeidman著, 赵宏图译.基于FPGA & CPLD的数字IC设计方法.北京航空航天出版社

关键字:信道  双向  数据  时序 引用地址:利用FPGA实现多路话音/数据复接设备

上一篇:基于AD6644的中频数字处理模块的设计
下一篇:基于AD6644的中频数字处理模块的设计

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

采用EEPROM对大容量FPGA芯片数据实现串行加载
    摘要: 通过对比多种FPGA数据加载方式,从可靠性、经济性及PCB设计等几个方面说明了串行加载的优越性,分析了目前串行加载所面临的问题。为解决串行加载新面临的问题,提出了采用EEPROM与9500系列CPLD相结合实现串行加载的构想,并通过实际设计,成功地实现了该构想。     关键词: FPGA CPLD EEPROM 并-串转换 自大规模现场可编程逻辑器件问世以来,先后出现了两类器件,一类是基于SRAM体系结构的FPGA系列,如XILINX公司4000系列和最新的Virtex系列;另一类 基于fastFLASH技术的CPLD器件,如XILINX公司9500系列和Lattic公司的ispLSx
[应用]
I2C总线数据传输的C语言实现及其应用
    1 I2C总线概述   I2C(Intel-Integrated Circuit)总线是荷兰的Philips公司于八十年代初推出的一种芯片间串行总线扩展技术。它用两根线(数据线SDA、时钟线SCL)可完成总线上主机与器件的全双工同步数据传送,可极方便地构成多主机系统和外围器件扩展系统。I2C总线支持所有NMOS、CMOS、TTL等工艺制造的器件,其上所有的节点都连到同名的SDA、SCL上。I2C总方法,数据传送都有相同的操作模式,接口电器特性相同且独立,可在系统供电情况下从系统中移去或增加IC芯片,有I2C接口的外围器件都有应答能力,读写片内单元时有地址自动加1功能,易实现多个字节的自动操作。近年来,国际上有关公司制造了多
[嵌入式]
大联大友尚集团推出基于Diodes产品的HDMI 2.0双向切换器方案
2021年12月16日,致力于亚太地区市场的领先半导体元器件分销商---大联大控股宣布,其旗下友尚推出基于达尔科技(Diodes)PI3WVR12412芯片的HDMI2.0双向切换器方案。 图示1-大联大友尚基于Diodes产品的HDMI 2.0双向切换器方案的展示板图 HDMI 作为新一代的数字音频与视频的标准接口,在家庭剧院、会议系统等领域应用愈发广泛,在这种背景下,支持HDMI接口输入输出的产品日趋普及。然而,目前市面上大多数的显示设备通常只提供一组HDMI输入端子,因此,使用者必须通过不断插拔线材以连接不同产品。而HDMI切换器的应用可将不同HDMI输入装置连接到单一HDMI显示设备,使用者可通过红外线遥控器或前
[模拟电子]
大联大友尚集团推出基于Diodes产品的HDMI 2.0<font color='red'>双向</font>切换器方案
FRAM在汽车双向报警系统的应用
随着汽车在中国的普及化,汽车防盗已经成汽车安全的一个重要问题。采用GPS防盗,运营成本高,所以只针对一些高档的汽车。那么一些经济型的汽车如何实现有效防盗,最简单的方式是在以前简单的单向报警的系统增加GSM模块或者CDMA模块,就可以实现双向报警. 先明确几个概念: 单向报警:指的是汽车本身的报警期发出报警声音,警告偷车人,提醒车周围的人.这种形式最普遍,传感方式有振动传感或超声波传感.(在春天打雷季节,我们经常听到汽车报警器乱叫),这种方式使用于车主离停车距离不远报警. 双向报警:指的是当汽车传感器(振荡传感或超声波传感)检测到异常状况时,汽车本身的报警器叫,警告小偷,继而立即通过有效的方式(GSM或CDMA网)统治车
[嵌入式]
基于NI PXI的数据采集和流盘技术的射电天文台
挑战:   运用现代数字计算的最新进展,开发下一代高性能、小型集成射电航天接收机,尽可能与天线输入接近地对信号进行数字化尽可能与天线馈电接近地对信号进行数字化。   解决方案:   使用NI采样、数据采集(DAQ)和数据流盘硬件,采集定制设计的微波前端的输出,并测试数字标定边带分离和高精度、高稳定性极化隔离的新算法。   "使用NI数据采集和数据流盘硬件,我们为DSSM和DOMT开发了标定和校正算法,相比使用实时硬件信号处理实际问题,我们的处理方法更有效、成本更低。"   美国国家射电天文台(NRAO)是美国国家科学基金会(NSF)资助的机构,负责美国和世界各地天文学家使用的射电天文设备的建造、维护和运作。中央开发实
[模拟电子]
基于NI PXI的<font color='red'>数据</font>采集和流盘技术的射电天文台
STM32:ADC采集数据实例(采用DMA模式)
SOC:STM32F103RCT6 软件平台:STM官方库V3.5.0 开发工具:Keil 1. 摘要 本文章将给出STM32F103RCT6控制AT24C02的代码。如有疑问和错误,欢迎留言告之。 2.硬件连接 AT24C02使用I2C进行数据访问,板子上使用STM32的I2C控制器2和AT24C02进行连接。 具体来说,PB10作为SCL和AT24C02相连,PB11作为SDL和AT24C02相连。 这里就不给出硬件连接图了,比较简单。 3. AT24C022C访问代码(轮询) I2C这里使用轮询方法,不是中断,请留意。 首先,给出I2C控制器的初始化代码,和读写代码,一共三个函数,对应三个功能。 注意
[单片机]
基于MSP430F149的数据转发器设计
摘要:以MSP430F149单片机为核心,设计一种双串行通信的电能表自动抄收系统的转发器,给出转发器的硬件结构框架与软件设计方案。转发器通过三种通信方式实现主机与电表抄表器的数据通信。 关键词:转发器 串行通信 MSP430 微控制器 概述 目前大量存在的人工抄表的方法已远不能适应现代化管理的需要,并由此带来的线损率的增高也必然影响电力行业的发展。线损率较高的主要原因之一就是抄表、计算和管理手段的落后,管理损耗增大。如果采用电能表自动抄收系统,不仅可以大大提高电网运行的可靠性,而且可以充分利用现有设备的能力,降低劳动强度。该系统主要由电表抄表器(数据采集)、数据转发器(数据传输)和主机(数据处理)三大部分组成。本文主要设计
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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