生产测试说明

更新时间:2021-08-24 06:18:28下载pdf

本文主要介绍涂鸦 Wi-Fi 通用模组在生产测试环节常用到的四种产测模式。MCU 开发工程师根据实际需要选择一个或多个产测指令,通过 Wi-Fi 模组的回复数据判定产测是否成功并提供相关显示。

简介

产测指令仅在生产场景中使用,主要测试 Wi-Fi 模组功能及模组与控制板的通讯能力。

  • 扫描指定路由模式

    模组接收到 MCU 发送的 0x0e 命令字后,扫描固定名称的无线信号并返回信号强度值。MCU 根据信号强度判定 Wi-Fi 模组射频性能是否符合要求。本模式不连接网络,用时短,产测效率高,多台设备可同时进行测试。

  • 连接指定路由模式

    MCU 通过 0x2c 命令字,将产测路由的 SSID 和密码传给模组,模组连接路由器并返回云端通讯状态,MCU 根据返回的网络状态判定产测是否成功。此模式产测路由器须有联网能力,且由于路由承载能力有限,同一时间产测设备不宜过多。由于会进行云端链接测试,产测结果更加可靠。

  • 红外功能测试模式

    此模式为单独的红外功能的测试,用来测试模组红外收发引脚是否工作正常,未使用相关功能的开发者,可无需关心。

  • 蓝牙功能测试模式
    此模式为单独的蓝牙功能的测试,检测蓝牙扫描结果和信号强度百分比。未使用相关功能的开发者,可无需关心。

扫描指定路由模式

触发产测的方式可由 MCU 端自定义,在模组与 MCU 初始化数据交互完成后,MCU 可发送 0x0e 产测命令字,模组扫描指定的路由(SSID 为 tuya_mdev_test),返回扫描结果和信号强度百分比。MCU 根据信号强度判定产测成功或失败。

注意事项

  • 路由器不需要联网,只需要产生 tuya_mdev_test 名称的 Wi-Fi 信号即可。建议将路由器与设备距离控制在五米左右。
  • 通常信号强度大于等于 60% 为合格。可以根据产线和工厂环境自行调整。
  • MCU 需等到模组初始化交互完成后(MCU 回复完模组的心跳包和产品查询包),再发送产测指令给模组进行产测。建议上电五秒后再触发产测。

产测流程说明

生产测试说明

  1. 准备 1 台 2.4G 无线路由器(可不连接外网)。将该路由器 SSID 设置为 tuya_mdev_test

  2. 触发产测,将待测试设备通电。模组上电初始化交互完成后,触发设备产测。(触发方式可由工程师自定义,建议通过不常用的组合按键触发。)

  3. 开发者根据对接方式,发送的产测指令给模组。支持以下两种对接方式:

    • 使用 MCU_SDK
      只需要在检测到产测触发后,调用函数 mcu_start_wifitest() 开启产测。

    • 不使用 MCU_SDK
      可参考涂鸦 Wi-Fi 模组通用串口的 Wi-Fi 功能性测试(扫描指定路由)指令,发送 0x0e 命令字给模组。

    例:0x55 aa 03 0e 00 00 校验和

    字段 长度(字节) 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x0e
    数据长度 2 0x0000
    数据 Data
    校验和 1 从帧头开始按字节求和得出的结果对 256 求余
  4. 接收返回数据,查看测试结果

    开发者根据自身对接情况(有无使用涂鸦提供的 MCU_SDK ),查看测试结果:

    • 使用 MCU_SDK

      在protocol.c文件wifi_test_result函数内查看测试结果。

    void wifi_test_result(unsigned char result,unsigned char rssi)
    { 	
    #error "请自行实现 Wi-Fi 功能测试成功/失败代码,完成后删除该行"
    		if(result == 0)
    		{
    			//测试失败
    			if(rssi == 0x00)
    			{
      				//未扫描到名称为tuya_mdev_test路由器,请检查
    			}
    			else if(rssi == 0x01)
    			{
      				//模组未授权
    			}
    		}
    		else
    		{
    			//测试成功
    			//RSSI 为信号强度(取值范围为 0~100,0 表示信号最差,100 表示信号最强)
    		}
    }	
    
    • 不使用 MCU_SDK

      自己对接串口协议的开发者,可参考涂鸦 Wi-Fi 模组通用串口的 Wi-Fi 功能性测试(扫描指定路由)指令,根据接收到的数据查看测试情况。

      说明:模组回复示例, 0x55 aa 00 0e 00 02 01 64 校验和 (信号强度 100,产测成功)。

    MCU 发送:

    字段 长度(字节) 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x0e
    数据长度 2 0x0000
    数据 Data
    校验和 1 从帧头开始按字节求和得出的结果对 256 求余

    模组返回:

    字段 长度(字节) 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x0e
    数据长度 2 0x0002
    数据 2
    • Data[0]:
      • 0x01:即成功,Data[1]表示信号强度(0-100, 0信号最差,100信号最强)。
      • 0x00:即失败,Data[1]为0x00,表示未扫描到指定的 SSID。
    • Data[1]:0x01,表示模组未烧录授权 Key。
    校验和 1 从帧头开始按字节求和得出的结果对 256 求余
  5. 显示测试结果。开发者根据获取到的数据,可以通过语音、显示屏、LED 灯等方式提示成功或失败的信息。

