更新时间:2024-11-20 02:13:23下载pdf
本文主要介绍涂鸦 Wi-Fi 通用模组在生产测试环节常用到的四种产测模式。MCU 开发工程师根据实际需要选择一个或多个产测指令,通过 Wi-Fi 模组的回复数据判定产测是否成功并提供相关显示。
本文档不再更新。如果您想了解更多关于 MCU 标准协议接入的相关信息,请访问 MCU 标准协议接入。关于产测,参考 设备产测。
产测指令仅在生产场景中使用,主要测试 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 信号即可。建议将路由器与设备距离控制在五米左右。准备 1 台 2.4G 无线路由器(可不连接外网)。将该路由器 SSID 设置为 tuya_mdev_test
。
触发产测,将待测试设备通电。模组上电初始化交互完成后,触发设备产测。(触发方式可由工程师自定义,建议通过不常用的组合按键触发。)
开发者根据对接方式,发送的产测指令给模组。支持以下两种对接方式:
使用 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 求余 |
接收返回数据,查看测试结果
开发者根据自身对接情况(有无使用涂鸦提供的 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 |
|
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
显示测试结果。开发者根据获取到的数据,可以通过语音、显示屏、LED 灯等方式提示成功或失败的信息。
触发产测的方式可由 MCU 端自定义。在模组上电初始化交互完成后,MCU 可发送 0x2C 产测命令字将产测路由的 SSID 和密码发送给模组,Wi-Fi 模组收到配网信息后会连接路由器,并返回网络状态的变化。MCU 根据 0x03 命令字网络状态的改变,确定是否产测成功。
准备 1 台 2.4G 无线路由器,需连接网络,保持网络通讯正常。
触发产测,将待测试设备通电,模组上电初始化交互完成后,触发设备产测(触发方式可由开发者自定义,建议通过不常用的组合按键触发)。
开发者根据对接方式,发送的产测指令给模组。支持以下两种对接方式:
使用 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 字符的十六进制形式传输。
接收返回数据,查看测试结果。开发者根据自身对接情况(有无使用涂鸦提供的 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 |
|
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
连接路由是否成功需要通过协议中 报告设备联网状态指令 的内容进行判断。
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 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 求余 |
显示测试结果。开发者根据获取到的数据,可以通过语音、显示屏、LED 灯等方式提示成功或失败的信息。
红外产测仅针对支持红外功能的模组进行红外功能的收发测试。
准备一个红外设备和对应的红外遥控器。
触发产测,将待测试设备通电,模组上电初始化交互完成后,触发设备产测(触发方式可由开发者自定义,建议通过不常用的组合按键触发)。
开发者根据对接方式,发送的产测指令给模组。支持以下两种对接方式:
使用 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 求余 |
开发者根据对接方式,发送的产测指令给模组。支持以下两种对接方式:
使用 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 命令字的回复结果,判断红外产测成功或失败。如果红外测试设备超过十五秒未返回状态即判断产测失败。
模组返回:
字段 | 长度(字节) | 说明 |
---|---|---|
帧头 | 2 | 0x55aa |
版本 | 1 | 0x00 |
命令字 | 1 | 0x2f |
数据长度 | 2 | 0x0001 |
数据 | Data | 0x00:进入红外收发产测成功 0x01:进入红外收发产测失败 |
校验和 | 1 | 从帧头开始按字节求和得出的结果对 256 求余 |
根据被控的红外设备是否产生正确反应,来确定产测是否成功。
蓝牙功能测试模式介绍参见蓝牙功能测试。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