1.1坚果壳中的蓝牙
蓝牙无线技术是一种专门为小型移动设备而设计的。蓝牙无线技术是一种技术规范。它专门为小范围内的移动设备通讯而设计的。从功能上来说,蓝牙就和一个电缆差不多。关键的不同是,蓝牙使用无线信号将各个设备联系在一起,而不是电缆。从这种意义上来说,蓝牙是一种“使能”技术,而不是一种应用。这种技术最振奋人心的地方就是消除了现在连接各种设备之间所使用的电缆。例如,为了将从数字摄象机来的图象传输到PC机,你需要一个电缆来连接摄象机和PC机。设想PC机和摄象机都使用了蓝牙无线技术。在这种情况下,电缆就没有必要了。代之,数据可以通过无线连接传播。将这个思想扩展到所有的手持设备上,……。
除了不需要电缆连接到设备,蓝牙还使得设备可以自发地形成一个小型无线网络叫做piconet。这些无线网络连接是通过在蓝牙设备中一种无线收发机来实现的。电波工作在2.4 GHz ISM(Industrial, Scientific,和Medical)波段上,这是一个全球标准[1]。蓝牙无线电是建立一个充满噪声的环境中,并提供高速,强壮和安全的设备连接。最大的数据交换速度可以通过使用TTD(Time-Division Duplex)达到1 Mb/s。稳定性保证设备在接收和发送数据包的时候不受其他无线信号的干扰。蓝牙的安全性能是应用在硬件层上,并提供了三种安全模式。
1.2 蓝牙家族
虽然蓝牙无线技术有许多自己的特点,但是它还是从其他现有的无线技术中借鉴了不少内容。包括:Motorola的Piano, IrDA, IEEE 802.11, 和Digital Enhanced Cordless Telecommunications (DECT). Motorola的Piano是一种自发性的网络概念\"个人局域网\"。这个概念被Bluetooth SIG采纳,并拓展到最初的蓝牙概念,而不是只局限于一个电缆代替方案。蓝牙的语音数据传输功能也是继承了DECT的规范。对象交换能力(共享商务卡片,联系信息,消息等等)都是从IrDA中发展而来的。蓝牙也继承了2.4GHz ISM波段,Frequency Hopping Spread Spectrum (FHSS), 验证,私有,电能管理和IEEE 802.11局域网络能力。
1.3 蓝牙无线局域网络解决方案的组成部分
在蓝牙无线技术中的有四个重要的组成部分:无线点单元,基带单元,软件堆栈和应用软件。无线点单元是一真实的无线电收发装置。它使得蓝牙设备之间可以进行无线连接。基带单元也是一个硬件,包括了闪存和CPU,以及无线点单元与主要的硬件服务设备之间的接口。基带硬件提供蓝牙设备所有的连接和维护功能。软件堆栈是核心的软件驱动,使得应用程序可以和基带设备之间进行接口。应用程序软件是用户方面的借口。提供整个界面和功能上的控制。
2.0 蓝牙无线电波
蓝牙无线接口是使用在2.4GHz ISM波段上的无线电收发机。蓝牙无线规定遵从美国FCC,以及国际的ISM波段的惯例。蓝牙无线电支持带宽扩展,它使得操作可以在100mW以上的波段上完成。带宽扩展是通过从2.402GHz开始,跳跃79个1MHz,到2.480GHz结束。最大的频率跳跃可以是1600hops/s。由于法国和西班牙的规定,跳频的次数是根据这个国家的具体情况来定的。这种特殊的情况可以通过国际软件切换来限制无线电单元跳频的次数。蓝牙无线点设备最小和最大的距离是10厘米到10米。但是这个可以通过增加发射能量扩展到100米。
3.0 蓝牙基带
一个更适合的于这个部分的词应该是'连接控制单元'。在蓝牙的技术规定里面,连接控制(Link Controller,LC)是一个硬件单元。它建立蓝牙设备之间的物理RF连接,和应用基带协议以及连接管理(Link Manager, LM)。LM能够建立和管理设备之间的连接;提供主动中断接口,它使得主机设备可以使用蓝牙无线连接。
3.1 建立连接
所有的蓝牙设备缺省都是等待模式。在等待模式中,没有连接的设备会不时地侦听消息。这个过程被称做扫描。扫描被分为两个类型,页扫描(page scan)和查询扫描(inquiry scan)。页扫描是连接的一个子状态。在这个状态中,设备在扫描窗口(11.25ms)时间段中使用设备访问代码(device access code,DAC)监听,而且在两个设备之间建立真正的连接。查询扫描和页扫描很象,除了在这个子状态中接收设备使用查询访问代码扫描(inquiry access code, IAC)。 查询扫描用来发现哪些单元在范围内,他们的设备地址和时钟周期。通过成功的扫描,可以建立以下四中可能的连接中的一种:active,hold, sniff, 和park。如果扫描没有成功或者两者中的一个不愿意建立连接,那么连接就不会建立。
3.1.1 页扫描,页和页响应
在页扫描过程中,设备要么是master要么是slave。slave单元每隔11.25ms来侦听自己的DAC。slave单元所做的扫描是在一个跳频时间内完成。跳频的时间间隔是由内部的硬件单元决定的。潜在的master单元使用页队列。页队列对于一个单元来说就是覆盖所有可能的32个可能的频率[2],并且确定哪个slave单元在监听哪个频率。每1.28秒,master单元扫描一个不同的频率间隔。要注意到页队列扫描包括两个页队列。队列A覆盖一半,队列B覆盖另外一半。如果通过队列A的扫描没有发现设备,那么缺省就使用队列B扫描。
在页状态中,master反复地发送slave的DAC,用来在设备之间建立连接。这个发送发生在每个页跳动的页队列中。如果有来自slave单元的任何响应,那么master将进入master响应模式。
为了更快地解释整个过程,master响应和slave响应将在后面讨论。页响应是一个非常关键的阶段,在这个阶段中master和slave单元将交换重要的信息并建立持续连接。
3.1.2 查询扫描,查询和查询响应
查询过程和页过程的机制是一样的。不同的是所交换的信息不同。当在查询状态的时候,master单元将寻找可能的slaves并且不需要DAC来建立连接。查询过程使得master设备从可能的slave取得DAC。在查询过程中,所交换的信息仅仅是slave单元的地址信息。在一个成功的查询扫描之后,master单元将进入页扫描过程,准备建立连接。
3.1.3 连接模式
四种模式中的第一中模式就是:active模式。在active模式中,蓝牙设备在频道上将参与合作。在频道中的流量,是通过在piconet中的每个活动设备的需求来确定的。mater同样可以支持普通的传输模式,保持所有的slaves在频道中同步。当蓝牙设备参与频道上的活动的时候,它将被分配一个活动成员标记(Active Member Address ,AM_ADDR),它占3 bit。因此总共只可能有7个活动的slaves。所有位为0是保留的。
下一个个连接模式是:hold模式。hold模式是三种模式中减少蓝牙设备能量消耗的一种模式。hold模式允许设备保持它的AM_ADDR和支持同步包,但是不支持异步包。这个模式使得设备可以完成其他的任务,包括页和查询扫描。
下一个减少能量的模式是:sniff模式。它减少slave的监听活动循环。这个模式使得单元支持同步和异步的数据包,并保持AM_ADDR。这个模式使得设备可以减少能量的消耗,并有时间来参与两个piconet的合作。
最后一个模式是:park模式。它允许单元不参与频道活动,但是保留频道同步和监听广播信息。在park模式,slave设备放弃自己的AM_ADDR并指定一个8 bit Parked Member Address (PM_ADDR)。既然是8 bits, 就有可能有255个slaves,可以用PM_ADDR来标志设备(所有位为0有特殊的意义)。但是,如果Bluetooth Device Address (BD_ADDR)被使用,那么slave的park数字没有限制。
3.2 连接和包类型
Bluetooth Baseband提供两种类型的物理连接:面向连接的同步连接(Synchronous Connection-Oriented,SCO)和无连接的异步连接(Asynchronous Connectionless,ACL)。SCO和 ACL连接可以被用在同一个频道上或者RF物理连接上。SCO连接可以用在无线和数据传输上。slave设备将可能在没有poll的时候传输SCO数据包,因为SCO连接已经保留了传输时间槽。ACL连接只可以用来数据传输,而且slave必须要通过poll后才能传输数据。ACL连接同样支持同步和异步流量,并被用来传输广播信息 。
任何蓝牙设备可能支持一个ACL频道,三个SCO频道,或者一个并发的ACL和SCO频道。在piconet中的流量是由master单元控制的。master单元根据应用的状况和可能的
带宽来分配带宽。每个master和slave之间的连接在piconet中都可能不同。更进一步的来说,master和slave之间的连接可能根据应用的状况来调整状态。
3.3 蓝牙无线网络技术
蓝牙无线系统支持点对点和点对多的连接。特别是蓝牙scatternet可以通过连接多个piconet而形成。piconet被定义为一个设备组,至少有一个master和一个slave组成。他们共享同一个跳频序列。一个scatternet是通过连接多个具有不同跳频序列的piconet组成。一个蓝牙设备可能连接两个piconet,它可能同时是两个不同piconet的slave。另外也可能是一个piconet中的master,而是另外一个piconet中的slave。当前的规定将一个scatternet中的piconet限制在10个。在一个scatternet中,最多有10个piconet,最大的数据吞吐量可以超过6 Mb/s。
3.4 蓝牙无线音频传输
蓝牙无线技术中的音频使用Continuous Variable Slope Delta Modulation (CVSD)声音编码方式。选择CVSD的主要原因是它的强壮性,可以处理采样的丢失和损坏。音频使用的是SCO连接传输速率为64kb/s。
3.5 错误处理
在蓝牙基带控制中有三中错误更正方法:1/3 rate Forward Error Correction 编码 (FEC), 2/3 rate FEC code, 和 自动重复请求(Automatic repeat request,ARQ)。使用FEC的目的是要减少重复传输;但是创建一个没有错误的环境。为了允许应用的可伸缩性,没有必要在蓝牙数据包规定中使用FEC来增加数据的有效载荷。数据包头经常有1/3 rate FEC保护,因为这个部分包含了连接信息,必须要能够容错。没有编号的ARQ方法在一个时间槽中被传输,在另外一个时间槽内等待响应,都有头错误检测和CRC效验。
4.0 蓝牙安全
蓝牙规定中定义了三中安全模式:non-secure, service-level security, 和 link level security。在non-secure模式,设备没有任何的安全过程。在service-level安全模式,可以允许更多的应用灵活性。Service-level安全模式在多个并行程序以不同的安全模式运行的时候最为有用。link level安全模式,是由设备在连接建立之前建立安全过程。Link level安全模式提供提供验证,权限和加密服务。
在任何蓝牙系统中,验证是一个关键部分。它使得用户可以在蓝牙设备中建立一个信任域。验证服务允许两个设备在这个基础上,来决定是否建立硬件连接。一旦连接建立,附加的保密安全将应用到数据传输上。保密过程在有两个设备之间有连接后才出现的,但是验证过程是无论连接是否建立,都需要这个过程。
内建的蓝牙安全机制,足够保证大多数应用的安全。但是在某些情况下,需要采取更强的保密手段。这个时候可以在应用层再增加保密措施。
5.0 蓝牙连接管理
连接管理(Link Manager,LM)是基带中的一个软件实体。它应用于其他协议,连接建立,连接验证和连接配置。当LM发现其他远程LM的时候,它将使用Link Manager Protocol (LMP)和他们联系。为了实现自己提供服务的角色,LM使用Link Controller(LC)(一种硬件实体)来建立和其他设备的物理连接。
Link Manager提供的服务有: 接收和传送数据 请求远程设备名
查询远程设备连接地址(inquiry scan procedure) 通知和建立连接和连接模式(ACL 和/或 SCO links) 验证
决定包到包的框架类型
将设备设置成一种低功耗模式(hold, sniff, and park) 保证master只在专门规定的时间槽内传输数据
6.0 蓝牙应用软件
所有使用蓝牙无线技术的设备至少满足一些基本的需求。这些需求都定义在蓝牙的规范中。这些要求包括非常光,可能根据设备的能力的不同而有所不同。例如,使用蓝牙技术提供LAN服务的设备可能和使用蓝牙技术提供手持设备服务的设备就差别很大。但是可以保证一个显示蓝牙Logo的设备将肯定可以和另外的设备混合。所有使用蓝牙技术的设备肯定可以识别对方,并支持更高层次的服务。
因篇幅问题不能全部显示,请点此查看更多更全内容