连接指定路由模式

触发产测的方式可由 MCU 端自定义。在模组上电初始化交互完成后,MCU 可发送 0x2C 产测命令字将产测路由的 SSID 和密码发送给模组,Wi-Fi 模组收到配网信息后会连接路由器,并返回网络状态的变化。MCU 根据 0x03 命令字网络状态的改变,确定是否产测成功。

注意事项

  • MCU 发送路由信息模组返回成功后,模组会使用相关信息去连接路由。
  • MCU 判断是否连接上路由器,根据收到 0x03 命令字的数据 (状态3-Wi-Fi已配置且连上路由器)为准。
  • 判断失败条件:
    • MCU 收到返回失败状态。
    • MCU 超过十五秒没有收到连上路由的状态包。
  • 产测成功后,可以重新发送测试命令,再次进入产测。如果没有收到连上路路由的状态包,表示模组正在产测中。需要重置模组或者重新上电后发送测试命令,才能再次进入产测。
  • 模组需要在处于未被配网的状态下才能完成连接测试。
  • 产测前 MCU 必须回复模组的心跳包和产品查询包,模组完成初始化交互完成后,才能进入连接路由产测模式。
  • 路由器名称字符串长度最大支持 32 字节,路由器密码字符串长度最大支持 64 字节。

产测流程说明

生产测试说明

  1. 准备 1 台 2.4G 无线路由器,需连接网络,保持网络通讯正常。

  2. 触发产测,将待测试设备通电,模组上电初始化交互完成后,触发设备产测(触发方式可由开发者自定义,建议通过不常用的组合按键触发)。

  3. 开发者根据对接方式,发送的产测指令给模组。支持以下两种对接方式:

    • 使用 MCU_SDK

      只需要在检测到产测触发后,调用对应函数mcu_start_connect_wifitest()开启产测,将产测路由的 SSID 和密码参数填入即可。

    • 不使用 MCU_SDK(自行对接串口协议)

      参考涂鸦 Wi-Fi 模组通用串口的 Wi-Fi 功能性测试(连接指定路由) 指令,发送 0x2C 命令字给模组。

    MCU 发送:

    字段 长度(字节) 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x2C
    数据长度 2 xxxx
    数据 Data {“ssid”:”xxx”,”password”:”xxxxxxxx”}
    ssid:路由名称
    password:路由密码
    校验和 1 从帧头开始按字节求和得出的结果对 256 求余

    说明:Data 区数据以 ASCII 字符的十六进制形式传输。

  4. 接收返回数据,查看测试结果。开发者根据自身对接情况(有无使用涂鸦提供的 MCU_SDK),查看测试结果:

    • 使用 MCU_SDK

      protocol.c 文件 wifi_connect_test_result 函数内查看测试结果。

    void wifi_connect_test_result(unsigned char result)
    {
    //#error "请自行实现 Wi-Fi 功能测试成功/失败代码,完成后请删除该行"
    if(result == 0)
    {
    	//路由信息接收失败,请检查发出的路由信息包是否是完整的JSON数据包
    
    }
     	else
     	{
     		//路由信息接收成功,产测结果请注意WIFI_STATE_CMD指令的wifi工作状态
    	}
    }
    
    • 不使用 MCU_SDK

      Wi-Fi 模组收到 MCU 发出的连接指定路由指令后,模组会返回信息接收结果。这里的成功仅指串口数据交互成功,网络的连接测试是否成功需要关注模组在连接网络过程中发送的 0x03 命令字的数据变化。

    模组返回:

    字段 长度(字节) 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x2c
    数据长度 2 0x0001
    数据 1
    • 0x00:路由信息接收失败(请检查发出的路由信息包是否是完整的 JSON 包数据)
    • 0x01:路由信息接收成功(请注意在返回结果中查看网络状态包)
    校验和 1 从帧头开始按字节求和得出的结果对 256 求余

    连接路由是否成功需要通过协议中 报告设备联网状态指令 的内容进行判断。

    • MCU 收到模组返回状态 4 的网络状态帧(Wi-Fi 已配置且连接上路由器),则表示模组连指定路由成功。
    • MCU 收到模组返回信息接收失败,或者超过十五秒没有收到连接路由成功的状态包,则认为测试失败。
    字段 长度(字节) 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x03
    数据长度 2 0x0001
    数据 1 指示 Wi-Fi 工作状态:
    0x00: 状态1
    0x01: 状态2
    0x02: 状态3
    0x03: 状态4
    0x04: 状态5
    0x05: 状态6
    校验和 1 从帧头开始按字节求和得出的结果对 256 求余
  5. 显示测试结果。开发者根据获取到的数据,可以通过语音、显示屏、LED 灯等方式提示成功或失败的信息。

