浅析蓝牙技术的基带层分组协议
发布时间:2006-10-14 7:56:42   收集提供:gaoqian
一、引言

  现代通信技术的趋势走向网络核心技术分组化、窄带接入技术无线化。在无线接入领域,早期采用电路型传输方式,但是现在也开始出现了分组传输技术,如CDPD、GPRS、EDGE等;除了这些无线运营数据网络之外,最近由EriCSSon、Intel、Nokia、Toshiba、IBM五家公司组成的蓝牙特殊利益集团SIG(SPecial Interest GrouP)联手推出的蓝牙计划致力于解决SoHo无线组网,倍受网络界的瞩目。

  虽然蓝牙还没有正式成为国际标准,但是有越来越多的组织正在吸纳这种技术。蓝牙技术的目标是采用无线接口技术来取代传统各种有线连接。虽然蓝牙主要用来解决电话、数据终端等的连接组网问题,但是SIG也想将该技术应用到家电上去:家庭通过这种方式组成小型无线数据网,实现智能控制与管理。蓝牙技术的关键是很小的蓝牙芯片(即无线电收发信机),可以装在各种设备上,如手机、冰箱等等。蓝牙的应用非常广泛,例如手机与微机之间通过蓝牙无线连接,这种无束缚的接收和发送信息很有可能改变人们的生活方式;蓝牙与 WAP的结合也会创造出新的电子商务模式。

二、蓝牙的协议体系结构

  蓝牙协议体系结构同样采用分层方式,包括蓝牙专用协议和一些通用协议。专用协议位于协议栈的底部,从底到上依次是蓝牙无线层(Bluetooth Radio)、基带层(Baseband)、LMP层(Link ManagerProtocol)、L2CAP层(Logical link Control andAdaptation Protocol)、SDP层(Service DiscoveryProtocol)。另外RFCOMM层以ETSI TS07.10为基础,目的是取代电缆连接;TCS(Telephony Control Protocol SPecification)以ITU-T的Q.931为基础,目的是进行呼叫控制。在蓝牙专用协议之上可以承载PPP、TCP/IP、UDP/IP、WAP等 通用高层协议。

  无线层规范物理层无线传输技术。蓝牙工作在2.4GHz的ISM频段,大部分国家采用2400~2483.5NHZ,f=2402+kMHZ,k=0~78:即将该频段划分为79个带宽为1MHz的信道;在低频端留有2MHz的保护带,在高频端留有3.5MHz的保护带。调制方式采用GFSK,BT=0.5,正频偏表示“1”,负频偏表示“0”。系统采用跳频扩频技术,抗干扰能力强、保密性好。

  LMP负责蓝牙设备之间的链路建立,包括鉴权、加密等安全技术及基带层分组大小的控制和协商。它还控制无线设备的功率以及蓝牙节点的连接状态。L2CAP在高层和基带层之间作适配,它与LMP是并列的,区别在于L2CAP向高层提供负载的传送,而LMP不能。L2CAP向高层提供面向连接的和无连接的数据服务,具备多协议复用功能和拆/装适配功能。SDP是蓝牙体系中非常关键的部分,只有通过SDP了解通信双方的设备信息、业务类型、业务特征,然后才能在蓝牙设备之间建立通信连接。

