TuyaOS蓝牙子设备开发框架授权产测蓝牙 Beacon Mesh 授权产测

蓝牙 Beacon Mesh 授权产测

更新时间:2024-04-17 06:14:41下载pdf

Beacon Mesh 的设备类型一般分为常供电设备和遥控器设备,常供电设备通常支持被遥控器控制。由于芯片资源受限,往往采用遥控器测试常供电设备,用常供电设备测试遥控器的方法来实现产测。

Beacon Mesh 的芯片类型一般分为 OTP 芯片和 Flash 芯片。

  • 一般 OTP 芯片的授权方式是直接将三元组写入到 OTP 末尾某个位置。
  • Flash 芯片的授权方式则采用通用的串口授权协议,将三元组通过产测上位机、通过串口协议传给芯片,然后写入 Flash。

关于平台上一些通用的工艺流程资料,参考 授权产测

基础知识

蓝牙通信方式

蓝牙通信有广播和连接两种方式。

广播通信

广播通信是单向通信,适用于一对多(理论上无限)的场景。在广播通信中,发出广播的设备称作 广播者,捕获广播的设备称作 扫描者

蓝牙 Beacon Mesh 授权产测

连接通信

连接通信是双向通信,适用于一对一的场景,也可用于一对多(有限)的场景。在连接通信中,主动发起连接的设备称作 主机,被动连接的设备称作 从机

蓝牙 Beacon Mesh 授权产测

名词解释

根据沿袭的使用习惯,广播者又被称作 信标,扫描者/主机又被称作 Dongle。为了叙述简洁,下文会根据使用习惯随机切换 信标广播者 等相同含义的名词。

注意:当前版本的 Dongle 硬件 同时支持 信标 和原 Dongle 的能力,通过按键设置不同的模式进行区分。更多信息,参考 涂鸦蓝牙 Dongle 使用指南

蓝牙 Beacon Mesh 授权产测

缩写

  • DUT:Device Under Test,待测设备

  • SN:Serial Number,序列号

产测方案原理

涂鸦的产测方案根据蓝牙通信方式的不同,分为 3 个大类型,分别是:

  • 基于待测设备扫描的 信标测试模式

  • 基于待测设备广播的 Dongle 测试模式 1

  • 基于待测设备连接的 Dongle 测试模式 2

其中,信标测试模式 要求待测设备具有扫描的能力,其他模式则没有该要求。

方案对比

仅测试 RSSI

方案名称 信标测试模式 dongle 测试模式 1
DUT 支持扫描能力 需要 不需要
可以测试接收灵敏度
可以测试发射功率
DUT 多占用 Flash 和 RAM 资源
DUT 固件要求 需要进行协议开发 无需进行协议开发,仅支持广播就行
SDK 稳定性 相对不稳定 相对稳定

测试外设

信标测试模式 仅支持测试单个外设,因为该模式仅通过是否扫描到特定广播作为输入条件,仅适用于单一测试场景。

如果需要测试超过一个外设,则只能选择 Dongle 测试模式 2,该模式中上位机通过 Dongle 与待测设备之间进行命令交互,适用于任何测试场景。

信标测试模式

信标是一种可以发出特定广播的测试工具。Dongle 硬件 已经兼容信标功能 M2、M3、M4 和 M5。

简单的广播通信是单向通信:信标持续发出指定广播,DUT 扫描到该广播后做出相应动作。广播内容需要双方事先约定,适用于较为简单的测试场景,示意如下:

蓝牙 Beacon Mesh 授权产测

目前已约定的广播内容(仅为信标名字)有:

  • ty_mdev:整机信标模式

  • ty_prov:授权信标模式

  • TY:传感设备测试

  • Mesh 广播:私有 Mesh 模式

Dongle 测试模式

dongle 是一种可以扫描 DUT、连接 DUT,并与 DUT 进行通信的测试工具。Dongle 硬件 已经兼容 Dongle 功能 M1。

扫描/连接通信中,最重要的问题是 Dongle 应该扫描/连接哪个 DUT?针对该问题,涂鸦根据不同需求,提供以下扫描/连接方式:

  • 通过 MAC 地址扫描/连接指定 DUT,对应 Dongle 模式:UART_CONTROL,即上位机通过 UART 下发 MAC 地址给 Dongle。

  • 通过信号强度扫描/连接附近 DUT,对应 Dongle 模式:RSSI_CONN,即 Dongle 主动扫描/连接符合设定 RSSI 范围的设备。

Dongle 扫描到待测设备,即可获得待测设备的 RSSI。如果仅测试 RSSI,则不需要连接。

产测流程

