无线幅频仪制作(WiFi通信)-含STM32源程序,JAVA上位机与设计报告

资料下载地址:无线幅频仪制作(WiFi通信)-含STM32源程序,JAVA上位机与设计报告

目录

项目功能

1、 系统方案1.1 比较与选择

1.1.1 控制器的论证与选择

1.1.2 信号源的论证与选择

1.1.3 放大器模块的论证与选择

1.1.4 键盘与显示模块的论证与选择

1.1.5 网络通信模块的论证与选择

1.2 方案描述

2、理论分析与计算2.1 信号发生器的电路设计

2.2 放大器设计

2.3 频率特性测试仪器

3、电路与程序设计

3.1 电路设计

3.2 程序设计

4、实物图片 

项目功能

        本装置测量放大器的幅频特性,并将数据绘成直观的图线。系统以32位高性能单片机STM32F103为主控制器,由数字式频率合成器AD9854产生所需信号,通过键盘与OLED显示屏直观控制扫频、点频等模式与频率、幅值等参数,产生一路稳定幅值的正弦扫频信号。信号通过自制的0~40dB可调增益放大器,经均值响应功率检波器AD8361检波后得到直流信号,即放大器输出信号的幅值信息;再经单片机内部模/数转换器采样,处理计算后,将幅值、频率信息发送至Wi-Fi模块ESP-32,使得局域网内的设备可以获取幅频特性数据。作品另配有计算机应用程序和安卓APP,可以方便地显示幅频特性曲线,从而实现放大器的远程幅频特性测试。

1、 系统方案1.1 比较与选择

本系统主要由控制器、信号源模块、放大器模块、键盘显示模块、网络模块、电源模块组成,下面分别论证这几个模块的选择。

1.1.1 控制器的论证与选择

方案一:采用51单片机控制。51系列单片机是廉价、易得的微控制器,但由于其采用集中指令结构,运行速度不够可观。在执行大型程序时,51单片机容易显现出功耗大、不稳定的缺点。

方案二:采用FPGA控制。FPGA即现场可编程门阵列,是作为专用集成电路领域中的一种半定制电路而出现的,解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA一般来说功耗较低。但在开发过程中往往需要快速增减一些简单功能,如串口通信等,而此类功能有可能占用过多的逻辑门资源,因此采用FPGA开发整个系统则较为不便。

方案三:采用STM32单片机控制。STM32系列单片机具有开发方便、I/O口数量多等特点。ARM内核使得其运行速度明显优于51系列单片机。STM32F103属于增强型系列,是同类产品中性能最高的产品。

综合以上两种方案与实际情况,选择方案三。

1.1.2 信号源的论证与选择

方案一:采用分立元件和中小规模集成电路构成波形发生器采用RC串并联振荡器生成正弦信号。该方案的优点:技术成熟,可供参考的资料较多。缺点:外围元器件多,调试工作量较大,频率稳定度和准确度差,很难满足频率变化的范围要求,更难准确地实现频率步进的要求。

方案二:利用专用直接数字合成DDS芯片AD9851实现波形发生器。AD9851可以产生一个稳定的频率和相位且可数字化编程的模拟正弦波输出。但是该芯片理论上可达到70MHz,其实在实际应用中,当频率达到30MHz时,波形就失真了,而且外围电路较为复杂,需耗费大量时间。

方案三:采用AD9854芯片构成信号源。AD9854芯片可产生一高稳定的频率、相位、幅度可编程的正弦和余弦信号,允许输出的信号频率高达150MHz,而数字调制输出频率可达100MHz,满足项目40M的要求。

综合以上三种方案,选择方案三。

1.1.3 放大器模块的论证与选择

方案一:选用两级电压反馈运算放大器OPA847放大,再由数字衰减器PE4302衰减。OPA847是宽带超低噪声电压反馈运算放大器,常被用于前级放大,且带宽可高达3.9GHz,噪声极小。数字衰减器可以实现对DC~4.0GHz信号产生最大31.5dB的衰减,步进为0.5dB,但不可以实现系统增益连续可变。

方案二:选择运放AD8009。通过调AD8009 R1和Rf,实验发现可以实现单片运放0~40dB的要求,但是不能满足项目输入阻抗600Ω的要求。

方案三:选择压控正益放大器VCA824级联,外加AD690调节输入阻抗,满足项目要求。

综合以上三种方案,选择方案三。

1.1.4 键盘与显示模块的论证与选择

(1)键盘:

方案一:独立键盘。控制简单,但是占用单片机IO口资源太多。

方案二:矩阵键盘。控制较为复杂,但是占用单片机IO口资源少。

方案三:周立功键盘。控制较为复杂,操作点单,但功能强大。

(2)显示器:

方案一:TFT。功能强大,但是用于控制DDS显得过于复杂。

方案二:OLED。IIC通信方式,占用单片机IO口资源少,满足需求。

方案三:12864。操作简单,但占用单片机IO口资源多而且费电。