三、基带层

  1.物理信道与物理链路

  蓝牙技术的特点体现在底层技术,而基带层是底层中的关键技术之一。注意蓝牙基于微微小区机制,需具备强壮性、低复杂度、低功率、低成本的特点,而这在基带层技术中有所体现。

  前面说过蓝牙采用挑频扩频技术,每秒1600跳,从时间域看即每个时隙长度是625μs,即每个时隙从79个信道中选择一个。时隙编号0~ 2的27次方-1,即以2的27个次方双工方式采用TDD。蓝牙既支持电路型数据,也支持分组型数据;既支持点对点连接,也支持点对多点连接。在一个微微网络(Pieconet)中,一个单元作为主节点,其他作为从节点,最多可以有7个从节点;但是允许有更多从节点与主节点保持在Park状态。从节点对信道的接入由主节点控制。微微网络在覆盖上可以有重叠:每个网络有各自的跳频方案,一个网络的主节 点可以同时作为另一个网络的从节点;一个从节点可以属于多个网络。

  主节点向从节点发送数据只能占用偶时隙,反之从节点只能在奇时隙才能向主节点发送数据。一个分组(Packet,实际上更习惯的说法是帧,因为在基带层其地位类似于OSI的第2层、部分涉及物理层,分组的确切用法在第3层,但是蓝牙基带层规范中采用Packet术语)的传送最多可以占用5个时隙,在一个分组的传送期内,维持初始时隙所占用的信道而不再跳频。

  在主从节点之间,有两种不同类型的链路,即同步面向连接SCO(Synchronous Connection-Oriented)链路和异步无连接ACL(Asynchronous Connection-Less)键路。SCO是点到点链路,立节点在周期性的保留时隙上维持SCO;ACL是点到多点链路。主节点可以利用SCO本占用的时隙建立ACL链路,从节点可以同时参与SCO和ACL。

  SCO具备双向对称性,可以看作电路型连接,通常用于支持语音等实时业务。主节点可与一个或多个从节点建立多达3个的SCO链路;一个从节点也与多个主节点建立SCO链路(最多3条)。SCO分组不采用重传机制。SCO链路的建立通过主节点发送LMP的SCOsetup消息,该消息中包含了Tsco和Dsco等参数。Dsco用于标识SCO开始的时隙相对数,而Tsco用于表示时隙的重复周期。

  未被SCO占用的时隙可用于ACL,在一对主从节点之间只有一条ACL。ACL的分组传送来用重传机制以确保正确性。只有主节点在发往从节点的分组中以某种方式允许某从节点发送数据时,该从节点才能在规定时隙发送数据。ACL支持广播。

  2.分组组成

  每个分组由3部分组成,即接入码(AccessCode)、头(Header)、负载(Payload)。其中接入码和头字段为固定长度,分别为72比特和54比特;负载是可变长度,从0~2745比特。一个分组可以仅包含接入码字段(此时为缩短的68比特),或者包含接入码与头字段,或者包含全部3个字段。

  接入码有三种类型:Channel Access Code(CAC)、Device Access Code(DAC)和Inquiry Access Code(IAC)。CAC用于标识一个Piconet,所有在该Piconet中传送的分组都包含CAC;DAC用于特殊的信令过程,如寻呼和响应寻呼;IAC又分为General(GIAC)和Dedicated(DIAC)两类:GIAC对该区域内所有设备都是一样的,用于发现其它的蓝牙单元;DIAC用于根据某种特性划分特定用户群。

  分组头包含链路控制信息,由6个字段组成:3比特的AM-ADDR、4比特的TYPE、1比特的FLOW、1比特的ARQN、1比特的SEQN、8比特的HEC,一共18个比特;再加速率为1/3的FEC,编码保护后一共是54比特。在主节点与从节点通信时,需要区分不同的从节点,用AM-ADDR来表示激活的从节点地址。全“0”地址用于广播,显然3比特的编码最多可以支持的激活从节点数为7(扣除全0)。4比特的TYPE字段可以区分16种不同类型的分组,详细情况见本节第3点。FLOW字段用于ACL链路上的流量控制:如果接收端缓存满,则FLOW=0指示发端停止发送数据;如果缓存清空,则FLOW=1指示发端继续发送。ARQN=0时表示NAK;ARQN=1时表示ACK,用于对负载传送正确性的确认。SEQN比特在每发送一个新的分组时翻转一次,因为蓝牙采用无编号ARQ机制,所以SEQN对于重传是必需的,这样可以避免由于 ACK的去失而造成分组重复接收。分组头用8比特的校验码以检查分组头的正确性。

  3.分组类型

  在16种分组中,有4种是公共的;另外12种根据SCO和ACL不同链路而不同。

  (1)公共分组

  ID分组:由DAC或IAC组成,长度固定为68比特,用于寻呼、探询、响应。

  NULL分组:仅包含 CAC和分组头,没有负载,长度固定为126比特。NULL分组用于通过ARQN、FLOW等字段将链路信息返回给发送端。NULL分组无需确认。

  POLL分组:POLL分组与NULL分组类似,也没有负载字段,但是需要接收端的确认。当从节点收到POLL分组后,必须响应,即使当时没有数据信息需要发送。

  FHS分组:是一种特殊的控制分组,它宣告发端的设备地址和时钟信息,以实现跳频同步。负载字段包含144个信息比特加16比特的CRC校验码,然后用速率为2/3的FEC保护,最终长度为240比特。FHC的结构比较复杂,限于篇幅不作介绍。

  DM1分组:DM代表Data Medium rate,该分组仅携带数据信息,负载包含18个信息字节和16比特的CRC校验码,然后用速率为2/3的FEC保护(即每10个信息比特附加5个校验比特)。

  (2)SCO分组

  SCO分组在SCO链路上传送,分组不采用CRC校验和重传机制。现在定义了3种SCO分组,SCO分组通常用于64kbit/s的语音传送。

  HV1分组:HV代表High quality Voice,该分组携带10个字节的信息,用1/3速率的FEC保护,编码后负载长度为240比特。一个HV1分组可以携带1.25ms的64kbit/s的语音,每两个时隙HV1分组必须发送一次,即sco=2。

  HV2分组:HV2分组携带20个字节的信息,采用速率为2/3的FEC,编码后负载长度也为240比特。一个HV2分组可以携带2.5ms的64kbit/s的语音,每四个时隙HV2分组必须发送一次,即Tsco=4。

  HV3分组:HV3分组携带30个字节的信息,没有采用FEC,负载长度也为240比特。一个HV3分组可以携带3.75ms的64kbit/s的语音,每六个时隙HV3分组必须发送一次,即Tsco=6。

  DV分组:DV分组是数据和语音的混合,负载由80比特的语音字段和最多150比特的数据字段组成。语音字段没有 FEC保护,数据字段有10字节信息,加16比特的CRC校验码,然后用2/3FEC保护。语音处理和数据处理是独立的。

  (3)ACL分组

  ACL分组在ACL错路上传送,承载的信息可以是控制信息或用户数据。如果包含DM1,则一共有7种ACL分组,除了AUX1外其它6种ACL分组采用CRC校验及重传机制。

  DH1分组:与DM1分组类似,但是负载数据不经过FEC。DH1分组携带28字节信息加16比特的CRC校验码。DH代表Data-High rate。

  DM3分组:与DM1类似,但DM3可以占用3个时隙,负载可包含123个信息字节加16比特的CRC校验码。

  DH3分组:与DM3类似,但负载不采用FEC。DH3可以携带185字节的信息加16比特的CRC校验码。

  DM5分组:DM5分组可以占用5个时隙,负载可包含226个信息字节加16比特的CRC校验码。

  DH5分组;与DM5类似,但负载不采用FEC。DH5可以携带341字节的信息加16比特的CRC校验码。

  AUX1分组:与DH1类似,但没有CRC校验码。AUX1分组可以携带30个信息字节。