Dongle 与 DUT 一旦建立连接,就可以通过 蓝牙整机产测协议 进行不同命令的测试,非常适合于蓝牙整机的无线测试。此时,产测的一般流程为:

  1. 手动编辑 JSON 文件,选择 蓝牙整机产测协议 中的不同命令。可选,如果使用 云模组 上位机,则 JSON 文件已经由工艺完成并上传,您无需关心也不可更改。

  2. 上位机通过解析 JSON 文件,选择对应的命令下发给 Dongle。

  3. Dongle 处理命令或者将命令转发给 DUT,示意图如下:

    蓝牙 Beacon Mesh 授权产测

    UART_CONTROL

    其中 UART_CONTROL 模式下仅测试 RSSI 的基本通信流程图如下:

    蓝牙 Beacon Mesh 授权产测

授权流程

授权的主要目的是将涂鸦的授权信息写入芯片的 Flash 中。基于 云模组安防传感 的授权效果是一样的,任选其一即可。

临时授权

若暂无生产需要,也可通过以下方式进行临时授权。仅用于调试,生产时请改回原状。

  1. 找到如下代码片段。

    STATIC tuya_ble_device_param_t tuya_ble_protocol_param = {
        .use_ext_license_key = 0, //1-info in tuya_ble_sdk_demo.h, 0-auth info
        .device_id_len       = 0, //DEVICE_ID_LEN,
        .p_type              = TUYA_BLE_PRODUCT_ID_TYPE_PID,
        .product_id_len      = 0,
        .adv_local_name_len = 4,
    };
    
  2. 临时修改为如下设置:

    STATIC tuya_ble_device_param_t tuya_ble_protocol_param = {
        .use_ext_license_key = 1, //1-info in tuya_ble_sdk_demo.h, 0-auth info
        .device_id_len       = DEVICE_ID_LEN, //DEVICE_ID_LEN,
        .p_type              = TUYA_BLE_PRODUCT_ID_TYPE_PID,
        .product_id_len      = 8,
        .adv_local_name_len = 4,
    };
    

基于云模组

云模组 一般用于模组的授权产测,也可用于成品的授权。

  1. 下载并安装 涂鸦生产解决方案 中的 云模组。更多信息,参考 附录

  2. 打开 云模组,进行如下配置。

    蓝牙 Beacon Mesh 授权产测
    1. 输入生产凭证(生产凭证获取方式请咨询工艺)后回车,会自动加载出其他信息。

    2. 测试工序处,选择 烧录授权

    3. 单击 确定

  3. 打开左上角的 参数设置 进行如下配置:

    蓝牙 Beacon Mesh 授权产测
    1. 勾选 单独授权,单击 确定 按钮。

    2. 选择端口,即 DUT 对应的串口。

  4. 单击右上角的 运行,等待所有测试项运行完成即可。

    蓝牙 Beacon Mesh 授权产测

基于安防传感

该模式下仅进行授权。

  1. 下载并安装 涂鸦生产解决方案 中的 安防传感。更多信息,参考 附录

  2. 打开 安防传感,配置如下参数。

    蓝牙 Beacon Mesh 授权产测
    1. 选择本地测试模式。

    2. 输入生产凭证,生产凭证获取方式请咨询工艺。

    3. 导入测试序列 JSON 文件

      蓝牙 Beacon Mesh 授权产测
    4. 单击 编辑,配置如上图所示。

    5. 单击 启动测试

  3. 单击右上角的 测试项配置,配置如下参数:

    蓝牙 Beacon Mesh 授权产测
    1. DUT 和 Dongle 分别插到电脑上。

    2. 单击左侧的配置图标,弹出 串口连接配置,其中主串口号为 DUT 串口,波特率 9600,控制串口号可以选择一个虚拟串口或者任意其他串口,没有实际作用。

    3. 配置完成后,单击 确定

  4. 单击右上角的 运行,等待所有测试项运行完成即可。

    蓝牙 Beacon Mesh 授权产测

    如上图所示,所有测试项均为上位机发送给 DUT。

Dongle 测试模式 1 一般流程

基于安防传感

该模式下仅进行授权和测试 RSSI,无需固件任何开发,测试过程中 DUT 保持广播即可。

  1. 下载并安装 涂鸦生产解决方案 中的 安防传感。更多信息,参考 附录

  2. 打开 安防传感,配置如下参数:

    蓝牙 Beacon Mesh 授权产测
    1. 选择本地测试模式。

    2. 输入生产凭证,生产凭证获取方式请咨询工艺。

    3. 导入测试序列 JSON 文件

    4. 单击 启动测试

  3. 单击右上角的 测试项配置,配置如下参数。

    蓝牙 Beacon Mesh 授权产测
    1. DUT 和 Dongle 分别插到电脑上。

    2. 单击左侧的配置图标,弹出 串口连接配置,其中主串口号为 DUT 串口,波特率 9600,控制串口号为 Dongle 串口,波特率 9600。

    3. 配置完成后,单击 确定

  4. 单击右上角的 运行,等待所有测试项运行完成即可。

    蓝牙 Beacon Mesh 授权产测

    如上图所示,仅测试项 RSSI 信号值获取测试 是由上位机发送给 Dongle 用于测试 RSSI 的,其他测试项均为上位机发送给 DUT。

Dongle 测试模式 2 一般流程

基于安防传感

