模组初始化

更新时间:2024-05-14 08:00:15

模组初始化指的是在模组上电后,MCU 和模组完成指定的交互,完成模组基本的配置,达到可以配网连接云端,以及状态上报,子设备添加等功能状态的过程。

基础流程

模组上电后,模块会根据以下流程完成初始化,需要 MCU 回复对应的指令。

网关 Pro 无需查询工作模式

模组初始化

查询产品信息 01 命令字

模组启动后会发送 01 命令字的协议,来向 MCU 获取产品信息,比如产品 ID,配网模式,网关支持的能力等。

此处仅作为示例,具体内容可以参见对应产品的完整协议,如有出入以协议为准。

网关 MCU 通用对接协议 > 查询产品信息
网关 Pro MCU 对接通信协议 > 查询产品信息

完成此步操作后,模块完成部分初始化,如果未配网,则进入配网状态,如果已经配网,则尝试连接配置的网络,连接云端。

指令示例

模组发送

55 AA 01 01 00 00 01

MCU 回复

55 AA 01 01 00 3F 7B 22 76 22 3A 22 31 2E 30 2E 30 22 2C 20 22 6D 22 3A 31 2C 20 22 63 61 70 22 3A 30 2C 20 22 70 22 3A 22 6D 68 6E 6D 70 71 7A 66 37 6E 74 7A 6D XX XX XX 22 2C 20 22 6E 22 3A 30 2C 20 22 73 22 3A 30 2C 20 22 61 22 3A 30 7D XX

XX 为隐去部分,仅作示例,您需使用自己创建的产品 PID 填写。

数据段内容为

{"v":"1.0.0", "m":1, "cap":0, "p":"mhnmpqzf7ntzm***", "n":0, "s":0, "a":0}

字段 字段说明
“v”:"1.0.0 MCU 版本号为1.0.0
“m”:1 配网方式为默认配网
“cap”:0 不支持本地群组不支持本地场景网关自身没有 DP 功能不支持 MCU 升级
“p”:“mhnmpqzf7ntzm***” 产品 ID 为 mhnmpqzf7ntzm***
“n”:0 配网模式为 SmartConfig 和 AP 配网模式共存
“s”:0 非安防网关,不具备安防能力
“a”:0 不支持安防报警信息显示(对于非安防网关,该字段无意义)

查询工作模式 02 命令字

收到产品信息并完成配网等模式的初始化后,模块会向 MCU 查询工作模式。

模组工作模式主要针对如何指示 Wi-Fi 的工作状态以及如何重置 Wi-Fi。

详细内容内容参见协议内容,如有出入以协议为准。
网关 MCU 通用对接协议 > 查询 MCU 设定模组的工作模式

工作模式主要分为以下两种方式

  • MCU 与模组配合处理

    • 模组状态通知:在此种模式下,模组的状态通过 0x03 命令字下发给 MCU,由 MCU 根据收到的状态值来进行自行处理判定。
    • 重置方式:模组重置 Wi-Fi 依赖于 MCU 主动发送 0x04 或者 0x05 命令字来对模组进行重置。
  • 模组自处理

    • 模组状态通知:在该模式下,模组的 Wi-Fi 状态指示将通过驱动 Wi-Fi 的 GPIO 来指示。只需要在 MCU 指定的模组的 GPIO 管脚接上 LED(低点亮)就可以通过 LED 的闪烁状态来指示 Wi-Fi 的状态。
    • 重置方式:Wi-Fi 模组的重置同样变为检测 MCU 指定的模组的 GPIO 电平变化来执行,模组检测到指定的 GPIO 电平低电平持续 5 秒以上就会执行重置。

可以使用的 GPIO 管脚请参见对应的模组规格书

指令示例

模组发送

55 AA 00 02 00 00 01

MCU 回复

  • MCU 与模组配合处理 :55 AA 00 02 00 00 04
  • 模组自处理:55 AA 00 02 00 04 01 03 01 02 0C
    (指示灯 01 03:PB_3,重置按钮 01 02:PB_2)

波特率自适应

由于不同 MCU 的特性不同,考虑更好的兼容性。通用对接网关的串口无需更改固件就可以在 9600 和 115200 波特率之间切换。您可以根据自己的需求选择通信波特率。

以下为通用对接波特率自适应的流程:

首次上电

模组会在 115200 以及 9600 波特率之间来回切换,发送 查询产品命令(命令字 01)。如果模块在对应的波特率下收到查询产品命令的回复则锁定该波特率,并将该波特率保存。然后根据回复执行初始化的流程。

非首次上电

首先会读取上次保存的波特率并发送 查询产品命令(命令字 01),如果 MCU 没有及时回复,则回到初次上电的流程,开始在 115200 和 9600 波特率之间来回切换。