本文简要介绍一下基于BC-95 B8的NB模块的UDP联网流程。本文通过串口对模块进行AT指令的传输与控制。
1.串口的设置:
波特率为:9600;停止位:1位;奇偶校验位:无;数据位:8位;流控:不进行流控
2、AT指令的发送流程
(1)先发送AT:先将指令“AT\r\n”发送给NB模块,待接收到“OK”,表示与模块同步成功;
(2)发送指令(AT+CGMR\r\n),可接收到模块内部的软件版本号以及”OK“字符,用于确认模块的软件版本是否符合所需求;
(3)发送指令(AT+NBAND?\r\n),用于确认模块的Bands;
(4)发送指令(AT+CIMI\r\n),便可获得与模块上SIM卡相关的IMSI号码,可用于确认SIM卡情况;
(5)发送指令(AT+CFUN?\r\n),用于询问模块是否已开启RF电路来进行无线数据传输,如果返回(+CFUN:0),
则发送指令(”AT+CFUN=1\r\n“)启动模块的RF功能,再发送一次指令(AT+CFUN?\r\n)。直到发送指令(AT+CFUN?\r\n)后返回的是(+CFUN:1)
(6)发送指令(AT+CSQ\r\n),用于确认当前的信号强度;
(7)发送指令(AT+CGDCONT=1,"IP","CMCC"\r\n),用于指定对应的APN(此处以移动的为例)
(8)发送指令(AT+CGATT?\r\n),用于询问模块是否连上对应的运营商网络,如果返回(+CGATT:0),
则发送指令(AT+CGATT=1\r\n)用于启动模块联网功能,然后再发送指令(AT+CGATT?\r\n)询问系统是否已启动联网功能(可每隔2s左右查询多次,直到返回(+CGATT:1),一般重复20次左右)。
(9)发送指令(AT+CGPADDR\r\n),用于查询模块被分配的IP,用于确认模块已连上运营商网络;
(10)成功连上运营商网络后,便可发送指令(AT+NSOCR=DGRAM,17,”模块端口号“,1\r\n)来创建socket,等返回打开的socket编号,这里假设打开的是0socket;
(11)发送指令(AT+NSOST=0,”服务器IP“,”服务器端口号“,”要发送的数据长度“,”要发送的数据“\r\n)来进行数据的发送;
(12)当模块接收到远程的信号后,模块会自动往串口输出字符串(”+NSONMI:0,”接收到的数据长度“);//0为接收信息的socket
(13)根据先前接收到的字符串,使用指令(AT+NSORF=0,"接收的数据长度"\r\n)来接收数据;
(14)如果不使用网络功能,则可以选择通过指令(AT+NSOCL=0\r\n)关闭socket。
以上便是NB联网传输数据的大致流程。