红外功能测试模式

红外产测仅针对支持红外功能的模组进行红外功能的收发测试。

注意事项

  • 测试环境中红外信号少,无太多交错纵横的红外信号。
  • 系统上电后请延迟 5 秒开始产测,等待模组启动。
  • 红外产测功能需要在未配网状态下才会进入。
  • 模组进入红外产测状态后,就会进入红外学习状态。
  • 模组一旦进入红外产测模式,即一直处于产测状态,不断根据学习到数据再发送出来。当模组配网成功或者被断电,即退出产测。

产测流程说明

生产测试说明

  1. 准备一个红外设备和对应的红外遥控器。

  2. 触发产测,将待测试设备通电,模组上电初始化交互完成后,触发设备产测(触发方式可由开发者自定义,建议通过不常用的组合按键触发)。

  3. 开发者根据对接方式,发送的产测指令给模组。支持以下两种对接方式:

    • 使用 MCU_SDK

      只需要在检测到产测触发后,调用对应开启产测函数 mcu_start_ir_test() 即可。

    • 不使用 MCU_SDK

      参考涂鸦 Wi-Fi 模组通用串口的红外收发产测指令发送对应的数据给模组。

      说明:模组返回示例 0x55 aa 03 2f 00 00 校验和。

    MCU 发送:

    字段 长度(字节) 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x2f
    数据长度 2 0x0000
    数据 Data
    校验和 1 从帧头开始按字节求和得出的结果对 256 求余
  4. 开发者根据对接方式,发送的产测指令给模组。支持以下两种对接方式:

    • 使用 MCU_SDK

      protocol.c 文件 ir_tx_rx_test_result 函数内查看测试结果。

    void ir_tx_rx_test_result(unsigned char result,unsigned char rssi)
    {
    //#error "请自行实现红外进入收发产测功能测试成功/失败代码,完成后删除该行"
    
    		if(result == 0)
    
    		{
    
    			//红外进入收发产测成功
    
    		}
    
    	 	else
    
    	 	{
    
    	 	//红外进入收发产测失败,请检查发出的数据包
    		}
    }		
    
    • 未使用 MCU_SDK

      可根据接收到的 0x2f 命令字的回复结果,判断红外产测成功或失败。如果红外测试设备超过十五秒未返回状态即判断产测失败。

      • 0:进入红外收发产测成功。使用红外遥控器对准模组的红外接收点,模组学习后,可以发送红外码来控制设备。设备按照遥控器状态对应展示,则红外收发产测成功。
      • 1:进入红外收发产测失败。

    模组返回:

    字段 长度(字节) 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x2f
    数据长度 2 0x0001
    数据 Data 0x00:进入红外收发产测成功
    0x01:进入红外收发产测失败
    校验和 1 从帧头开始按字节求和得出的结果对 256 求余
  5. 根据被控的红外设备是否产生正确反应,来确定产测是否成功。

蓝牙功能测试模式

蓝牙功能测试模式介绍参见蓝牙功能测试