参考文档《Cat.1模组技术培训》《Lierda NT90&NT35_Module_AT CommandSet》《Lierda NT90&NT35 TCPIP ApplicationNote》《Lierda_Cat1模组_应用指导_入网通信》
CAT1模组最常用的应用就是TCP通信,直连客户的服务器进行数据传输。这里给出基本的操作指令流程和对应的说明。
TCP连接分为三步,分别是附着网络、分配IP、发送数据。MME决定附着网络,PDN-GW决定分配IP,有了IP之后模组就可以连接服务器收发数据了。
一、附着网络
模组上电之后自动附着网络,用户不需要特殊设置,直接查询附着网络即可
此时用户也可以通过CGDCONT增加对应APN,便于后期激活PDP获取IP,在设置APN时注意先读取模组内部自动识别、生成的APN,在此基础上增加用户自己的APN即可(即递增指令<cid>序号)。
二、获取IP
用户需要激活PDP上下文才会被分配IP,激活PDP上下文默认为手动模式,可通过如下指令查询
如果为专网模式,网络分配APN和用户设置的APN可能有所差异导致无法连接服务器,此时建议使用AT+VERCTRL=0,1自动模式,以网络分配APN为准,提高连接服务器成功率
获取到网络分配IP后可通过AT+CSQ、AT+NETMSG查询网络信号,具体说明可参考AT指令手册。同时模组驻网之后会下发DNS解析服务器IP,如果用户解析域名失败可配置对应服务器,具体可参考《Lierda_Cat1模组_应用指导_入网通信》,模组支持域名连接,建议直接使用域名即可。
三、TCP通信(单路连接)
TCP通信可以使用网络调试助手作为服务器接收NT35上发的数据,但服务器对应的IP需要内网穿透才可以使用,具体方法参考下面第五章内网穿透。
TCP连接服务器只需要设置单/多IP连接,单路两条指令分别为AT+CIPMUX=0、AT+CIPSTART="TCP","server.natappfree.cc",44659,多路链接方式参考下面章节说明。
服务器连接成功后提示CONNECT OK,也可以通过指令AT+CIPSTATUS查询连接状态。此时用户就可以发送数据了,注意发送数据使用字符串格式,发送后数据此时还在缓存阶段,需要发送结束符0x1A后模组才会发送数据。对应串口操作分别如下
此时数据就可以发送到服务器,同时服务器也可以接收到对应的数据了。
单路连接完整AT(简化流程)
四、多路连接
设备应用中有可能通过1个模组连接多个服务器,TCP/UDP连接下模组最多支持同时8路地址通信。多路连接与单路不同之处在于设备必须发送CSTT和CIICR指令
CSTT指令:该指令用于启动线程+设置APN,如果设备已经PDP激活,则该指令不能携带参数,但因为指令包含启动线程功能,所以该指令必须发送。(带参数 or 不带参数 2种模式)
CIICR指令:激活移动场景,建立无线链路,在第2章中CGACT指令和这个功能相同,但多路连接该指令也必须发送。
总结:使用TCP多路连接,必须发送指令CSTT启动线程、CIICR激活多链路连接。同时如果前面使用CGACT激活PDP上下文获取了IP,则CSTT不能再次设置APN,默认无参数即可。
五、内网穿透
用户在测试TCP的时候,需要服务器接收模组发过来的数据,同时需要下发数据到模组来验证是否链路通信正常。我们通常用"网络调试助手"来测试TCP/UDP通信
同一个局域网之间通信没有问题,这里的IP地址都是内网直达。但模组连接的是基站(外网),而网络调试助手的IP实际是路由器虚拟的IP,不是实际的IP地址,直接使用指令连接这个IP是无法通信的,这就需要使用内网穿透。
内网穿透建议使用natapp,登录natapp官网 https://natapp.cn/,按照提示注册、实名认证后,查看自己的隧道
每次切换网络,都在这里修改对应的IP、端口。