SDR中新型自适应数据综合系统的设计与实现

2011-06-07 05:53张云佐
电视技术 2011年15期
关键词:码流码元支路

张云佐

(桂林电子科技大学 研究生学院,广西 桂林 541004)

0 引言

SDR基于通用硬件平台,通过软件提供多服务、多标准、多模式、可重构的无线电通信。核心思想是最大限度地用易于重构的数字电路代替模拟电路来构建通信系统以适应其智能化的发展趋势[1]。SDR有多种具体应用,从功能上可以细分为单用户型、多用户型等类型。多用户型SDR是指一套SDR系统可以实现对多个用户的数据进行合成后再用一个信道进行传输,可以有效提高传输容量、效率、信道利用率。其首要问题是解决各用户数据码流的综合与分解。

对于高速数据码流的综合与分解已经有了相当成熟的数字复、分接技术与理论,但对零次群数据码流的研究较少。在SDR内部有大量的低速信息需要传输[2],多支路信息在同一信道进行有效传输就必须对数据进行打包(综合)处理。要实现传输设备和数据终端间的速率和容量的匹配,解决现有部分传输设备和终端设备之间不兼容的问题,就要做到设备的输入端支持多种速率的数据输入。基于这种发展需求,本文设计实现了可进行数据综合的新型自适应系统,具有很高的经济价值,对SDR关键技术的研究有重要的推动作用。

1 系统简介

数据综合系统在SDR中的功能是完成数据的综合与分解,以达到将多路低速数据无损合成、实现高效率传送的目的。在发送端,主要是对多个用户的低速数据进行合成后,形成一路高速码流发送出去;在接收端,对经过解调后的数字信号进行分解,分别送达相应用户终端,完成多用户通信。

本设计基于FPGA,采用新型算法设计实现了自适应数据综合系统,自动识别支路数据速率,动态分配传输信道,操作灵活,性能稳定,便于修改电路结构,节约系统资源、具有较高的实用性和可靠性。系统结构框图如图1所示。

系统主要由FPGA、外部标准接口、微控制器以及人机交互设备等部分组成。通过JTAG,AS,PS等下载模式可以对系统进行配置或软件更新。

FPGA对输入的支路数据进行自适应处理,并送入综合模块和管理模块;综合后的数据进行组帧、接口选择和数据处理后发射出去;系统提供了DUC、RS-232、3G、以太网等多种标准的接口。

对接收到的数据下变频处理后送入帧同步模块,在管理模块的控制下分解成各支路数据进行输出;管理模块是系统的控制中心,协调FPGA内部各模块的工作、把FPGA内部状态信息送入微控制器处理后进行显示,同时接收外部输入设备的控制。

2 关键技术的分析与实现

支路数据的时钟提取是数据综合系统自适应性实现的前提,只有提取到精确时钟才能对待传输数据进行码速调整和自适应综合。锁相环时钟提取技术已经相当成熟,并在工程实践中得到了广泛应用。但它基于闭环结构按步进行相位调节,同步时间与调整精度相互制约,无法满足数据综合系统对速率变化较大的支路数据自适应的需求。本文基于开环结构,充分利用支路数据码元跳变边沿所携带的时钟信息,采用最窄脉冲检测、实时鉴相和动态分频技术进行时钟提取,满足了设计需求。

2.1 锁相环时钟提取分析

基于FPGA进行时钟提取,最简单的办法就是利用FPGA的片上锁相环。但这种锁相环要求的输入时钟范围是10~100 MHz,无法满足低速率支路数据的时钟提取。自主设计的锁相时钟提取电路结构如图2所示。首先,将输入的归零码元进行过零提取,整形为不归零码,再与本地分频后的时钟进行鉴相,输出超前或滞后脉冲,脉冲宽度的大小由两者的相位相差决定[3]。本地晶体振荡器产生高频率时钟,经分解成2路相位差为180°的窄脉冲信号,分别与滞后或超前脉冲作用,实现对脉冲的增添或减少控制,最后经分频,再与输入的码元进行相位比较,不断重复相位比较,脉冲增减控制,最终实现本地时钟与码元发送时钟的同频同相,提取出支路数据时钟。

提高本地高频时钟的频率可以有效提高调节精度,但减小了调节步进值;失步后,需要重新按步反馈调整,同步速度慢。接收码元出现连“0”或连“1”的情况下,锁定时间会很长。但反馈结构具有失锁后的自我调节性,码元相位出现抖动时,仍然可以输出稳定的时钟。

2.2 最窄脉冲检测法时钟提取

基于开环结构,充分利用码元跳变沿携带的时钟相位信息,用计数器值来计量最窄码元宽度,实时鉴相和选择替换相结合进行设计,既实现了时钟的精确快速提取,又保留了锁相环的自我调节性[4]。具体实现如图3所示。

数字滤波器将输入码元中的毛刺滤除掉,状态转移保证了在码元出现连“0”或连“1”时仍然有固定的边沿短脉冲输出,去抖动模块对前向抖动和后向抖动分别处理,消除了抖动累积。本设计与传统设计方法相比,可以快速精确地提取到支路数据时钟,并进行实时输出;同时,这种电路结构更节省系统资源。

