NB-iot的M5310A的学习

1、M5310A了解

- 基本知识

        M5310 模块是一款工业级的两频段 NB-IoT 无线模块,其工作频段是 Band 5 或 Band 8,它主要应用于低功耗的数据传输业务,满足 3gpp Release13 标准。M5310 是 LCC 封装的贴片式模块,30 个管脚,尺寸仅有 19mm×18mm×2.2mm。M5310 内 置 UDP/CoAP 等数据传输协议及扩展的 AT 命令,模块采用了低功耗技术,电流功 耗在深度睡眠模式低至 5uA。

- 引脚介绍

NB-iot的M5310A的学习_第1张图片

2、通讯指令

 M5310-A模组为NB全频段,支持UDP、TCP协议,可使用COAP连接电信平台、使用LWM2M连接移动ONENET,可使用MQTT连接第三方服务器。

-AT指令集

        M5310A:
        AT  //模组返回ok,mcu和模组通信成功

        AT+CSQ  //查询信号,一般12-31,数值越大越好。一般为20左右

        AT+CEREG? //网络附着情况,返回0,1为附着到网络

        AT+MIPLCREATE=49,130031F10003F2002304001100000000000010123138332E3233302E34302E33393A35363833000131F300080000000000,0,49,0 //创建实体

        AT+MIPLADDOBJ=0,3200,1,"1",0,1 //创建对象,必须创建

        AT+MIPLDISCOVERRSP=0,3200,1,4,"5750" //创建资源,如果不创建,数据也能上报平台,但是资源列表不显示

        AT+MIPLOPEN=0,3000,30 //登录平台

        AT+MIPLNOTIFY=0,0,3200,0,5750,1,4,"177788",0,0,12//,带ackid,ackid每次上报要自加,上报数据

- 指令集详细介绍

1、上电检查
AT //判断模组是否上电开机成功
AT+CSQ //信号质量检查
AT+CEREG? //判断 PS 域附着状态,标识位返回 1 或 5 表示附着正常
AT+CGATT? //检查模组 PS 附着状态
AT+CGACT? //检查模组激活状态

2、M5310-A 模组侧设备创建、资源订阅及登录流程
AT+MIPLCREATE=56,130038F10…00000000,0,56,0 //设置模组侧设备注册码
AT+MIPLADDOBJ=0,3200,1,“1”,0,1 //订阅 Object 3200 资源设置
AT+MIPLDISCOVERRSP=0,3200,1,4,“5750” //订阅 Resource 5750 资源设置
AT+MIPLOPEN=0,3000,30 //设备登录到 OneNET 平台

3、M5310-A 模组侧 OneNET 数据收发流程
AT+MIPLNOTIFY=0,0,3200,0,5750,1,4,“abcd”,0,0,147 //数据上传
AT+MIPLREADRSP=0,32705,1,3200,0,5750,1,4,“abcd”,0,0 //Read 操作回复
AT+MIPLWRITERSP=0,25845,2 //Write 操作回复
AT+MIPLEXECUTERSP=0,18166,2 //Execute 操作回复

4、M5310-A 模组侧设备注销流程
AT+MIPLCLOSE=0 //登录注销流程
AT+MIPLDELOBJ=0,3200 //模组侧订阅资源列表释放
AT+MIPLDEL=0 //模组侧通信实例删除

5、M5310-A 模组侧设备存活时间更新流程
AT+MIPLUPDATE=0,300,1 //存活时间更新流程

6、注意事项以及AT指令解释
6.1、AT+MIPLCREATE 这个AT指令使用时可以不使用后面的流程码参数,可直接把“=”后面的参
数都省略了,前提是引导流程(指对接平台需要的参数)没有发生变化,指令后面不带参数是
默认可以对接onenet平台的。

6.2、有时候会出现使用AT+MIPLDELOBJ=0,3200释放资源错误的问题,错误原因一般是使用AT+MI
PLDISCOVERRSP 订阅资源时不止订阅了一个,但是在使用AT+MIPLADDOBJ 时却没有设置正确的实
例个数和实例位图,例:AT+MIPLCREATE
					+MIPLCREATE:0
					OK
					
					AT+MIPLADDOBJ=0,3202,1,"1",0,1
					OK

					AT+MIPLDISCOVERRSP=0,3202,1,9,"1101;5500"
					OK
					
					AT+ MIPLDELOBJ=0,3202
					ERROR
					
需要将AT+MIPLADDOBJ=0,3202,1,"1",0,1修改为AT+MIPLADDOBJ=0,3202,2,"11",0,1

6.3、设备订阅的资源和实例
		设备在订阅资源和实例后,进入psm态之前不需要进行资源的释放。恢复正常状态后会使
		用之前订阅的资源。

        AT+MIPLCREATE
①作用:该指令用于在模组端(即M5310-A)创建一个通讯设备实体,同一时间一个终端只允许存在一个通讯设备主体。
②命令格式:AT+MIPLCREATE=,,,,
③参数解释:
    a.totalsize:表示config 部分的长度,按ASCⅡ计数
    b.config:具体的设备配置数据
    c.index:配置数据分片参数
    d.currentsize:当前分片部分数据长度
    e.flag:配置数据流结束符
④使用例子:
 AT+MIPLCREATE=49,130031F10003F2002304001100000000000000123138332E3233302E34302E34303A35363833000131F30008C000000000,0,49,0
