C_C++使用技巧全集
源代码在线查看: 蓝牙技术概述(转载).txt
作者:qq
email: qqnethome@163.net
日期:00-5-29 上午 11:22:03
蓝牙技术概述
系统概述
蓝牙技术是一种无线数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接。其程序写在一个9 x 9 mm的微芯片中。
例如,如果把蓝牙技术引入到移动电话和膝上型电脑中,就可以去掉移动电话与膝上型电脑之间的令人讨厌的连接电缆而而通过无线使其建立通信。打印机、PDA、桌上型电脑、传真机、键盘、游戏操纵杆以及所有其它的数字设备都可以成为蓝牙系统的一部分。除此之外,蓝牙无线技术还为已存在的数字网络和外设提供通用接口以组建一个远离固定网络的个人特别连接设备群。
蓝牙工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。蓝牙的数据速率为1Mb/s。时分双工传输方案被用来实现全双工传输。
ISM频带是对所有无线电系统都开放的频带,因此使用其中的某个频段都会遇到不可预测的干扰源。例如某些家电、无绳电话、汽车房开门器、微波炉等等,都可能是干扰。为此,蓝牙特别设计了快速确认和跳频方案以确保链路稳定。跳频技术是把频带分成若干个跳频信道(hop channel),在一次连接中,无线电收发器按一定的码序列(即一定的规律,技术上叫做"伪随机码",就是"假"的随机码)不断地从一个信道"跳"到另一个信道,只有收发双方是按这个规律进行通信的,而其他的干扰不可能按同样的规律进行干扰;跳频的瞬时带宽是很窄的,但通过扩展频谱技术使这个窄带宽成百倍地扩展成宽频带,使干扰可能的影响变成很小。
与其它工作在相同频段的系统相比,蓝牙跳频更快,数据包更短,这使蓝牙比其它系统都更稳定。FEC(Forward Error Correction,前向纠错)的使用抑制了长距离链路的随机噪音。应用了二进制调频(FM)技术的跳频收发器被用来抑制干扰和防止衰落。
蓝牙基带协议是电路交换与分组交换的结合。在被保留的时隙中可以传输同步数据包,每个数据包以不同的频率发送。一个数据包名义上占用一个时隙,但实际上可以被扩展到占用5个时隙。蓝牙可以支持异步数据信道、多达3个的同时进行的同步话音信道,还可以用一个信道同时传送异步数据和同步话音。每个话音信道支持64kb/s同步话音链路。异步信道可以支持一端最大速率为721kb/s而另一端速率为57.6kb/s的不对称连接,也可以支持43.2kb/s的对称连接。
蓝牙系统由以下功能单元组成:
· 无线单元
· 链路控制单元
· 链路管理
· 软件功能 Definitions
名词解释:
· Piconet:通过蓝牙技术连接在一起的所有设备被认为是一个piconet,一个piconet可以只是两台相连的设备,比如一台便携式电脑和一部移动电话,也可以是八台连在一起的设备。在一个piconet中,所有设备都是级别相同的单元,具有相同的权限。但是在piconet网络初建时,其中一个单元被定义为master ,其它单元被定义为slave。
· Scatternet:几个独立且不同步的piconet组成一个scatternet。
· Master unit:主单元,即在一个piconet中,其时钟和跳频顺序被用来同步其它单元的设备。
· Slave units:从单元,即piconet中不是master的所有设备。
· Mac address:用来区分piconet中各单元的长度为3比特的地址。
· Parked units:暂停单元,即piconet中与网络保持同步但没有Mac address的设备。
· Sniff and hold mode:呼吸与保持模式,与网络同步但进入睡眠状态以节省能源的一种工作模式。
网络技术
蓝牙技术支持点对点和点对多点连接。几个piconet可以被连接在一起,靠跳频顺序识别每个piconet。同一piconet所有用户都与这个跳频顺序同步。其拓扑结构可以被描述为"多piconet"结构。
在一个"多piconet"结构中,在带有10个全负载的独立的piconet的情况下,全双工数据速率超过6Mb/s。
话音
话音信道采用连续可变斜率增量调制(CVSD)话音编码方案,并且从不重发话音数据包。CVSD编码擅长处理丢失和被损坏的语音采样,即使比特错误率达到4%,CVSD编码的语音还是可听的。
无线
蓝牙空中接口是建立在天线电平为0dBm的基础上的。空中接口遵循FCC(美国联邦通信委员会)有关电平为0dBm的ISM频段的标准。如果全球电平达到100mW以上,可以使用扩展频谱功能来增加一些补充业务。频谱扩展功能是通过起始频率为2.402,终止频率为2.480,间隔为1MHz的79个跳频频点来实现的。出于某些本地规定的考虑,日本、法国和西班牙都缩减了带宽。最大的跳频速率为1660跳/秒。理想的连接范围为10厘米--10米,但是通过增大发送电平可以将距离延长至100米。
基带
基带部分描述了硬件--基带链路控制器的数字信号处理规范。基带链路控制器负责处理基带协议和其它一些低层常规协议。
建立网络连接
在piconet内的连接被建立之前,所有的设备都处于standby(待令)状态。在这种模式下,未连接单元每隔1.28秒周期性地"监听"信息。每当一个设备被激活,它就监听规划给该单元的32个跳频频点。跳频频点的数目因地理区域的不同而异,32这个数字只适用于除日本、法国和西班牙之外的大多数国家。作为master的设备首先初始化连接程序,如果地址已知,则通过寻呼(page)消息建立连接,如果地址未知,则通过一个后接page消息的inquiry(查询)消息建立连接。在最初的寻呼状态,master单元将在分配给被寻呼单元的16个跳频频点上发送一串16个相同的page消息。如果没有应答,master则按照激活次序在剩余16个频点上继续寻呼。Slave收到从master发来的消息的最大延迟时间为激活周期的2倍(2.56秒),平均延迟时间是激活周期的一半(0.6秒)。Inquiry消息主要用来寻找蓝牙设备,如共享打印机、传真机和其它一些地址未知的类似设备。Inquiry消息和page消息很相象,但是inquiry消息需要一个额外的数据串周期来收集所有的响应。
如果piconet中已经处于连接的设备在较长一段时间内没有数据传输,蓝牙还支持节能工作模式。master可以把slave置为hold(保持)模式,在这种模式下,只有一个内部计数器在工作。slave也可以主动要求被置为hold模式。一旦处于hold模式的单元被激活,则数据传递也立即重新开始。Hold模式一般被用于连接好几个piconet的情况下或者耗能低的设备,如温度传感器。除hold模式外,蓝牙还支持另外两种节能工作模式:sniff(呼吸)模式和park(暂停)模式。在sniff模式下,slave降低了从piconet"收听"消息的速率,"呼吸"间隔可以依应用要求做适当调整。在park模式下,设备依然与piconet同步但没有数据传送。工作在park模式下的设备放弃了MAC地址,偶尔收听master的消息并恢复同步、检查广播消息。如果我们把这几种工作模式按照节能效率以升序排一下队,那么依次是:呼吸模式、保持模式和暂停模式。
连接类型和数据包类型 连接类型定义了哪种类型的数据包能在特别连接中使用。蓝牙基带技术支持两种连接类型:
· 同步定向连接(SCO)类型(主要用于传送话音)
· 异步无连接(ACL)类型(主要用于传送数据包)
同一个piconet中不同的主从对可以使用不同的连接类型,而且在一个阶段内还可以任意改变连接类型。每个连接类型最多可以支持16种不同类型的数据包,其中包括四个控制分组,这一点对SCO和ACL来说都是相同的。两种连接类型都使用TDD(时分双工传输方案)实现全双工传输。
SCO连接为对称连接,利用保留时隙传送数据包。连接建立后,master和slave可以不被选中就发送SCO数据包。SCO数据包既可以传送话音,也可以传送数据,但在传送数据时,只用于重发被损坏的那部分的数据。
ACL链路就是定向发送数据包,它既支持对称连接,也支持不对称连接。master负责控制链路带宽,并决定piconet中的每个slave可以占用多少带宽和连接的对称性。slave只有被选中时才能传送数据。ACL链路也支持接收master发给piconet中所有slave的广播消息。
纠错
基带控制器有三中纠错方案:
· 1/3比例前向纠错(FEC)码
· 2/3比例前向纠错码
· 数据的自动请求重发方案
FEC(前向纠错)方案的目的是为了减少数据重发的次数,降低数据传输负载。但是,要实现数据的无差错传输,FEC就必然要生成一些不必要的开销比特而降低数据的传送效率。这是因为,数据包对于是否使用FEC是弹性定义的。报头总有占1/3比例的FEC码起保护作用,其中包含了有用的链路信息。
在无编号的ARQ方案中,在一个时隙中传送的数据必须在下一个时隙得到收到的确认。只有数据在收端通过了报头错误检测和循环冗余检测后认为无错后才向发端回确认消息,否则,则返回一个错误消息。
鉴权和保密
蓝牙基带部分在物理层为用户提供保护和信息保密机制。
鉴权基于"请求-响应"运算法则。鉴权是蓝牙系统中的关键部分,它允许用户为个人的蓝牙设备建立一个信任域,比如只允许主人自己的笔记本电脑通过主人自己的移动电话通信。
加密被用来保护连接中的个人信息。密钥由程序的高层来管理。网络传送协议和应用程序可以为用户提供一个较强的安全机制。
链路管理
链路管理(LM)软件模块携带了链路的数据设置、鉴权、链路硬件配置和其它一些协议。LM能够发现其它远端LM并通过LMP(链路管理协议)与之通信。LM模块提供如下服务:
· 发送和接收数据
· 请求名称。LM能够有效地查询和报告名称或者长度最大可达16位的设备ID。
· 链路地址查询
· 建立连接
· 鉴权
· 链路模式协商和建立,比如数据模式或者话音/数据模式。在连接建立过程中模式是可以变更的。
· 决定帧的类型。
· 将设备设为sniff模式。工作在在sniffe模式的设备只接收M时隙的数据。M时隙的位置是由LM协商决定的。master只能有规律地在特定的时隙发送数据。
· 将设备设为hold模式。工作在hold模式的设备为了节能在一个较长的周期内停止接收数据,平均每4秒激活一次链路,这由LM定义,LC(链路控制器)具体操作。
· 当设备不需要传送或接收数据但仍需保持同步时将设备设为暂停模式。处于暂停模式的设备周期性地激活并跟踪同步,并检查page消息。
软件结构
蓝牙设备需要支持一些基本互操作特性要求。对某些设备,这种要求涉及到无线模块、空中协议以及应用层协议和对象交换格式。但对另外一些设备,比如耳机,这种要求就简单得多。蓝牙设备必须能够彼此识别并装载与之相应的软件以支持设备更高层次的性能.
蓝牙对不同级别的设备(如PC、手持机、移动电话、耳机等)有不同的要求,例如,你无法期望一个蓝牙耳机提供地址簿。但是移动电话、手持机、笔记本电脑就需要有更多的功能特性。
软件结构需有如下功能:
· 设置及故障诊断工具
· 能自动识别其它设备
· 取代电缆连接
· 与外设通信
· 音频通信与呼叫控制
· 商用卡的交易与号簿网络协议
PC
蓝牙规范接口可以直接集成到笔记本电脑或者通过PC卡或USB接口连接。
笔记本电脑的使用模型包括:
· 通过蓝牙蜂窝电话连接远端网络
· 利用蓝牙蜂窝电话做扬声器
· 蓝牙笔记本电脑、手持机和移动电话间的商用卡交易
· 蓝牙笔记本电脑、手持机和移动电话间的时间同步
蓝牙是一个独立的操作系统,不与任何操作系统捆绑。适用于几种不同商用操作系统的蓝牙规范正在完善中。
电话
蓝牙规范接口可以直接集成到蜂窝电话中或通过附加设备连接。电话的使用模型包括(可选):
· 通过蓝牙无线耳机实现电话的免提功能
· 与笔记本电脑和手持机的无电缆连接
· 与其它蓝牙电话、笔记本电脑和手持机的商用卡交易
· 与信任的蓝牙笔记本电脑或手持机自动同步地址簿
其它
其它蓝牙设备的使用模型包括:
· 耳机
· 手持机和其它便携设备
· 人机接口设备
· 数据及话音接入点
注释:
CVSD:Continuous Variable Slope Delta Modulation,连续可变斜率增量调制。一种自适应增量调制技术,能够获得高质量传输的音频编码。
FCC:Federal Communications Comission,美国联邦通信委员会
SCO:Synchronous Connection Oriented ,同步定向连接
ACL:Asynchronous Connectionless ,异步无连接
TDD:Time Division Duplex ,时分双工传输