2.2.1 鉴相器的实现

充分利用支路数据码元的跳变沿特性,先将码元输入到2个相连的移位寄存器;在高频时钟的驱动下,2个寄存器输出值相位相差1个高频时钟周期的大小,2个值经过逻辑运算,便可鉴别出码元的上升沿和下降沿。核心部分的实现代码如下:

当输入的数据码流有上升沿或下降沿时,边沿检测电路便输出宽度为1个高速时钟周期的脉冲。

2.2.2 最窄脉冲检测

码元宽度等于支路数据的整数倍时钟周期,检测出最窄码元并以其跳变沿作为闸门信号去控制高频时钟驱动的计数器,用此计数值对本地高频时钟进行分频,便可提取出支路数据的时钟。

由于高速时钟的频率与数据码流时钟频率的n倍有一些差异,因此,该电路要根据数据码流的边沿来控制n分频器的置位,不断调整分频器输出的相位,使得n分频器输出的时钟频率的平均值正好是数据码流时钟的频率。调整n分频器置位值,可以改变提取时钟与数据码流间的相位关系。这样提取的时钟可以很好地跟踪数据码流的抖动,改善系统的抖动容限性能,由此引起的提取时钟的抖动对综合系统的性能无影响。

最窄脉冲检测是一个实时动态进行的过程,计数器值的大小代表了码元宽度。先将2个跳变沿之间计数器值保存到寄存器cnt_reg2中,后续计数器值cnt_reg1与cnt_reg2进行比较,cnt_reg2中保存较小计数值,并开始下一轮的计数。核心部分的实现代码如下:

需要特别注意的是:寄存器cnt_reg2的初始化值不能为0或者太小,要根据设计需求进行设置以保证其值大于最窄码元宽度的计数值。

2.2.3 动态分频

将cnt_reg2中的数值送入分频器,作为对本地高频时钟的分频系数。每当本地时钟上升沿来到时,count计数加1,当计数值达到cnt_reg2保存的值的一半时,输出电平反转。在这里对cnt_reg2值进行奇数、偶数单独处理,保证了提取时钟的精度和输出占空比为50%的时钟。核心部分的实现代码如下:

由于cnt_reg2中的数值是动态更新的,所以分频器也要根据cnt_reg2中的数值变化动态进行分频。

FPGA内部电路的传输特性,会使提取的时钟稍微延迟于输入码元。在这里设置一级触发器,用提取的时钟对输入码元进行触发,实现输出时钟与输出码元的精确同步。

2.2.4 动态码速调整

码速调整是把参与综合的各异源支路码流调整成同步码流。本设计的支路数据速率未知,因此码速调整也是一个动态调整的过程。图4为正码速调整的原理框图。

由于需要用到数据缓冲器,为了保证缓冲区换页正确,一般用综合器时钟去读入各支路信息,当支路速率与合路速率相差过大时,集中写入缓冲区时会出现重复写入现象,即1 bit码元可能会被写入2次以上,导致综合错误。在这里,将码元进行“1”位保护后可避免重复读入,即将码元的“1”位按读入时钟宽度缩短。

码速恢复是把接收到的解调后的合路信号分解成参与综合的各异源支路码流,并输出到终端用户。码速恢复中主要用到了多数判决法和有限状态自动机模型。有限状态自动机原理如图5所示。

该算法不仅利用了前面若干帧的码速恢复状态和先验的概率统计分布[5],而且考虑了低次群路的同步码误码情况这个后验信息,可以大大增强码速恢复判断的正确性。

2.2.5 信道自动分配

经多年探索,我国已经统一采用以2 048 kbit/s为基群的数字速率系列,针对此速率系列,向下兼容的数字终端设备速率一般为以64 kbit/s为基础的倍数关系数字传输速率。

根据工程经验,将综合器的支路数定为最大8路,速率定为具有代表性的64/128/256/512/1 024 kbit/s,而群路信息则设置为不小于各支路信息速率的总和,可为128/256/512/1 024/2 048 kbit/s,在群路速率大于等于各支路信息速率总和的情况下,动态分配信道,支路数在1~8之间动态变化。

2.2.6 系统测试结果与分析

在Quartus II 9.0中编辑程序,编译通过后,设置参数,进行仿真,关键部分仿真波形如图6a所示。可见,输出码元与输出时钟达到完全同步,边沿无相位延迟,且时钟动态跟踪码元相位。把综合与分解集成在一起的系统程序下载到FPGA中进行自环测试,用信号源作为支路数据输入,在输出端用示波器观测可以得到如图6b所示波形,改变输入信号频率,输出信号随之变化,验证了系统自适应的正确性。系统检测到输入码元的最窄脉冲,即可提取到精确时钟,十分迅速。

3 系统硬件设计

综合考虑系统对速度、资源、功耗的要求,以及后续的功能扩展,本设计采用Altera公司的FPGA Cyclone III芯片EP3C40Q240C8。硬件电路主要包括FPGA供电模块、各种标准接口以及下载模块的设计。