综合以上几种方案,选择周立功键盘和OLED。

1.1.5 网络通信模块的论证与选择

方案一:使用ESP-8266作为TCP客户端,与主机建立一对一通信。ESP-8266常被用作单片机WiFi模块使用,可以通过串口传输AT指令加以控制。

方案二:使用ESP-32建立TCP服务端,供局域网内其他设备访问。ESP-32是上海乐鑫公司出品的性能更强的物联网模块,同时也可以单独作为单片机使用。另外,设立TCP服务端,也使得让电脑客户端软件和手机APP同时访问成为可能。

综合以上两种方案,选择方案二。


1.2 方案描述

根据上文得出方案:系统以STM32为主控板,以ZLG键盘和OLED屏为交互方式,控制DDS AD9854进行扫频,经过自制的放大器,由均值检波器AD8361读出幅值信息。幅频特性数据通过ESP-32实现串口透传,由特别编写的计算机程序和安卓APP接收和绘制。


2、理论分析与计算2.1 信号发生器的电路设计


经讨论后,我们决定采用DDS AD9854。我们按照官方提供的电路,完成了如下设计。

图1 正交扫频信号源子系统电路原理图(大图见附录)

2.2 放大器设计


为了达到放大性能、带宽、输入阻抗和带载能力的要求,我们以OPA690跟随器为第一级,设定输入阻抗600Ω,继而用两级VCA824达到信号0~40dB放大的要求。经测试,20MHz下,该系统可完成0~44.6dB连续可调的要求。

图2 放大器系统电路原理图(大图见附录)

2.3 频率特性测试仪器

由于示波器有X Y输入模式,由单片机DA产生的电压信息直接输入通道CH1、CH2,当扫描足够快时,由于视觉暂留现象,屏幕上便会留下幅频特性曲线。

3、电路与程序设计


 


3.1 电路设计

图4系统电路原理图

3.2 程序设计

这里主要对两个设备进行了编程:STM32和ESP-32。STM32使用μVision官方SDK,ESP-32使用新兴的嵌入式综合开发平台PlatformIO设计,也可以在ArduinoIDE内进行开发。程序详见附录2。

计算机客户端采用Java编写,手机端APP使用AndroidSDK进行设计。

4、实物图片 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/34794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[保姆级教程]uniapp小程序获取右上角胶囊位置信息

文章目录 导文使用uni.getMenuButtonBoundingClientRect();方法实现完整案例 隐藏默认导航栏&#xff1a;全局隐藏当前页面隐藏 导文 uniapp小程序获取右上角胶囊位置信息 使用uni.getMenuButtonBoundingClientRect();方法实现 <script>const menuButtonInfo uni.getMe…

logstash配置文件中明文密码加密

1 案例背景 应用配置文件中禁止使用明文密码&#xff0c;需要加密处理 上图中&#xff0c;红框打码位置为es的明文密码&#xff0c;需要对其进行处理 2 创健keystore文件 /rpa/logstash/bin/logstash-keystore --path.settings /rpa/isa/conf/logstash/ create 注&#xff1…

记录正则提取文章

收到了个word版的电子书&#xff0c;需要拆分并转换为md存储到数据库中&#xff0c;便于搜索&#xff0c;记录下用正则提取文章的过程 word原文中有目录&#xff0c;可提取出目录后&#xff0c;在正文中根据目录来正则提取文章 正则的多行匹配 在匹配大量文章的时候&#xff…

llm-universe | 四. 构建RAG应用

构建RAG应用 一.将LLM 接入 LangChain二.构建检索问答链1.加载向量数据库2.创建一个 LLM3.构建检索问答链4.检索问答链效果测试5.添加历史对话的记忆功能5.1 记忆&#xff08;Memory&#xff09;5.2 对话检索链&#xff08;ConversationalRetrievalChain&#xff09; 三. 部署知…

ts可选参数

可选参数 参数后加个问号&#xff0c;代表这个参数是可选的 function bdd(x:number,y?:number){return x y } console.log(bdd(2,3)) function bdd(x:number,y?:number){return x y } console.log(bdd(2))

从0到1构建自己的短链接系统

1. 短链系统简介 1.1 短链系统的定义与用途 短链系统是指将一个较长的URL地址&#xff0c;通过特定的算法生成一个较短的、具备唯一性的URL地址。这种系统广泛应用于社交网络、短信、邮件营销等场景&#xff0c;它能帮助用户在字数受限的情况下分享链接&#xff0c;并且还具有…

Jenkins 创建流水线任务

Jenkins是一个流行的持续集成&#xff08;Continuous Integration&#xff0c;CI&#xff09;工具。 Jenkins 创建任务 选择“流水线”类型&#xff0c;该类型的优点是定制化程度非常高 &#xff08;可选&#xff09;添加“参数化构建” 配置仓库选项(ssh连接、分支)和凭据…

上古世纪台服注册账号+下载客户端全方位图文教程

