模块型号:CLM920_MV9、CLM920_LV9
应用场景
主控有操作系统,如户外摄像头等,有远程唤醒需求,使用usb虚拟出来的网卡上网。操作系统一般使用linux或者liteos,支持rndis或者ECM网卡。
驱动支持
修改主控驱动支持ttyUSB,
数据唤醒及休眠配置流程
初始化指令需根据模块平台来设置
ASR1606平台设置方法如下:
1.部分功能需要启用以下开关指令。
AT+YGFEATURECFG=2,1 //只需设置一次即可
AT+CFUN=1,1 //重启生效
AT+YGFEATURECFG? //确认sleep2为“1”
2.如果上位机需要通过GPIO控制模块休眠唤醒的话,开启需发送AT^GPIOWAKE=1(MV9)/AT^UARTWAKE=1(LV9),重启生效,仅需设置一次,AT^GPIOWAKE?(MV9)/AT^UARTWAKE?(LV9),查询是否启用。,如果不需要通过GPIO控制模块休眠唤醒,该功能不需要考虑。
3.设置休眠参数,如AT+ENTERSLEEPHEX=1设为HEX,默认为1,实际发送给服务器会转换成原始数据(0为原始数据,有特殊字符时建议HEX模式)
4.设置服务器、心跳包、唤醒包信息,如服务器地址192.168.0.100,服务器端口号12346,心跳间隔180,心跳包发“sleep12345”,唤醒包发“wake123”,登录包为“login”、应答包为“ok”、心跳包回复“data”(任意数据唤醒,唤醒包可设置为空“”;无登录包以及应答包可将登录包以及应答包设置为空“”)
AT+ENTERSLEEPHEX=1时可设置以下:
AT+ENTERSLEEP="192.168.0.100",12346,180,"736c6565703132333435","77616B65313233","6c6f67696e","6f6b","64617461"
AT+ENTERSLEEPHEX=0时可设置以下:AT+ENTERSLEEP="192.168.0.100",12346,180,"sleep12345","wake123","login","ok","data"
AT+ENTERSLEEP参数说明:
AT+ENTERSLEEP=<server_ip>,<server_port>,<interval>,<heartbeat_data>,<wakeup_data>,<auth_data>,<auth_resp>,<heartbeat_resp>
<server_ip>:服务器地址;
<server_port>:服务器端口号;
<interval>:心跳间隔时间(1-21600)秒;
<heartbeat_data>:心跳包,(范围:1-512字节)
<wakeup_data>:唤醒包,(范围:1-512字节)
<auth_data>:登录包,(范围:1-1024字节)
<auth_resp>:应答包,(范围:1-32字节)
<heartbeat_resp>:心跳包回复头,(范围:1-32字节)
设置登录包、应答包、USB断开方式、连接重试次数及发送重试次数(若AT+ENTERSLEEP设置了登录包、应答包,会被AT+ENTERSLEEPCFG设置的所覆盖。
5.如果不需要设置USB断开方式及重试次数,该步骤可跳过。连接重试次数默认为3;发送重试次数默认为3)。
如AT+ENTERSLEEPCFG="6c6f67696e","6f6b",1,3,2 //登录包为“6c6f67696e”、应答包为“6f6b”、USB断开方式固定为1表示由模块主动断开USB、连接重试次数3、发送重试次数为2。
6.AT+CSCLK=1设置允许模块进入休眠。
7.主控进入休眠前发送AT+ENTERSLEEP指令并拉高MAIN_DTR,模块建立与服务器的TCP连接,此时服务器会收到指令设置的登录包,服务器需10s内回复应答包,如示例中模块发送登录包login,服务器10s内需要返回应答包ok,若设置登录包和应答包为空,模块连接服务器时服务器会收到心跳包,服务器10s内也需要返回应答ok响应,之后模块拉低RI脚进入休眠。
8.如果第5步中USB连接未设置成1(不推荐这种使用方法,该种场景是主控和模块USB长连接场景下,模块内部断开USB,休眠后较USB物理断开功耗稍微偏大点),此时建议根据RI脚状态控制USB连接状态,此功能下,1、未连接上服务器;2、登录包校验失败、3、心跳包连续丢失、4、收到唤醒包、5网络异常;状态下RI脚都会保持或者恢复高状态;主控可判定RI脚是低状态后,主控自身关机或者休眠以及断开USB,收到RI高信号时恢复主控及USB,以上条件均满足的情况下,USB断开后,模块会很快进入低功耗状态,且保持和服务器的连接,收到唤醒包会唤醒模块拉高RI脚再唤醒主控及USB。
心跳
模块根据设置的参数,周期发送心跳给服务器,维持tcp的长连接。
唤醒
网络唤醒包触发唤醒
1.手机等APP发送唤醒信号给服务器,服务器发送唤醒包给指定设备
2.唤醒时,模块RI脚会输出高电平,可用于唤醒主控以及控制USB连接
3.主控被唤醒后,拉低模块MAIN_DTR脚,快速恢复网络
主控唤醒
1.拉低模块MAIN_DTR脚
2.唤醒时,模块RI脚会输出高电平,可用RI脚状态控制USB连接
3.快速恢复网络