基于蓝牙4.0的设备通信方案设计与实现
扫描二维码
随时随地手机看文章
随着蓝牙技术的迅速发展,目前蓝牙芯片市场涌现出了许多优秀产品。CSR公司的BlueCore系列产品、Bmadcom的BCM系列产品和TI公司的CC2540系列产品都有广泛的应用。其中TI公司的CC2450和CSR公司的CSR1000芯片都非常适用于蓝牙4.0应用解决方案。
本文选用了TI公司的CC2450F128芯片作为蓝牙通信芯片,该芯片提供真正的单片低功耗蓝牙BLE解决方案,能够运行应用程序和BLE协议栈。CC2450F128芯片内部集成了高性能低功耗的8051微处理器核,片内提供来了128KB的Flash存储空间,对外支持UART和USB通信接口,所以非常适用于蓝牙4.0的应用解决方案。
1 总体方案设计
该设计为基于蓝牙4.0的设备提供良好的通用方案,有助于研发特定应用的设备。系统总体架构如图1所示。在系统总体架构图中,主要包括两部分:支持蓝牙4.0的手持设备和蓝牙设备。其中支持蓝牙4.0的手持设备可以是诸如智能手机、平板电脑等;蓝牙设备则是本文提供的解决方案。支持蓝牙4.0的手持设备和蓝牙设备之间通过蓝牙4.0协议传输数据,可以为蓝牙耳机、手机防丢应用和无线拍照应用等提供数据方案。
从系统总体架构框图中不难看出,该设计方案支持一对多的通信连接,即每个支持蓝牙4.0的手持设备可以同时与多个蓝牙设备建立连接,对应用功能的扩展带了极大便利。
2 详细设计与实现
该部分将对系统总体架构框图中的蓝牙设备给出解决方案。此处选用了TI公司的CC2450F128芯片作为蓝牙通信芯片,该芯片最大的特点是能够提供真正的单片低功耗蓝牙BLE解决方案,能够运行应用程序和BLE协议栈,使用起来简单高效。
2.1 CC2450F128外围电路设计
低功耗蓝牙芯片CC2450F128的外围电路原理图如图2所示。从图2中可以看出CC2450F128芯片一般需要两个时钟晶振,其最为核心的部分是天线的电路设计,需要根据实际的需要调整阻抗匹配。由于CC2450F128芯片使用的是8051微处理器核,所以其可以对外提供多个IO引脚以用于其他业务逻辑的实现。
2.2 通信协议扩展
该解决方案另一个重要的部分就是其通信协议的设计和扩展。通常需要按照蓝牙4.0的通信协议来扩展其配置,包括Setvice配置和Characteristic配置。
举例说明,可以先增加UUID为00001802-0000-1000-8000-00123456789b的Service,然后为该服务增加UUID为00002a06-0000-1000-8000-00123456789b的Characteristic。
通常需要根据应用的业务逻辑划分出多个功能大类,再对功能大类进行细分。每一个功能大类对应一个Service,每一个功能细分对应一个Characteristic。总体看来,每个应用可以包括多个Service,每个Service可以包括多个Characteristic。
3 系统性能分析
本文提供的解决方案是为了解决基于蓝牙4.0的设备的通信问题,所以必须关注于影响其通信的几个关键因素:信号强度、设备发现时间、稳定性和误报率。
3. 1 信号强度与距离的关系
信号强度是决定蓝牙4.0通信质量的最重要因素之一,为了明确实际的信号强度衰减情况,进行了深入的实际数据测量。信号强度与距离的关系的原始数据图如图3所示。在图3中,蓝色交叉点显示的是492组数据,从图3中可以看出信号强度总体走势较为明显,相同距离下的数据相对集中,部分数据有波动现象。
为了更好的分析图3中的数据,需要对数据进行处理。首先以距离为依据,对同一距离下的6项信号强度数据进行均值处理,然后对处理后的数据进行数据拟合,得到信号强度与距离的关系图。
信号强度与距离的关系图如图4所示。在图4中,红色交叉点表示对同一距离下的6项信号强度数据进行均值处理后的82组数据,蓝色线条表示对该82组数据进行拟合后的曲线。从图4中可以看出信号强度在1米以内迅速衰减,之后随着距离的增加逐渐缓慢衰减,并且衰减过程中呈现波动趋势。
根据图4中信号强度与距离所呈现的规律,可以用于蓝牙测距方面的应用,在实现上需要考虑蓝牙信号强度本身的波动性因素,采用多次采样和历史数据校正等方式来合理处
理数据,以获取可用的有效数据,提升系统本身的稳定性。
3.2 设备发现时间与距离的关系
设备发现时间是评价蓝牙4.0通信质量的另一个最重要因素。在使用蓝牙设备时,通信之前的第一步工作就是扫描蓝牙设备,然而扫描过程中设备发现时间与距离存在极大的关联,为了明确该内在关系,进行了深入的实际数据测量。整理后的设备发现时间与距离的关系的统计数据如表1所示。
从表1中不难看出,总体趋势是距离越近,设备发现时间越短;距离越远,设备发现时间越长。当距离超出10 m时,设备发现的时间非常长或者不能发现设备,所以在实际的应用上需要考虑系统的性能参数,选择合适的通信距离。
3.3 稳定性与误报率
3.3.1 设备发现压力测试
为了验证该解决方案的稳定性,在10 m内采用100个蓝牙设备做设备发现压力测试。进行了压力测试之后显示,使用100个蓝牙设备进行扫描发现,距离越近的设备发现的频率越高,距离越远的设备发现的频率越低。设备的整体发现率可达到近90%,10%的设备未被发现主要原因是距离近的设备信号较强,容易被发现,优先占用资源。
3.3.2 设备连接测试
设备的连接测试与硬件设备和上层的软件设计有极大的关系。理论上设备连接数量不受限制,但受到实际的软硬件资源的约束以及应用场景的不同,设备连接数量也有极大的不同。此处我们的原型设备同时连接3台蓝牙设备时非常稳定,同时连接5台蓝牙设备时较稳定,连接更多蓝牙设备时将出现不能连接的状况。
3.3.3 设备误报率测试
实际的应用中,将考虑蓝牙设备当前的连接状况问题。由于当距离超出10 m时,设备发现的时间非常长或者不能发现设备,此时应用中的逻辑通常认为该蓝牙设备已断开连接,所以进行了10 m误报率测试。该测试中首先将蓝牙设备连接,然后移动到不足距离10 m的位置上检查其提示连接已断开的状况。经过100测试发现其在10 m左右的位置上的误报率在15%左右,其将受到软件的逻辑的影响。
4 结束语
本文从实际应用的角度出发,设计并实现了基于蓝牙4.0的设备通信方案。该方案提供了低功耗的蓝牙解决方案,能够支持多设备的同时通信。实际实验测试结果表明,通信距离对接受到的蓝牙设备的信号强度、设备发现时间和误报率都有较大影响。本文所提供的设计方案经过大量的数据的验证,可以较好的完成蓝牙4.0通信功能,提供了多设备发现和连接的能力,以及根据信号强度测距的应用方案。