论文部分内容阅读
低功耗蓝牙技术是未来物联网领域的关键技术。低功耗蓝牙协议栈是作为低功耗蓝牙芯片的配套软件实现的。低功耗蓝牙4.2协议栈中间层是整个协议栈设计的关键,协议栈中间层包括逻辑链路控制和适配协议(Logical Link Control and Adaption Protocol,L2CAP)、属性协议(Attribute Protocol,ATT)和安全管理协议(Security Manager Protocol,SMP)。目前国内市场上低功耗蓝牙协议栈具有不开源和代码冗余的问题,协议栈中间层的代码开销将极大影响物联网应用的成本,设计与实现开源且代码开销小的低功耗蓝牙协议栈中间层具有很大的现实意义。本文分析了协议栈中间层的功能性需求,在分析了协议软件代码开销优化方向与相关技术的基础上,依照低功耗蓝牙4.2协议规范设计并实现了具有代码开销小特点的低功耗蓝牙4.2协议栈的中间层。为了减少协议栈中间层的代码开销,本文从两个方向对协议栈中间层代码开销进行了优化。为了优化协议栈中间层模块固化的代码开销,鉴于传统协议栈设计中属性数据库生成方法占用了大量片上空间的情况,设计了属性数据库预生成代码开销优化策略;鉴于协议栈应用开发中中间层大部分功能并不会被全部使用的现状,设计了基于单件设计模式的模块细化管理代码开销优化策略,通过细化模块功能并采用单件模式,使得每个细化模块只有在被应用使用时才实例化;设计了基于表查询的状态机代码开销优化策略,优化了状态机状态线性膨胀时的代码开销。为了优化协议栈中间层运行时代码开销,鉴于传统FIFO队列数据包缓存占用过多运行时代码开销的问题,设计了基于互斥锁的数据包缓存代码开销优化策略。本文的硬件实验平台采用ST公司生产的STM32F103RBT6芯片作为主机芯片,TI公司生产的CC2564作为控制器芯片。本研究使用协议分析仪抓包测试协议栈中间层功能实现情况并测量了协议栈中间层的代码量。通过分析,结果如下:本协议栈中间层功能基本测试通过,本协议栈中间层代码量比BTStack开源协议栈减少了13.8%满足了设计指标。