Dongle 测试模式 2 主要用于测试多外设的场景,也被称作 整机产测模式。该模式中上位机通过 Dongle 与待测设备之间进行命令交互,适用于任何测试场景。

该测试模式下,由于测试的外设不可预知,SDK 默认仅支持 进入测试模式退出测试模式 两条指令,其余外设测试指令可由用户根据测试需要,在这两条指令间自主添加。同时,可通过修改 JSON 配置文件,间接修改上位机支持的测试项目,修改方式详询工艺。

增加自定义测试项

如需在固件增加自定义测试项,可在 tuya_ble_custom_app_production_test_process 接口中增加相应 case 即可,接口默认如下:

TUYA_WEAK_ATTRIBUTE VOID_T tuya_ble_custom_app_production_test_process(UINT8_T channel, UINT8_T* p_in_data, UINT16_T in_len)
{
    ty_product_test_cmd_t* cmd = (VOID_T*)p_in_data;
    tal_util_reverse_byte((VOID_T*)&cmd->len, SIZEOF(UINT16_T));
    tal_util_reverse_byte((VOID_T*)&cmd->sub_id, SIZEOF(UINT16_T));

    if ((cmd->type != 3) || (cmd->len < 3)) {
        return;
    }

    UINT16_T data_len = cmd->len - 3;

    switch (cmd->sub_id) {
        case PRODUCT_TEST_CMD_ENTER: {
            UINT8_T tmp_buf[] = "{\"ret\":true}";
            tuya_ble_product_test_rsp(channel, cmd->sub_id, tmp_buf, strlen((VOID_T*)tmp_buf));
        } break;

        case PRODUCT_TEST_CMD_EXIT: {
            UINT8_T tmp_buf[] = "{\"ret\":true}";
            tuya_ble_product_test_rsp(channel, cmd->sub_id, tmp_buf, strlen((VOID_T*)tmp_buf));
        } break;

        default: {
        } break;
    }
}

测试流程

  1. 下载并安装 涂鸦生产解决方案 中的 安防传感。更多信息,参考 附录

  2. 打开 安防传感,配置如下参数:

    蓝牙 Beacon Mesh 授权产测
    1. 选择本地测试模式。

    2. 输入生产凭证,生产凭证获取方式请咨询工艺。

    3. 导入测试序列 JSON 文件,带 SN。

    4. 单击 启动测试

  3. 单击 测试项配置,配置如下参数。

    蓝牙 Beacon Mesh 授权产测
    1. DUT 插到电脑上。

    2. 输入 SN 号:Test12345。此处仅为研发测试用,工厂使用 SN 生成工具,详询工艺。

    3. 单击左侧的配置图标,弹出 串口连接配置,串口号为 DUT 串口,波特率 9600。

    4. 配置完成后,单击 确定

  4. 单击 运行,等待所有测试项运行完成。

    蓝牙 Beacon Mesh 授权产测

    如上图所示,所有测试项均为上位机发送给 DUT,以上步骤仅为授权。

  5. 单击 停止测试 按钮,导入整机测试序列 JSON 文件,单击 编辑,按照下图勾选测试项后,单击 确定 > 启动测试

    蓝牙 Beacon Mesh 授权产测
  6. 单击 测试项配置,配置如下参数。

    蓝牙 Beacon Mesh 授权产测
    1. Dongle 插到电脑上,DUT 供电。

    2. 输入 SN 号:Test12345,此处仅为研发测试用,工厂使用扫码枪扫描二维码,详询工艺。

    3. 单击左侧的配置图标,弹出 串口连接配置,串口号为 Dongle 串口,波特率 9600。

    4. 配置完成后,单击 确定

  7. 单击 运行,等待所有测试项运行完成。

    蓝牙 Beacon Mesh 授权产测

    如上图所示,所有测试项均为上位机发送给 Dongle,用于测试 RSSI 或其他用户自定义测试项。

附录

获取涂鸦生产解决方案

申请 PMS 账号

  1. 前往 涂鸦 PMS 系统,注册 PMS 账号。注册流程如下图,根据实际情况选择个人开发者或者公司,按照注册指引填写相关信息。若您的邮箱收到涂鸦发送的邮件,说明审核已经通过。

    蓝牙 Beacon Mesh 授权产测
  2. 登录涂鸦 PMS 系统,依次单击 知识库管理 > 软件下载,搜索 生产解决方案,开始下载 生产解决方案 工具。

    蓝牙 Beacon Mesh 授权产测
  3. 下载完成后,按照默认配置安装,打开 生产解决方案 工具。登录账号和密码同 PMS 系统。

  4. 单击 云模组,等待安装完成。云模组 一般用于模组授权产测,也可用于成品的纯授权。

    蓝牙 Beacon Mesh 授权产测
  5. 单击 安防传感,等待安装完成。安防传感 一般用于成品授权产测,支持整机产测功能。

    蓝牙 Beacon Mesh 授权产测

获取 Dongle

涂鸦 IoT 开发平台,获取开发板,开发板对应的 物料编码2.03.99.00045