CSMA/CA(Carries Sense Multiple Access/Collision Avoidance,载波侦听多路接入/避免冲突)是一种侦听载波的随机接入技术,在发送数据之前侦听传输媒介。CSMA能够防止多个传输任务在同一时间、同一媒介中进行,从而减少冲突,但不能完全避免。
在以太网中,CSMA/CD(Carries Sense Multiple Access/Collision Detection,载波侦听多路接入/冲突检测)协议控制每个站接入媒介,侦听和处理当两个或多个工作站需要同时通过网络进行通信时所引起的冲突。
不过,在PLC网络中,冲突是不容易被检测出的。要想检测出冲突,一个工作站必须具备在传输的同时进行侦听的能力。与无线电通信系统类似,PLC系统不能在传输的同时侦听同一频率。因此,工作站本身不能侦听到冲突。有鉴于此,即便PLC在传输中发生冲突,工作站自身也不能侦听自身的传输,而是继续传输完整的帧,这会造成网络性能的整体下降。
考虑到这些具体特点,PLC采用的是修订的CSMA/CD协议,即CSMA/CA协议。CSMA/CA协议并不像CSMA/CD在冲突发生后才去反应。因此,CSMA/CA力图通过避免冲突的发生和获知接入媒介时所发生的冲突的最大概率来减少冲突数目。
为了避免冲突,CSMA/CA采用各种技术,如PLC引进的媒介侦听技术;媒介多重接入管理的退避算法;一种通过确认媒介是否空闲从而解决冲突次数的可供选择保留机制;以及主动确认帧(ACQ)。
与Wi-Fi中使用的CSMA/CA相比,在PLC中使用的CSMA/CA有所不同。在HomePlug标准中使用了一个数值来说明,当与相同优先级的工作站对比之后,一个工作站不能发射(传输)数据的时长。这个时长的值叫做DC(延时计数器),当工作站不发送数据时,该值增加,这就为有相同优先权的工作站使用网络提供了可能。
图3.5表示整个的CSMA/CA算法流程。
侦听媒介
在PLC中,媒介分别在物理层和MAC层被侦听,在物理层使用PCS(Physical Carrier Sense,物理层载波侦听),在MAC层使用VCS(Virtual Carrier Sense,虚拟载波侦听)。
通过侦听其他PLC工作站,分析接收到的数据帧,或者是通过借助于来自各工作站信号的相关功率侦听媒介活动,PCS能够获知媒介的状态。PCS技术主要是依靠侦听特定的接收帧(received frames)、前导帧(preamble frames)和优先权帧(priority frames)。
实际上,VCS并不是真正地侦听媒介是否空闲,而是通过使用PCS来保留(或预留)媒介。
VCS中使用两种机制:
1)在帧头的区域检测;
图3.5 HomePlug 1.0 CSMA/CA操作
2)等待由帧控制区域提供的反应信息。
图3.6阐述了在数据传输之前这两种侦听技术。
接入媒介
IFS(Interframe Spacing,帧间间隔)机制用于控制媒介接入。这个间隔与两帧传输的时间间隔相一致。事实上,IFS是媒介传输的空闲周期,用于管理工作站的媒介接入和建立传输的优先级系统。
各种类型的网络的IFS值取决于物理层。HomePlug1.0标准定义了3种类型的IFS:
1)CIFS(Contention Distributed Interframe Spacing,竞争分布帧间间隔)。那些期望接入媒介的工作站在媒介空闲时使用这个CIFS直到其他传输开始,这个过程为35.84μs。在CIFS之后,就是每个工作站的优先级解决方案阶段。
图3.6 在HomePlug 1.0中侦听媒介
2)RIFS(Response InterFrame Spacing,响应帧间间隔)。当一个工作站等待来自终端的响应时,终端在传输响应之前先等待一个26μs的RIFS时间。RIFS也被工作站用于将发送模式转换为接收模式。
3)EIFS(Extended Interframe Spacing,扩展帧间间隔)。EIFS与工作站传输需要的最大时长一致。它等于非ROBO模式下传输数据帧的时间加上若干定界符号时长(即为CIFS、RIFS和帧间隔结束符(End of Frame Gap,EFG))的总和,计1695μs。EIFS被用来确定发生冲突后媒介被占用的时间。在前向纠错控制中,EIFS被用于检查接收数据是否存在错误。当使用VCS方式侦听媒介时,对帧的长度进行的测量并不是采用全力(fully robust)方式的。
表3.4归纳了HomePlug1.0和HomePlug AV中的IFS值和时隙值。
表3.4 基于物理层的IFS值和时隙值
(续)
HomePlug标准的AV版本与1.0版本相比,包含了许多补充的IFS。
1)AIFS(Allocation Interframe Spacing,分配帧间间隔)。用AIFS将TDMA和CSMA/CA分配区域从在HomePlug AV标准中的预留业务中分离出来。
2)B2BIFS(Beacon to Beacon Interframe Spacing,信标-信标帧间间隔)。将特定的TDMA分配区域的各种信标帧从HomePlug AV信标帧中分离出来。
3)BIFS(Burst Interframe Spacing,突发帧间间隔)。在突发类型网络模式中接入CSMA/CA媒介时,BIFS用于将各种MPDU帧进行分离。
4)CIFS AV(Contention Distributed Interframe Spacing Version AV)。想要接入媒介的工作站利用CIFS AV,将来自于源工作站的传输帧和来自于终端工作站的响应帧进行分离。
5)RGIFS(Reverse Grant Interframe Spacing,预留开放帧间间隔)。具体到HomePlug AV标准,RGIFS被用于在预留开放网络模式中进行帧分离。
退避算法(www.xing528.com)
根据前面的分析,PLC使用CSMA/CA方法来控制传输通道的接入。
由于电力媒介中的衰减和噪声,且冲突无法被检测出来,所以只有当媒介能够被用于传输的时候,PLC工作站才能开始传输。直到IFS空闲一段随机的时长后,工作站才能传输数据,将这个时间段称为退避时间。因为在此期间并不能保证不发生冲突,所以源工作站必须要等待终端工作站发送的ACK信号。如果接收到的数据是正确的,那么终端就发送一个好的接收响应。ACK响应在下一个可用的IFS期间进行传输。
在PLC中,将时间切割成一片一片的,或者称之为时隙。为了保证在这些时隙内能够以相等的概率接入媒介,就需要一个计时器统一管理这些时隙,且这个计时器必须适用于各种工作站的传输和重传。
退避算法定义了一个CW(Contention Window,竞争窗)或者称作退避窗。这个参数与挑选出的可用来计算退避时间计时器的时隙数量是一致的。
HomePlug标准中预定义了CWmin和CWmax数值。当媒介处于工作状态或者是源工作站没有接收到终端的ACK信号时,退避进程就使用BC(退避计数器)来计算时隙的数量(也就是前面提及的挑选出的可用来计算退避时间计时器的时隙数量)。一旦工作站想要传输信息,就采用先前定义的PCS方法侦听媒介。
如果媒介是空闲的,那么工作站将延迟一个IFS传送数据。当IFS时间结束时,媒介仍旧空闲,工作站将直接传输它的帧而不需要再使用退避算法。若媒介被其他的工作站使用,那么该工作站就要等待媒介空闲,换句话说就是要延迟它的传输。
为了再次接入媒介,工作站需要使用退避算法。如果有几个站同时在等待传输,那么它们都要使用该算法。各个站可以忽略连接到网络的其他工作站。如果不使用这种机制,而是各个站都潜在地计算一个不同的退避时间计时器来延迟它的传输,那么一旦媒介被释放,这些工作站就有可能彼此发生冲突。
工作站根据以下公式来计算自己的计时器,用TBACKOFF来表示,即
TBACKOFF=Random(0,CW)×时隙
其中,Random(0,CW)是在[0,CW-1]服从归一化伪随机分布的变量。因此,TBACKOFF是对应于时隙的数目。对于每个工作站来说,这个参数能够随即得到各种计时器值。
图3.7给出了在不同重传输数目的条件下,竞争窗口(CW)和传输失败计数器(DC)的取值。这些值是从最初的值变化到临界值,说明了工作站想要传输时网络的整体问题。
图3.7 退避算法的竞争窗大小的变化
当媒介再次空闲时,并且在一个CIFS和帧优先级化的时长后,工作站确定媒介仍旧是空闲的,那么工作站将要递减计时器中的时隙个数,直至时隙递减完毕。如果此时媒介还是空闲的,那么该工作站将传输数据,并且禁止其他工作站接入媒介,从而封锁其计时器。
即使是在没有冲突的情况下仍可使用退避进程。一旦工作站检测到冲突或者是BPC(退避进程计数器)为0,该工作站就增加BPC值。在退避期间,如果有另外一个站先行进行传输,那么该工作站就检查它本身的DC(延时计数器),并递减它直至为0。在递减完DC后,工作站将它的计时器锁定在对应的BPC值上。
一旦工作站传输完毕,其他想要传输数据的工作站仍要等待一个CIFS和优先级化的阶段。在这期间它们检查媒介是否被占用,在CIFS之后,在上述锁定的时间计数器上继续递减,直至有其他工作站传输数据。但是,工作站不提取新的时间计数器的值,因为已经为接入媒介进行了等待,所以与刚开始尝试接入媒介的工作站相比,这些工作站接入媒介的可能性更大。
如果DC值为0,那么所有等待传输数据的工作站都必须经历一个退避进程,延迟它们的数据传输。
当计算计时器的值时,可能会有两个或者是更多的工作站会提取到相同的时间值,它们会在相同的时刻倒计时完毕,这样会导致媒介上的同步传输,产生冲突。因此,在退避进程完成之后,工作站为了新的传输,必要时就要重置退避算法,其中包含新的CW和DC的值。如果一个工作站接收到一个好的ACK信号,那么这些值将被重新设置到它们的最小值。
如果CW和DC的值均达到了HomePlug1.0标准定义的最大值,那么即使BPC在递减,CW和DC的值还是可以保持的。
如上所述,当使用退避算法时,同一网络中的工作站接入媒介的概率是相等的。这种算法的唯一缺点是不能保证一个最小时间。因此,在实时系统中,如语音、视频,使用退避算法是非常困难的。
HomePlug AV中TDMA和媒介接入
因为CSMA/CA算法并不能保证一个最小的传输时间,因此HomePlug AV标准作为HomePlug1.0的扩展,基于TDMA媒介接入系统增补了一个传输时隙的分配。
对在每一个工作站,TDMA媒介接入系统用于传输时间的确定性分配。这个分配是由CCo设备管理的,用来协调各个网络工作站对媒介的接入。
图3.8给出了TDMA复用技术中时间区域的划分情况。我们注意到,传输帧的时隙被划分为TDMA子块,恰好对应于两个工作站通信时长间隔。例如,在TDMA1子块中,仅仅只有工作站1和工作站2能够进行通信。这就保证了在PLC网络上进行通信的时间组织性。
因此,HomePlug AV定义了这个确定的时长,即基于信号过零同步的220V/50Hz的电信号的两个周期。这些TDMA时间区域被划分为几个确定和固定的时间分配。其中的一个时间分配是预留给CSMA/CA帧,帧交换遵从HomePlug 1.0和HomePlug AV标准。
数据传输举例
当一个信号源想要传输数据到终端时,必须确定媒介是空闲的。如果在相应的一个CIFS内没有侦听到任何活动,那么当信号源等待到一个优先级化时段时就可以进行数据传输。
图3.8 PLC帧的时分多址间隔的时间划分
图3.9表示在数据帧传输期间计时器的作用以及时间计数器值的获取。
图3.9 在数据传输时计时器的作用
如果媒介正处在工作状态,那么工作站将等待直至媒介空闲。一旦媒介空闲,工作站再等待一个CIFS,确定媒介是空闲后,再次初始化退避算法以防发生冲突。当退避算法中计时器中的时间耗尽时,媒介仍旧是空闲,那么信号源就可以传输数据了。
当两个或者是多个工作站同时接入媒介就会发生冲突。在这种情况下,这些工作站将重新使用退避算法接入媒介。如果数据成功被接收(这需要靠终端工作站检查数据帧的CRC来确认),那么这个终端工作站要等待一个RIFS时间间隔,然后发送ACK信号确认已经正确接收。
如果源工作站不能收到ACK信号,或者是数据不能够被正确接收,或者是ACK信号不能被正确接收,那么就可以假设有冲突发生,重传输进程就会被启动。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。