蓝牙通用方案

更新时间:2022-03-29 03:53:21下载pdf

本文介绍了涂鸦 BLE 单点通用方案 MCU 对接开发的过程。MCU 只需要对接涂鸦 BLE 通用对接协议,即可实现联网,涂鸦提供完整的模组、App 及云端服务。

通信过程

蓝牙 BLE(Bluetooth Low Energy)技术是一种无线数据和语音通信开放的全球规范,是一种高普及率、低成本的近距离无线连接协议方案。BLE 单点通用方案是涂鸦 MCU 对接的主流方案之一。

  • 以下为无网关 BLE 单点通信示意图。

    蓝牙通用方案
  • 以下为配合蓝牙网关 BLE 单点通信示意图。

    蓝牙通用方案

开发流程

开发流程主要包含创建产品、硬件调试、软件开发、功能调试等几个环节。

第一步:创建产品

本小节简单介绍创建产品流程。更详细的步骤,请参考 MCU 对接方案概述

  1. 登录 IoT 工作台,创建产品。根据实际需求选择产品品类,联网方式选择 蓝牙 BLE

    涂鸦 BLE 模组的通用固件 将低功耗模式和正常模式集成在了一起,您可以通过协议指令选择是否使能低功耗功能。

    • 正常模式适用于长供电,对功耗不敏感的产品。
    • 低功耗模式适用于电池供电类对功耗要求较高的产品。
  2. 产品创建完成后,用户可以根据产品实际需求选择功能、面板、模组及固件,并下载对应生成的 MCU 开发包。

    蓝牙通用方案

  3. 选择模组。

    在平台创建产品选择模组时,平台会有一些常用模组型号的推荐。选定模组和固件后,可在线购买模组样品。此时,硬件工程师可以进入画板阶段,以下为硬件开发相关文档:

    注意:当使用电池作为供电电源时,当供电电压低于正常工作电压时,芯片内部 Flash 操作将有出错的风险,造成固件或者用户数据被异常修改。您可以使用以下两种方法避免:

    • 当 MCU 检测到电池电压过低时,切断模组工作电源。
    • 当 MCU 检测到电池电压过低时,可以关闭广播和系统计时,让芯片处于深度睡眠模式,从而不会工作。泰凌微模组最低工作电压为 1.8V,MCU 可以设置在 2.0V(略高于 1.8V)关闭模组。

第二步:配网验证

拿到模组后,可先不必着急编写代码,首先确定模组是否工作正常。使用涂鸦提供的模组调试助手(MCU 模拟模式)与模组配合可以配网实操,验证模组的同时可以熟悉协议交互流程,后续开发调试效率将极大提升。涂鸦 BLE 串口通用协议架构如下图所示。

蓝牙通用方案
  • 低功耗控制脚:目前,门锁通用对接方案(TYBN1,BK3431Q)该控制脚必选,需要 MCU 接上配合使用,具体可参考 BLE通用串口协议门锁附加功能章节。其他通用对接方案,若不使用低功耗功能,只需接 TX、RX 两根引脚,即可完成基本的协议交互。若要使用低功耗模式,您还需要接上模组的低功耗控制脚。

  • 连接状态通知脚:在低功耗模式下,当手机蓝牙连接成功时,该 GPIO 将输出高电平,当蓝牙断开连接时,GPIO 输出低电平。

    注意: 部分模组不支持该功能,详情请参考 BLE通用串口协议低功耗说明章节。可选,不同型号引脚丝印不同,具体请参考对应的模组规格书。

涂鸦模组调试助手支持 MCU 模拟模式,助手会模拟 MCU 自动回复模组正确的协议数据,用手机给模组配网后可测试 DP 数据的上报下发。下文简要介绍助手和模组配网实操的主要步骤,使用前您可以参考 涂鸦模组调试助手 提前了解如何使用涂鸦模组调试助手。下图描述了涂鸦模组调试助手的 MCU 模拟模式连线。

蓝牙通用方案
  1. 根据最小系统原理图,搭建模组外围电路,简单测试可直接飞线。

  2. 打开开发包中涂鸦模组调试助手,导入调试文件。协议选择 BLE 单点通用协议,MCU 模拟模式。

  3. 将模组串口通过 USB 转 TTL 工具接到电脑端,助手选择对应的串口及波特率,打开串口点击启动,将看到模组和上位机自动进行初始化流程协议交互。

    注意:蓝牙模组上电会不断发送心跳包,收到正确回复后,进行后续初始化协议的交互。若上电无数据发出,请检查模组外围电路是否正确。

  4. 点击重置模组,模组会断开模组蓝牙连接,解除蓝牙绑定关系,清除模组缓存信息,并使模组重启。

    蓝牙通用方案

第三步:软件开发

在硬件调试环节可以看到模组与 MCU 有一系列的串口协议交互数据,对于数据的解析部分,用户可参考开发包中协议文档。协议主要分为基础协议和功能协议两部分。

  • 基础协议:和产品无关,是模组共有协议,包括模组初始化指令及部分扩展功能指令。

  • 功能协议:主要基于基础协议的上报下发命令字,对 DP 数据内容格式做了详细说明。更多详情,请参考 BLE 单点通用串口协议

MCU 对接涂鸦模组协议,有两种途径移植 MCU SDK 或自行对接协议。

  • 自行对接协议:对于 MCU 资源有限或不适宜移植 MCU SDK 情况时,客户可以选择自行对接串口协议。

  • 移植 MCU SDK:若MCU资源足够,一般建议用户直接移植 MCU SDK,开发高效便捷。开发包中 MCU SDK 是涂鸦提供的基于 C 语言的协议应用代码,可直接添加到 MCU 工程中。MCU SDK 对 MCU 硬件资源需求:

    • 4 KB 的 Flash 扇区
    • 100 Bytes 左右的 RAM,具体数值与 DP 数据长度有关
      如果配置了OTA功能,RAM 必须大于 260 字节
    • 函数嵌套级数 9 级

    若资源不足的用户,可自行对接协议,SDK 包中的函数依然可以作为参考。更多详情,请参考 MCU SDK 移植指南

第四步:验证协议

移植 MCU SDK 代码开发完成后,可以使用涂鸦模组调试助手 - 模组模拟模式,验证 MCU 代码的正确性。使用方法与 MCU 模拟模式类似,模拟模组模式下,助手会自动发送初始化数据流,验证 MCU 回复是否正确,对于错误数据给予相应提示。初始化交互通过后,可以手动点击测试其他拓展功能。

注意:涂鸦模组调试助手模组模拟模式,没有联网功能,仅用来验证 MCU 串口协议收发正确性。测试完成后,MCU 可接实际模组配网联调。

蓝牙通用方案

下图描述了涂鸦模组调试助手中模组模拟模式连线。

蓝牙通用方案

第五步:功能联调

在使用助手验证完毕代码后,MCU 可连接模组使用 App 配网,进入功能联调阶段。功能联调主要测试各 DP 上报下发是否正确,在调试过程有一些常用工具链接如下。

  • 运营中心-后台日志查询入口 :根据设备 ID 可查询相关设备后台日志数据。
  • 涂鸦在线支持:涂鸦提供在线化的支持服务,当文档无法解答相关疑问时,您可直接在线提问,专业技术团队将为您答疑。
  • FAQ:开发常见问题,可提前了解,有效避免踩坑。
  • App 日志抓包:若碰到 App 异常情况,可以通过调试版本的 App ,抓日志提供给涂鸦工作人员进行排查。