1、- 1 -第第3 3章章蓝牙技术蓝牙技术- 2 -本章目标本章目标了解蓝牙基本技术规范了解蓝牙基本技术规范了解蓝牙协议体系结构了解蓝牙协议体系结构掌握蓝牙设备的工作状态掌握蓝牙设备的工作状态了解蓝牙数据包结构和蓝牙编址了解蓝牙数据包结构和蓝牙编址掌握蓝牙模块的分类及选型掌握蓝牙模块的分类及选型掌握掌握AT指令的基本概念指令的基本概念掌握蓝牙模块的配对连接掌握蓝牙模块的配对连接- 3 -3.1 蓝牙技术概述蓝牙技术概述3.2 蓝牙协议体系蓝牙协议体系3.3 蓝牙状态和编址蓝牙状态和编址3.4 蓝牙数据分组蓝牙数据分组3.5 蓝牙模块蓝牙模块3.6 蓝牙应用开发蓝牙应用开发- 4 -技术规范技术规
2、范基本概念基本概念3.1 蓝牙技术概述蓝牙技术概述- 5 -3.1.1 技术规范技术规范V1.1(1999年)V1.2V2.0V2.1(2004年)V4.0(2010年)V3.0(2009年)- 6 -3.1.1 技术规范技术规范l V1.1(1998年):最早期版本,传输率约在748810kbps,容易受到同频率之产品干扰,通讯质量较差。l V1.2:748810kbps 的传输率,增加了(改善 Software)抗干扰跳频功能。l V2.0:V1.2的改良提升版,传输率约在1.8Mbps2.1Mbps,可同时传输语音、图片和文件。l V2.1(2004年):改善了装置配对流程和短距离配对,
3、具备了在两个支持蓝牙的手机之间互相进行配对与通信传输的NFC机制。具备更佳的省电效果。l V3.0(2009年):通常成为蓝牙高速传输技术,传输速率更高,功耗更低。l V4.0(2010年):包括三个子规范,即传统蓝牙技术、高速蓝牙和新的蓝牙低功耗技术。蓝牙4.0的改进之处主要体现在三个方面,电池续航时间、节能和设备种类上。有效传输距离也有所提升为60m。- 7 -3.1.1 技术规范技术规范每个规范版本按通信距离可再分为Class1和Class2:l Class1:传输功率高、传输距离远,但成本高、耗电量大,不适合作为个人通信产品,多用于部分商业特殊应用场合,通信距离大约在80m100m之间
4、。l Class2:目前最流行的制式,通信距离大约在830m之间,视产品的设计而定,多用于手机、蓝牙耳机、蓝牙适配器等个人通信产品,耗电量和体积较小,方便携带。 EDR:Enhanced Data Rate,增强速率技术- 8 -3.1.2 基本概念基本概念主/从设备:蓝牙通常采用点对点的配对连接方式,主动提出通信要求的设备是主设备(主机),被动进行通信的设备为从设备(从机)。蓝牙设备状态:蓝牙设备有待机和连接两种主要状态,处于连接状态的蓝牙设备可有激活、保持、呼吸和休眠4种状态。对等网络Ad-hoc:蓝牙设备在规定的范围和数量限制下,可以自动建立相互之间的联系,而不需要一个接入点或者服务器,
5、这种网络称为Ad-hoc网络。由于网络中的每台设备在物理上都是完全相同的,因此又称为对等网。跳频扩频技术(FHSS):收发信机之间按照固定的数字算法产生相同的伪随机码,发射机通过伪随机码的调制,使载波工作的中心频率不断跳跃改变,只有匹配接收机知道发射机的跳频方式,可以有效排除噪音和其他干扰信号,正确地接收数据。时隙:蓝牙采用跳频扩频技术,跳频频率为1600跳/秒,即每个跳频点上停留的时间为625 us,这625us就是蓝牙的一个时隙,在实际工作中可以分为单、多时隙。蓝牙时钟:蓝牙时钟是蓝牙设备内部的系统时钟,是每一个蓝牙设备必须包含的,决定了收发器的时序和跳频。蓝牙时钟频率为3.2KHz,该时
6、钟不会被调整或关掉。- 9 - 物理层数据链路层 网络层 传输层 会话层 表示层 应用层比特流传输提供介质访问、链路管理等寻址和路由选择建立主机端到端连接建立、维护和管理会话处理数据格式、数据加密等提供应用程序间通信3.2 蓝牙协议体系蓝牙协议体系 蓝牙协议采用分层结构,遵循开放系统互联(OSI,Open System Interconnection)参考模型OSI参考模型- 10 -3.2 蓝牙协议体系蓝牙协议体系- 11 -射频(RF)协议:主要定义频段与信道安排、发射/接收机特性等。它通 过2.4GHz频段规范物理层无线传输技术,实现数据流的过滤和传输。基带(BB)协议:为基带数据分组提
7、供同步定向连接(Synchronous Connection Orented,SCO)和异步无连接(Asynchronous Connectionless,ACL)两种物理链路,对不同数据类型都会分配一个 特殊信道,用于传递连接管理和控制信息等。链路管理协议(LMP):主要负责蓝牙设备间连接的建立、拆除和安全 控制,控制无线设备的节能模式和工作周期,以及微微网内各设备单 元的连接状态。3.2 蓝牙协议体系蓝牙协议体系底层协议底层协议- 12 -主机控制器接口(HCI)协议:位于L2CAP和LMP之间,为上层协议提供进入 LMP和BB的统一接口和方式。HCI传输层包括:USB、RS232、UAR
8、T和 PC 卡。逻辑链路控制与适配协议(L2CAP):主要完成数据的拆装、服务质量控制, 协议的复用、分组的分割和重组及组管理等功能。串口仿真协议(RFCOMM):又称线缆替换协议,仿真RS-232的控制和数据 信号,可实现设备间的串行通信,为使用串行线传送机制的上层协议提供 服务。电话控制协议(TelCtrl):包括电话控制规范二进制(TCS-BIN)协议和AT命令 集电话控制命令。其中,TCS-BIN是在蓝牙设备间建立语音和数据呼叫的 控制信令。服务发现协议(SDP):为上层应用程序提供一种机制来发现可用的服务, 是所有用户模式的基础。3.2 蓝牙协议体系蓝牙协议体系中间层协议中间层协议-
9、 13 -3.2 蓝牙协议体系蓝牙协议体系高层协议高层协议对象交换协议(OBEX):只定义传输对象,而不指定特定的传输数据类 型,可以是从文件到电子商务卡、从命令到数据库等任何类型。网络访问协议:包括PPP、TCP、IP和UDP协议,用于实现蓝牙设备的 拨号上网,或通过网络接入点访问因特网和本地局域网。无线应用协议(WAP):支持移动电话浏览网页、收取电子邮件和其他基 于因特网的协议。可在数字蜂窝电话和其他小型无线终端上实现因特网 业务。无线应用环境(WAE):可提供用于WAP电话和个人数字助理PDA所需 的各种应用软件。音频协议(Audio):可在一个或多个蓝牙设备之间传递音频数据,通过在
10、基带上直接传输SCO分组实现。- 14 -蓝牙状态蓝牙编址3.3 蓝牙状态和编址蓝牙状态和编址- 15 -3.3.1 蓝牙状态蓝牙状态蓝牙设备主要运行在待机和连接两种状态。从待机到连接状态,要经历7个子状态:寻呼、寻呼扫描、 查询、查询扫描、主响应、从相应、查询相应。- 16 -3.3.1 蓝牙状态蓝牙状态待机待机蓝牙设备默认的工作状态。在该状态下,设备每隔1.28s就周期性地“侦听”信息。一旦设备被唤醒,便处于连接状态,将在预先设定的32个 跳频频率上接听信息。跳频数目因地区而异,多数国家都采用32个跳频频率。- 17 -3.3.1 蓝牙状态蓝牙状态连接连接状态状态描述描述激活(Active
11、) 该模式下,主单元和从单元通过侦听、发送或者接收数据包而主动参与信道操作。主单元和从单元相互保持同步。呼吸(Sniff) 该模式下,主单元只能有规律地在特定的时隙发送数据,从单元只在指定的时隙上“嗅探”消息,可以在空时隙睡眠而节约功率。呼吸间隔可以根据应用需求做适当调整。保持(Hold) 该模式下,设备只有一个内部计数器在工作,不支持ACL数据包,可为寻呼、扫描等操作提供可用信道。保持模式一般用于连接几个微微网或能耗低的设备。在进入该模式前,主节点和从节点应就从节点处于保持模式的持续时间达成一致。当时间耗尽时,从节点将被唤醒并与信道同步,等待主节点的指示。休眠(Park) 当从单元无需使用微
12、微网信道却又打算和信道保持同步时,可以进入休眠模式。在该模式下,设备几乎没有任何活动,不支持数据传送,偶尔收听主设备的消息并恢复同步、检查广播消息。设备被赋予一个休眠成员地址(Parking Member Address:PM_ADDR)并失去其活动成员地址(Active Member Address:AM_ADDR)。- 18 -3.3.1 蓝牙状态蓝牙状态微微网微微网蓝牙的网络结构有两种拓扑形式:微微网和散射网(分布式网络)微微网是蓝牙基本的组网方式,散射网由多个微微网组成在同一个微微网中:微微网的本质是个人区域网,即以个人区域的范围为应用的网络构建。一个微微网可以只是两台相连的设备,比如
13、一台笔记本和一部手机,也可以是几台相连的蓝牙设备。微微网最简单的应用是蓝牙手机与蓝牙耳机,在手机与耳机间组建一个简单的微微网,手机作为主设备,耳机充当从设备。在两个蓝牙手机之间也可以直接使用蓝牙功能进行无线的数据传输等。一个蓝牙设备可以同时与最多7个其他蓝牙设备相连各单元之间共享一个信道有且只有一个主单元,其余为从单元主单元控制微微网从建立到数据传送到最后结束通信的整个过程- 19 -3.3.1 蓝牙状态蓝牙状态微微网微微网蓝牙主 设备蓝牙从 设备1蓝牙从 设备2蓝牙从 设备2蓝牙从 设备3蓝牙从 设备4蓝牙从 设备5蓝牙从 设备6蓝牙从 设备7蓝牙主 设备蓝牙从 设备- 20 -3.3.1
14、蓝牙状态蓝牙状态状态转换状态转换子状态子状态描述描述寻呼(Page) 该子状态被主单元用来激活和连接从单元,主单元通过在不同的跳频信道内传送从单元的设备识别码(DAC)来发出寻呼消息。寻呼扫描(Page Scan) 在该子状态下,从单元在一个窗口扫描存活期内以单一跳频侦听自己的设备接入码(DAC)。从响应(Slave Responce) 从单元在该子状态下响应主单元的寻呼消息。如果处于寻呼扫描子状态下的从单元和主单元寻呼消息相关即进入该状态。主响应(Master Responce) 主单元在该状态下发送FHS数据包给从单元。如果主单元收到从单元的响应后即进到该子状态。当从单元收到主单元发送的F
15、HS数据包后,将进入连接状态。查询(Inquiry)该子状态被主单元用于收集蓝牙设备地址,发现相邻蓝牙设备的身份。查询扫描(Inquiry Scan) 在该子状态下,蓝牙设备侦听来自其他设备的查询。此时扫描设备可以侦听一般查询接入码(GIAC,General Inquiry Access Code)或者专用查询接入码(DIAC,Dedicated Inquiry Access Code)。查询响(Inquiry Responce) 对查询而言,只有从单元才可以响应而主单元则不能。从单元用FHS数据包响应,该数据包包含了从单元的设备接入码、内部时钟和某些其他从单元信息。- 21 -3.3.1 蓝
16、牙状态蓝牙状态状态转换状态转换- 22 -3.3.2 蓝牙编址蓝牙编址蓝牙有以下4种基本类型的设备地址:BD_ADDR:48位的蓝牙设备地址。AM_ADDR:3位激活状态成员地址。PM_ADDR:8位休眠状态成员地址。AR_ADDR:访问请求地址,休眠状态的从单元通过它向主单元发送访问消息。- 23 -3.3.2 蓝牙编址蓝牙编址BD_ADDR唯一地标志了每个蓝牙设备总长度48位按从最小有效位(LSB)到最大有效位(MSB)主要分为3部分:24位低地址部分LAP、8位高地址部分UAP和16位非有效地址部分NAPLAPUAPNAPLSBMSB24816BDDR的有效部分构成蓝牙设备的厂商唯一标识
17、符,由SIG的蓝牙地址管理机构分配给各个蓝牙设备制造商。- 24 -3.3.2 蓝牙编址蓝牙编址从节点地址从节点地址从节点地址具有不唯一性,根据状态不同可分配3种不同的地址:AM_ADDR:处于激活状态下的从节点地址,该地址位于主节点发送的数据 分组的分组头中。利用节点有无激活地址能把主节点和任何一个从节点区 别开。PM_ADDR:处于休眠状态的成员地址,也使用3位二进制数描述8个节点 的地址。从节点处于休眠状态时就能获得一个休眠成员地址PM_ADDR。通 过BD_ADDR或PM_ADDR均能识别处于休眠状态下的从节点。AR_ADDR:从节点的访问请求地址。当从节点进入休眠状态时,将分配一 个
18、状态请求地址,用来向主节点发送一个状态请求消息,使休眠从节点能够 在访问窗口内确定“从主时隙”。- 25 -3.4 蓝牙数据分组蓝牙数据分组在蓝牙的信道中,数据是以分组的形式进行传输的在蓝牙的信道中,数据是以分组的形式进行传输的将信息进行分组打包,时间划分为时隙,每个时隙内只将信息进行分组打包,时间划分为时隙,每个时隙内只发送一个数据包发送一个数据包蓝牙的数据包与纠错机制之间有密切的联系蓝牙的数据包与纠错机制之间有密切的联系 蓝牙技术同时支持数据和语音信息的传送,在信息交换蓝牙技术同时支持数据和语音信息的传送,在信息交换方式上采用了电路交换和分组交换的混合方式。对于短方式上采用了电路交换和分组
19、交换的混合方式。对于短暂的突发式的数据业务,采用分组传输方式。暂的突发式的数据业务,采用分组传输方式。- 26 -分组格式分组格式分组类型分组类型3.4 蓝牙数据分组蓝牙数据分组- 27 -3.4.1 分组格式分组格式标准的数据分组格式如下:识别码72 bitsAccess Code分组头54 bitsHeader有效载荷0-2745 bitsPayload分组可以由识别码组成(压缩格式),也可以由识别码和分组头组成,或识别码、分组头和有效载荷组成。识别码:用于数据同步、DC偏移补偿和身份识别。分组头:包含了链路控制(LC)信息。有效载荷:携带上层的语音和数据字段。- 28 -3.4.1 分组
20、格式分组格式识别码识别码识别码72 bitsAccess Code分组头54 bitsHeader有效载荷0-2745 bitsPayload识别码的必要组成部分每个数据分组的必要组成部分,可用于寻呼和查询“访问码”、“接入码”- 29 -3.4.1 分组格式分组格式识别码识别码蓝牙设备在不同工作模式下使用不同的识别码,识别码有三种不同类型:信道识别码CAC(Channel Access Code):用于标识一个微微网。设备识别码DAC(Device Access Code):用于指定的信令过程,比如寻呼和寻呼应答。查询识别码IAC(Inquiry Access Code):分为通用查询识别码
21、(GIAC)和专用查询识别码(DIAC)两种。为所有设备通用,用于检测指定范围内的其他蓝牙设备被某种类型的蓝牙单元使用,具有同种类型的蓝牙单元使用相同的DIAC,用于发现在指定范围中符合条件的专用蓝牙设备。- 30 -3.4.1 分组格式分组格式分组头分组头TYPE FLOW ARQNLSB341118AM_ADDRHECSEQNMSB识别码72 bitsAccess Code分组头54 bitsHeader有效载荷0-2745 bitsPayload由6个字段构成,共18位- 31 -名称名称描述描述AM_ADDR 3位成员地址,用于识别加入到微微网中的活动成员。主单元为了区别各个从单元,给
22、每个从单元分配了一个临时的3比特地址。TYPE 4位类型码说明了分组是在SCO链路还是在ACL链路上传输,以及该分组是哪种SCO或ACL分组,同时还说明了分组所占用的时隙。FLOW 1位流控,用于ACL链路上的分组流量控制。 0:接收方ACL链路接收缓冲区满,指示停止传输; 1:接收方ACL链路接收缓冲区清空,指示可以传输。ARQN 1位确认指示,用于通知发送端,带有CRC的有效载荷接收是否成功。 0:数据接收失败; 1:数据接收成功。SEQN 1位序列编号,用于区分新发包和重发包,每一次新的分组发送时,SEQN将反相一次,重传时该位不变。使接收端按正确的顺序接收分组,避免重复收发。HEC 8
23、位包头错误校验码,用于对包头的完整性进行检验。3.4.1 分组格式分组格式分组头分组头- 32 -3.4.1 分组格式分组格式有效载荷有效载荷识别码72 bitsAccess Code分组头54 bitsHeader有效载荷0-2745 bitsPayload针对不同的数据链路,蓝牙分组的有效载荷可以分为语音段载荷和 数据段载荷ACL数据分组只有数据段载荷SCO数据分组只有语音段载荷DV分组同时含有语音段载荷和数据段载荷- 33 -3.4.1 分组格式分组格式有效载荷有效载荷数据段载荷语音段载荷用于指示逻辑信道、逻辑信道上的流量控制和载荷的长度CRC码用于数据错误检测和错误纠正- 34 -3.
24、4.2 分组类型分组类型微微网中的分组类型和其链接方式(SCO/ACL)有关不同链路的不同分组类型由分组头中的TYPE位唯一区分可分为5种公共分组、4种SCO分组和7种ACL分组3大类SCO分组用于同步SCO链接ACL分组用于异步ACL链接方式- 35 -3.4.2 分组类型分组类型公共分组ID(身份)分组NULL(空)分组POLL(轮询)分组FHS(跳频切换)分组DM1分组SCO分组HV1分组HV2分组HV3分组DV分组ACL分组DM1分组DH1分组DM3分组DH3分组DM5分组DH5分组AUX1分组- 36 -分组名称分组名称描述描述公共分组ID由设备识别码(DAC)或查询识别码(IAC)
25、组成,长度为68位,是一种可靠的分组,常用于呼叫、查询及应答过程中。NULL是一种不携带有效载荷的分组,由信道识别码(CAC)和分组头组成,总长度为128位。NULL分组用于返回链接信息给发送端,其自身不需要确认。POLL与NULL类似,但需要一个接收端发来的确认。主单元可用它来检查从单元是否启动。FHS表明蓝牙设备地址和发送方时钟的特殊控制分组,常用于寻呼、主单元响应、查询响应及主从切换等。采用2/3 FEC纠错编码。DM1一种通用分组,可以为两种物理链路传输控制消息,也可携带用户数据。SCO分组HV1含有10个信息字节,使用1/3 FEC纠错码,无有效载荷头和CRC码,常用于语音传输。HV
26、2含有20个信息字节,使用2/3 FEC纠错码,无有效载荷头和CRC码,常用于语音传输。HV3含有30个信息字节,无FEC纠错码,无有效载荷头和CRC码,常用于语音传输。DV数据-语音组合包,有效载荷段分语音段和数据段两部分,可进行数据和话音的混合传输。语音字段没有FEC保护,从不重传;数据字段采用2/3 FEC,可以重传。3.4.2 分组类型分组类型- 37 -ACL分组DM1 一种只能携带数据信息的分组,含有18个信息字节和16位CRC,采用2/3 FEC编码。 DH1 类似于DM1分组,含有28个信息字节和16位CRC,无FEC编码。DM3 一种具有扩展有效载荷的DM1分组,含有123个
27、信息字节和16位CRC,采用2/3 FEC编码。DH3 类似DM3分组,含有185个信息字节的和16位CRC,无FEC编码;DM5 一种具有扩展有效载荷的DM1分组,含有多达226个信息字节,采用2/3 FEC编码;DH5 类似于DM5分组,含有多达341个字节的信息和16位CRC,但无FEC编码;AUX1 类似于DH1分组,含有30个信息字节,没有CRC。3.4.2 分组类型分组类型- 38 -3.5 蓝牙模块蓝牙模块蓝牙模块又叫蓝牙内嵌模块、蓝牙模组,是蓝牙无线传输技术的重要实现。在实际的蓝牙应用开发中,一般不需关注具体的协议实现,只需结合项目任务选择合适的蓝牙模块即可。- 39 -蓝牙实
28、现蓝牙实现选型选型硬件电路硬件电路3.5 蓝牙模块蓝牙模块- 40 -3.5.1 蓝牙实现蓝牙实现蓝牙技术通常以蓝牙芯片的形式出现,底层协议通过硬件来实现,中间层和高端应用层协议则通过协议栈实现,固化到硬件之中。并非所有蓝牙芯片都要实现全部的蓝牙协议,但大部分都实现了核心协议,对高端应用层协议和用户应用程序,可根据需求定制。目前多数蓝牙芯片的底层硬件采用单芯片结构,利用片上系统技术将硬件模块集嵌在单个芯片上,同时配有微处理器(CPU)、静态随机存储器(SRAM)、闪存(Flash ROM)、通用异步收发器(UART)、通用串行接口(USB)、语音编/解码器(CODEC)、蓝牙测试模块等。- 4
29、1 -单芯片蓝牙硬件模块结构3.5.1 蓝牙实现蓝牙实现- 42 -3.5.1 蓝牙实现蓝牙实现蓝牙模块:在蓝牙芯片的基础上,添加微带天线、晶振、Flash、电源电路等,并根据应用需求开发所需的应用协议、应用程序和接口驱动程序,即可构成蓝牙模块,实现某些特定用途。- 43 -3.5.2 选型选型性能指标性能指标发射功率:标准的CLASS1模块发射功率为+20dBm,即100mW;标准的CLASS2模块发射功率6dBm,即小于4mW。发射功率参数确定后,实际发射效率与射频电路、天线效率相关。接收灵敏度:蓝牙模块接收灵敏度aa:bb:cc:dd:ee:ff(主模式)aa:bb:cc:dd:ee:f
30、f(从模式)3)查询状态 +INQUIRING4)连接断开+DISC:SUCCESS(正常断开) LINKLOSS(链接丢失断开) NO_SLC(无SLC连接断开) TIMEOUT(超时断开)- 62 -3.6.2 AT指令示例指令示例示例示例3-1将电路板上的蓝牙串口通过串口线连至PC机,开启超级串口程序,设置好串口号和波特率(默认值9600)。查询/设置蓝牙名称 ,在超级串口的发送区中输入。每一条指令以回车符结束。蓝牙模块对相应AT指令的响应,在超级串口的接收区显示。- 63 -3.6.2 AT指令示例指令示例示例示例3-1查询/设置串口通信波特率 ,在超级串口的发送区中输入。每一条指令以
31、回车符结束。蓝牙模块对相应AT指令的响应,在超级串口的接收区显示。- 64 -3.6.2 AT指令示例指令示例示例示例3-1查询串口通信模式和工作状态 ,在超级串口的发送区中输入。每一条指令以回车符结束。查询串口通信模式和工作状态 ,在超级串口的接收区中显示。- 65 -3.6.2 AT指令示例指令示例恢复蓝牙模块默认设置命令:恢复蓝牙模块默认设置命令:输入:输入:AT+DEFAULT响应:响应:OK注意:对本蓝牙模块而言,该设置即时生效。但若在示例3-1之后紧随该指令,收到OK响应后,需在超级串口中将波特率重新选择为9600,然后关闭串口,重新打开方可继续进行正常的通信。- 66 -3.6.
32、3 蓝牙初始化蓝牙初始化完成蓝牙设备配对连接前的初始化配置初始化指令一般包含下述内容:查询/设置蓝牙模块名称查询本地蓝牙地址查询/设置开启上行指令查询/设置设备类型查询/设置查询访问码查询/设置寻呼扫描、查询扫描参数查询/设置是否自动搜索远端蓝牙设备查询蓝牙配对列表查询/设置配对码查询/设置连接模式:指定蓝牙地址连接/任意地址连接- 67 -3.6.3 蓝牙初始化蓝牙初始化硬件电路同示例3-1,将本模块和PC相连,通过串口发送AT指令控制本模块完成连接前的相关设置,采用硬件设置主从方式,蓝牙模块作为从机。依次完成下述设置:依次完成下述设置:1)将本模块名称设置为BC04-B;2)查询本模块的4
33、8位设备地址;3)开启indiction上行指令;4)设置蓝牙设备类型(从模式下被对端检索,主模式下返回所有搜索到的设备)5)设置蓝牙查询访问码为GIAC,以便被周围所有 的蓝牙设备查询。- 68 -3.6.3 蓝牙初始化蓝牙初始化依次完成下述设置:依次完成下述设置:1)设置寻呼扫描、查询扫描参数;2)设置自动搜索远端蓝牙设备;3)查询蓝牙配对列表(无配对列表);4)设置配对码为123456;5)设置任意蓝牙地址连接模式,不和特定的(由BIND指令设置地址)蓝牙设备进行连接- 69 -3.6.4 蓝牙配对测试蓝牙配对测试使用蓝牙模块与PC或手机进行通信时,PC和手机的蓝牙一般作为主机,蓝牙模块
34、作为从机。所需硬件及软件:无线通信系统板、安卓智能手机、安卓蓝牙串口助手、超级串口将无线通信系统板上的蓝牙串口端通过串口线连至PC机,将JP12的1与3、2与4用跳线短接,即蓝牙模块与PC相连;JP13的1与2短接,即硬件设置主从方式;JP14的1与2短接,即从机模式。开启PC上的超级串口程序。- 70 -3.6.4 蓝牙配对测试蓝牙配对测试实现步骤实现步骤1. 蓝牙连接前的初始化设置(见上一小节)2. 安卓蓝牙串口助手安装开启安卓手机的蓝牙功能,下载蓝牙串口助手vPRO到安卓手机(需自带蓝牙模块)并安装。- 71 -3.6.4 蓝牙配对测试蓝牙配对测试实现步骤实现步骤3. 配对连接- 72
35、-3. 配对连接3.6.4 蓝牙配对测试蓝牙配对测试实现步骤实现步骤输入初始化步骤中设置好的配对码(123456),然后点击确定。- 73 -3.6.4 蓝牙配对测试蓝牙配对测试实现步骤实现步骤3. 配对连接- 74 -3.6.4 蓝牙配对测试蓝牙配对测试实现步骤实现步骤3. 配对连接 在超级串口中发送3次“AT+PIN”指令,经数据透传后显示在手机的蓝牙串口助手接收区中,如下图所示。 - 75 -3.6.4 蓝牙配对测试蓝牙配对测试实现步骤实现步骤3. 配对连接 蓝牙的配对连接受一定距离的限制,具体依不同的蓝牙模块而不同(典型的为十几米)。因此,将手机逐渐远离蓝牙模块,当超出距离的临界值时,
36、手机与蓝牙模块之间的连接将会自动断开。- 76 -蓝牙串口模块的主要功能是取代串口线:蓝牙串口模块的主要功能是取代串口线: 两个单片机,分别连接一个蓝牙主机和从机,主机和从机配对后即进入透明数据传输模式,相当于一根串口线,包含了RXD和TXD两组信号,两个单片机之间可以通过蓝牙串口模块通信。1. 市面上大多数的蓝牙设备都是使用蓝牙从机的,比如蓝牙打印机,蓝牙GPS,大部分就是从机模式的,我们可以使用主机模块(手机、PC)和它配对通信。2. BC04-B的24引脚(连接LED4的引脚)可用于判断是否完成配对。当LED4长亮,说明配对完毕,两个单片机之间可以相互进行串口通信,用户可以认为两个单片机
37、之间连接了一根串口线。3. 在配对完成之前,模块工作于AT模式4. 本模块可设置为主机或从机,主从机模式的切换可通过硬件或AT指令完成,切换后的模式需在系统下一次上电后生效。- 77 -产品用途:蓝牙模块配对后只要当成固定波特率的串口一样使用即可,因此只要是以“固定波特率,8位数据位,无奇偶校验”通信格式的串口设备都可以直接取代原来的串口线而不需要修改程序,如智能车、串口打印机等。与电脑配对使用:适合电脑跟设备间通过蓝牙串口通信,使用方法与串口一样。与手机配对使用:适合手机跟设备间通过蓝牙串口通信,使用方法与串口一样。- 78 -小结蓝牙技术从产生发展至今,共发展了六个规范版本,分别是蓝牙技术
38、从产生发展至今,共发展了六个规范版本,分别是V1.1、V1.2、V2.0、 V2.1、V3.0和和V4.0。蓝牙通常采用点对点的配对连接方式,主动提出通信要求的设备是主设备(主蓝牙通常采用点对点的配对连接方式,主动提出通信要求的设备是主设备(主 机),被动进行通信的设备为从设备(从机)。机),被动进行通信的设备为从设备(从机)。蓝牙协议采用分层结构,遵循开放系统互连蓝牙协议采用分层结构,遵循开放系统互连OSI(Open System Interconnection)参考模型,按照各层协议在整个蓝牙协议体系中所处的位参考模型,按照各层协议在整个蓝牙协议体系中所处的位 置,蓝牙体系可分为底层协议、
39、中间层协议和高端应用层协议三大类。置,蓝牙体系可分为底层协议、中间层协议和高端应用层协议三大类。连接建立后,蓝牙设备可以处于激活(连接建立后,蓝牙设备可以处于激活(Active)、保持()、保持(Hold)、呼吸()、呼吸(Sniff) 和休眠(和休眠(Park)4种模式。种模式。蓝牙模块又叫蓝牙内嵌模块、蓝牙模组,是蓝牙无线传输技术的重要实现。蓝牙模块又叫蓝牙内嵌模块、蓝牙模组,是蓝牙无线传输技术的重要实现。蓝牙模块的蓝牙模块的AT指令主要分为指令主要分为Command(下行命令下行命令)和和Indication(上行命令上行命令),下,下 行命令是行命令是PC发给蓝牙模块的,上行命令是蓝牙模块上报给发给蓝牙模块的,上行命令是蓝牙模块上报给PC的。的。- 79 -