1) IMEI 码
通过发送指令“AT+CGSN=1”可以查询 IMEI号。目前我司IMEI出厂已设置好,不可手动修改。
2) 设置 NCDP
NCDP设置前先设置 IMEI,否则报错;IMEI设置后,设置 NCDP如果还是报错,是因为 NCDP的值是设置到 NV里面的,你之前可能已经设置过一次 NCDP的值了,CFUN=1时,就必须设置成跟 NV里面一样的,相当于 AT发现没改变,就没更新 NV,这样才会返回成功,否则报错;要想改变,CFUN的值要切换到 0,AT+CFUN=0,再设置NCDP,可以成功。
3) 模块找网
模块是默认自动找网(可以用 AT+NCONFIG?查询)如果返回 AUTOCONNECT,FALSE,可以使用 AT+NCONFIG=AUTOCONNECT,TRUE这个命令来设置成自动找网。自动找网后,可以发 UDP message,但要是发送 COAP message,需要手动配置 APN。要想手动找网,执行 AT+NCONFIG=AUTOCONNECT,FALSE然后重启模块,这个值会保存,开始手动找网。
4) 关于扰码开关影响模块找网注册
有些地方的基站是开启了扰码功能,这时需要手动把掩码开关打开模块才能正常附着注册到网,后续版本支持掩码开关自适应,不需要控制,目前版本不支持。
开关 AT命令如下:
AT+CFUN=0
AT+NCONFIG=CR_0354_0338_SCRAMBLING,TRUE
AT+NCONFIG=CR_0859_SI_AVOID,TRUE
AT+NRB //重启模块
是否修改成功可以使用 AT+NCONFIG?命令查询,命令返回
+NCONFIG:AUTOCONNECT,FALSE
+NCONFIG:CR_0354_0338_SCRAMBLING,TRUE
+NCONFIG:CR_0859_SI_AVOID,TRUE
5) UDP数据通信
发送 UDP数据 UDP需要先建立 Socket再发送数据,即 AT+NSOCR命令创建SOCKET后,再用 NSOST命令发送数据;AT+NSOCR= DGRAM,17,5683前两个参数是固定的,第 3个参数 5683是你本地的端口,在参数范围内,只要不被占用,可以随便设置。 AT+NSOST=1,192.158.5.1,1024,2,AB30,第一个参数表示创建的 SOCKET,第 2,3参数指的是接收端(server)的地址和端口,第四个参数是数据长度,最后一个参数是 16进制数据。
6) 发COAP message
COAP不用先建立连接,设置 CDP server后,直接可以发数据。
AT+NCDP=192.53.100.53 //Configuration CDP server
这条命令是设置服务器的 IP地址,支持设置外网的服务器地址(前提是你部署的网络能和这个服务器连接),端口得看服务器设置的监控端口是多少,默认是 5683。
7) 关于 paging
模组已支持在 idle下接收 paging,要测试的话,需确认基站是否支持 paging。
8) 波特率设置
NB模组波特率要求为9600bps,控制mcu通信波特率假如精度不够会导致通信异常。
9)查询系统时间
使用AT+CCLK查询系统时间每天都会有一定的误差,要想获取精确时间需要定期对时(发送复位指令)。
10) 运营商卡套餐注意
移动套餐cmnbiot所有参数都是以模组端设置为准(各地区核心网有差异,以实际为准)。电信套餐除ue.prefer.ctnb之外都是运营商核心网配置的,默认发ctnb卡。电信卡默认IMEI和卡绑定。
11)发送数据引起的电磁干扰
NB模组在发送数据时可能对周边电流有影响,实测STM32的IO口上发生的电压暂降达到1V。
12)运营商核心网及基站接入
移动、联通的基站可以指向任意IP地址的核心网,电信基站只能指向自己的核心网。但是电信核心网在网络有负担的情况下会禁止移动、联通数据接入。
13)心跳设置
低功耗产品尽量让主控MCU来发送心跳,且心跳和数据要先后连续发送。
14)强制关闭模块
入网或发送数据不成功时模组都会进行自动找网或重发。对于低功耗产品建议当3min未收到发送成功状态字就将模组强制关闭。强制关闭指令为:AT+CFUN=0。