【紫光同创盘古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. 技术与设计复杂性 城市综合管廊与隧道项目往往涉及复杂的地质条件、地下水位、周边建筑物影响等因素,要求企业具备高水平的岩土工程、结构工程和流体力学等专业知识。此外,一体化设计需要跨学科合作,协调不同系统的兼容性ÿ…...

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

一个项目学习Vue3---响应式基础
观察下面一段代码,学习响应式基础的全部内容 <template><div><div>将下面的msg属性放到上面来:{{ msg }}</div><button click"count">{{ count }}</button><button click"object.count.value">{{ o…...
白骑士的Python教学基础篇 1.5 数据结构
系列目录 上一篇:白骑士的Python教学基础篇 1.4 函数与模块 数据结构是编程语言中用于存储和组织数据的基本构件。在Python中,常见的数据结构包括列表(List)、元组(Tuple)、字典(…...
Go 常用文件操作
查找文件/目录 os.Stat(String)组合路径 dir, _ : homedir.Dir() filename : args[0] path : filepath.Join(dir, filename)homedir.Dir()为home根目录。 filepath.Join 会自动处理分隔符,将目录和文件名组合成文件路径。 检查是否含有后缀.json strings.HasSu…...

大数据、人工智能、云计算、物联网、区块链序言【大数据导论】
各位大佬好 ,这里是阿川的博客,祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 本篇序言前 必看 【大数据导论】—大数据序言 这是…...

ComfyUI流程图、文生图、图生图步骤教学!
前言 leetcode , 209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 …...
CSS基础知识学习指南
CSS基础知识学习指南 1. 介绍 CSS(层叠样式表)是用于描述HTML文档的呈现样式的语言。通过CSS,可以控制网页的布局、颜色、字体等各种样式,使得网页更加美观和用户友好。 2. CSS基础语法 CSS由选择器和声明块组成。选择器用于选…...
力扣hot100 -- 贪心算法
👂 ▶ 逍遥叹 - 胡歌&沈以城【Mashup】 (163.com) 👂 庐州月 - 许嵩 - 单曲 - 网易云音乐 2.7 小时,加上写博客,4 道题,😂 -- 希望二刷时,可以 3 小时,8 道题.... 目录 &…...
P2P文件传输协议介绍
P2P文件传输协议是一种基于对等网络(Peer-to-Peer,简称P2P)的文件共享和传输技术。以下是关于P2P文件传输协议的详细介绍: 一、定义与原理 P2P文件传输协议允许网络中的各个节点(即计算机或其他设备)之间…...
Spring Boot集成Spring Mobile快速入门Demo
1.什么是Spring Mobile? Spring Mobile是一个基于Spring Web MVC框架扩展的一个针对不同移动终端的应用开发框架。通过它我们在适配不同终端方面,就不用费劲心思了。 Spring Mobile的主要功能 自动设备检测: Spring Mobile在 server端内置了一个设备解…...

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

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

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

百家讲坛 | 裴伟伟:企业中安全团队应当如何反馈漏洞
作者简介:裴伟伟,洞源实验室创始人,国家网安基地网络安全行业专家,网安加社区特聘专家,持有CISSP、PMP证书,曾在HITCON、可信云大会、开源产业大会等安全论坛发表演讲。曾任国内某安全实验室负责人、某互金…...

巧用Fiddler中的Comments提升接口测试效率
有没有同学在使用Fiddler时跟我遇到了同样的问题,就是想给某个抓包的请求进行注释!!!但是奇怪的是,根本没有Comments相关信息呀? 设置Comments 设置Comments非常容易,选中一个请求,…...

停车场车牌识别计费系统,用Python如何实现?
关注星标,每天学习Python新技能 前段时间练习过的一个小项目,今天再看看,记录一下~ 项目结构 说明: datefile文件夹:保存车辆信息表的xlsx文件 file文件夹:保存图片文件夹。ic_launcher.jpg是窗体的右上角…...

Linux内核——Linux内核体系模式(二)
1 Linux系统的中断机制 Linux内核将中断分为两类:硬件中断和软件中断(异常)。每个中断是由0-255之间的一个数字进行标识。 中断int0-int31(0x00-0x1f)作为异常int32-int255由用户自己设定 int32-int47对应与8259A中断…...
Spring MVC的高级功能——异常处理(一)简单异常处理器
一、HandlerExceptionResolver接口 如果希望对Spring MVC中所有异常进行统一处理,可以使用Spring MVC提供的异常处理器HandlerExceptionResolver接口。Spring MVC内部提供了HandlerExceptionResolver的实现类SimpleMappingExceptionResolver。它实现了简单的异常处理…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...