域格移芯 cat1模块YM310 X09 - 内嵌TCP使用说明
TCP 非透传应用
事实上,TCP 发送方式有快发和慢发两种,由+CIPQSEND 命令来设置发送方式。区别就是:慢发每发送一笔数据需要服务器那边的确认,而快发则发送到模块就可以了,不需要服务器的确认。慢发可能会出现长时间没响应的情况,AT 通道就堵住了,所以建议采用快发模式
模块做为客户端,单链接,发送接收数据
序号 | AT指令(加粗字体)/返回数据 | 指令解析/返回解析 |
---|---|---|
1 | AT+CEREG? | 查询网络注册状态 |
+CEREG: 0,1 | <n>=0,表示禁用 URC,上报<stat>=1,标识已经注册网络,而且是本地网络 | |
2 | AT+CGATT? | 查看当前 GPRS 附着状态 |
+CGATT: 1 | <state>=1,标明当前 GPRS 已经附着 | |
3 | AT+CIPMUX=0 | 设置为单连接模式 |
OK | ||
4 | AT+CIPQSEND=1 | 设置为快发模式(推荐使用这种模式) |
OK | ||
5 | AT+CSTT | 启动任务,设置 APN模块注册网络后会从网络自动获取<apn>并激活一个 PDP 上下文 |
OK | ||
6 | AT+CIICR | 激活移动场景,获取 IP 地址 |
OK | ||
7 | AT+CIFSR | 查询分配的 IP 地址 |
“010.068.027.049”(样例) | 分配的 IP 地址 | |
8 | AT+CIPSTATUS | 查询下链接状态 |
OK | ||
STATE: IP STATUS | ||
9 | AT+CIPSTART=“TCP”,“122.51.209.56”,1000 | 其中:“TCP”为链接的协议类型,“122.51.209.56” 为对端服务器的 IP 地址, 1000 为对端服务器的 TCP 端口号 |
OK | ||
CONNECT OK | 如果链接成功,会有如此 URC 上报 | |
10 | AT+CIPSTATUS | 查询下链接状态 |
OK | ||
STATE: CONNECT OK | 链接建立成功 | |
11 | AT+CIPSEND | 发送数据(不定长度,手动发送) |
>1234567890<CTRL-Z> | 当出现“>“后,输入待发送的数据:0123456789。<CTRL-Z>用来结束发送数据,发送 16 进制数 0x1A即等同于发送<CTRL-Z>。 | |
DATA ACCEPT:10 | 发送成功而且对端服务器收到数据 | |
11 | AT+CIPSEND=10 | 发送数据(确定长度) |
>1234567890 | 当出现”>“后,输入待发送的数据:0123456789。<CTRL-Z>用来结束发送数据,发送 16 进制数 0x1A即等同于发送<CTRL-Z>。 | |
DATA ACCEPT:10 | 输入数据达到 10 个字节,不用发送<CTRL-Z> 即十六进制的 1A,会自动发送 | |
12 | AT+CIPACK | 每发一段数据,查询下发送状态,可以知道上笔数据服务器有没有收到 |
+CIPACK: 10,10,0 | 第一个 10,表明已经发送的数据字节数,第二个10 表示服务器收到的数据字节数,0 表示服务器尚未收到的数据字节数 | |
13 | AT+CIPATS=1,10 | 设置自动发送,自动发送的定时为 10S |
OK | ||
13 | AT+CIPSEND | 发送数据 |
>1234567890 | 发送数据(不定长度,手动发送) | |
DATA ACCEPT:10 | 10s 定时器溢出,不用发送<CTRL-Z>即十六进制的 1A,数据会自己发送 | |
13 | AT+CIPSEND=100 | 发送数据(确定长度),定时发送状态 |
>1234567890 | 发送数据(定长度,手动发送) | |
DATA ACCEPT:10 | 10s 定时器溢出,输入内容不必达到 100 字节,也不用发送<CTRL-Z>即十六进制的 1A,数据会自己发送 | |
14 | AT+CIPHEAD=1 | 设置接收数据时,有数据头,0表示关闭 |
+IPD,4:TEST | 模块收到 SERVER 那边发来的一串字符数据:TEST | |
15 | AT+CIPSHOWTP=1 | 设置接收数据时,显示数据所使用的协议,0表示关闭 |
+IPD,4,TCP:TEST | 模块收到 SERVER 那边发来的数据:TEST。所使用的协议也会显示出来。如果是 UDP 链接,则会显示:+IPD,4,UDP:TEST | |
16 | AT+CIPSRIP=1 | 设置接收数据时显示发送方的 IP 地址和端口,0表示关闭 |
+RECV FROM: 122.51.209.56:1000 | 接收服务器发来的数据,是一个字符”TEST”,长度为 4 | |
+IPD,4:TEST | ||
17 | AT+CIPCLOSE | 关闭 TCP 链接 |
CLOSE OK | 关闭成功 | |
18 | AT+CIPSHUT | 关闭移动场景 |
SHUT OK | 关闭 成功 | |
19 | AT+CIFSR | 查询当前的模块 IP |
ERROR | IP 地址已经没有了 |
模块做为客户端,多链接,发送接收数据
序号 | AT指令(加粗字体)/返回数据 | 指令解析/返回解析 |
---|---|---|
1 | AT+CEREG? | 查询网络注册状态 |
+CEREG: 0,1 | <n>=0,表示禁用 URC,上报<stat>=1,标识已经注册网络,而且是本地网络 | |
2 | AT+CGATT? | 查看当前 GPRS 附着状态 |
+CGATT: 1 | <state>=1,标明当前 GPRS 已经附着 | |
3 | AT+CIPMUX=1 | 设置为多链接模式 |
OK | ||
4 | AT+CIPQSEND=1 | 设置为快发模式(推荐使用这种模式) |
OK | ||
5 | AT+CSTT | 启动任务,设置 APN模块注册网络后会从网络自动获取<apn>并激活一个 PDP 上下文 |
OK | ||
6 | AT+CIICR | 激活移动场景,获取 IP 地址 |
OK | ||
7 | AT+CIFSR | 查询分配的 IP 地址 |
“010.068.027.049”(样例) | 分配的 IP 地址 | |
8 | AT+CIPSTART=0,“TCP”,“122.51.209.56”,1000 | 其中:多链接有0-5这几个通道,0为0通道ID,“TCP”为链接的协议类型,“122.51.209.56”为对端服务器的 IP 地址,1000为对端服务器的TCP 端口号 |
OK | ||
0, CONNECT OK | Id=0 的 TCP 链接成功建立 | |
8 | AT+CIPSTART=1,“UDP”,“122.51.209.56”,1000 | 其中:多链接有0-5这几个通道,1为1通道ID,“UDP”为链接的协议类型,“122.51.209.56”为对端服务器的 IP 地址,1000为对端服务器的TCP 端口号 |
OK | ||
1, CONNECT OK | Id=1 的 UDP 链接成功建立 | |
9 | AT+CIPSTATUS | 查询下链接状态 |
OK | ||
STATE: IP PROCESSING | ||
C: 0,0,“TCP”,“122.51.209.56”,“1000”,“CONNECTED” | ||
C: 1,0,“UDP”,“122.51.209.56”,“1000”,“CONNECTED” | ||
C: 2,,“”,“”,“”,“INITIAL” | ||
C: 3,,“”,“”,“”,“INITIAL” | ||
C: 4,,“”,“”,“”,“INITIAL” | ||
C: 5,,“”,“”,“”,“INITIAL” | ||
10 | AT+CIPSEND=1 | 在 UDP 链接上发送数据,不定长发送 |
>1234567890<CTRL-Z> | 当出现“>“后,输入待发送的数据:0123456789。<CTRL-Z>用来结束发送数据,发送 16 进制数 0x1A即等同于发送<CTRL-Z>。 | |
DATA ACCEPT:1,10 | 发送成功而且对端服务器收到数据 | |
10 | AT+CIPSEND=0,10 | 在 TCP 链接上发送数据,定长发送 |
>1234567890 | 当出现”>“后,输入待发送的数据:0123456789。<CTRL-Z>用来结束发送数据,发送 16 进制数 0x1A即等同于发送<CTRL-Z>。 | |
DATA ACCEPT:0,10 | 输入数据达到 10 个字节,不用发送<CTRL-Z> 即十六进制的 1A,会自动发送 | |
11 | AT+CIPATS=1,10 | 设置自动发送,自动发送的定时为 10S |
11 | AT+CIPSEND=0 | 发送数据 |
>1234567890 | 发送数据(不定长度,手动发送) | |
DATA ACCEPT:0,10 | 10s 定时器溢出,不用发送<CTRL-Z>即十六进制的 1A,数据会自己发送 | |
11 | AT+CIPSEND=1,100 | 发送数据(确定长度),定时发送状态 |
>1234567890 | 发送数据(定长度,手动发送) | |
DATA ACCEPT:1,10 | 10s 定时器溢出,输入内容不必达到 100 字节,也不用发送<CTRL-Z>即十六进制的 1A,数据会自己发送 | |
接收数据 | ||
+RECEIVE,0,7: | 在链接 0 的 TCP 链接上收到 7 个字符的字符串:TEST123 | |
TEST123 | ||
+RECEIVE,1,10: | 在链接 1 的 UDP 链接上收到 10 个字符的字符串:TEST123456 | |
TEST123456 | ||
12 | AT+CIPCLOSE | 关闭 TCP 链接 |
CLOSE OK | 关闭成功 | |
13 | AT+CIPSHUT | 关闭移动场景 |
SHUT OK | 关闭 成功 | |
14 | AT+CIFSR | 查询当前的模块 IP |
ERROR | IP 地址已经没有了 |
TCP透传应用
TCP透明传输
序号 | AT指令/返回数据 | 指令解析/返回解析 |
---|---|---|
1 | AT+CEREG? | 查询网络注册状态 |
+CEREG: 0,1 | <n>=0,表示禁用 URC,上报<stat>=1,标识已经注册网络,而且是本地网络 | |
2 | AT+CIPMODE=1 | 设置 TCPIP 应用为透明传输模式 |
OK | ||
3 | AT+CIPSTART=“TCP”,”122.51.209.56”,1000 | 建立 TCP 链接,其中:“TCP”为链接的协议类型“122.51.209.56” 为对端服务器的 IP 地址1000为对端服务器的 TCP 端口号 |
OK | ||
CONNECT | 如果链接成功,会有如此 URC 上报 | |
…….. | 透传开始,在这里输入数据并传送,此时也可以接收服务器传来的数据 | |
4 | +++ | 如果想返回 AT 命令模式,则在数据后面输入+++(该指令不要带回车) |
OK | OK 表示已经返回到 AT 命令模式 | |
5 | ATO | ATO 用于返回数据模式 |
CONNECT | CONNECT 表示进入透传模式 | |
…….. | 此时又可以开始传输数据 | |
TCP ERROR:×× 或CLOSED | 当传输中有协议栈错误发生时,会转入AT命令状态,并上报该错误码 | |
6 | AT+CIPSHUT | 发生这种情况时,+CIPSHUT 关闭连接。如果没有错误发生,则+++返回 AT 命令状态,再+ CIPSHUT关闭连接 |
SHUT OK | 关闭连接成功 |
UDP透明传输
序号 | AT指令/返回数据 | 指令解析/返回解析 |
---|---|---|
1 | AT+CEREG? | 查询网络注册状态 |
+CEREG: 0,1 | <n>=0,表示禁用 URC,上报<stat>=1,标识已经注册网络,而且是本地网络 | |
2 | AT+CIPMODE=1 | 设置 TCPIP 应用为透明传输模式 |
OK | ||
3 | AT+CSTT | 设置模块APN,模块注册网络后会从网络自动获取<apn>并激活一个PDP上下文(此<apn>可以通过AT+CGDCONT?来查询),所以直接输入AT+CSTT即可,模块内部会按照自动获取的<apn>来设置CSTT的APN |
OK | ||
4 | AT+CIICR | 激活移动场景,获取 IP 地址 |
OK | ||
5 | AT+CIFSR | 查询分配的 IP 地址 |
“010.068.027.049”(样例) | ||
6 | AT+CIPSTART=“UDP”,“122.51.209.56”,1000 | 建立 TCP 链接,其中:“TCP”为链接的协议类型“122.51.209.56” 为对端服务器的 IP 地址1000为对端服务器的 TCP 端口号 |
OK | ||
CONNECT | 如果链接成功,会有如此 URC 上报 | |
…….. | 透传开始,在这里输入数据并传送,此时也可以接收服务器传来的数据 | |
7 | +++ | 如果想返回 AT 命令模式,则在数据后面输入+++(该指令不要带回车) |
OK | OK 表示已经返回到 AT 命令模式 | |
8 | ATO | ATO 用于返回数据模式 |
CONNECT | CONNECT 表示进入透传模式 | |
…….. | 此时又可以开始传输数据 | |
TCP ERROR:×× 或CLOSED | 当传输中有协议栈错误发生时,会转入AT命令状态,并上报该错误码 | |
9 | AT+CIPSHUT | 发生这种情况时,+CIPSHUT 关闭连接。如果没有错误发生,则+++返回 AT 命令状态,再+ CIPSHUT关闭连接 |
SHUT OK | 关闭连接成功 |
< 回到YM310 X09资料大全