目 录. 11
第一章 引言. 13
1.1 蓝牙技术及特征. 13
1.1.1 什么是蓝牙技术. 13
1.1.2 蓝牙技术的特征. 14
1.2 蓝牙技术协议体系结构. 15
1.3 蓝牙技术的应用. 17
第二章 蓝牙技术的系统分析与解析. 18
2.1 蓝牙发射和接收技术. 18
2.1.1蓝牙无线传播规范. 18
2.1.2蓝牙调制方式. 19
2.1物理信道与链路. 20
2.1.4物理链路及其管理. 22
2.1.5跳频选择和蓝牙选择. 22
2.2 蓝牙核心协议. 23
2.2.1基带协议. 23
2.2.2链路管理协议LMP 24
2.2.3服务发现协议SDP 24
2.3 蓝牙分组和数据传输技术. 25
2.3.1信道复用技术. 25
2.3.2分组交换技术. 25
2.3.3分组传输的多址方式. 26
2.3.4蓝牙分组技术. 26
2.3.5发送接收规程. 27
2.3.6数据传输过程中的控制. 28
2.3.7无线局域网(WLAN)的控制与管理. 29
2.4 蓝牙信息安全技术. 30
2.4.1威胁信息安全的主要因素. 30
2.4.2蓝牙信息安全. 31
第三章 蓝牙技术的开发与应用. 33
3.1 蓝牙开发. 33
3.2 蓝牙模块. 33
3.2.1单芯片蓝牙模块. 33
3.2.2蓝牙基带核心模块. 34
3.2.4其他功能模块. 35
3.3开发工具. 36
第四章 蓝牙开发设计示例. 37
4.1 使用BlueLab进行嵌入式开发. 37
4.1.1使用常见问题. 37
4.1.2简单应用. 37
4.2 CSR—232适配器示例设计. 38
4.3 CSR蓝牙无线耳机示例设计. 39
第五章 结束语. 41
参考文献. 42
致谢. 43
附录. 44
第一章 引言
1.1 蓝牙技术及特征
1.1.1 什么是蓝牙技术
蓝牙技术不是凭空产生的,而是信息发展到了一定阶段必然出现的产物。随着生产的发展和生活的需要,这些彼此独立的产品开始要求建立联系,实现信息的交换。
蓝牙技术是一种近距离的保证可靠接收和信息安全的无线通信技术[1]。
蓝牙技术所要解决的问题是在10m范围内实现各种电子产品的信息无线传输,消除它们之间纵横交错连接电缆,它必须实现如下一些技术要求:
1)完好的替代功能:蓝牙所用的无线通道必须要像有线电缆一样准确无误的发送和接收数据。
2)信息安全功能:电波在空间传播时会出现散射现象,于是无线通道传送的保密程度将远低于有线信道,所以安全问题不能忽视。
3)承载能力:同时连接多个设备,要有足够的传输速率,支持不同类型的信息的发送或接收。
4)超低功率:设备可用电池供应。
5)致密性高:蓝牙芯片内部结构复杂但体积小。
6)全球通用:世界各地方便使用。
蓝牙网络功能:蓝牙技术把计算机、家电、通信等领域中的电子产品使用无线方式连接,自然而然形成一个以使用者个人为中心网络,称为个人区域网PAN。这个网络的性质有两条,一是可移动性,指能随时的连网和下网,进入网络终端不受限制。二是自动接入,指蓝牙设备所具备的入网方式不受接入点或服务器的制约,在10m空间内和接入数量有规定的情况下,自动建立与其他蓝牙设备之间的联系。
为了方便起见,对蓝牙芯片的基本要求有:
1)在10m范围内实现一点对多点的通信。
2)蓝牙数据传输速率值应达到每条信道721Kbit/s。
3)使用频段是2.4——2.4835GHz自由频段。
4)价格低廉。
1.1.2 蓝牙技术的特征
蓝牙技术的主要技术指标和系统参数[1]
技术指标 |
参数说明 |
工作频段 |
ISM频段,2.402——2.480GHz |
工作方式 |
全双工,时分双工 |
业务类型 |
支持电路交换和分组交换业务 |
最大时局传输速率 |
1Mbit/s |
非同步信道速率 |
非对称连接721/57.6Kbit/s,对称连接433.9Kbit/s |
同步信道速率 |
64Kbit/s |
发射功率 |
美国FCC要求<0Bm(1mW),其他国家可扩展为20dBm(100mW) |
跳频频道数 |
79个,每个频道带宽1MHz |
频道带宽 |
1MHz±140kHz(电平1),±175kHz(电平0),-20dB定义 |
跳频速率 |
1600次/s |
工作模式 |
等待(Park)/保持(Hold)/呼吸(Sniff) |
数据连接方式 |
面向连接的同步链路SCO,面向无连接的异步链路ACO |
纠错方式 |
1/3FEC,2/3FEC,ARQ |
鉴全方式 |
质询—响应 |
信道加密 |
采用0位、40位、60位密钥 |
调制技术 |
二进制GFSK(BT=0.5,0.28 |
语音编码技术 |
PCM,CVSD |
接收几机灵敏度 |
[email protected]%为2误差率 |
最大传输距离 |
10m |
表 1—1 蓝牙技术的主要技术指标和系统参数
1.2 蓝牙技术协议体系结构
蓝牙协议就是使用蓝牙技术的各方面共同约定的技术规范主要蓝牙协议的集合,够成了蓝牙协议栈。[1]
蓝牙协议体系由3层组成,分别是底层,中间层,和应用层。如图1—1[2]。
底层有一些硬件模块:射频RF,基带层BB和链路层LM。中间层由软件模块构成,包括逻辑链路控制和适配协议12CAP,服务发现协议SDP,串口仿真协议RFCOMM和电话通信协议TES。应用层位于最高端,对应各种应用模型的剖面。目前定义了13种剖面。
应用层 |
中间层 |
底层 |
图1—1 蓝牙协议栈
1. 底层
底层又称底层硬件模块,其中射频RF(Radio and Autenna)的功能是完成数据位流的过滤和传输。射频RF的功率定义有100mW,2.5mW,1mW3种。
基带BB[3](Base Band)的功能是实现蓝牙数据传输或信息帧的传输。传输的业务分为电路交换和分组交换两种不同类型。
链路管理协议LMP(Link Manager Protocol)用于规定如何建立和拆除连接,以及链路的控制安全。蓝牙技术定义了两种不同链路类型:面向连接的同步链路SCO和面向无连接的异步链路ACL。
2. 中间层
中间层又称中间协议层软件模块,其中的逻辑链路控制和适配协议(Logical Link Control and Adaptation P rotocol,L2CAP)具有拆装数据、控制服务质量和协议复用等功能,为中间层其他协议提供实施基础,是蓝牙协议栈的核心之一[4]。
电话通信协议TCS(Telephone Control Proyocol)用作提供蓝牙设备间语音和数据的呼叫控制指令,他是一个面向bit(比特 位)、基于ITU-T控制规范的协议,对语音的支持是蓝牙技术与WLAN的重要区别。
服务发现协议SDP(Service Discovery Protocol)的作用是为上层应用层给出一种机制,该机制能发现网络中的可用协议,并解释这些可用协议的特征。
串口仿真协议RFCOMM用于射频通信,他能依据ETSI0710串口方针协议,在L2CAP上仿真RS-232串口电缆接口,蓝牙设备能在无线传输中通过RDCOMM实现对TCP/IP、PPP、WAP等高层协议的支持。通过支持AT命令集实现移动通信设备,传真机和调制解调器之间的无线连接。
3.应用层
蓝牙应用层由SIC定义了一些基本应用模型,每一种应用模型都对应一个“剖面”,规范了相应模型的功能和使用协议。常用的一些应用模型有文件传输、数据同步、局域网接入、拨号网络、头戴耳机、对讲机、无线电话等。
蓝牙核心协议按其实施的功能可以划分4类[5]:
1)蓝牙核心协议:有基带BB、链路管理LMP、链接控制和适配L2CAP、服务发现SDP协议。
2)蓝牙电缆替代协议:有串口仿真RFCOMM协议。
3)蓝牙电话控制协议:有电话通信TCS协议、AT命令集。
4)蓝牙选用协议:有PPP、UDD/TCP/IP、WAP、OBEX、WAE、VCard、VCal、IrMC等。
蓝牙协议体系中的低层,中间层,应用层三层叠放形成了蓝牙协议栈。
应用层(Application) |
电话通信协议 服务发现协议 串口仿真协议
(TCS) (SDP) (RFCOMM)
数据
逻辑链路控制和适配协议(L2CAP) 控制
语音 主机控制器接口(HCL)
链路管理协议(LMP)
基带(BB)
射频(RF)
图1--2 蓝牙协议栈
1.3 蓝牙技术的应用
蓝牙技术是一门实用技术,从它诞生的那一刻起,无不和它的应用联系在一起。
蓝牙产品通过SIC认证已超过400种,大体分为两大类,一类是已有的家电产品上增加蓝牙功能。另一类是从蓝牙功能为主的新产品。
蓝牙技术从它的命名时起,就具有极为鲜明的应用特征,这些特征从两个方面体现出来,一是应用范畴,一是应用的评价。
蓝牙的应用范畴SIC定义的主要有:1)文件传输应用模型,2)拨号上网应用模型,3)头戴式耳机应用模型,4)蓝牙手机应用模型,5)局域网访问应用模型,6)个人资料管理应用模型。
蓝牙技术的应用不仅仅取决于蓝牙自身,还取决于数字通信和网络通信的发展,它们之间是相辅相存的关系。
第二章 蓝牙技术的系统分析与解析
2.1 蓝牙发射和接收技术
2.1.1蓝牙无线传播规范
蓝牙无线传播规范有3个方面的内容[6]
1)频段分配
2)蓝牙设备的收发功能
3)蓝牙无线电信号的发送和接收
1 频段分配
蓝牙规范了适应两种不同的频段定义,提出了两种方案
分配方案 |
信道分配 |
频率带宽 |
79信道跳频 |
f=2402+kMHz,k=0~~~~,78 |
2.400---2..4835 |
23信道跳频 |
f=2454+kMHz,k=0~~~~,23 |
2.4465---2.4835 |
表 2—1 频段信道分配方案
2 蓝牙设备及收发功能
1)跳频技术
跳频技术是把频带分成若干个“调频信道”(Hop Channel)在发射和接收的一个连接中,无线电发射器和接收器按照一定码序列不断的从一个信道跳到另一个信道,这种信道跳动就称为跳频技术。
跳频技术中使用的码序列又称为“伪随机码”,对于79个信道跳频方案分配公式:f=2402+kMHz,k=0,~~~~,78
跳频的次数与系统的桅顶有很大的关系,调频次数理论上确定为1600次/s,伪随机序列78个信道,是较为适合的参数。
蓝牙无线电波的传输额定为1MB/S,真正的传输速率约为700KB/S---800KB/S。
蓝牙无线信号的发送和接收都是用链路管理(LM)软件模块完成。LM模块携带着链路的建立,鉴权,链路硬件配置及其他一些协议。
2) 蓝牙设备由射频单元,链路控制单元,链路管理和主机I/O主机等组成。如图所示:
蓝牙设备
中间层和 链路管理 链路控制 2.4GHz
应用层 和I/O 单元 蓝牙射频RF
主机 蓝牙模块
图 2—1 蓝牙设备[7]
蓝牙软件配置是指根据蓝牙协议栈所开发的软件程序及其接口组成,如图所示:
用户 用户系统 应用层 HCI
系统 适配器 TCSSDP RECOMM 底层 LMP
L2CAP HCL接口 BB
蓝牙软件组成 HCI驱动器 RF
图2—2 蓝牙软件组成
2.1.2蓝牙调制方式
蓝牙无线电信号使用的调制方式是高斯滤波移频链控GFSK。
蓝牙无线调制技术参数
项目 |
GFSK指标 |
单时隙分组频率偏移 |
±25Hz |
3—5时隙分组频率偏移 |
±40kHz |
最大频移 |
400Hz/μs |
速率 |
1M符号/s |
跳频 |
一般值:1600跳/s;查询呼叫3200跳/s |
接收灵敏度 |
输入≤-70dB时,接收错误比特率≤0.1% |
表 2—2 蓝牙无线调制技术参数
高斯滤波移频键控GFSK
GFSK所用的带宽时间BT=0.5,调制指数0.28—0.35,二进制数的0和1分别用一个负和正的频率偏移表示,符号定时范围大于±2.0×0.00001。
2.1.3 物理信道与链路
信息传播的通道统称为信道,蓝牙通信有以下几个特征:
1)信道采用625μs标准时隙结构。
2)双工通道采用分时双工(TDD)方式。
3)信息编码采用二进制FM调制技术。
4)符号速率为每秒1M符号。
1 信道和时隙
蓝牙物理信道被分为23和78个可跳变的伪随机序列,在每个微微网上的跳频序列都是惟一的,由主节点的蓝牙设备地址决定,跳频序列的相位取决于主节点的蓝牙时钟。新到进一步划分成的时隙,每个时隙应一个射频频率,在一个微微网中主节点的时钟而定。
2 分组[8]
蓝牙信息在信道上传播是以分组进行的,一般分组由接入码,分组头,净荷3部分组成,每一部分位数不同。
接入码68—72位 分组头54位 净荷 0----2745位
LSB MSB
接入码 |
分组头 |
净荷 |
图2—4 一个分组
3 接入码
接入码是分组头的开始,接入码的长度视有无分组头而定,后面有分组头,接入码就有68位。
接入码由3部分组成:
引导码:4个符号0、1序列,即0101或1010,由同步字第一位是0还是1决定。
同步字:64位,与引导码一起组成68位,来自于一个24位的地址,不同的接入类型有不同的地址。
尾码: 4位可选项是一个固定的0、1序列,使用0101或1010视为最高有效位决定,后面有分组有尾码,无分组无尾码。
接入码有3种类型:信道接入码CAC,设备接入码DAC,查询接入码IAC。
4 分组头
分组头由6个字符组成反映链路控制信息的一串二进制位,格式如图
从底到高6个字符段分别为
LSB MSB
AM_ADDR |
TYPE |
PLOW |
ARQN |
SEQN |
HEC |
3 4 1 1 1 8
图2—5 分组头格式[9]
AM_ADDR:3位激活成员地址,表示一个微微网中活动节点地址。
TYPE:4位类型码,用于16个不同的分组。
PLOW:1位流量控制位,用于对通过ACL链路的分组实施流量控制。
ARQN:1位确认指示位,用于接收端是否接收到分组及校验。
SEQN:1位序列号位,用于对数据流进行编号,对每一个新分组,SEQN变化一次。
HEC: 8位错误校验位,用于对分组头是否完整进行校验。
5 净荷
净荷是反映各种不同分组特征的一串二进制数字,位数从0到2745不等。
净荷虽然繁多大体分为两种:同步语言段,异步数据字段。
6 信道控制
每一信道都可以分成许多时隙,每一个时隙占时625μs,并对应一个跳频,连接跳频对应不同射频。
时分双工传送方式通常确定为主单元只在偶时隙发送,从单双工仅在奇时隙发送,错开了发送时间,避免了传输线上的数据流的混乱。
逻辑信道,蓝牙系统定义了5种信道:
符号 |
信道名 |
信道位置 |
携带信息 |
在哪个链路 |
优先级 |
LC |
逻辑控制 |
映射在分组头中 |
底层控制信息 |
ACL链路或SCO的DV分组 |
能中断的US信道 |
LM |
链路管理 |
映射在分组净荷中 |
主从节点间交换的链路管理信息 |
ACL链路或SCO的DV分组 |
能中断的US信道 |
UM |
异步用户 |
映射在分组净荷中 |
L2CAP透明的异步数据 |
ACL链路或SCO的DV分组 |
能中断的US信道 |
UI |
等时数据 |
映射在分组净荷中 |
高层定时开始支持数据 |
ACL链路或SCO的DV分组 |
能中断的US信道 |
US |
同步用户 |
映射在分组净荷中 |
透明同步数据 |
SCO链路 |
最先优先权 |
表 2—3 逻辑信道
2.1.4物理链路及其管理
1 物理链路
蓝牙定义了主节点从节点之间的两种不同类型的链路:
1)异步无连接链路ACL链路
2)同步有连接链路ACL链路
2 物理链路的管理
物理链路管理主要内容有:管理无线电传送的能量模式或工作周期,微微网内设备的连接状态,利用LMP协商各蓝牙空中接口的特征;通过支持数据业务的服务级别周期性带宽,来支持语音通信;;利用“竞争—相应”的方式对设备进行鉴权,交换,核实,加密,身份认证等安全管理。
2.1.5 跳频选择和蓝牙选择
跳频选择:蓝牙设备在微微网中参加通信,而跳频的选择方法与两个因素有关,蓝牙时钟和蓝牙地址[10]。
在蓝牙时钟和蓝牙地址的共同作用下,蓝牙基带处理的直接结果是生产出跳频序列和误别码。本地时钟是自由运转的时钟,是跳频选择的依据。
蓝牙地址是为了识别众多蓝牙设备,像对待存储单元一样,每个蓝牙设备都分配 了一个8位的地址,简称蓝牙地址。
从节点地址,处于蓝牙微微网中的从节点不是惟一的,从节点的状态不同分配地址也不同。
蓝牙语音通信
蓝牙语言采用数字编码与调治技术,不采用模拟编码与调制,除了采用数字技术外,蓝牙语音设备的第二个特征是需要将数据“压缩”,这样可以降低波特率,降低传输和存储语音的成本。
蓝牙语音信息的处理过程分成编码与调制两个步骤:编码是将其转换成数字信号,调制是将二进制信息的数字信号加到载波上。
2.2 蓝牙核心协议
蓝牙核心协议按其实施的功能可以分成4类[11]:
1) 蓝牙核心协议:有基带BB、链接管理LMP、链接控制和适配L2CAP、服务发现SDP协议。
2) 蓝牙电缆代替协议:有串口仿真RFCOMM协议。
3) 蓝牙电话控制协议:有电话通信TCS协议、AT命令集。
4) 蓝牙选用协议:有PPP、UDD/TCP/IP、WAP、OBEX、WAE、VCard、Vcal、IrMC等。
在以上4类协议中,最主要最基本的是蓝牙核心协议,蓝牙设备基本上都需
要核心协议(此外,还需要无线规范),其他协议按蓝牙设备的需要而选定。
2.2.1 基带协议
基带协议Base Band的功能是在蓝牙微微网的两个或多个蓝牙单元之间建立起被称为链路的物理RF连接。
基带协议为蓝牙设备提供了两种不同的物理链路,一种是同步面向连接(Synchronous Connection Oriented,SCO)链路;另一种是异步无连接(Asynchronous Connection less,ACL)链路。
基带协议有3个使用特点:
1)基带协议对所用类型的链路赋予了很大的灵活性,主要表现在:同一网内的饿主、从两单元允许链路类型相同或不同;在对话过程中允许任意改变链路类型;主单元与从单元使用多大的链路宽带,全部由主单元决定。
2)基带协议对所有类型的数据能提供不同层次的FEC或CRC差错检验,还能提供数据加密。
3)用二进制数组成的数据由基带层上传至LMP或L2CAP层;音频信号能跳过中间层,直接在基带层和应用层中传送。
基带协议的主要内容包括物理链路、数据分组传输、信道控制、网络控制、语音规范、跳频和蓝牙地址、蓝牙信息安全等内容。
2.2.2链路管理协议LMP
用于链路的设置与控制,它能够建立或清除蓝牙单元之间的连接、功率控制、认证和加密。
链路控制和适配协议L2CAP和LMP都位于ISO/OSI七层协议的第二层链路层,它们的工作是并行的,致使基带数据业务可以越过LMP直接通过L2CAP把数据传送到高层。L2CAP允许高层按64KB长度分组或传送。虽然基带协议提供有面向连接和无连接两种物理连接方式,但L2CAP只支持无连接这一种。
2.2.3服务发现协议SDP
服务发现协议SDP是一种基于客户/服务器结构的协议,他提供了服务注册的方法和访问服务发现数据的途径。在蓝牙应用中几乎所有的应用剖面都支持服务发现协议[12]。
SDP的功能是:用户只有通过它才能获得设备信息、服务信息和服务特征,蓝牙单元之间有不同的SDP连接,才能适应各种不同用户的需求。
2.3蓝牙分组和数据传输技术
2.3.1 信道复用技术
蓝牙散射网中有众多的主节点和从节点,这些蓝牙节点之间在传输数据时,使用同一蓝牙信道。在一个信道上传输多个数据信号,称为蓝牙信道的复用。为了不让多个信好相互干扰,发生混乱,需要做到两点:第一,采用有效措施将它们分开;第二,它们彼此不相互干扰,并且也不能受干扰信号的干扰。
1 信道复用
能够实现信道复用的方法是采用多址技术,确切的讲就是散射网中的每一个节点都有一个惟一的地址。多址技术有以下3类:
(1) 频分多址技术(FDM) 在同一信道内传输不同的信号,要求信号要么有不同的频率,要么占用互不重叠的一定带宽频道。
(2) 时分多址技术(TDM) 各数据分组在不同的时间内享用信道。
(3) 码分多址技术(CDM) 各数据分组在时域和频域上重合,利用编码的正交特性加以区分。
2 同步传送和异步传送
同步传送的特征:每一帧数据由同步标志字符和若干等长时隙构成。同步字符的功能是使接收方与发射方同步,通常每个时隙长度允许1位,8位和一个分组,每条信号占用一个时隙。
异步传送的数据依旧是以帧为单位,但是由于异步传送,不需要告诉接收方,因此无需同步字符,但依旧要发送方通知接收方,数据从什么地方开始。
2.3.2 分组交换技术
分组交换技术是异步时分复用传送技术,它采用先存储再转发的传送方式。
1 分组交换原理
分组的产生与组合 蓝牙信息传送采用分组交换而不是报文交换,这是由蓝牙单元对信息传输的实时性要求决定的。通常分组经过交换机或网络需时极短,平均时延约几毫秒,能适应蓝牙实时通信要求。
分组组合的过程是依次取出分组中的用户数据然后按照报文分解的相反次序“还原”成通信报文。
2 分组交换网
发送端和接收端在分组交换网内部都属于终端用户,分组型终端发送的是分组格式数据,报文型终端发送的是报文格式数据。
在分组交换网的两个终端之间,经常存在多个传输路径,一个报文的多个用户数据一旦分解成多个分组,能够在不同的传输路径上传送。
2.3.3 分组传输的多址方式
1 3种不同的数据传输类型
一种是一对一的数据传输,一个节点为起点,另一个节点为终点,数经过信道从起点送到终点。第二种是一对多的数据传输,以一个节点为起点,多个节点为终点,作起点的节点通常是主节点或单个中心站,作终点的节点又称之为终端。第三种是多对一是数据传输。
分组传输中的信道多址方式有两种:
1)定常多址方式:包括频分多址FDMA,时分多址TDMA,码分多址CDMA3种不同的形式。
2)随机多址方式:包括随时发送,扩频和伪码3种不同的形式。
2.3.4 蓝牙分组技术
3种不同的分组类型 蓝牙分组可以分为3类:ACL分组,SCO分组,链路控制分组。
1 ACL分组 属于ACL分组的数据有DM1、DH1、DM3、DH3、DM5、DH5、AUX1。
这些分组数据的共同点是在异步链路上传输,携带的信息是用户数据或控制数据。传输时如果没有收到确认信号,则需要重新分组,但是不包括刷新操作。
2 SCO分组 属于SCO分组的有HV1、HV2、HV3、DV分组。SCO分组是因其在同步SCO链路上传输而得名,这类分组无需重发,无需循环冗余校验 CRC。
3 链路控制分组 属于链路控制分组的有ID、NULL、POLL、FHS。链路控制的共于链路的呼叫、查询和传送。其中有一个较为特殊的分组是FHS,它除了链路“传输过程”的信息外,还控制蓝牙设备地址和发送端的时钟信息。
2.3.5 发送接收规程
位于微微网中的任何一个蓝牙设备,既可以成为发送节点,又可能成为接收节点。发送和接收蓝牙信息,并不是无序进行,也不是杂乱无章,而是必须遵循一定的规程,这就是发送和接收规则。发送和接收规则建立在以下内容基础上:
1)符合蓝牙基带标准对发送和接收的要求。
2)传送的分组数据适合在ACL链路和SCO链路上传输。
3)为应对各种不利于传输的环境,要设立发/收缓冲区。
4)发送和接收规则只是发送和接收蓝牙数据的规则说明,不是具体的实施办法。
1 发送(TX)规则
(1)发送过程 分组数据在每条ACL链路或SCO链路上的发送,都是独立地执行发送过程[1]。
(2)ACL发送过程
异步数据发送只需考虑ACL缓冲区中的传输过程,这时只有DM分组或DH分组,由各自分组的长度及净荷表示。
ACL链路上发送业务流要遵循如下规则:
1)蓝牙链路管理器将新数据装入由S1接通的缓冲寄存器。
2)向蓝牙链路管理器发出刷新命令,S1a、S1b同时切换。
3)如果需要发送净荷,分组打包器将读取当前缓冲器,由读数中含有的分组类型信息构造分组的净荷。
4)将构造好的净荷前面加上分组信道接入码、分组头。
5)发送分组。
2 接收(RX)规则
接收过程是发送过程的逆向过程,要想接收到发送节点发送的原始数据,首先要进行分组拆包,拆包后进入缓冲区暂存,然后按照需要进入异步单元或同步单元接收处理。
3 流量控制及处理
流量控制 流量控制用于解决新的净荷如何装满ACL接收缓冲区的问题,尤其是在ACL缓冲区已经饱和情况下如何控制。通过返回分组头中的FLOW(流量控制)位,能够使用STOP(停止)和GO(继续)控制新数据的传输。流量控制可以分别杂发送端和接收端实施。
比特流处理在空中接口发送用户数据前,为了提高用户数据的安全可靠性,需要在发送端对比特流作适当的处理。在接收端,应当执行相反的过程,以恢复数据处理前的真实面目。
2.3.6 数据传输过程中的控制
1 通信过程的3个确认
蓝牙数据在发送之前,发送/接收双方要建立起电的联系,这一点在微微网内有多少个从节点时显得格外重要。整个通信过程要实现3个确认:通信之前,发送方不仅要确认自己是否已经把要发送的数据准备好,还要确认接收方是谁,不能盲目发送;在建立了双方的联系后传输数据,传输过程中要确认数据是否已经正常传送完毕;数据传输结束以后,及时断开通道,不空白占用信道,浪费信道资源,即要确认双方都已经离开通道。
2 蓝牙数据传输步骤
(1)生成数据分组 按照蓝牙数据纠错编码方案生成数据分组,分组数据中即有信息码,又有监督码。
(2)接通信道 主节点在准备好了要发送的分组数据后,按照预定要求向通信网络发出被叫号码,发送接收方的地址编号,既可以使用人工拨号方式,也可以自动完成。
(3)启动接口 将主、从节点的相关接口全部启动投入运行,接入相应的输入/输出设备,在信道上的三态门正确动作,该开的开,该关的关。
(4)传输数据 数据通信中的信息以“报文”的形式传送,数据分组无论选择哪种传递方式,都要求在一个分组传送后,得到对方明确无误的传送正常应答,才能发送下一个分组数据。
(5) 检查通信协议的执行情况 蓝呀数据进入通信需要受到蓝牙协议的约束,随着蓝牙剖面和蓝呀应用不同,使用的协议也不同。
(6) 结束通信 用双方事先约定的结束字符结束通信,在结束前应先确认双方需要传送的信息已全部全部传送完毕。
(7) 断开通信通道 通信结束后,一方发出断道信号,双方均离开通道,各自恢复到通信的状态[1]。
3 数据传输基本规则
(1)建立起适于传输的数据链路 数据链路、数据通道、通信信道是三个不同概念。数据链路是数据终端之间线路和设备的集合;数据通道是信道和接口之间的整体;通信信道是数据传输的媒体。
(2)传输过程中实施纠错控制 分组数据在信息上传播时不可避免地要受到干扰,即存在系统误差又存在随机误差,那么行之有效的控制办法是检查并纠正错误。
(3)随时能够处理异常突发情况 由于分组的多样性和信道的复杂性,蓝牙数据传送中随时可能出现一些异常。
(4)有效地结束数据传送 避免陷于“发送 接收”死循环。
4 数据传输的基本格式
数据传输的格式有两种:信息电文和监控电文。
2.3.7无线局域网(WLAN)的控制与管理
1 网络管理
网络的管理主要有两个方面的内容:一是对运行设备的管理;二是对运行的管理,运行管理中的重点是对链路的管理。
(1) 网络管理的基本内容:无线局域网按结构划分成基本型个专用型两种。基本型是节点之间彼此平等地进行通信的一种网络,他们之间的连接十分简单明了,不会组成复杂的主干网。专用型网络结构复杂,它在基本结构的基本上增加了多个功能。
(2) 从无线局域网(WLAN)到主干网 从WLAN往主干网的网络话务方向称为上行链路。
(3) 从主干网到WLAN 从主干网到WLAN需要寻找一个合适的接入点,该接入点必须要满足两个方面要求:一个是其他的接入点友好相处,与移动节点之间的通信公用公共通道;第二个是能向所有的移动节点广播分组,从主干网到WLAN的信息传递通过广播来完成。
2 网络控制
无线局域网WLAN的复杂多变结构决定了对它的控制需要分步骤来进行。首先,一个网络在使用前,必须进行初始化处理,初始化的目的是让它具有可使用、可驾驭的性能,否则网络失控,就失去了它存在的意义。
3 蓝牙信道控制
蓝牙信道共有5种,它们是:链路控制(LC)用户信道;链路管理(LM)控制信道;异步数据(UA)用户信道;等时数据(UI)用户信道;同步数据(US)用户信道。
4 蓝牙网络控制
7种子状态 呼叫子状态、呼叫扫描子状态、从应答子状态,主应答子状态、查询子状态、查询扫描子状态、从查询子状态。
待机主状态是蓝牙单元的一种主状态,是位于蓝牙网中的默认状态。
连接主状态的4种模式:
1)激活模式 蓝牙单元积极参与通信的工作方式称为激活模式
2)呼吸模式 蓝牙单元在一种特定时隙上开始传输的工作方式称为呼吸模式。
3)保持模式 蓝牙从单元不支持信道上的ACL分组的工作方式称为保持模式。
4)休眠模式 “休眠”是休息和睡眠的简称,处于休眠状态的蓝牙设备仅仅维持一种低功耗的通电状态,不存在任何信息流动或交换的迹象。
2.4 蓝牙信息安全技术
信息安全的首要任务是确保信息不受到外界的威胁和攻击。信息安全应当实现两个目的:一是防止信息泄露;另一是防止信息遭到破坏[1]。
2.4.1 威胁信息安全的主要因素
1 信息的基本概念
信息是一种状态,它与消息、信号、数据、情报、和知识既有联系又有区别。信息是一种变化方式,信息并不是固定的、一成不变的,而是随着事物的运动状态改变而发生变化。
2 信息的基本特征
依赖特征 信息来自于事物的运动,因此它必然以来于事物的发展。
认识特征 信息既是事物运动的状态和状态变化的方式,必然能够被人认识。
动态特征 随着事物的变化,信息也会发生变化,变化过程需要能量支撑。
3 信息的基本功能
信息的基本功能是有序功能。所谓的“有序性”是指事物在按照自身的运动规律发展和变化过程中,人们能够通过对信息的了解和掌握认识并影响事物的发展变化。
4 信息安全
1)完整性 信息在传输过程中如果未经授权,应保持不变。
2)保密性 信息不能泄露给未经授权的非法用户。
3)不可否认性 参与信息交换的双方都不得否认自己从事的操作并兑现承诺。
4)可控性 信息的传播应当是可以控制的,不是无序、失控的。控制机构对信息的安全全程监控。
5)共享性 合法用户能使用或享受信息与资源,不应被无理拒绝。
5 信息安全的威胁因素
1)主观因素 是指人的因素主要有以下表现:主观因素,非授权访问,入侵。
2)客观因素 主要是指环境因素,信息并不是生存在真空中的,而是与具体的物理环境,通信链路,网络配置密切相关。
2.4.2蓝牙信息安全
1 信息安全既要保密,又要求完整。
密码学中的几个基本术语 明文,密文,密钥,,密钥空间,主动窃听,被动窃听。
明文:是发送方发送的有用信息,这种信息是任何人都能看懂的,是信息安全需要保护的对象。
密文:如果用明文在信道上发送,必然不安全,容易失密,于是改用密文在信道上传送。
加密:将明文变为密文的过程,变化过程依据密钥进行。
密钥:加密过程的依据,作用像一把钥匙,如果把密文传输过程看作一把秘密锁,打开着把锁的工具就是密摇。
2 传统密码算法
传统密码算法有两种:一种是换位算法,一种是替代算法。
换位算法 这种算法生成密文的思路是把明文字母按一定的规则重新排列。换位既可以是行,又可以是周期换位。
替代算法 替代算法的要点是将明文中的每个字母改用密文中的对应字母替代,这种对应关系又称为映射。映射关系有一对一映射,一对多映射,多对多映射的等几种。
3 现代密码学的技术特征
传统密码学在应用上存在以下缺陷:
1)密钥分送越来越难 2)无法解决发送方和接收方传送内容的不同解释 3)在不保密信道上无法传送保密密钥。
现代密码学有三个基本内容:
1)继续沿用传统密码单钥密码体制,即加密密钥同于解密密钥。
2)公开密钥新型密码体制。
3)DES数据加密标准
4 蓝牙安全模式分3种:
1)无安全保护保护机制 2)应用层配置安全保护机制 3)链路层配置安全保护机制
应用层的安全保护主要指在用户程序设计中加入安全因素,阻挡一些不该接触蓝牙数据的设备接近数据。
链路层安全保护措施有两个:加密和认证。加密是密钥生成与使用的过程。认证是加密中的一些实际操作。
加密过程 蓝牙信息是以分组形式传送数据,加密过程通过流密码实施。
认证 是查验通信双方是否真实的重要手段。采用查验——响应方式进行。
第三章 蓝牙技术的开发与应用
3.1 蓝牙开发
1 蓝牙技术的具体开发
蓝牙开发包括三方面内容:硬件模块开发、中间协议层开发、蓝牙剖面开发。蓝牙开发的主要目的,是为社会提供更多的符合规范的蓝牙产品。
2 蓝牙硬件开发
蓝牙按硬件层次可划分成无线层、基带层和链路管理层。每一层次有不同的职责和分工:
1)无线层用于完成频率合成、位(bit)到符号的转换、符号的收发。
2)基带层用于完成编码与解码、加密与解密、分组处理和跳频频率的生成与选择。
3)链路管理层用于完全连接并管理链路。
蓝牙设计的基本要求:
1)尽可能的减少硬件模块的体积。
2)尽量小的功耗。
3)最小的生产成本。
在ISM频段上安全使用。
3.2蓝牙模块
3.2.1 单芯片蓝牙模块
把不同功能的模块集中到一个芯片上的技术,称之为片晌系统技术。片上系统包括蓝牙基带核心、微处理器、HCI、语言处理、测试等模块。
3.2.2 蓝牙基带核心模块
蓝牙基带核心模块的结构如图5-1,它由片外接口部分、分组头部分、数据路径部分组成。
TX比特流
数据路径
RX比特流 片外
接口
部分 分组头
无线接口
可编程序
接口
图3—1 蓝牙基带核心模块
(1)外片接口部分 与模块外界完成信息交流,主要有三大接口:比特流接口,分为输出TX比特流、输入RX比特流;无线控制接口,用于无线信号传输;可编程序接口,用于与计算机三总线连接。
(2)分组头部分 实现信息的处理,处理内容有:对收到的位(bit)流定时提取或恢复其符号;FEC处理;白化和解析处理;CRC校验;净荷处理;加密和解密处理。
(3)数据路径部分 在数据传送上按协议要求实现对信息的整理或加工。它们包括:共享RAM仲裁;时钟发生器;跳频频率发生器;可编程序序列发生器;链路管理序列发生器。
蓝牙基带核心模块能实现蓝牙基带所有的实时处理功能,蓝牙规范的处理过程已制成固件,置于Flash中,运行时装入RAM。
3.2.3无线收发模块
无线收发模块由锁相环PLL、发生器和接收器三部分组成,如图5-2所示。锁相环可由发送和接收共享。
发 送 器 |
|
|
|
锁 相 环
|
|
接 收 器 |
|
|
a)无 线 收 发
信息 输入 |
|
中 频 放 大 器 |
|
混 频 电 路 |
|
高 频 发 生 器 |
|
|
b) 接 收 器
基带控制 |
|
低 噪 声 放 大 器 |
|
滤 波 器 |
|
鉴 频 器 |
|
|
图5-2 无线收发模块
数据收发特征如下:
1)数据发送和接收在不同时刻进行。
2)分组类型不同,发送、接收时刻不同。
3)在给定时间内,允许PLL在不同载波频率跳变。
发送器内有一个认可VCO调制的倍频器,在OdBm发送电平时不提供RSSI电
路。接收器内含一个低噪声变换的混频器、一个中频放大器、一个高放大倍数的放大器和一个鉴频器,使用外差接收方式。
3.2.4其他功能模块
(1)存储器: 存储器主要有Flash和SRAM,Flash Memory中存放着基带层、链路管理层的所有软件程序,形成了物理模块与高层的通信通道。SRAM起Cache功能,运行时逐段接纳来自Flash的程序。
(2)CPU: CPU负责处理蓝牙比特流调制或解调后的所有位,同时还统一指挥协调收发器、语音编/解码的工作。可供选择的微处理器有8051、ARM处理器等。
(3)USB接口和UART接口: USB和UART提供前往HCI传输层的物理接口。
(4)语音编码与解码CODEC: 语音编码包括D/A转换、A/D转换、数字接口、编码模块和两个先入先出指令队列(FIFO),FIFO用于存放编码后的语音数据。
(5)认证和测试模块: 为了便于开发、认证和测试,有认证和测试模块提供接口十分方便。
3.3开发工具
蓝牙开发工具一般分为嵌入式开发工具与软件开发工具等,通常欲硬件电路,软件开发包和开发资料等组成。蓝牙开发工具不仅具有教学与演示的初级功能,还可以进行蓝牙嵌入式产品的开发以及进行基于PC方的高层协议与应用的开发。嵌入式开发工具可以开发蓝牙耳机,蓝牙键盘,蓝牙鼠标,蓝牙无线抄表,蓝牙医疗系统和蓝牙车辆收费系统等。
开发工具有BlueLab嵌入式软件工具包,CASIRA硬件开发工具。
第四章 蓝牙开发设计示例
4.1 使用BlueLab进行嵌入式开发
4.1.1 使用常见问题
1 环境
VM(虚拟机)适用于嵌入式应用,不适合运行高宽带或复杂的应用程序。VM解释应用程序的操作码,可以导致一定的性能降低。VM只适合用于I/O类型的应用。应用程序与固件协议栈需要共享芯片上的RAM,因此应用程序可用的RAM大小是不同的。
2 库
调试信息包含源文件的绝对路径,在自己的系统中和在构建库时,库的源代码不太可能在同一个地方,如果重新设置库,调试器将显示库的源代码[1]。
3 编译器
为何要用xap—loal—xap—gcc完全是为了避免“gcc”冲突。不能在Windows平台上编译BlueLab应用程序[1]。
4 Runtime问题
程序不工作:确定已经按照库的调用次序规则进行使用。
5 配置
最直接的方法是生成完整的映像,其中包括固件,并通过SPI写入到设备中。
4.1.2简单应用
1 准备Casira开发
Casira需要进行设置以使用SPIY与BCSP。设置方法如下:
SPI将SPI线缆连接到计算机的并口上,再将SPI线缆的另一端连接到Casira 上。此处SPI用来向Flash存储器下载映像文件。
BCSP连接SPI线缆后再用9针的串口电缆将计算机与Casira连接。使用PSTool设置主机接口,使Casira运行在BCSP协议上。
协议栈映像 Casira上需要运行一个VM兼容的协议栈,用来调试程序,rfcomm_bcsp固件映像适合使用。
2 构建hello world应用程序
通过构建这个简单的应用程序可以熟悉BlueLab 的开发过程。
① 打开Cygwin;
② 改变路径为$cd/cygdrive/c/BlueLab20/apps/hello;
③ 构建应用程序为$ make;构建过程将产生;app,dbg,sym与xap文件。
3 在appdebug中运行程序
用户可以通过调试器来设置断点并单步运行代码。
① 打开调试器:运行C:、Bluelab20\bin目录下的appdebug.jar文件。
② 导入一个工程:选择File/Open project,然后导入hello.sym,
③ 检查源代码
④ 设置通信
⑤ 启动调试器
4 构建BlueCore2的应用
由makegile产生的.app文件能够在调试器下很好运行,但作为最终应用,它需要与一个完整的协议栈融合。用户可以通过makefile实现该目的,在Cygwin窗口中输入$make bc02[1]。
4.2CSR—232适配器示例设计
1 串行端口剖面
CSR的RS—232电缆替代应用是蓝牙串行端口剖面的一个具体实现。它详细说明了设备使用蓝牙并行RS—232串行电缆仿真的协议和实现过程。
2 片上软件
BlueCore2 – External包括一个16位的RISC微处理器,用来运行蓝牙协议栈。CSR在这个微处理器上实现了虚拟机(VM),虚拟机是一种解释程序,它使应用程序可以在无须修改蓝牙协议栈的情况下运行。
3 示例设计内容
示例设计提供了OEM厂商把蓝牙功能增加到任何到现有支持RS-232的电子设备需要的所有信息。具体包括:完整的产品说明,电路原理图,元器件列表,蓝牙RS-232适配器的片上软件。
4 软件结构
链路管理,链路控制,L2CAP和RFCOMM以二进制文件形式提供;连接管理库和串行端口应用程序以C语言源代码形式提供,需要在BlueLab中编译后运行在虚拟机中。
串口端口剖面 |
||
连接管理 |
||
DM |
安全管理 |
|
RFCOMM |
SDP |
|
L2CAP |
||
链路管理 |
||
链路控制 |
||
基带 |
图 4—1
4.3 CSR蓝牙无线耳机示例设计
1 无线耳机应用剖面
CSR的无线耳机示例是蓝牙无线耳机应用剖面的实现,实现了使用无线耳机配合另一个蓝牙设备进行拨大和接听电话的功能。
2 片上软件
Bluecore2-External包含一个16位的RISC微处理器。这个微处理器用来运行蓝牙协议栈。CRS在RISC微处理器上采用了虚拟机(VM)技术,这样可以使应用软件在可靠的空间运行,而不影响蓝牙协议栈。
BlueCore无线耳机示例设计能够与任何蓝牙设备进行通信,嵌入式语音网关(EAG)应用程序提供了这种实现技术。
3 软件结构
CRS设计了两种不同的电路原理图。第一种使用了一种线性稳压器,其侧重点是节省成本,并且可以把电路板设计的很小,;第二种使用了成本略高的开关式稳压器,这样更能节省电能。
软件结构 链路管理,链路控制,L2CAP和RFCOMM以二进制数据格式。BlueLab中提供了连接,安全管理,耳机应用程序,库函数等的C源代码,这些都在虚拟机中。
耳机应用软件 |
||
耳机库函数 |
||
连接管理 |
||
DM |
SDP |
RFCOMM |
L2CAPP |
||
链路管理 |
||
链路控制 |
||
基带 |
||
无线单元 |
图 4—2