本手册介绍合宙Luat嵌入式Wi-Fi模块的AT+指令通讯协议,AT+指令协议采用一套基于ascii的命令行格式指令集,通过UART接口与Wi-Fi芯片进行通讯。
本部分内容为用户命令,用于实现产品的参数配置及联网传输等功能,命令列表如下:
1.2.2错误代码
本系统支持的错误代码定义如下,用于AT+指令协议中的响应消息:
2 AT指令协议
本模块使用AT+指令协议作为用户控制协议。AT+指令协议采用一套基于ascii的命令行格式指令集,下面对其语法格式和处理流程进行描述。
l 格式说明
<>:表示必须包含的部分
[]:表示可选的部分
l 命令消息
AT+[op][para1],[para2],[para3],[para4]…
AT+:命令消息前缀
CMD:指令字符串
[op]:指令操作符,当命令需要带参数时,可以指定参数的操作类型,包括:
=,参数/返回值前导符
=!,在设置参数类命令中,表示将修改同步至flash,重启不消失;如果设置命令没有!只有=,则表示只保存在内存中,重启后参数消失。
=?,在设置参数类命令中,查询当前设置
:回车,ascii字符0x0d
l 响应消息
+[op][para1],[para2],[para3],[para4]…
+:响应消息前缀
RSP:响应字符串
OK 成功
ERR 失败
:回车,ascii字符0x0d
:换行,ascii字符0x0a
l 数据类型
String:字符串,以双引号包围,内容不含引号,如:"this is a string"
Dec:十进制数字,如:10
Hex:16进制数字,如:a
Ip:ip地址串,如:192.168.0.1
MAC:由12个16进制数字组成,如001EE3A80102
AT+指令协议采用命令+响应的形式,绝大多数指令需要接收方在处理完成后返回响应消息,如果在前一个命令处理过程中,再次接收到新的命令,则将其静静丢弃,不返回任何消息,如下图所示:
对于某些特殊命令,如AT+SKSND、AT+SKRCV,需要在指令或响应详细后面传输二进制数据,此时命令传输的接收方暂时进入透明传输状态,开始接收二进制数据流,直到接收到在命令或消息的字段中规定长度的数据或等待超时后,自动退出透明传输状态,其流程如下图所示:
范例1:返回成功消息
AT+ +OK 范例2:返回错误消息 |
AT+WJOIN +ERR=-10 范例3:使用输入参数 |
AT+UART=9600,1,1,0 +OK 范例4:使用参数同步到Flash操作符 |
AT+ATPT=!500 +OK
范例5:使用查询操作符<?> |
AT+ATPT=? +OK=500
|
2.2指令定义
l 功能:空操作,可用于检测程序是否正常响应。
AT+ +OK |
l 参数:无
l 示例:(→表示输入,←表示返回或主动上报,下同)
→ |
AT+ |
← |
+OK |
AT+Z +OK |
l 示例:
l 功能:切换串口指令回显。
l 格式(ASCII):
AT+E +OK |
l 参数:无
l 示例:
→ |
AT+E |
← |
+OK |
l 功能:
串口进入透明传输模式;系统在透明传输模式下接收到符合触发条件的逃逸字符时退出此模式。
注意:进入透传前,必须满足下面的条件
1.联网;
2.创建一个socket;
3.设置透传的默认连接为当前创建的socket。
l 格式(ASCII):
AT+ENTM +OK |
l 参数:无
l 示例:
进入透传模式需要以下几个步骤:
l 功能:
设置系统进入节能模式(Wi-Fi OFF/睡眠/待机状态)。
AT+ENTS=[ps_type],[wake_type],[delay_time],[wake_time] +OK |
delay_time:延迟时间,单位ms,有效值 100~1000。
wake_time:唤醒时间,单位ms,有效值1000~65535。
注:
①、Wi-Fi OFF节能模式,只有在网络断开的状态下,设置才有效,wake_time参数无意义。
②、Standby和sleep节能模式,都会导致网络连接断开,唤醒会复位。
③、设置WAKEUP管脚唤醒模式,wake_time参数无意义。
l 示例:
1. Wi-Fi OFF节能模式
3. sleep模式
l 功能:恢复 FLASH 中的出厂设置;恢复后的设置需系统重启后才能生效。
l 格式(ASCII):
AT+RSTF +OK |
l 参数:无
l 示例:
→ |
AT+RSTF |
← |
+OK |
l 功能:将保存在内存中的参数全部更新至 FLASH。
l 格式(ASCII):
AT+PMTF +OK |
l 参数:无
l 示例:
AT+PMTF命令相当于将上述三个命令的参数保存到NV里,这样模块重启或关开机后不需要重新设置这些参数。效果等同于将每个命令的参数单独保存(如下所示):
l 功能:获取无线网卡的物理地址。
l 格式(ASCII):
AT+QMAC +OK= |
l 参数:
mac address:物理地址,返回格式如下
l 示例:
→ |
AT+QMAC |
← |
+OK=286dcd004e7d |
l 功能:获取SoftAP物理地址,仅在SoftAP、APSTA模式有效。
l 格式(ASCII):
AT+APMAC +OK= |
l 参数:
mac address:物理地址,返回格式如下
l 示例:
→ |
AT+APMAC |
← |
+OK=2a6dcd004e7d |
l 功能:
获取系统版本信息,包括硬件版本和固件版本。
l 格式(ASCII):
AT+QVER +OK= |
l 参数:
firm:固件版本信息,
ASCII |
字符串格式,如" AirM2M_Luat_WiFi_V008_WM " |
l 示例:
→ |
AT+QVER |
← |
+OK=AirM2M_Luat_WiFi_V008_WM |
l 功能:
设置/查询无线网络类型。
l 格式(ASCII):
AT+WPRT=[!?][type] +OK[=type] |
l 参数:
type:网络类型
l 示例:
设置成SoftAp模式:
→ |
AT+WPRT=!2 |
← |
+OK |
l 功能:
当无线网卡作为STA时,该指令用于设置/查询本端IP地址。需要说明的是,当地址类型设置为DHCP Server使能时,使用本命令无法查询无线网卡实际动态分配到的IP地址信息。查询可以使用AT+LKSTT命令。
l 格式(ASCII):
AT+NIP=[!?][type],[ip],[netmask],[gateway],[dns] +OK[=type,ip,netmask,gateway,dns] |
l 参数:
Type:地址类型
ip:ip地址,数据格式为"192.168.1.22",不含引号
netmask:子网掩码,数据格式同ip地址
gateway:网关地址,数据格式同ip地址号
dns:DNS地址,数据格式同ip地址
l 示例:
Note:上面的测试可以看出,DHCP使能的情况下,AT+NIP=?查询出的第二个参数不是模块实际获得的IP地址,AT+LKSTT查询到的第二个参数才是。
l 功能:
当无线网卡作为SoftAP时,该指令用于设置/查询本端的IP地址以及使能和禁用DHCP Server,在使能DHCP Server时,仍然可以通过该指令查询无线网卡的IP地址。
l 格式(ASCII):
AT+APNIP=[!?][type],[ip],[netmask],[gateway],[dns] +OK[=type,ip,netmask,gateway,dns] |
l 参数:
type: 地址类型
ip: IP地址,数据格式为"192.168.1.22",不含引号
netmask: 子网掩码,数据格式同IP地址
gateway: 网关地址,数据格式同IP地址
dns: DNS地址,数据格式同IP地址
l 示例:
→ |
AT+APNIP=1,192.168.1.1,255.255.255.0,192.168.1.1,192.168.1.1 |
← |
+OK |
具体应用请参考本文档 创建SoftAP流程
l 功能:
设置/查询网卡模块域名,该设置仅在网卡作为SoftAP时有效。
l 格式(ASCII):
AT+DNS=[!?][dnsname] +OK[=dnsname] |
l 参数:
dns name:网卡模块域名,1~31个字符,双引号包围
l 示例:
→ |
AT+DNS="DNS-FOR-TEST" |
← |
+OK |
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!