3.1 供电模块设计

本设计采用的FPGA正常工作时需要3种电源,其中内核为1.2 V,I/O接口为3.3 V,FPGA内部锁相环为2.5 V。为满足设计需求,本设计采用2种电路供电,采用LT1959芯片将5 V电源转换成1.2 V电源输出,为芯片内核供电。采用AS1117将5 V电源转换成3.3 V和2.5 V,为电源供电。LT1959的调试电路图如图7所示。

经测试在输出端可以得到1.2 V的电压,其峰峰值为30 mV,Cyclone III芯片正常工作允许的电压波动最小值为50 mV,满足要求。

图8所示为AS117的通用调试电路,在实际调试中,采用5 V-2.5 V的AS1117,5 V-3.3 V的AS1117芯片各1片。在实际调试中,分别得到2.501 V和3.298 V的输出电压,在芯片允许的电压范围内,可以满足系统需求。

3.2 各种下载模式的电路设计

本设计能实现JTAG,AS,PS这3种下载模式[6],其设计电路图如图9所示。

设计PCB时,为了便于系统测试,3种下载模式单独设计,并用跳线进行选择设置。

4 系统软件设计

软件采用Verilog语言,基于数字复、分接[7]的经典理论和自主设计的新型算法进行设计,核心部分框图如图10所示。

软件主要包括自适应调整、数据恢复、误码测试、前向纠错以及同步综合与分解等部分。同步综合与分解是数据综合系统的核心;自适应调整和数据恢复是系统设计的创新点所在;前向纠错主要用来提高数据复接系统的稳定性和可靠性,是对复接过程中产生的错误的及时修改与完善;误码测试[8]是将当前系统误码情况处理并送到人机界面进行显示,表征系统当前的可靠程度;同步时钟提取是实现正确分接的重要前提;各个系统模块协调工作共同完成自适应数据综合的功能。

5 系统实现的功能与测试结果

5.1 系统实现的功能

基于FPGA,采用自适应新型算法设计实现了SDR中的数据综合系统。主要功能及特点如下:

1)实现了非标准支路码流的自适应综合,码速自动识别、支路通道动态分配。

2)设计实现的新型时钟提取方案,具有快速同步、自我调节和节省资源等特点。

3)开机后系统进行自我检测、同步自动恢复并且实时检测误码,稳定性好。

4)具有完善的人机界面、多种功能可选,接口标准,通用性强。

5)与现有的SDR技术产品接口兼容,可直接应用。6)系统功能可随时通过软件更新。

以上功能均已通过硬件实现,验证了系统设计的可行性和可靠性。

5.2 系统的测试结果

测试仪器包括函数信号发生器、频谱仪、数字电压表、示波器等。测试结果如下:

1)复接总路信号速率≤2.048 MHz;

2)合路接口类型:10MbaseT,IEEE802.11b,DDS模块接口,3G标准接口;

3)输入支路码流速率:50 bit/s~2 000 kbit/s;

4)支路通道数:1~8路(根据支路速率动态分配)。

以上测试结果达到了系统设计的指标需求。

6 结论

针对多用户型SDR提出的新型快速的时钟提取方案,快速准确地实现了支路数据时钟提取,满足了数据综合系统自适应性的预期设计要求。系统具备开放性、灵活性和软件可移植性,广泛应用于办公室、家庭等各种中、低速数据传输和交换设备中,有良好的应用前景,具有较大的商业应用价值。

另外,本文提出的时钟提取方法在SDH系统以及ATM系统中都有着广泛的应用前景。

[1]杨小牛,楼才义,徐建良.软件无线电原理及应用[M].北京:电子工业出版社,2001.

[2]向新.软件无线电原理与技术[M].西安:西安电子科技大学出版社,2008.

[3]段吉海,黄智伟.基于CPLD/FPGA的数字通信系统建模与设计[M].北京:电子工业出版社,2004.

[4]ZHANG Ruiyuan,GEORGE S L R.Fast acquisition clock and data recovery circuit with low jitter[J].IEEE Journal of Solid-State Circuits,2006,41(5):1016-1024.

[5]孔凡青.时分复用设备动态帧结构技术[J].无线电通信技术,2005,31(4):12-14.

[6]Altera Corporation.Altera configuration handbook[EB/OL].[2010-09-28].http://www.altera.com/literature/lit-config.jsp.

[7]陈建,杨秀芝.TS流复用器的时分复用设计[J].电视技术,2009,33(10):13-14.

[8]孙玉.数字复接技术[M].北京:人民邮电出版社,1991.

猜你喜欢
码流码元支路
一种新的生成树组随机求取算法
数字电视TS码流协议简要分析
LFM-BPSK复合调制参数快速估计及码元恢复
基于极大似然准则的短猝发信号盲解调
多支路两跳PF协作系统的误码性能
利用支路参数的状态估计法辨识拓扑错误
基于FPGA的IRIG-B码解码器设计
一种比较ASN.1码流差异的方法
多并联支路型可控电抗器短路电抗对支路电抗和电流的影响
基于梯度的CCSDS压缩码流控制算法研究