本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com)
适用于板卡型号:
紫光同创PG2L50H_MBG324开发平台(盘古PGX-Nano)
一:盘古盘古PGX-Nano开发板简介
PGX-Nano 是一套以紫光同创 FPGA 为核心的开发板,选用紫光同创 logos2 系列 28nm 工艺的 FPGA(PG2L50H_MBG324)。集成下载器芯片,极大的便利 了用户的使用。 板卡搭载一颗容量为 2MB 的 SRAM 用于数据缓存,DAC 芯片用于产生模 拟信号进行测试验证,esp32 模组进行 WIFI、蓝牙透传;预留了丰富的扩展 IO 用于用户验证、测试外接模块电路功能,一组串口进行串行通信;同时为用户提 供基础的硬件电路资源,例如 led 灯、按键、拨码开关等。
PGX-Nano开发板搭载了一个esp32模块,利用此模块,可使板卡以WIFI、蓝牙的方式进行通信,应注意的是,若想通过指令对esp32模块进行配置从而进入wifi、蓝牙通信模式,需先对esp32模块进行AT固件的烧录,具体烧录步骤与烧录所需工程请参考ESP32固件烧录指南文档与tool_prj文件夹。
使用开发板上的ESP32模组进行WIFI/蓝牙通信时,需要先对模组配置相应的指令,使其进入通信状态,进入通信状态后,开发板即可以开始进行wifi/蓝牙通信。
二:开发板ESP32使用简介
PGX-Nano搭载一个esp32模组,型号为:ESP32-WROVER-IE;此型号模组集成集成ESP32系列ESP32-D0WD-V3芯片,其两个CPU核都可以被单独控制,并且支持wifi与蓝牙通信。模组具有丰富的外设接口,开发板选用串口与esp32进行数据的交互,ESP32将交互的数据通过wifi/蓝牙发送或者接收,从而使板卡进行wifi/蓝牙通信。
开发板与ESP32模组相连的6个信号的功能如下:
使用开发板上ESP32模模组进行WIFI/蓝牙通信的具体思路如下:
首先:
ESP32模块在使用前需要先烧录AT固件,烧录完毕后,才能正常使用指令配置ESP32模块。
烧录AT固件时,使用ESP32上BT_TX、BT_RX两个串口信号进行AT指令的烧录。将ESP32模组的BT_TX、BT_RX信号与板卡的串口信号FPGA_UART_TX、FPGA_UART_RX相连,则可以使用板卡串口为ESP32模组下载固件。
ESP32有两种状态,AT固件下载状态,正常使用状态,以上电时或者复位结束时BT_INT信号的电平高低,判断进入那种状态,BT_INT为高电平时,ESP32进入正常使用状态,BT_INT为低电平时,ESP32进入AT固件下载状态。由此可知,在ESP32模组上电后,控制使能信号BOOTH_EN、BT_INT信号,即可使ESP32进入AT固件下载状态。
其次:
使用开发板上的ESP32模组进行WIFI/蓝牙通信时,需要先对模组配置相应的指令,使其进入通信状态,进入通信状态后,开发板即可以开始进行wifi/蓝牙通信。
首先,配置指令时,可以将ESP32用于数据通信UART信号FPGA_TX、FPGA_RX与开发板串口信号FPGA_UART_TX、FPGA_UART_RX连接,将板卡串口与PC端进行连接,通过PC端串口调试助手对ESP32模组进行指令的配置。
其次,配置指令后,ESP32模组就可以完成通过wifi/蓝牙发送来自与串口的数据以及接收WIFI/蓝牙的数据通过串口发送给开发板的功能,若希望使用板卡与ESP32进行数据的交互,就需要使用判断条件,断开FPGA_TX、FPGA_RX与开发板串口信号FPGA_UART_TX、FPGA_UART_RX的连接,使用FPGA直接向ESP32模组的FPGA_RX发送数据,或者接收ESP32模组的FPGA_TX数据,
在WIFI/蓝牙透传状态下,在结束数据传输前,向ESP32模块发送不加换行灯信号的连续+++信号,即可退出透传状态。
三:实验目的
使用板卡实现UARTwifi透传,使用完毕后拨下拨码开关退出透传状态。
四:实验要求
打开ssom文件夹下sscom5.13.1.exe,该串口调试助手可作为TCP测试工具,将其设置为TCP服务端,将板卡串口与PC端相连,在PC端新打开一个串口调试助手为板卡esp32配置指令,根据实验步骤使esp32进入wifi透传状态后,拨动拨码开关SW0开启板卡的wifi透传通信,按动按键S2,板卡会通过WiFi向TCP服务端发送一串www.meyesemi.com的字符,并且使用TCP服务端发送0~9的字符型数据(取消勾选加回车换行),将会显示在板卡数码管上。
五:实验原理
透传原理:
透传即数据传输过程中,发送方发送数据的内容和长度与接收方接受到数据的内容和长度完全相同,不对数据进行任何处理。
实验中,板卡上的esp32模组在进入透传状态后,作为数据的发送方,将模块串口接收的数据,直接转化为无线TCPIP协议包的数据内容发送出去,此过程即为透传。
六:实验源码
顶层源码如下列所示(完整源码请前往实验例程查看):
由于在使用ESP32模组在进行WIFI/蓝牙透传前,需要先进行指令的配置,因此设计一个拨动开关作为判断条件,在拨动开关为低电平时,板卡串口与ESP32模组数据传输对应串口相连,此时PC端串口调试助手输出的指令将同过板卡串口进入ESP32模组串口,从而实现指令的配置,在拨动开关为高电平时,由FPGA直接接管ESP32模组数据传输对应串口,按下按键S2,板卡将发送一串字符,并且将ESP32模组数据传输串口传出的数据显示在数码管上。
传输结束,退出透传状态时,只需拨下拨动开关,根据程序设计,FPGA会自动发送“+++”以结束透传状态。
七:实验流程
1、第一次使用,请烧录AT固件(esp32的AT固件烧录的位置为ESP模块的flash中,因此只需烧录一次即可),详情请参考ESP32_AT文件夹。
2、搭建TCP服务端:打开tools文件夹下sscom文件夹,点击sscom5.13.1.exe使用此串口调试助手作为TCP测试工具,在端口号位置选择:TCPServer,(TCP测试工具所在PC端应与板卡esp32模组连接同一个路由),设置端口号为8080(可选择其他端口号,但建议为8000以上),点击开始侦听。
3、连接板卡串口,烧录程序后,使用串口对esp32进行指令的配置,此时sw0应为未拨动状态。(串口调试助手设置波特率应为115200)
4、指令配置完成后,拨动拨动开关sw0开启板卡的wifi透传通信,按动按键S2,板卡会通过WiFi向TCP服务端发送一串www.meyesemi.com的字符,并且使用TCP服务端发送0~9的字符型数据(取消勾选加回车换行),将会显示在板卡数码管上。
5、实验结束,拨下拨码开关sw0,退出wifi透传状态,输入指定指令,关闭TCP连接。
详情参考下列叙述:
搭建TCP服务端:
(1)选择端口号:TCPServer
(2)选择IP:IP应为PC连接您路由器后分配的IP
(3)设置端口号:8080(可自行设置)
(4)点击侦听
(5)等待板卡进行透传状态,板卡进入透传状态后,根据实验流程,发送或接收数据。使用TCP服务端发送数据时,请取消勾选“加回车换行”选项
进行AT指令配置,进入wifi透传状态:
串口调试助手需要勾选加回车换行。
指令发送时前后不能有空格。
使用串口调试助手发送下列指令:
(1)指令:AT+CWMODE=1//Stationmode回复:OK
(2)指令:AT+CWJAP="WIFI名称","WiFi密码"//连接网络,wifi名称为您路由器的名称,wifi密码为您路由器的密码回复:OK
(3)指令:AT+CIFSR//查看板卡esp32模组IP回复:OK
(4)指令:AT+CIPSTART="TCP","192.168.82.78",8080//ip地址为TCP测试工具的本地IP,端口号为TCP测试工具的本地端口号(端口号可自行设置)
回复: OK
(5) 指令: AT+CIPMODE=1 //进入 WiFi 透传接收模式 回复: OK
(6) 指令: AT+CIPSEND //进入 WiFi 透传模式 回复: OK
实验结束,退出 wifi 透传状态,关闭 TCP 连接:
(1) 将串口调试助手取消勾选加回车换行,发送+++(注意不要有空格)。
(2) 重新勾选串口调试助手的加回车换行选项,发送下列指令。
(3) 指令: AT+CIPMODE=0 //退出 WIFI 透传模式 回复: OK
(4) 指令: AT+CIPCLOSE //退出 TCP 连接 回复: OK
完成 AT 指令配置过程如下:
八:实验现象
指令配置完成后,拨动拨动开关 sw0 开启板卡的 wifi 透传通信,按动按键 S2,板卡会通过 WiFi 向 TCP 服务端发送一串 www.meyesemi.com 的字符,并且使用 TCP 服务端发送 0~9 的字符型数据(取消勾选加回车换行),将会显示在板卡数 码管上。
提示: 1、若 esp32 连接不上 TCP 服务器,可以尝试关闭防火墙,或添加防火墙规 则以进行解决。 2、更多 at 指令,可前往 esp32 模块厂商乐鑫科技官网获取。