关于蓝牙手表项目中蓝牙4.0协议的总体介绍目录第一章总体需求............................................................................................................................21.1总体需求介绍....................................................................................................................21.2蓝牙4.0协议.....................................................................................................................2第二章蓝牙信息交互介绍.............................................................................................................32.1蓝牙4.0协议体系结构......................................................................................................32.1.1控制器.....................................................................................................................32.1.1.1物理层...................................................................................................................42.1.1.2链路层...................................................................................................................42.1.1.2主机/控制器接口(HCI)........................................................................................42.1.2主机..........................................................................................................................42.1.3应用层......................................................................................................................42.2使用的API.........................................................................................................................5第三章蓝牙信息传输内部流程.....................................................................................................63.1链路层.................................................................................................................................63.2主机/控制器接口................................................................................................................83.2.1控制器的配置:......................................................................................................83.2.2广播和观察..............................................................................................................93.2.3发起连接..................................................................................................................93.2.4连接管理..................................................................................................................93.3主机.....................................................................................................................................9第四章安全机制..........................................................................................................................104.1安全机制介绍...................................................................................................................10第五章代码实现..........................................................................................................................11第一章总体需求1.1总体需求介绍蓝牙开机棒配对工作流程中,开机棒蓝牙手环/手表作为从设备,当打开蓝牙,进行广播,发送从机设备信息,如果主机开启扫描,接收从机设备信息,进行配对连接,连接过程中要求采用加密安全模式传输数据。1.2蓝牙4.0协议低功耗蓝牙是一种全新的技术,是当前可以用来设计和使用的功耗最低的无线技术。从低成本的需求方面审视低功耗蓝牙的系统设计尤为重要。实现低成本的设计有三个关键因素:ISM频段、IP许可、低功耗。此外,蓝牙4.0技术的在全球操作、低成本、鲁棒性、短距离、低功耗方面得到了极大的体现、提升。这里不做一一介绍。第二章蓝牙信息交互介绍2.1蓝牙4.0协议体系结构低功耗蓝牙的体系结构分为三个基本的部分:控制器、主机和应用程序。控制器通常是一个物理设备,它能够发送和接受无线电信号,并懂得如何将这些信号翻译成携带信息的数据包。主机通常是一个软件栈,管理两台或多台设备之间如何通信以及如何利用无线电同时提供几种不同的服务。应用程序则使用软件栈,进而是控制器来实现用户实例。如图1蓝牙体系结构所示:图1蓝牙体系结构在主机内包含三个协议:逻辑链路控制和适配协议(L2CAP)、属性协议(AttributeProtocol)、安全管理器协议(SMP)、通用属性规范(GATT)、通用访问规范(GAP)和模式(模式)。2.1.1控制器2.1.1.1物理层它采用2.4GHz无线电完成艰巨的传输和接收工作。在低功耗的蓝牙中,采用高斯频移键控(GFSK)的调制方式改变无线电波的频率,传输0和1的信息。2.1.1.2链路层它负责广播、扫描、建立和维护连接,以及确保数据包按照正确的方式组织、正确地计算校验值以及加密序列等。信道:广播信道(3个)和数据信道(37个)。报文:广播报文和数据报文。过程:设备利用广播报文发现、连接设备。一旦连接建立,开始使用数据报文。广播报文可以广播给多个侦听设备或者只发送给某个特定设备,数据报文832880~29624比特前导接入地址报头长度数据循环冗余校验图2-1链路层数据包结构2.1.1.2主机/控制器接口(HCI)它为主机提供了一个与控制器通信的标准接口。它允许主机将命令和数据发送到控制器,并允许控制器将事件和数据发送到主机。HCI有两个独立的接口:逻辑接口和物理接口。逻辑接口:定义命令和事件及其相关的行为。它可以交付给任何物理传输,或者通过位于控制器上的本地应用程序编程接口(API)交付给控制器,后者可以包含嵌入式主机协议栈。物理接口:定义了命令、事件和数据如何通过不同的连接技术来传输(USB、SDIO、两个UART)。2.1.2主机主机包含复用层、协议和用来实现许多有用而且有趣的过程。主机构建于主机控制器接口的上层部分,其上是L2CAP,一个复用层。在它上面是两个基本构建块:安全管理器(用于处理所有认证和安全连接等事务)和属性协议(用于公开设备上的状态数据)。属性协议上面是通用属性规范,定义属性协议是如何实现可重用的服务的,而这些服务公开了设备的标准特性。最后,通用访问规范定义了设备如何以一种可交互方式找到对方并与之连接。2.1.3应用层控制器与主机之上是应用层。它定义了三种类型:特性(characteristic)、服务(service)、规范(profile)。这都构建于通用属性规范上。属性规范为特性和服务定义了属性分组,应用程序为使用这些属性组定义了规约。特性:采用已知格式、以通用唯一识别码(UUID)作为标记的一小块数据。服务:人类可读的一组特征及其相关的行为规范。只定义了位于服务器上的相关特性的行为,而不定义客户端的行为。规范:用例或应用的最终体现。规范和服务之间是多对多的映射关系。2.2使用的API第三章蓝牙信息传输内部流程3.1链路层设备发现(通用广播、定向广播)→广播建立连接(接入地址、CRC初始化、发送窗口、连接事件、信道图、睡眠时钟精度)→发送数据(数据报头、逻辑链路标识符、序列号、确认、更多数据)→加密(AES128位的密钥和128位的数据块、加密净荷数据、消息完整性校验)→管理连接(连接参数更新、自适应跳频、启动加密随机数和会话密钥SK、重启加密、版本交换、功能交换)→终止连接链路层状态机定义了5种状态:就绪态、广播态、扫描态、发起态、连接态。如图3-1链路层状态机所示:图3-1链路层状态机在扫描着与广播者之间,如图3-2广播者发送广播报文所示:图3-2广播者发送广播报文建立连接时,主设备通过连接请求数据包发送连接参数,当连接活跃了一段时间,连接参数也许不再适用于当前使用的服务。出于提高效率的目的,连接参数需要进行更新。较之首先断开连接、接着更换新参数重新连接,还有一种在链路中更新参数的更为简单的途径。如图3-3执行连接参数更新规程所示:发起态扫描态连接态广播态就绪态从设备主设备图3-3执行连接参数更新规程两个低功耗蓝牙设备之间的最基本通信模型就是广播(broadcasting)和观察(observing)模型。两者采用广播和扫描来传输数据。如图3-4HCI广