ADSL参数详细解精.docx
《ADSL参数详细解精.docx》由会员分享,可在线阅读,更多相关《ADSL参数详细解精.docx(16页珍藏版)》请在冰豆网上搜索。
ADSL参数详细解精
ADSL常用参数详解-20021128
华为技术有限公司
版权所有XX
关键词:
ADSLOperationmodeFastInterleavedNoisemargin
TransmitpowerBitswap
摘要:
本文比较详细的解释了ADSL业务中常见的参数,如交织、快速、噪声容限、线路衰减等,并讲解了这次参数对ADSL线路的速率和稳定性的影响。
本文参照标准以及本人在处理网上问题中的一些经验和体会写成的,难免有些错误,欢迎指正。
文中直接引用一些术语而没有加以解释,如有问题请参见附录中的参考书目。
缩略语清单:
参考资料清单:
1、《DraftnewRecommendationG.992.1:
AsymmetricalDigitalSubscriberLine(ADSL)Transceiver》ITU-TWP1SG15/Q4
2、《ADSL/VDSL原理》DenniesJ.Raushmayer著,杨威,王巧燕译,人民邮电出版社
第1章工作模式(Operationmode)
Operationmode指的是CO与CPE之间使用的ADSL连接协议。
目前的常用协议有G.992.1(有时候称为G.dmt),G.992.2(有时候称为G.lite),T1.413issue2,其中G.dmt与T1.413issue2有时候合称为fullrate,fullrate与G.lite的主要区别在于前者最多使用256个子载波(频率范围为25k~1.104MHz),后者使用128个子载波(频率范围为25k~512KHz),同时最大发送功率谱密度不同,因而每一个Tone上最多承载的bit数不同,fullrate为15bit,G.lite为8bit,所以最终体现为支持的速率不同,前者为8106/896kbps(下行/上行,下同)。
另外G.992.x协议又分为AnnexA(ADSLoverPOTS,主要适用于北美、亚洲除日本以外地区),AnnexB(ADSLoverISDN,主要适用于欧洲),AnnexC(时分双工方式,主要在日本使用)。
一般地局端与终端都同时支持上述三种Mode,不过现在G.lite很少使用。
那么Modem与局端是如何确定使用何种mode的呢?
首先G.992.x与T1.413的握手信号不同,前者使用G.994.1(又称G.hs)中A43频率组,也就是说握手发起信号为Tone9、17、25组成的时域叠加,称为R-Tones-Req,其特点是每个16ms这些子带的相位反转180°,T1.413的握手信号为tone8的单频正弦信号,称为R-Act-Req,其特点是以周期为1024symbol(~252.3ms)变化,首先以-38.5dBm/Hz发送64个symbol宽度,然后将功率降低20dB再发送64个symbol的宽度,然后静默(silence)896symbol。
CO通过检测这些信号来确认是否有Modem在发起连接请求,实际上对于G.hs,9、17、25任何一个频率成分都可以单独的被视为连接请求信号。
这样局端将根据握手信号来进行训练,由R-Act-Req开始的话将以T1.413运行,以R-Tones-Req开始则训练成G.992.x,至于是G.dmt还是G.lite,这取决于局端或终端的设置。
在全兼容的模式下,标准建议采用如下的握手信号,首先是2s的R-Tones-Req信号,然后是0.1s的静默,接下来是2s的R-Act-Req信号,跟着又是0.1s的静默,然后重复这个过程。
第2章交织与快速(Fastandinterleaved)以及交织深度
2.1交织与快速
在ADSL的帧结构中,有快速(fast)帧与交织(Interleaved)帧之分,对应的有fastchannel与interleavedchannel之分,fast与interleaved的差别在于interleavedchannel中,经过FEC(前向纠错)编码(通常用Reed-Solomn编码)后的bit流要送到一个交织寄存器中,然后从中读出进行下一步处理,而这个写入读出的过程就叫交织。
下面简单介绍一下交织。
首先看一下交织通道的帧结构:
一个ADSL数据帧包含各个逻辑承载信道(AS0~3、LS0~2)以及开销信道,每一个帧有KI个byte,而S个数据帧(共KI个byte)加上RI个字节的FEC校验字节后经过FEC编码后得到S个数据帧,实际上这就是一个FEC码字,ADSL编码中一个FEC码字的长度为256byte。
这些字节被送进交织寄存器。
交织的过程及作用可以用下文说明:
下图所示为一个块交织的例子——这里我们指定其深度D=3,跨度N=7。
块中的数字表示比特进入交织器的顺序。
通常,比特按行写入并按列读出。
一般的,单个的行包含了完整的FEC码字。
这样例子中该码字的长度将为7。
而下图所示为一个D=3,N=7的去交织器,去交织器的输出为码元的正确顺序
下图中的表格对在采用交织和无交织情况下突发错误的比较,说明了交织的价值,表格前两行说明了比特在无交织和有交织两种情况下在信道传输的顺序。
如果在信道中发生如表格第三行所示的突发错误,请注意在每种情况下被干扰的比特数目。
表格的最后两行为将要被发送到样例信道接收机上的FEC块的那些比特。
注意如果采用交织,比特错误将会被分解,这就给了FEC块更好的机会来纠正错误。
这个例子可以用于预计突发错误不大于三个比特时长的信道。
更实际的交织器通常将有更大的D和N参数。
交织为数据的端到端传送增加延迟并且也需要在发射机和接收机上具有存储缓冲。
一般来说,发射机和接收机都需要大约D*N比特的内存空间来支持块交织以及因此而产生的约2DN比特的延迟。
对于上面的试验例子来说,这样的负面影响看来是无关紧要的,但是对于深度和跨度更大的交织器,这些影响是非常明显的。
注意:
对于较高层的使用确认的协议(如TCP),增加延迟会引起协议停滞,极大地降低数据吞吐量。
从内存需求和端到端地延迟考虑,卷积交织有更高地效率。
注意卷积交织并没有隐含任何关于FEC类型的信息。
对于块或卷积FEC技术,它都同样适用。
码字长度N=7且深度D=3的卷积交织器如下图所示。
这里比特按列写入并按行读出到FEC块以做进一步操作。
去交织器必须从每行只读取单个的码字,然后前进到下一行指导最后一行被读取为止。
在读取了最后一行以后,去交织器返回第一行并且从下一个未读位置重新开始。
卷积交织能够将长度为N的码字分散到ND时间间隔上,导致ND比特的端到端时延。
需要注意的是虽然在交织例子中我们用比特作为单位来表示(深度和码字长度均以比特来表示),许多编码方案采用的是字节标准(比如,里德—所罗门编码采用GE256),或者更一般的说,采用码元标准。
工作于字节或码元标准的FEC系统的交织方案自身通常也工作于字节或码元标准。
比如,假设一个码字长为7字节,有效负荷流被以字节标准交织,于是卷积交织器和去交织器端到端的延迟为ND字节。
注意,其它类型的交织也是可能的,比如螺旋状交织就是一种不同的交织方案。
由上可知,交织深度能带来比较好的稳定性,特别是对脉冲噪声具有良好的抵御能力。
2.2交织深度与时延
上面的说明同时也给出了交织深度的定义,在标准中规定交织深度的支持范围为下行0~64,上行0~8且必须为2的整数字幂。
大于上述值为Option。
交织会带来时延,交织时延由两部分组成,一部分是FEC编码的时间,另一部分是交织的时间,其计算公式为:
delay=4+(S-1)/4+S*D/4
所以交织深度可以用Symbol为单位,有时候也可以用时延为单位。
这一延时对于不需要确认的数据传输(比如UDP连接)是没有影响的,仅最开始那一下,但是对需要对方应答时(比如TCP连接),这种延时将可观地降低了传输速率,因为发送一个报文经过一段时延才能到达对方,而对方的确认报文又要经过一个时延才能达到,在缺省交织深度时FTP下载速率甚至会降到Fast方式的1/3左右。
2.3交织与线路速率
在使用FEC的情况下,由于FEC的开销(RI,最大16bytes)以及一个码字的最大长度为255字节(当S=1时),因此实际上的最大线路速率为
4000×8×(255-16-1)=7616Kbps
式中4000为波特率,8为1byte=8bit,括号中的1为同步开销字节。
但是在标准中还有一个Option情况,即S=1/2,此时一个帧的长度可以为两个FEC码字,此时最大速率将有很大的提高。
计算如下:
在这种情况下,限制不再是FEC的码长,而是每一个Tone最多能承载的bit数,由于一个Tone最多能承载15bit,因此最大速率为
4000×15×(255-31-1)=13380Kbps
但是实际上一个Tone一般承载14bit,并且Tone32~36不用,所以实际上最大速率为12000Kbps左右。
我们的32路板已经支持S=1/2,如果Modem也支持的话,就可以看到这一结果。
第3章线路速率(Bitrate)与噪声容限(Noisemargin)
线路速率是在训练中,由CO、CPE根据线路的衰减、环境噪声以及双方的情况(比如均衡器的训练结果)计算出来的,具体的过程请参见G.992.1中的Initialization部分。
实际上下行速率以及每一个比特的分布是由CPE计算出来的并通知CO的,反之上行速率以及每一个比特的分布是由CO算出来并通知CPE的。
线路的运行速率计算的前提是在误码率不大于10-7条件下,根据每一个Tone的信噪比(SNR)以及是否使用Trelis计算出来的。
在使用Trelis,FEC、循环前缀等编码的情况下,每承载一个bit需要消耗的信噪比为3dB,设某个子带的信噪比为SNR,则可以用下面的公式表示bit与信噪比的关系:
SNR=S0+3×bit+SNRnoisemargin
S0表示某一个子信道能承载2bit所需的最小信噪比,由于一个星座图最少可以放4个点,也就是2bit。
由上式可知,在给定的线路条件下,线路速率与Noisemargin之间是一种此消彼长的关系,要求额noisemargin越大,得到的线路速率就越低。
Noisemargin是用来干什么的呢?
由于线路环境在不断变化,比如环境温度、湿度,周围的背景噪声,因此每一个Tone的信噪比也在不断变化,噪声容限noisemargin的作用是在分配bit时,留有一定余量,当环境变化导致的信噪比下降的幅度只要不超过noisemargin,就能保证误码率小于10-7。
下图可以形象说明这个问题。
图中一排试管每一个表示一个Tone,其高度(兰虚线)代表装水的容量,绿虚线表示噪声功率谱,现在假设绿虚线的高度代表每一个试管中的泥土,用注水代表bit分配,这样注水越多因而水位越高,同时还与泥土的多少有关,水溢出代表误码,红虚线表示最高允许水位,一段空间,这就是Noisemargin。
当泥土高度变化(噪声幅度变化)时里面的水位也会随着变化,但是只要变化不超过noisemargin的幅度,水就不会溢出,也就不会有误码。
同时也可以看出对于给定的条件noisemargin越大,可以用于注水(分配比特)的高度越小。
还可以用另外一个示意图来表示这个问题。
图中每一个黑点代表一个Tone上的符号,大圆代表Tone的发送功率,它决定点的间距(信噪比),点越多(bit越多)间距越小。
在没有噪声的情况下每一个点都有其确定的位置,因此接收端能识别每一个点(因而能正确解调),但是实际上由于噪声的存在(比如随机噪声)这个点不再是在原来的位置,而是按照某种概率出现在以虚线画成的小圆内,但是只要这个小圆的半径小于两个点之间距离的一半,解调器还是能正确识别(没有误码),但是如果超过这个界限,解调器可能会将一个点判定成另一个点,这时误码就产生了,图中第2象限的两个点说明了这种情况,两个相交的虚线圆的公共部分中的点将会出现误判。
图中两个相邻的小圆之间的间距就代表了噪声容限。
由于噪声功率谱随频率变化,线路衰减也是随频率变化,因此实际上不同的Tone信噪比不同,分配的bit数也不同,并不是每一个Tone的信噪比刚好能满足上面的等式,所以不同的Tone噪声容限是不同的,但是显示参数时只显示一个,一般而言应该以最小的那一个Tone的噪声容限作为整个ADSL连接的噪声容限,事实上大多数厂家也是这样做的,但是也有一些显示的是噪声容限最小的几个Tone的噪声容限的平均值。
在标准中噪声容限是有一个范围的,一般为-32~31dB,当训练时计算得到的值超过上述范围(比如在近距离限速激活时)时,训练将中途退出,调整发送功率后重新训练,但是这个过程只重复一次。
这样可以降低额外的噪声容限所付出的功率消耗,并且减小串扰。
在新的标准ADSL2中有更为严格的限制。
第4章线路衰减(Attenuation)
线路衰减是表征线路质量的一个重要参数,由于局端与终端的发送功率谱模板(PSDmask)的限制,最大发送功率实际上是一定的(下行约为19.8dBm,上行为12.5dBm),因此线路衰减越大,最后对端收到的信号强度越低,但是噪声通常由环境决定,因此接收端的信噪比(SNR)会随着线路的衰减增大而减小。
线路的衰减与线路的线径、长度、导体以及介质材料特性决定。
线路衰减的计算方法,不同的厂家有所不同,标准规定上行衰减由CO计算,下行衰减由CPE计算,下行衰减是由CPE计算,然后通过ECO查询。
具体的计算方法,标准规定,衰减是将所有的承载了bit的Tone在1s中内收到平均功率与这些Tone预期的功率相减得到。
但是有些厂家计算方法是对于上行,计算从Tone6至Tone30的总接收功率,用预期的额定功率(12.5dBm)去减,得到的就是上行衰减,同理下行衰减就是计算Tone33到Tone255的接收功率与额定功率相减而得到,比如TI采用10*log10(null_loop_reference_power/sum(power_on_each_Tone))计算;也有厂家通过其他的频带甚至有的采用一个Tone比如PilotTone来计算线路衰减。
这样就导致采用不同的Modem,即使是同一条线路,得到的线路衰减也是不同的。
另外由于Gainscale(增益调整),导致即使是同一个Modem,不同的版本也会报告出不同的衰减来。
下表是用DLS400测试的结果(上行/下行,单位:
dB):
Modem及版本
SpeedTouchUSB1.2.3
E-tekV1.17
E-tek3.06C
0km
0~1/0
3.0/0.0
3.5/0.0
0.5km
5.0/10.0
8.5/0.0
9.0/0.0
1.0km
9.5/19.0
13.5/9.5
13.5/6.5
1.5km
14.5/26.0
18.0/17.0
18.5/16.0
2.0km
19.0/34.0
23.0/24.0
23.0/22.0
2.5km
24.0/41.5
27.5/32.0
27.5/28
3.0km
28.5/49
32.0/38.5
32.0/35.5
3.5km
33/55.5
35.5/44.0
35.5/40.5
4.0km
37.5/59.5
40.5/44.0
40.5/45.5
4.5km
41.0/65.5
43.5/49.5
42.5/51.5
5.0km
42.5/70.0
43.5/54
44.0/56.0
我们有时候使用“等效频率点”的衰减来代表线路的衰减,具体说来就是使用等效频率公式f等效=sqrt(f1*f2),其中f1是起始频率,f2是截至频率,用f等效处的衰减来代表这一频段的衰减,但是并不是所有的厂家的算法都可以用这种方法等效。
对比试验表明ALCATEL套片报告的衰减与我们计算结果符合得比较好,其他的Modem都存在一些问题,主要是下行衰减,这些问题正在交流中。
因此如果说要将衰减作为参考依据的话,使用上行衰减的可靠性可能要高于用下行衰减。
线路衰减的经验参数已经在《ADSL维护手册》中介绍,现在就不再赘述。
第5章上下行最大可达到速率(Maximumattainablebitrate)
根据标准,在训练中根据现有的线路衰减,噪声环境以及各种编码算法带来的编码增益,以及对噪声容限的要求,DMT调制解调器可以计算出每一个Tone可以承载的最大bit数,以及一个symbol能承载的最大bit数,因而可以计算出当前上下行最大可达到的速率(一个symbol承载的最大bit数×4000)。
上行由CO计算,下行由CPE计算。
公式仍是由SNR=S0+3×bit+SNRnoisemargin决定。
由上可知最大可达到的速率仅仅是一个计算结果,并不一定真正能达到。
而实际运行速率的是根据模板配置的最大速率和实际线路能达到的速率中较小者(还要考虑噪声容限)。
不同的套片,甚至相同的套片不同的软件版本计算出来的最大可达到的速率都可能不同。
因为要考虑到AFE的分辨率,放大能力以及AGC的范围,在训练中CPE会改变自己的发送功率(比如相同情况下E-tek1.1,1.17,3.06C的发送功率是递减的,因此上行衰减递增),而且CPE也会要求CO降低发送功率(ASUSV63116在0距离时就是如此,但是在新的版本中没有),另外最大可达到的速率与交织深度有关,有些Modem在交织深度很大时下行只能到7616kbps,但是在Fast方式下能到8160kbps。
还有不同的Modem线路性能不同,好的Modem可能会有比较大的最大可达到速率。
因此很难说是否正常,最大可达到的速率仅仅具有参考意义。
还有一种情况,就是部分Modem支持S=1/2,此时Modem计算出来的最大可达到的速率能达到10M多,上行也有1M多,这种情况下也是正常的而且如果两端都支持S=1/2的话,这个速率在扣除噪声容限后实际上也是可以达到的。
第6章输出功率(Transmitpower)
发送功率指的是Modem(CO、CPE)发送到线路上的信号功率。
根据功率谱模板可以算出CO端的发送功率。
CO端的频谱为138kHz~1104kHz,PSDmask为-40dBm/Hz(每个子带的发送功率为-3.65dBm),因此CO的最大发送功率为-40+10log10〔(1104-138)×1000〕=19.85dBm(通常显示时以0.5dBm为为等级,因此最大功率为20dBm)。
上行的频谱为25.875kHz~138kHz,PSDmask为-38dBm/Hz(每个子带的发送功率为-1.65dBm),同理可以算得上行最大发送功率为12.5dBm。
上面给出的是最大发送功率,但是实际上每一个子带的发送功率是可调的。
在训练中的参数交换(Exchange)中有一项是C-B&G和R-B&G,其中Bi是第i个子带分配的bit数,而Gi则是该子带的增益,该参数能调整子带的发送功率进而影响总发送功率,另外还有一个参数是finegain,用于微调发送功率。
对于CPE,最大发送功率是固定的。
而对于CO,在近距离时其发送功率还可以进一步降低,以避免CPE接收端过载,降低对CPE的模拟前端要求,这一调整叫做Powercutback,它是以在训练中R-REVERB1阶段接受到的上行频段Tone7~18的功率为参考依据的,具体参见下表:
当上行Tone7~18的功率超过3dBm时,每超过1dBm,下行发送功率谱密度(PSD)降低2dB,最低到上行功率为9dBm时下行发送PSD为-52dBm/Hz,此时的下行发送功率约为8dBm,因此一共有六档。
实际上Tone7~18的发送功率最大为9.14dBm,因此实际上,距离为0时,下行发送功率为8dBm,而Tone7~18的衰减为6.14dM(对应上行衰减大概为8左右,0.4mm线径距离600m?
)时下行发送功率已经达到最大值20dBm。
第7章
比特迁移(Bitswap)
尽管有噪声容限的存在,能保证ADSL连接在Tone的信噪比发生变化但不超过噪声容限时,线路的误码满足要求,然而实际环境中,噪声容限并不能总是保证有效,当线路环境的变化导致线路信噪比持续下降(比如一天内晚上到白天温度湿度持续变化或者是噪声变化)时,通常这种变化会大于噪声容限,此时线路将长时间出线误码高于10-7,或者重训练以适应新的噪声环境。
而bitswap则可以在不重新训练的情况下自动调整bit分配或者Tone的发送功率(因而调整信噪比),保证线路误码率低于10-7。
简单说来,当线路接收器发现某些Tone的信噪比下降到噪声容限为负值时,它将通过AOC通道发出Bitswap请求,请求的内容可能包括:
1、在某一个Tone上减少一个bit,在另外一个Tone上增加一个bit(也就是将一个bit从一个Tone上转移到另一个Tone上)
2、增加或者减少某个Tone的功率,比如某个Tone信噪比变差,可以通过将另外某(几)个Tone的发送功率上调,用于承载从这个Tone移过来的bit,并且降低这个Tone的发送功率,因为发送原来的功率已经没有意义,除了带来串扰外。
一般地,Bitswap从请求开始,会启动一个计数器(一般在达到showtime时DMT调制解调器会立即启动两个计数器,用于计数发送帧计数和接收帧计数),在一定时间内没有应答会重复发送,但是一般发送32个请求仍没有收到应答就认为对方不支持bitswap,不再继续尝试。
如果收到同意的应答,则双方会根据协商的结果在指定的帧开始双方同时动作,发送端更新bit分配,接收端更换新的星座图。
这样在不中断ADSL连接情况下动态地适应线路条件的变化。
从上面的介绍可以看出,Bitswap的目的是为了提高ADSL对动态环境的适应能力,能提高线路稳定性。
但是当双方对bitswap消息的理解不一致时反而容易导致去激活。
比如采用ST套片的部分早期版本的Modem,在近距离限速激活时,Modem会将对方发送功率调得很低,然后激活后却发现信噪比严重不足,因而连续不断的发送bitswap请求,但是CO的应答确被其置之不理,最终很快就去激活,这种情况下的关掉bitswap线路反而更加稳定。
第8章线路参数之间的相互关系
为了介绍方便,再将信噪比与bit率的关系式复述如下:
SNR=S0+3×bit+SNRnoisemargin
其中SNR由下式计算
SNR=Psignal-Pattenuation-Pnoise
Psiganl代表对方线路驱动器的发送的信号功率,Pattenuation代表由于线路衰减带来的功率损失,Pnoise代表接收端噪声信号功率,所有的均以dB或dBm为单位。
所有的这些已经在上面介绍过了。
而线路速率Bitrate可以由下式估算:
Bitrate=TotalbitofallTone×4000bps
这样就可以分析各参数之间的关系了。
一般说来,根据经验,由线路最大可达到速率与线路衰减可以估计线路是否正常,如果衰减不大(因而线路很短),,但是最大可达到的速率很小,通常意味着线路上存在很强的噪声或者单板、Modem性能不良。
根据bit与信噪比的关系,从bit分配可以获知并可以绘出线路的信噪比与频率的关系。
由于上面介绍的很多原因,能够很好地符合实际情况的经验参数很难获得,通常以某一种Modem版本与局端配合时的参数只能适用于这两种之间配合的情况,这样就会有针对不同的组合