TCP连接的建立
TCP的连接建立经过以下过程:
① 建立拨号连接,AT命令为AT+ZPPPOPENrn。
② 建立TCP连接,AT 命令为AT+ZIPSETUP=SOCKET_NUM, IP_AD, PORT_NUM rn,例如AT+ZIPSETUP=1,211.136.18.171,5000rn。
③ TCP连接成功建立后,可以发送数据,AT命令为AT+ZIPSEND=, rrn,例如AT+ZIPSEND=1,4rgoodrn,发送的数据为“good”。
这里所用到的查询命令及各命令返回说明包括:
①查询拨号连接状态命令:AT+ZPPPSTATUSrn
返回有三种状态:拨号连接建立rn+ZPPPSTATUS: OPENEDrnrnOKrn
拨号连接断开 rn+ZPPPSTATUS: CLOSEDrnr nOKrn
正在拨号 rn+ZPPPSTATUS: * rnrnOKrn
②查询TCP连接状态命令:AT+ZIPSTATUS= SOCKET_NUM rn
返回有三种状态:TCP连接建立 rn+ZIPSTATUS: ESTABLISHEDrnrnOKrn
TCP连接失败 rn+ZIPSTATU S:CLOSEDrnrnOKrn
正在建立连接 rn+ZIPSTATUS:SYN_SENTrnrn OKrn
数据的发送和接收
模块从TCP通道接收到数据后,由串口返回消息:+ZIPRECV:0,1,, rn,例如,+ZIPRECV: 0,10,1234567890rn,则TCP通道接收的数据为1234567890。
+ZIPRECV为异步消息,在任意时刻返回,在接收该消息时要注意。
数据传输的软件设计
终端与监控中心以报文形式交互数据,报文包括数据包(采集的数据信息)、心跳包(定时发送,以维持网络连接)以及校时请求,以上均由终端主动发起,监控中心回复。数据通信子程序的流程如图3。
图3 数据通信流程图
根据流程图可知,发送数据后等待监控中心的回复消息,设置等待时间,若超时还无回复消息,则退出等待;下次发送数据时重新发送。
数据传输实例
终端发送的数据包如下:
01780102000146003030407 5345460008184101641000105 03010701221632303903.6741N1215 3.1326E27990357079425-70-66-632 004070031040828531405011144 1801194100068722100694210807 02200906902012 数据包中0178为报文长度;01为版本号;02为命令字;0001为数据包序列号;460030304075345为UIM卡号;460008184101641为 (责任编辑:admin) |