又一款新的MMRPG游戏即将上线啦&#xff0c;游戏名称叫做《上古世纪》游戏采用传统MMO类型游戏的玩法&#xff0c;但是开发商采用了先进的游戏引擎&#xff0c;让玩家们可以享受到极致的视觉体验。同时游戏的背景是建立在大陆分崩离析的基础上。各个部落因为领地的原因纷纷开战…

设计模式——责任链

责任链模式是一种行为设计模式&#xff0c;用于将请求的发送者和接收者解耦。在这种模式中&#xff0c;请求通过一条由多个对象组成的链传递&#xff0c;直到有一个对象能够处理该请求为止。每个对象都可以决定是否处理请求以及是否将请求传递给下一个对象。 责任链模式通常在…

螺丝扭断力试验机SJ-12

一、设备简介&#xff1a; 螺丝扭断力试验机用于测试螺丝的耐扭断力。本机将螺丝产品所受到轴向扭转力与反作用力&#xff0c;常用扭力扳手来计量。本机可对产品进行转力测、锁动测试、锁动扭力测试等多种测试方式。 二、设备使用&#xff1a; 1、将螺丝强度扭力试验机底座锁于…

代码随想录-Day41

46. 携带研究材料&#xff08;第六期模拟笔试&#xff09; 题目描述 小明是一位科学家&#xff0c;他需要参加一场重要的国际科学大会&#xff0c;以展示自己的最新研究成果。他需要带一些研究材料&#xff0c;但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实…

Mysql数据库学习

1、数据库基本认知 一&#xff1a;数据库分类 关系型数据库&#xff1a;SQL 主要有MySQL,Oracle,Sql Server等&#xff0c;其主要通过表与表之间&#xff0c;行与列之间的关系进行数据的存储。可以通过外键来建立表之间的关联。 非关系型数据库&#xff1a;NoSQL 主要有HB…

分享一个 MySQL 简单快速进行自动备份和还原的脚本和方法

前言 数据备份和还原在信息技术领域中具有非常重要的作用&#xff0c;不论是人为误操作、硬件故障、病毒感染、自然灾害还是其他原因&#xff0c;数据丢失的风险都是存在的。如果没有备份&#xff0c;一旦数据丢失&#xff0c;可能对个人、企业甚至整个组织造成巨大的损失。 …

uniapp H5端使用百度地图

1、登录百度地图开放平台 https://lbsyun.baidu.com/&#xff08;没有账号则先去创建一个百度账号&#xff09; 2、进入百度地图开放平台控制台&#xff08;导航栏“控制台”&#xff09;&#xff0c;点击“应用管理”-“我的应用” 3、选择“创建应用”&#xff0c;应用模块选…

msvcr110.dll丢失的解决方法,亲测有效的几种解决方法

最近&#xff0c;我在启动一个程序时&#xff0c;系统突然弹出一个错误提示&#xff0c;告诉我电脑缺失了一个名为msvcr110.dll的文件。这让我感到非常困惑&#xff0c;因为我之前从未遇到过这样的问题。经过一番搜索和尝试&#xff0c;我总结了5种靠谱的解决方法。下面分享给大…

高效运维:标准化与智能化的运维流程管理实践

高效运维&#xff1a;标准化与智能化的运维流程管理实践 在信息化建设日益深化的今天&#xff0c;运维流程管理已成为企业确保其信息系统稳定、高效运行的关键手段。通过系统化、标准化的运维流程管理&#xff0c;企业能够有效预防系统故障&#xff0c;提升服务质量&#xff0…

React的路由(ReactRouter)-路由导航跳转

1.第一步 // createBrowserRouter路由 RouterProvider组件 import {createBrowserRouter,RouterProvider} from react-router-dom // 创建router实例对象&#xff0c;并配置路由对应关系 const routercreateBrowserRouter([{path:/login,element:<div>我是登录页</di…

vue3-登录小案例(借助ElementPlus+axios)

1.创建一个vue3的项目。 npm create vuelatest 2.引入Elementplus组件库 链接&#xff1a;安装 | Element Plus npm install element-plus --save 在main.js中引入 import ElementPlus from "element-plus";import "element-plus/dist/index.css";ap…

python--序列化模块json与pickle

什么叫序列化&#xff1f; 将原本的字典、列表等内容转换成一个字符串的过程就 叫做序列化。 多用的两个序列化模块&#xff1a;json与pickle json&#xff0c;用于字符串 和 python数据类型间进行转换 pickle&#xff0c;用于python特有的类型 和 python的数据类型间进行转换 …

Scania斯堪尼亚SHL题库综合能力性格测试真题题型解析及面试经验

一、走进Scania斯堪尼亚 Scania是一家成立于1891年的瑞典公司&#xff0c;专注于重型卡车和巴士的制造&#xff0c;以其模块化系统和环保设计闻名。作为全球领先的运输解决方案提供商&#xff0c;Scania不仅提供高质量的车辆&#xff0c;还提供相关服务和融资解决方案。公司秉…