蓝牙无线连接可靠性的研究与实现( 二 )


3.1.2 2/3比例前向纠错码(FEC)
在这一方案中,采用了一种(15, 10)精简的(缩短的)汉明码表示方式 。每10个信息位被编码为15位的码字,生成多项式为:g(D)= (D 1) (D4 D 1) 。此类错误校正方法主要用来以最可靠的方式来发送数据分组 。该方案能够在各代码字中纠正所有奇数位错和检测所有偶数位错,误码检测用于数据纠错 。它既可用于SCO链接的同步分组,也可用于ACL 链接的异步分组 。具体而言,2/3比例前向纠错码可用于DM分组、DV分组中的数据段、FHS 分组以及SCO链接中使用的HV2分组中 。由于编码器采用长度为10 的信息段,所以值为O的尾位可附加在CRC位之后 。而所有需要编码的位数(即:有效载荷头、用户数据、CRC和尾部数位)必须是10 的整倍数 。通常是用线性反馈移位寄存器LFSR来生成2/3比例前向纠错码 。
3.1.3 自动重传请求(ARQ)
在蓝牙无线连接中,为了保证可靠传送,常用做法是采用自动重传请求(ARQ)方案,由接收方发回非凡的控制帧,作为对输人肯定或否定性的确认(ACK/NACK) 。假如出现丢帧或丢掉确认消息的情况,则计时器在超时后会发出超时信号,提醒发送方可能出现了问题,必须重传此帧 。而且收方必须能够辨别收到的是重复帧还是新帧 。在蓝牙采用的ARQ方案中,蓝牙的DM、DH和DV分组的数据段可以进行传输或重发,直到收端返回成功接收确认信息(或超时)为止 。该确认信息包含在返回分组头里,即捎带( Piggy backing)。为了确定有效载荷正确与否,循环冗余校验码应该加载于有效载荷中 。ARQ方案只工作在分组的有效载荷上(仅针对具有CRC的有效载荷) 。分组头和话音有效载荷不受ARQ 保护 。
蓝牙使用快速、无编号确认方案 。为了应答前次接收分组,应返回ACK (ARQN=1)或NAK (ARQN=0) 。在返回分组的分组头里,生成ACK / NACK 域,同时,接收分组的分组头中的ACK / NACK域可表明前面的负载是否正确接收,决定是否需要重发或发送下一个分组 。从单元将在主-从时隙后紧跟在从-主时隙中进行应答 。主单元则将在下一个事件中应答,该事件将给出同一从单元地址 。由于处理时间短,当分组接收时,解码选择在空闲时间进行,并要简化FEC编码结构,以加快处理速度 。快速ARQ方案与停止等待ARQ方案相似,但时延最小,实际上没有由ARQ方案引起的附加时延 。该结构比退后n帧ARQ更有效,并与选择重传ARQ 效率相同,但由于只有失效的分组被重发,可减少开销 。
在快速ARQ方案中,收方为了辨别是重复帧还是新帧(即过滤重传数据),头部将附加SEQN位 。通常,每次新的CRC数据有效载荷传输,SEQN位将交替变化 。而在重传中,SEQN位不发生变化 。这样,通过辨认SEQN位是否发生变化,收方即可辨别出是重复帧还是新帧 。
3.2 蓝牙基带协议中的错误校验
在蓝牙无线连接中,至少应该对HEC进行分组头校验 。另外,必要时其有效载荷也必须进行CRC校验 。使用分组头HEC信息和有效载荷中的CRC信息,可以检测分组错误和传输错误 。
3.2.1 分组头HEC检测
为了检测蓝牙分组头,每个分组头的最高8位定义为HEC ( Header-Error-Check,头部错误检测)信息 。HEC由多项式647(八进制数)生成,在生成HEC之前,HEC生成器用一个8 位值来初始化 。在初始化后,对分组头的其它10位进行计算,得到8位的HEC值 。另外,在接收方校验HEC之前,也必须先进行适当的初始化 。在接收分组时,首先校验的是访问码,由于在信道访问码中的64位同步字来源于24位主单元的低地址部分(LAP),这样就可以校验LAP是否正确,并可以防止接收方接收来自其它匹克网的分组 。

推荐阅读