论文部分内容阅读
低功耗蓝牙技术是一种新型的短距离无线通信技术,具有低功耗、低成本、抗干扰、连接灵活等特点,广泛应用于安保系统、穿戴式装置、智能家居等领域。低功耗蓝牙4.2版本改善了隐私权限保护,提升了数据传输速率,并引入了支持互联网连接的配置文件,是万物互联的最佳解决方案。目前,市面上存在许多低功耗蓝牙4.2协议栈产品,但大都存在以下三个方面的问题:第一,这些协议栈的源码并不对用户开放,而只是提供了软件库,不利于修改和扩展;第二,它们同时实现了经典蓝牙和低功耗蓝牙的功能,代码量大,不适合小型嵌入式产品;第三,大部分协议栈产品过于重视功能的完整性和多样性,而没有考虑协议栈代码带来的额外开销。因此,开发出具有较小代码量、较低代码开销的开源协议栈,对低功耗蓝牙4.2技术的应用有着重要的意义。本论文基于低功耗蓝牙4.2协议核心标准,对协议栈应用层部分,包括通用属性规范(Generic Attribute Profile,GATT)和通用访问规范(Generic Access Profile,GAP),进行设计与实现。在功能实现的基础上,通过分析应用层在协议设计与实际应用之间的矛盾,得出了GATT层和GAP层代码开销的主要来源,包括数据相关开销,如层间数据拷贝开销、内存管理开销、函数调用开销等,和非数据相关开销。为了优化应用层数据拷贝开销和内存管理开销,设计了报文头部预留分配策略;为了减少GATT层与ATT层、GAP层与HCI层之间小而重复的函数调用开销,提出了基于中介者模式的层间交互策略;为了优化应用层非数据相关开销,设计了注册回调函数机制,选取了在事件中判断状态的方式进行GATT有限状态机设计。本论文以STM32F103RBT6为主控单元、CC2564为控制器,搭建硬件平台,对所开发的低功耗蓝牙4.2协议栈应用层部分进行了功能测试和代码量测试。测试结果表明:本论文在实现低功耗蓝牙4.2协议栈GATT层和GAP层全部功能的同时,与开源协议栈BTStack相比,应用层输出文件大小降低了23.3%,可执行文件大小降低了12.4%,对代码开销进行优化的效果比较明显。本论文的研究成果对低功耗蓝牙系统的开发和使用都具有一定的工程应用价值。