(中间部分为注册码,所有同一类型的终端设备都可以使用同一个同一设备注册码进行配置)
⑤返回值:
(ref是设备实例ID,用于后续操作)
+MIPLCREAT:
OK


AT+MIPLDELETE
①作用:用于在模组端删除一个通讯设备实体
②命令格式:AT+MIPLCREATE=
AT+MIPLADDOBJ
①作用:用于在模组端添加一个待订阅的object及其所需的instance。
②命令格式:AT+MIPLADDOBJ=,,,,,
③参数说明:
a. ref:设备实例ID
b. objid:Object ID
c. inscount:实例个数
d. bitmap:实例位图,字符串格式,每一个字符表示为一个实例,1表示可用,0表示不可用。
e. atts:属性个数,默认设置为0即可。
f. acts:操作个数,默认设置为0即可。
④使用例子:
AT+MIPLADDOBJ=0,3303,1,"1",1,0
AT+MIPLADDOBJ=0,3304,1,"1",1,0  


AT+MIPLDELOBJ
①作用:用于删除一个已经订阅的object及其所属的instance。
②命令格式:AT+MIPLDELOBJ=,


AT+MIPLOPEN
①作用:用于在模组端向OneNET 平台发起注册登录请求。
②命令格式:AT+MIPLOPEN=,[,]
③参数说明:
a. lifetime:本次注册平台的生命周期,单位是s
b. timeout:注册的超时时长,可选参数,默认为30,单位为s
④使用例子:
AT+MIPLOPEN=0,3000,30


AT+MIPLNOTIFY
①作用:用于在模组端向OneNET 平台上报指定资源的数据。
②命令格式:AT+MIPLNOTIFY=,,,,,,,,,[,]
③参数说明:
    a. ref:设备实例ID
    b. msgid:该resource所属的instance observe操作时下发的msgid
    c. objid:Object ID
    d. insid:Instance ID
    e. resid:Resource ID
    f. type:上报资源的数据类型(1-string,2-opaque,3-integer,4-float,5-bool,6-hex_str)
    g. len:value值的长度
    h. index:指令序号。可以发N条报文,从N-1到0降序编号,0表示本次Notify指令结束
    i. value:上报数据。
    j. flag:消息标识,指示第一条或中间或最后一条报文。
④使用例子:
AT+MIPLNOTIFY=0,0,3303,0,5700,4,4,"29.8",0,0
AT+MIPLNOTIFY=0,0,3304,0,5700,4,4,"29.8",0,0


AT+MIPLUPDATE
①作用:用于在模组端向OneNET平台发起设备存活时间更新请求。
②命令格式:AT+MIPLUPDATE=,,
③参数说明:
a. ref:设备实例ID
b. lifetime:更新的lifetime值,单位是s
c. withObjectFlag:是否需要同时更新注册的Object对象


AT+MIPLCLOSE
①作用:用于在模组端向OneNET平台发起设备注销请求。
②命令格式:AT+MIPLCLOSE=
 

+MIPLREAD
①作用:(OneNET平台请求MCU读取消息)平台下发Read数据读取操作时,模组收到服务器请求后,将通过串口上报该消息到MCU。
②命令格式:+MIPLREAD=,,,,
③参数说明:
    a. ref:设备实例ID
    b. msgid:消息ID
    c. objid:Object ID
    d. insid:Instance ID,-1时需要读取该Object下所有资源
    e. resid:Resource ID,-1时需要读取该instance下的所有资源。


AT+MIPLREADRSP
①作用:MCU完成相应的Read操作后,向平台回复Read操作结果。
②命令格式:AT+MIPLREADRSP=,,[,,,,,,,,]
③参数说明:
    a. result:1-读取操作正确完成;11-Bad Request;12-Unauthorized;13-Not Found;14-Method Not Allowed;15-Not Acceptable。
    b. type:指定读取资源的数据类型,数字代表意义同上面的type。
    c. len:value值的长度


+MIPLWRITE
①作用:(OneNET平台请求写数据到终端)模组收到平台下发的数据后,通过串口上报该消息。
②命令格式:+MIPLWRITE:,,,,,,,,,


AT+MIPLWRITERSP
①作用:MCU完成相关Write操作后,向平台回复Write操作结果。
②命令格式:AT+MIPLWRITERSP=,,


+MIPLEXECUTE
①作用:平台下发Execute执行操作到模组,模组再通过串口上报给MCU。
②命令格式:+MIPLEXECUTE:,,,,[,,]
③参数说明:
a. len:本次报文写入的命令长度
b. cmd:字符串类型,下发的命令


AT+MIPLEXECUTERSP
①作用:MCU执行完Execute操作后,向平台回复Execute操作结果。
②命令格式:AT+MIPLEXECUTERSP=,,
 

M5310-A初始化流程:

- TCP

- UDP

UDP连接测试:
AT+NSOCR="DGRAM",17,0,1                   //创建一个socket(17是UDP的协议标号,0表示随机产生的本地socket编号)
AT+NSOST=0,183.230.40.158,5022,2,1024    //编号为0的socket向地址183.230.40.18的端口5022,发送2bytes数据,数据是1024
//创建socket时,最后一位设置为1时,模组会缓存接收到的数据。然后用下面命令,对socket 0中缓存区读4bytes数据
AT+NSORF=0,4
AT+NSOCL=0               //关闭socket 0   
 

- MQTT

你可能感兴趣的:(stm32,物联网,学习,p2p)