SIMCOM
模块多路
IP
连接
一、增加
AT
½令
AT+CIPMUX
用于确定模块采用多路
IP
通信还是单路
IP
通信。
½用说明:
1) Read command: AT+CIPMUX?
返回:
+CIPMUX: <n>
OK
2) Test command: AT+CIPMUX=?
返回:
+CIPMUX: 0,1
OK
3) Write command: AT+CIPMUX=<n>
返回:OK
参数<n>的含义:
0
—— 单路通信
1
—— 多路通信
SIMCOM
模块上电½返回
Call ready
时,查询模块½前
IP
状
态,
½返回连接状态为
IP INITIAL
时可以½用
AT+CIPMUX=1
将
单路通信改为多路通信。在其他状态将返回
ERROR。
½所有通道½被关闭并且
GPRS
场景被关闭时
(可执行
AT+CIPSHUT
关闭
GPRS
场景)
,
才可以½用
AT
½令
AT+CIPMUX=0
将多路通信改为单路通信。
二、AT+CIPSTART
单路通信时,该
AT
½令的½用方法以及各个参数的含义和
SIM300
相同。
多路通信时,该
AT
½令的½用方法如下。
1) Test command: AT+CIPSTART=?
执行该½令后,如果是单通道则返回:
如果是多通道则返回:
2) Write command: AT+CIPSTART=<n>,<type>,<addr>,<port>
<n>
IP
通道索引,0~9
<type> "TCP"或"UDP"
<addr> IP
地址或
DNS
域名
<port>
端口号
在½用该
AT
½令之前,
必须要执行一遍
AT
½令——AT+CSTT,
AT+CIICR, AT+CIFSR。
如果不执行,则在建立连接时会返回:ERROR
用该指令建立通道的
TCP
或
UDP
时如下:
如果
IP
或端口错误则
返回
CONNECT FAIL
或
CLOSED。
三、AT+CIPSEND
多路通信时,该
AT
½令的½用方法如下。
1) Test command: AT+CIPSEND=?
返回:
+CIPSEND=(0-9), <length>
OK
2) Write command: AT+CIPSEND=<n> [, <length>]
<n>
发送数据的通道索引,0~9
<length>
待发送数据的长度,½没有这个参数时,输入
Ctrl+Z
发送输入的数据。
½发送数据长度时如下:
½没有数据长度参数时如下:
待数据输入结束后输入
Ctrl+Z。
½没有建立
TCP
或
UDP
时,发送数据会返回
ERROR,如下:
。
四、数据接收
接收到服务器端发送过来的数据,显示格式如下。
+RECEIVE: <n>, <length>
<data>
<n>
接收到数据的通道索引,0~9
<length>
接收到的数据长度
<data>
接收到的数据内容
指示为从通道
1
分别接收到
4
个和
9
个数据;如果两个
或多个端口连接同一个
IP
和端口,则½服务器端发数据过来时,最先建立连接的将收到数
据,其½连接不½收到数据。TCP 通道发送接收数据通过,UDP 连接数据接收未实现。
五、AT+CIPCLOSE
多路通信时,该
AT
½令的½用如下。
Write command: AT+CIPCLOSE=<n>
返回:<n>,
CLOSE OK
如果该通道已经
CLOSE,则执行该指令为用于查询状态,½令执行如下:
执行完该
AT
½令之后,通过
AT+CIPSTATUS
查询状态,可以发现该路连接已经断开,
连接方式、IP 地址以及端口均为空(具½见
AT+CIPSTATUS
指令)
。
六、AT+CIPSTATUS
该
AT
½令查询各路通信的连接信息。多路时,其½用如下。
Execute command: AT+CIPSTATUS
返回:
+CIPSTATUS: 0, <type>, <addr>, <port>
+CIPSTATUS: 1, <type>, <addr>, <port>
+CIPSTATUS: 2, <type>, <addr>, <port>
+CIPSTATUS: 3, <type>, <addr>, <port>
+CIPSTATUS: 4, <type>, <addr>, <port>
+CIPSTATUS: 5, <type>, <addr>, <port>
+CIPSTATUS: 6, <type>, <addr>, <port>
+CIPSTATUS: 7, <type>, <addr>, <port>
+CIPSTATUS: 8, <type>, <addr>, <port>
+CIPSTATUS: 9, <type>, <addr>, <port>
OK
<type>
连接类型,”TCP”或”UDP”, 如果该路没有任½连接,则显示””
<addr>
远端服务器
IP
地址,如果没有连接,则显示””
<port>
远端服务器端口号,如果没有连接,则无显示
七、AT+CIPSHUT
该
AT
½令在单路通信和多路通信时的½用相同。在多路通信时,该
AT
½令的½用是
断开所有的通路并关闭场景。执行该指令后,模块再次登陆½络,重新获得
IP。
评论