当前位置: 首页 > news >正文

【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第十二章)Wifi透传实验例程说明

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(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 模块厂商乐鑫科技官网获取。

 

相关文章:

【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第十二章)Wifi透传实验例程说明

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com) 适用于板卡型号: 紫光同创PG2L50H_MBG324开发平台(盘古PGX-Nano) 一:…...

详述乙级资质企业在城市综合管廊与隧道一体化设计中的挑战与机遇

挑战 1. 技术与设计复杂性 城市综合管廊与隧道项目往往涉及复杂的地质条件、地下水位、周边建筑物影响等因素,要求企业具备高水平的岩土工程、结构工程和流体力学等专业知识。此外,一体化设计需要跨学科合作,协调不同系统的兼容性&#xff…...

如何借助物联网实现农情监测与预警

如何借助物联网实现农情监测与预警? 物联网技术,作为信息技术与传统行业的深度融合产物,正逐步变革着农业生产的管理模式,特别是在农情监测与预警领域展现出巨大潜力。其核心在于通过感知层的各类传感器、通信层的数据传输技术以…...

一个项目学习Vue3---响应式基础

观察下面一段代码&#xff0c;学习响应式基础的全部内容 <template><div><div>将下面的msg属性放到上面来:{{ msg }}</div><button click"count">{{ count }}</button><button click"object.count.value">{{ o…...

白骑士的Python教学基础篇 1.5 数据结构

系列目录​​​​​​​ 上一篇&#xff1a;白骑士的Python教学基础篇 1.4 函数与模块 数据结构是编程语言中用于存储和组织数据的基本构件。在Python中&#xff0c;常见的数据结构包括列表&#xff08;List&#xff09;、元组&#xff08;Tuple&#xff09;、字典&#xff08…...

Go 常用文件操作

查找文件/目录 os.Stat(String)组合路径 dir, _ : homedir.Dir() filename : args[0] path : filepath.Join(dir, filename)homedir.Dir()为home根目录。 filepath.Join 会自动处理分隔符&#xff0c;将目录和文件名组合成文件路径。 检查是否含有后缀.json strings.HasSu…...

大数据、人工智能、云计算、物联网、区块链序言【大数据导论】

各位大佬好 &#xff0c;这里是阿川的博客&#xff0c;祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 本篇序言前 必看 【大数据导论】—大数据序言 这是…...

ComfyUI流程图、文生图、图生图步骤教学!

前言 leetcode , 209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 …...

CSS基础知识学习指南

CSS基础知识学习指南 1. 介绍 CSS&#xff08;层叠样式表&#xff09;是用于描述HTML文档的呈现样式的语言。通过CSS&#xff0c;可以控制网页的布局、颜色、字体等各种样式&#xff0c;使得网页更加美观和用户友好。 2. CSS基础语法 CSS由选择器和声明块组成。选择器用于选…...

力扣hot100 -- 贪心算法

&#x1f442; ▶ 逍遥叹 - 胡歌&沈以城【Mashup】 (163.com) &#x1f442; 庐州月 - 许嵩 - 单曲 - 网易云音乐 2.7 小时&#xff0c;加上写博客&#xff0c;4 道题&#xff0c;&#x1f602; -- 希望二刷时&#xff0c;可以 3 小时&#xff0c;8 道题.... 目录 &…...

P2P文件传输协议介绍

P2P文件传输协议是一种基于对等网络&#xff08;Peer-to-Peer&#xff0c;简称P2P&#xff09;的文件共享和传输技术。以下是关于P2P文件传输协议的详细介绍&#xff1a; 一、定义与原理 P2P文件传输协议允许网络中的各个节点&#xff08;即计算机或其他设备&#xff09;之间…...

Spring Boot集成Spring Mobile快速入门Demo

1.什么是Spring Mobile&#xff1f; Spring Mobile是一个基于Spring Web MVC框架扩展的一个针对不同移动终端的应用开发框架。通过它我们在适配不同终端方面&#xff0c;就不用费劲心思了。 Spring Mobile的主要功能 自动设备检测: Spring Mobile在 server端内置了一个设备解…...

走进开源企业 | 湖南大学OpenHarmony技术实训活动在开鸿智谷顺利举办!

6月24日-6月26日&#xff0c;2024开放原子校源行之湖南大学信息科学与工程学院师生走进开源企业实训交流活动顺利落下帷幕。湖南大学信息科学与工程学院的师生代表团一行90人参与了湖南开鸿智谷数字产业有限公司&#xff08;以下简称“开鸿智谷”&#xff09;与母公司拓维信息系…...

TCP单进程循环服务器程序与单进程客户端程序

实验目的 理解并掌握以下内容: 网络进程标识(即套接字地址)在Linux中的数据结构与地址转换函数。网络字节序与主机字节序的定义、转换以及相关函数在网络编程中的应用。数据结构内存对齐的基本规则,以及基于数据结构构建PDU的基本方法。TCP单进程循环服务器与单进程客户端的…...

QT+winodow 代码适配调试总结(二)

已经好多年了&#xff0c; linux环境下不同版本的QT程序开发和部署&#xff0c;突然需要适配window环境程序调试&#xff0c;一堆大坑&#xff0c;还真是一个艰巨的任务&#xff0c;可是kpi下的任务计划&#xff0c;开始吧&#xff01;&#xff01; 1、首先我们自定义的动态库…...

百家讲坛 | 裴伟伟:企业中安全团队应当如何反馈漏洞