4.负载格式

  在负载中要区分语音(同步)字段和数据(异步)字段:ACL分组仅包含数据字段,SCO分组仅包含语音字段,DV比较特殊同时包含两种字段。语音字段长度固定为240比特,DV分组中语音字段为80比特,不存在负载头字段。数据字段包含3部分:负载头、负载体和CRC校验码(AUX1例外)。

  负载头为1或2个字节。负载头规定了逻辑信道、逻辑信道上的流量控制及负载长度指示。用2个比特的L-CH字段来代表逻辑信道,其中11表示LM信道(传送LMP消息),10表示 UA/UI(L2CAP消息开始),01表示UA/UI(L2CAP消息继续), 00保留。

  在蓝牙基带层中定义了5种逻辑信道,即LC(Link Control)控制信道、LM(Link Manager)控制信道、UA(User Asynchronous)用户信道、UI(UserIsochronous)用户信道、US(User Synchronous)用户信道。控制信道用于链路控制和链路管理,用户信道用于运载用户数据。LC信道在分组头中,其它信道在分组负载中。LM、UA、UI用负载头中的L-CH字段来区分,US信道仅在SCO链路中,UA和UI通常由ACL承载,但也可由SCO的DV分组来承载。 LM信道SCO和ACL都可承载。

摘自《中国通信网》
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50