利用FPGA控制WIFI模块(1)——8266篇

0.前言:

这一系列博客主要用来记录通过FPGA控制无线传输设备,特别是WIFI模块的博客。希望为后来的FPGAer提供相关的经验,少走弯路。

1.模组简介

ESP8266 系列模组是基于乐鑫ESP8266的超低功耗的UART-WiFi模块的模组,可以方便地进行二次开发,接入云端服务,以最低成本提供最大实用性。可以在10元以内实现WIFI-UART的双向控制。模块的基本外观可以参考下面官网的图片。图片里模块的型号是ESP-01S,安信可公司除了这款模块以外,还有几款几款类似的型号,都是基于ESP8266开发的,详情可以参考安信可公司的网站有相关的介绍:http://wiki.ai-thinker.com/esp8266

8266WIFI模块外观

2.接口定义

上图是ESP-01S模块的俯视图,图中标明了模块8个接口IO的位置及名称,下面我们来一一介绍一下每个IO的具体功能

PIN脚编号 PIN脚名称 功能及备注
7 RST 复位引脚,低电平有效
6 EN 芯片使能端,高电平有效
8 VCC 模块供电引脚,电压范围3.0~3.6V
1 GND 电源地
2 IO2 U1_TXD,I2C_SDA,I2SO_WS
3 IO0 GPIO0,HSPI_SIMO,I2SI_DATA
4 RXD GPIO3,I2SO_DATA
5 TXD GPIO1

实际在使用时,主要用的是1、4、5、6、7、8,即GND、RXD、TXD、EN、RST、VCC,就能实现模块与上位机通过UART串口的通信。

3.简单应用

 

上面两幅图片是8266模块的典型应用电路,实际使用时我们用USB转TTL接口模块,利用上面的3.3V给模块供电。USB转TTL的发送与接收与8266模块的发送与接收交叉连接,我们就完成了硬件电路的连接。

模块出厂一般都内置了AT的固件,安信可的默认波特率为115200,N,8,1。打开串口助手,选择USB转TTL模块,就能进行AT指令操作。

安信可常见的AT指令,可以参考他的指令说明:http://wiki.aithinker.com/esp8266/docs#at

下面我们通过几个例子熟悉模块的相关操作:

1)TCP SERVER通信

模块上电或复位后会发出状态信息(这些状态信息是以9600波特率传输的,在115200波特率下显示为乱码),之后会打印ready,表明模块已经准备好。

通过串口发送“AT+CWMODE=2”(配置为AP模式),注意如果串口助手有发送新行的选项的话记得勾选上,否则模块可能不会响应你的指令

模块正确接收并执行指令后会通过串口返回“OK”

得到“OK”的返回值之后发送“AT+CWSAP_DEF="TCP_Server","12345678",5,4”(配置AP信息,SSID为TCP_Server,密码为12345678)

之后在收到“OK”之后发送“AT+CIPMUX=1”(开启AP多连接)

再之后收到“OK”后发送“AT+CIPSERVER=1”(开启TCP服务器)

此时已经可以在电脑上,通过无线网卡发现名为“TCP_Server”的WIFI,加入的密码为“12345678”。然后打开网络串口助手,如果没有可以去安信可官网下载:http://wiki.ai-thinker.com/_media/tools/tcpudpdbg.zip

在网络串口助手里建立TCP连接,目标IP及端口为192.168.4.1,333。均为安信可公司的默认设置,点击连接,串口助手会打印8266模块的连接状态即“0,CONNECT”,表明1个STAION已经连接上服务器。

此时,在串口助手上输入指令“AT+CIPSEND=0,10”(表示告诉模块,我准备向第0个连接的设备传输10个字的数据),之后模块会回复“OK >”表明准备好接收你要输出的数据,此时输入10个字符,点击发送。模块发送成功后会反馈信息“SEND OK”,这时你可以在网络串口助手上看到你通过串口助手发送的数据。

2)TCP CLIENT通信

TCP CLIENT的通信与TCP SERVER的会有些许不同,网络串口助手负责建立TCP SERVER服务器,端口号为333。

具体操作可以参考上一部分的内容,下面只把发送的命令和模块的反馈罗列出来:

ready
AT+CWMODE=1 //配置为Station模式

OK
AT+CWJAP_DEF="TCP_Server","12345678" //连接到AP

WIFI CONNECTED
WIFI GOT IP

OK

AT+CIFSR //查询本机IP地址

+CIFSR:STAIP,"192.168.4.2"
+CIFSR:STAMAC,"5c:cf:7f:91:8b:3b"

OK
AT+CIPMUX=0 //开启单连接

OK
AT+CIPSTART="TCP","192.168.4.1",333 //连接到TCP服务器

CONNECT
OK

AT+CIPSEND=10 //准备发送10个字节的数据到服务器端
 
OK
>         //出现该符号后串口发送Ai-Thinker(不带会车换行)
Recv 10 bytes   //串口接收到数据

SEND OK //发送成功
CLOSED //TCP连接被关闭

3)UDP通信AP模式

ready
AT+CWMODE=2 //配置为AP模式

OK
AT+CWSAP_DEF="TCP_Server","12345678",5,4 //配置AP信息

OK
AT+CIFSR //查询本机IP地址
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"a2:20:a6:19:c7:0a"

OK
AT+CIPSTART="UDP","192.168.4.2",8002,8001,0 //开启UDP连接

CONNECT

OK
+IPD,10:Ai-Thinker //接收到10个数据(Ai-Thinker)
AT+CIPSEND=10 //发送10个字节的数据到服务器端

OK
> //出现该符号后串口发送Ai-Thinker(不带会车换行)
Recv 10 bytes //串口接收到数据

SEND OK
AT+CIPCLOSE //关闭UDP连接

CLOSED

OK

4)UDP通信STATION模式

ready
AT+CWMODE=2 //配置为Station模式
 
OK
AT+CWSAP_DEF="TCP_Server","12345678",5,4 //连接到AP

OK
AT+CIFSR //查询本机IP地址
+CIFSR:STAIP,"192.168.4.2"
+CIFSR:STAMAC,"5c:cf:7f:91:8b:3b"

OK
AT+CIPSTART="UDP","192.168.4.1",8001,8002,0 //开启UDP连接

CONNECT

OK
AT+CIPSEND=10 //发送10个字节的数据到服务器端

OK
> //出现该符号后串口发送Ai-Thinker(不带会车换行)
Recv 10 bytes //串口接收到数据

SEND OK
+IPD,10:Ai-Thinker //接收到10个数据(Ai-Thinker)

AT+CIPCLOSE //关闭UDP连接

CLOSED

OK

4.结语

至此,我们基本上了解了8266的接口定义,连接方式以及基本的操作。为之后利用FPGA控制它打下知识基础。

猜你喜欢

转载自www.cnblogs.com/xianfei-li/p/9114304.html