作者简介&#xff1a;裴伟伟&#xff0c;洞源实验室创始人&#xff0c;国家网安基地网络安全行业专家&#xff0c;网安加社区特聘专家&#xff0c;持有CISSP、PMP证书&#xff0c;曾在HITCON、可信云大会、开源产业大会等安全论坛发表演讲。曾任国内某安全实验室负责人、某互金…...

巧用Fiddler中的Comments提升接口测试效率

有没有同学在使用Fiddler时跟我遇到了同样的问题&#xff0c;就是想给某个抓包的请求进行注释&#xff01;&#xff01;&#xff01;但是奇怪的是&#xff0c;根本没有Comments相关信息呀&#xff1f; 设置Comments 设置Comments非常容易&#xff0c;选中一个请求&#xff0c…...

停车场车牌识别计费系统,用Python如何实现?

关注星标&#xff0c;每天学习Python新技能 前段时间练习过的一个小项目&#xff0c;今天再看看&#xff0c;记录一下~ 项目结构 说明&#xff1a; datefile文件夹&#xff1a;保存车辆信息表的xlsx文件 file文件夹&#xff1a;保存图片文件夹。ic_launcher.jpg是窗体的右上角…...

Linux内核——Linux内核体系模式(二)

1 Linux系统的中断机制 Linux内核将中断分为两类&#xff1a;硬件中断和软件中断&#xff08;异常&#xff09;。每个中断是由0-255之间的一个数字进行标识。 中断int0-int31&#xff08;0x00-0x1f&#xff09;作为异常int32-int255由用户自己设定 int32-int47对应与8259A中断…...

Spring MVC的高级功能——异常处理(一)简单异常处理器

一、HandlerExceptionResolver接口 如果希望对Spring MVC中所有异常进行统一处理&#xff0c;可以使用Spring MVC提供的异常处理器HandlerExceptionResolver接口。Spring MVC内部提供了HandlerExceptionResolver的实现类SimpleMappingExceptionResolver。它实现了简单的异常处理…...

【面试干货】Static关键字的用法详解

【面试干货】Static关键字的用法详解 1、Static修饰内部类2、Static修饰方法3、Static修饰变量4、Static修饰代码块5、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java编程语言中&#xff0c;static是一个关键字&#xff0c;它可…...

软件工程实验

实验环境和需求 用户可以对相片进行按类别管理&#xff0c;用户可以设定不同的类别&#xff0c;然后上传照片到相应的类别中&#xff0c;并能进行照片的删除&#xff0c;注释 运行 运行并访问 localhost 8090,图片在数据库中的信息是D&#xff1a;/upgrade 后面的内容 se…...

对于复杂的网页布局,如多列布局和网格布局,CSS 有哪些最佳实践和技巧?

对于复杂的网页布局&#xff0c;如多列布局和网格布局&#xff0c;以下是一些CSS的最佳实践和技巧&#xff1a; 使用Flexbox或CSS Grid布局&#xff1a;Flexbox和CSS Grid是两个强大的CSS布局模型&#xff0c;可用于实现复杂的网页布局。Flexbox适用于单行或单列布局&#xff0…...

Spring Boot中集成Redis实现缓存功能

Spring Boot中集成Redis实现缓存功能 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨如何在Spring Boot应用程序中集成Redis&#xff0c;实现…...

arco disign vue 日期组件的样式穿透

问题描述: 对日期组件进行样式穿透. 原因分析: 如图,日期组件被展开时它默认将dom元素挂载到body下, 我们的页面在idroot的div 里层, 里层想要穿透外层是万万行不通的. 解决问题: 其实官网提供了参数,但是并没有提供例子, 只能自己摸索着过河. 对于日期组件穿透样式,我们能…...

【深度学习】pytorch训练中的一个大坑

使用的命令&#xff1a;iostat -x 5 可以看到 ssd的利用率已经满了。 之前在的数据集放在了 hdd上&#xff0c;训练结果特别慢。 所以我把它移动到了ssd上&#xff0c;然后训练参数用的 resume&#xff0c; 但是&#xff01;&#xff01;&#xff01;&#xff01;它把历史记住…...

python全局解释器锁(GIL)

文章目录 1.cpu工作方式2.python全局解释器锁与多线程3.其他语言的多线程4.如何解决假的多线程 1.cpu工作方式 先来先服务&#xff08;First Come, First Served&#xff0c;FCFS&#xff09;&#xff1a; 最简单的调度算法&#xff0c;按照作业或进程到达的顺序依次执行。没有…...

无人机的起源

无人机起源于20世纪初的早期实验阶段&#xff0c;并随着技术进步逐步发展。无人机&#xff0c;作为现代科技领域中的一项重要创新&#xff0c;已经在全球范围内展现出其巨大的潜力和应用价值。 无人机的历史可以追溯到1917年&#xff0c;美国人艾德温.奥斯特林发明了“飞行训练…...

专题六:Spring源码之初始化容器BeanFactory

上一篇咱们通过一个例子介绍初始化容器上下文相关内容&#xff0c;并通过两个示例代码看到了Spring在设计阶段为我预留的扩展点&#xff0c;和我们应该如何利用这两个扩展点在Spring初始化容器上下文阶段为我们提供服务。这一篇咱们接着往下看。 老这样子下回到refresh方法上来…...

缓存双写一致性(笔记)

缓存更新方案 旁路缓存模式 这是比较多的 旁路缓存模式&#xff1a;缓存有就返回&#xff0c;没有数据库查询&#xff0c;放入缓存返回。 还有些常用缓存策略 读穿透模式 读穿透和旁路很相似&#xff0c;程序不需要关注从哪里读取数据&#xff0c;它只需要从缓存查询数据。…...