|
1引言
利尔达Lierda WB81模组内置TCP/IP协议栈,用户可以直接通过AT命令访问网络。本文档详细描述WB81模组的TCP-UDP AT指令操作流程。旨在帮助用户快速通过AT命令创建socket、与socket服务器建立TCP或UDP连接或创建socket服务。
1.1 TCP/UDP协议简介
TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。由RFC793定义。它位于IP层之上,应用层之下。它为应用层提供可靠的,像管道一样的连接。它具有以下特点:
●TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接。只能用于端到端的通讯。
●TCP提供的是一种可靠的数据流服务,提供超时重发、丢弃重复数据、检验数据、流量控制等功能,保证数据能从一端传到另一端。
UDP(User Datagram Protocol用户数据报协议)是一种无连接传输层协议,提供面向事务的简单不可靠信息传送服务,由RFC768定义。它不提供数据包分组、组装和排序,当报文发送之后,无法得知其是否完整到达。因为UDP协议的控制选项较少,UDP在数据传输过程中延迟更小,数据传输效率更高。
图1.1 TCP UDP协议模型在互联网中的位置
2 TCP AT示例
2.1 WB81开启TCP server ,实现透传
当 WB81 设备作为 TCP 服务器时,必须通过 AT+CIPMUX=1 命令使能多连接。以下是 WB81设备作为 softAP 建立 TCP 服务器的示例;如果是 WB81 设备作为 station,可在连接路由器后按照同样方法建立服务器。
2.1.1 WB81设备开启 softAP
AT+CWMODE=2 //设置 Wi-Fi 模式为 softAP,最大支持sta连接数:10
OK
AT+CWSAP="WB81_softAP","1234567890",5,3 //设置AP参数。ssid:WB81_softAP,pwd:1234567890,channel:5(1-13),ecn:3(WPA2_PSK)
OK
AT+CIPAP? //查询模组 softAP 模式下的IP地址
+CIPAP:ip:"192.168.4.1"
+CIPAP:gateway:"192.168.4.1"
+CIPAP:netmask:"255.255.255.0"
OK
2.1.2 WB81设备开启TCP server
AT+CIPMUX=1 //设置多连接模式,TCP 服务器必须在多连接模式下才能开启 。
ok
AT+CIPSERVERMAXCONN=1 //设置 TCP 服务器最大连接数为 1,透传模式是点对点的,因此 TCP 服务器的最大连接数只能是 1
ok
AT+CIPSERVER=1,8080 // 开启TCP 服务器,设置服务器端口号为8080,用户可以自定义此端口号
ok
注:
多连接 (AT+CIPMUX=1):
AT+CIPSTART=<link ID>,<"type">,<"remote host">,<remote port>[,<keep_alive>][,<"local IP">]
<link ID>:网络连接 ID (0 ~ 4)
2.1.3 PC连接WB81 TCP服务器
●PC 连接到 WB81 设备的 softAP,连接成功,WB81端回显如下
+STA_CONNECTED:"54:43:b2:6e:dc:40"
+DIST_STA_IP:"54:43:b2:6e:dc:40","192.168.4.2"
●在 PC 上使用网络调试工具创建一个 TCP Client,连接到WB81 的 TCP Server(ip地址:192.168.4.1,端口号:8080)连接成功,WB81 AT响应如下
0,CONNECT
2.1.4 WB81设备进入透传收发模式
AT+CIPMODE=1 // 进入UART WiFi透传接收模式
ok
AT+CIPSEND //进入UART WiFi透传发送模式,透传模式:最大接收 8192 字节,最大发送 2920 字节
OK
>
1234567 //待发送数据
http://www.cmsoft.cn //收到数据
2.1.5 WB81设备退出透传模式
+++ //取消回车换行发送,退出透传发送
AT+CIPMODE=0 //加回回车选项发送 退出透传接收
OK
注:在透传发送数据过程中,若识别到单独的一包数据 +++,则系统会退出透传发送。此时请至少等待 1 秒,再发下一条 AT 命令。使用 +++ 可退出 透传发送模式,回到透传接收模式,此时 TCP 连接仍然有效。您也可以使用 AT+CIPSEND 命令恢复透传发送模式。
2.1.6 WB81关闭TCP server
AT+CIPSERVER=0 //关闭TCP server
CLOSED
OK
2.2 WB81作为TCP Client,实现透传
2.2.1 WB81设备连接路由器
AT+CWMODE=1 //设置 Wi-Fi 模式为 station
OK
AT+CWJAP="WiFi_test","1234567890" //连接到路由器,路由器名称:WiFi_test,路由器密码:1234567890;根据实际情况填入参数
WIFI CONNECTED
WIFI GOT IP
OK
AT+CIPSTA? //查询模组 station模式下的IP地址
+CIPSTA:ip:"192.168.88.200"
+CIPSTA:gateway:"192.168.88.1"
+CIPSTA:netmask:"255.255.255.0"
Ok
2.2.2 PC 创建TCP server
PC 与 WB81 设备连接到同一个路由,在 PC 上使用网络调试工具,创建一个 TCP server,例如 IP:192.168.88.102,端口:8080。
2.2.3 WB81设备进入透传收发模式
AT+CIPSTART="TCP","192.168.88.102",8080 //连接TCP服务器,服务器IP地址为 192.168.88.102,端口号为8080
CONNECT
OK
AT+CIPMODE=1 // 进入UART WiFi透传接收模式
ok
AT+CIPSEND //进入UART WiFi透传发送模式
OK
>
1234567 //待发送数据
http://www.cmsoft.cn //收到数据
2.2.4 WB81设备退出透传模式
+++ //取消回车换行发送,退出透传发送
AT+CIPMODE=0 //加回回车选项发送 退出透传接收
OK
注:在透传发送数据过程中,若识别到单独的一包数据 +++,则系统会退出透传发送。此时请至少等待 1 秒,再发下一条 AT 命令。使用 +++ 可退出 透传发送模式,回到透传接收模式,此时 TCP 连接仍然有效。您也可以使用 AT+CIPSEND 命令恢复透传发送模式。
2.2.5 WB81设备关闭TCP连接
AT+CIPCLOSE //关闭TCP连接
CLOSED
OK
3 UDP AT示例
3.1 WB81作为UDP Client,实现透传
3.1.1 WB81设备连接路由器
AT+CWMODE=1 //设置 Wi-Fi 模式为 station
ok
AT+CWJAP="wifitest","wifitest" //连接到路由器,路由器名称:wifitest,路由器密码:wifitest;根据实际情况填入参数
WIFI CONNECTED
WIFI GOT IP
OK
AT+CIPSTA? //查询模组 station模式下的IP地址
+CIPSTA:ip:"192.168.88.200"
+CIPSTA:gateway:"192.168.88.1"
+CIPSTA:netmask:"255.255.255.0"
OK
3.1.2 PC创建UDP 服务器
PC 与 WB81 设备连接到同一个路由,在 PC 上使用网络调试工具,创建一个 UDP server,例如:UDP服务器IP为:192.168.88.190;端口号:8080
3.1.3 WB81设备建立UDP连接
AT+CIPSTART="UDP","192.168.88.190 ",8080 //WB81 与 PC 建立固定 IP 地址和端口的 UDP 传输,在 UDP Wi-Fi 透传下,本参数的值必须设为 0:接收到 UDP 数据后,不改变对端 UDP 地址信息(默认)
CONNECT
OK
注:单连接:(AT+CIPMUX=0) 默认
AT+CIPSTART=<"type">,<"remote host">,<remote port>[,<local port>,<mode>,<"local IP">]
●使用参数 <mode> 前,需先设置参数 <local port>
0: 接收到 UDP 数据后,不改变对端 UDP 地址信息(默认)
1: 仅第一次接收到与初始设置不同的对端 UDP 数据时,改变对端 UDP 地址信息为发送数据设备的 IP 地址和端口
2: 每次接收到 UDP 数据时,都改变对端 UDP 地址信息为发送数据的设备的 IP 地址和端口
3.1.4 WB81设备收发数据
客户端连接UDP服务器之后,服务器端不会显示客户端IP和端口号,只有服务端接收到一包数据后,才会显示客户端IP和端口号。此时服务器端才可以向客户端发送数据
AT+CIPMODE=1 // 进入UART WiFi透传接收模式
ok
AT+CIPSEND //进入UART WiFi透传发送模式
OK
>
wb81
pcservertowb81client // 接收到数据为字符串
3.1.5 WB81设备退出透传模式
+++ //取消回车换行发送,退出透传发送
AT+CIPMODE=0 //加回回车选项发送 退出透传接收
OK
注:在透传发送数据过程中,若识别到单独的一包数据 +++,则系统会退出透传发送。此时请至少等待 1 秒,再发下一条 AT 命令。使用 +++ 可退出 透传发送模式,回到透传接收模式,此时 TCP 连接仍然有效。您也可以使用 AT+CIPSEND 命令恢复透传发送模式。
3.1.6 WB81设备断开连接
AT+CIPCLOSE
CLOSED
OK
3.2 WB81作为UDP server,普通传输
3.2.1 WB81设备连接路由器
AT+CWMODE=1 //设置 Wi-Fi 模式为 Station
ok
AT+CWJAP="wifitest","wifitest" //连接到路由器
WIFI CONNECTED
WIFI GOT IP
OK
AT+CIPSTA? //查询模组 station模式下的IP地址
+CIPSTA:ip:"192.168.88.200"
+CIPSTA:gateway:"192.168.88.1"
+CIPSTA:netmask:"255.255.255.0"
OK
3.2.2 WB81设备创建服务器
AT+CIPSTART="UDP","192.168.88.181 ",8080,1112,2 //192.168.88.181为客户端IP地址,8080随意填入的一个端口号;1112为本地端口号,可以自定义;2为UDP 传输模式会将远端信息自动更改为最近一次 与WB81设备 UDP 通信的远端 IP 地址和端口
CONNECT
OK
3.2.3 PC创建UDP连接
PC与WB81设备连接到同一个路由,在 PC 上使用网络调试工具,创建一个 UDP Client,需要填入对端的IP地址(192.168.88.200);和端口号(1112);【本地的端口号(任意)】
3.2.4 PC发送数据
PC给wb81设备发送数据之后,wb81设备会获得到对端的真实通信端口号
3.2.5 WB81设备收发数据
+IPD,20:pcclienttowb81server // 接收到数据为字符串
AT+CIPSEND=4 // 发送数据,普通模式:最大接收 8192 字节,最大发送 8192 字节
OK
>
wb81
busy p...
Recv 4 bytes
SEND OK
3.2.6 WB81设备断开连接
AT+CIPCLOSE
CLOSED
OK |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|