基于射频开关选择的VNA校准设计
活动发起人@小虚竹 想对你说:
这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你参加为期14天的创作挑战赛!
提醒:在发布作品前,请将不需要的内容删除。
一、实验目的
1、设计并实现一个基于射频开关选择的电子校准件,通过ESP32控制射频开关切换不同的校准状态实现校准,以提高矢量网络分析仪的使用寿命。
2、对校准件进行设计并测试。
二、实验仪器
1、射频开关
2、矢量网络分析仪
3、电子校准件
三、实验原理
1.电子校准件系统框图:
本次电子校准件设计使用的微处理控制器是ESP32,其是由乐鑫(Espressif Systems)公司推出的一款低成本、低功耗的WiFi和蓝牙双模系统芯片,适用于各种物联网(IoT)应用和嵌入式系统。ESP32的WiFi具有两种模式,一种是Station模式:ESP32可以作为WiFi客户端连接到现有的无线网络中,实现设备和互联网的连接。另一种是SoftAP模式:ESP32可以作为软AP(接入点)创建自己的WiFi网络,其他设备可以连接到它,实现设备之间的局域网通信。在此电子校准件中为了让VNA和ESP32处于同一个局域网中,我们让ESP32的WiFi开启Station模式。当用户按下按键时,ESP32会向VNA发送校准申请指令,当VNA响应时,校准正式开始,此过程根据VNA响应信息(端口连接不同的校准件类型),ESP32会控制校准件切换电路满足响应的需求。当校准完毕后,提示灯会亮起。系统框图如下图所示:

图 3-1 电子校准件系统框图
2.VAN系统
下图是VNA的原理框图,主要包括以下部分:
(1)激励信号源:提供感兴趣的频率范围内的入射信号;
(2)信号分离装置:含功分器和定向耦合器,分离出入射,反射和传输信号;
(3)接收机:对被测件的入射,反射和传输信号进行测试;
(4)处理显示单元:对测试结果进行处理和显示。
正确的校准是使用 VNA 的一个难点。VNA测量出来的S参数是否有错误并不能通过VNA直接能检查出来,只有导入仿真软件仿真出结果发现有问题时可能会怀疑是S参数测量有问题,再返回来检查VNA校准VNA测量时的操作有没有错误。

图 3-2 VAN系统框图
3.硬件设计:
(1)HMC7992 非反射式硅单刀四掷 (SP4T) 开关非常适合用于蜂窝基础设施应用。 HMC7992 开关具有 45dB 的高隔离和 2GHz 时的 0.6dB 低插入损耗。 HMC7992 具有高达 6GHz 的出色功率处理能力,5V 时 35dBm 的输入功率为 1dB 压缩点 (P1dB)。这些开关显示出低于 0.1GHz 的良好低频输入功率处理能力。 HMC7992 开关在 21dBm 典型 1dB 压缩时运行可低至 10kHz,在 1MHz 时 37dBm 为 IIP3。 HMC7992 的片上电路使该开关能够使用 3.3-5V 正极控制单电源以及 0-1.8/3.3/5V 正极控制单电压运行。HMC7992 的集成式 2:4 解码器只需要两个受控输入信号,正极控制电压范围为 0-1.8/3.3/5V。2:4 解码器可以让设计人员从四个射频 (RF) 路径中选择一个。HMC7992功能图如下图所示:

图 3-3 HMC7992功能图
- HMC8038是一款高隔离度、非反射式、0.1 GHz至6.0 GH、单刀双掷(SPDT)开关芯片,采用无引脚、表贴封装。 该开关非常适合蜂窝基础设施应用,可实现高达4.0 GHz的62 dB隔离、高达4.0 GHz的0.8 dB低插入损耗和60 dBm输入三阶交调截点。 拥有高达6.0 GHz的出色功率处理能力,并提供针对35 dBm的0.1 dB压缩点(P0.1dB)的输入功率(VDD = 5 V)。片上电路可操作单一正电源电压从 3.3 V 到 5 V,并且可以在非常低的直流电流下操作单一正电压控制从 0 V 到 1.8 V/3.3 V/5.0 V。当使能输入 (EN) 设置为高电平时,开关处于全关状态,此时 RFC 为反射状态。HMC8038 在所有器件引脚(包括 RF 接口)上具有 ESD 保护,可承受 4 kV HMB 和 1.25 kV CDM。HMC8038 提供非常快速的开关和 RF 稳定时间,分别为 150 ns 和 170 ns。该器件采用符合 RoHS 标准的紧凑型 4 mm × 4 mm LFCSP 封装。HMC8038应用电路如下图所示:

图 3-4 HMC8038应用电路图
电子校准件的校准框图如下图所示:

图 3-5 电子校准件校准框图
- 一端口先经过一个单刀四掷开关(SP4T1)可直接选择开路和短路,负载匹配选择为单刀双掷开关(SPDT1)的RF2端口,二端口经过一个单刀四掷开关(SP4T2)可直接选择开路和短路,二端口的负载匹配选择为单刀双掷开关(SPDT2)的RF1端口。由图可以看出单刀双掷开关(SPDT1)一直选择为RF1联通,单刀双掷开关(SPDT2)一直选择为RF2联通,这样就构成了校准件的端口1和端口2处于直通状态。“开路”元件是末端开路的微带线,“短路”元件由微带线末端焊 100pF 电容形成。
4.软件设计:
电子校准件软件端使用FreeRTOS微型操作系统,FreeRTOS允许开发者创建多个任务,每个任务可以独立运行,使用ESP32的多核处理器能力,或者利用单核心的多任务调度机制。FreeRTOS的调度器负责决定哪个任务在何时运行,基于任务的优先级和调度策略进行动态调度,确保高优先级任务能够及时执行。通过FreeRTOS的信号量、队列和互斥锁等机制,实现对共享资源的安全访问和同步,避免竞态条件和数据损坏。通过FreeRTOS的睡眠和唤醒机制,可以有效管理ESP32的功耗,延长电池寿命,在需要时降低功耗。此电子校准件软件部分,创建了3个任务。每个任务的优先级一致。每个任务会根据时间片进行轮转。当任务检测满足条件时会触发后续的操作。
-
实验步骤
- 开发板设计:
将射频开关(HMC7992LP3DE)与ESP32开发板连接,通过两个一切四的射频开关对两个端口不同校准状态的切换,将矢量网络分析仪的两个端口分别接入射频开关的输入端,末端开路的微带线形成“开路”元件,由微带线末端焊0.1uF电容形成“短路”元件,另外一个开关的断开路为“负载”(射频开关断开时内部为负载接地),确保矢量网络分析仪与电子校准件正确连接,并进行初步的硬件检查。在计算机上安装Arduino IDE,编写代码,控制电子校准件射频开关的切换,通过串口监视器或其他方式,检查ESP32控制射频开关的情况。调整代码和硬件连接,确保系统正常工作。使用VNA进行校准,记录不同校准状态下的测量数据最后分析测量数据,验证校准件的有效性。
1.1 硬件准备:
(1)将射频开关与Arduino开发板连接,具体引脚根据所选射频开关型号确定;
(2)将不同的校准件连接到射频开关的不同端口;
(3)确保VNA与射频开关正确连接,并进行初步的硬件检查。
1.2 软件编写:
(1)在计算机上安装Arduino IDE;
(2)编写Arduino代码,控制射频开关的切换;
(3)将编写的代码上传到Arduino开发板;
1.3 系统调试
(1)通过串口监视器或其他方式,检查Arduino控制射频开关的情况。
(2)调整代码和硬件连接,确保系统正常工作。
1.4 VNA校准
(1)使用VNA进行校准,记录不同校准状态下的测量数据;
(2)分析测量数据,验证校准件的有效性。
2.电路图与PCB的设计:
使用嘉立创,完成电路图和PCB的搭建与绘制,电路图与PCB绘制如下图所示:

图 4-1 电子校准件原理图

图 4-2电子校准件PCB图
四、实验结果分析
电子校准件依据SOLT校准算法,因此设计了开路、短路、负载、直通四种端口切换模式。使用电子校准件首先需要将VNA的1、2端口连接电子校准件的1、2端口。连接完毕后,在电子校准件上点击开始校准按键。此时校准开始,当校准完毕后,可以观察到矢量网络分析仪S21应为一条0dB的直线在整个频段中。

图 5-1 校准结果图

相关文章:
基于射频开关选择的VNA校准设计
活动发起人小虚竹 想对你说: 这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!…...
解决本地模拟IP的DHCP冲突问题
解决 DHCP 冲突导致的多 IP 绑定失效问题 前言 续接上一篇在本机上模拟IP地址。 在实际操作中,如果本机原有 IP(如 192.168.2.7)是通过 DHCP 自动获取的,直接添加新 IP(如 10.0.11.11)可能会导致 DHCP 服…...
ChromeDriver下载
平时为了下个驱动,到处找挺麻烦,收集了很多无偿分享给需要的人,仅供学习和交流。 ChromeDriver 102.0.5005.61 ChromeDriver 105.0.5195.102 ChromeDriver 108.0.5359.71 ChromeDriver 111.0.5563.64 ChromeDriver 116.0.5845.97 Chrom…...
springboot pagehelper分页插件封装
封装插件: 可自定义返回的Pages实体类参数 package com.wm.common;import com.github.pagehelper.ISelect; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import lombok.Data; import java.util.List;/*** 分页封装* param <…...
Elasticsearch7.1.1 配置密码和SSL证书
生成SSL证书 ./elasticsearch-certutil ca -out config/certs/elastic-certificates.p12 -pass 我这里没有设置ssl证书密码,如果需要设置密码,需要再配置给elasticsearch 在之前的步骤中,如果我们对elastic-certificates.p12 文件配置了密码…...
让win11右键默认显示更多选项
cmd / powershell 右键默认显示更多选项 reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve 刷新,使配置生效(该命令需要cmd执行,powershell不行) …...
毕业项目推荐:基于yolov8/yolo11的100种中药材检测识别系统(python+卷积神经网络)
文章目录 概要一、整体资源介绍技术要点功能展示:功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出(xls格式)功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…...
kill -9 结束某个用户所有进程的方式-linux019
1. 使用 pkill 命令 pkill 命令可以通过用户名直接终止该用户的所有进程。加上 -9 参数,表示强制结束进程。 pkill -9 -u XXXX 说明:这个命令会使用 SIGKILL 信号(即 kill -9)强制终止 ttlsa 用户的所有进程。 2. 使用 killal…...
自用题库---面试使用
1、css中如何实现水平垂直居中 方法一:flex: display: flex; justify-content: center; align-item: center;方法二:绝对定位margin:auto: position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin:auto;方法三:已…...
蓝桥杯好数
样例输入: 24 输出:7 输入:2024 输出: 150 思路:本题朴素方法的时间复杂度是O(n * log10(n)) ,不超时。主要考察能否逐位取数,注意细节pi,这样不会改变i,否则会导致循环错误。 #in…...
Jenkins 配置 Credentials 凭证
Jenkins 配置 Credentials 凭证 一、创建凭证 Dashboard -> Manage Jenkins -> Manage Credentials 在 Domain 列随便点击一个 (global) 二、添加 凭证 点击左侧 Add Credentials 四、填写凭证 Kind:凭证类型 Username with password: 配置 用…...
用openresty和lua实现壁纸投票功能
背景 之前做了一个随机壁纸接口,但是不知道大家喜欢对壁纸的喜好,所以干脆在实现一个投票功能,让用户给自己喜欢的壁纸进行投票。 原理说明 1.当访问http://demo.com/vote/时,会从/home/jobs/webs/imgs及子目录下获取图片列表&…...
Vue 监听属性(watch)
Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue 监听属性(watch) 目录 监听属性 监听值改变 使用watch实现 区别 总结 监听属性 通过watch来响应数据的变化。 虽然大多数情况计算属性都可以满足需要,但有时还是需要使用侦听器。…...
mysql查看binlog日志
mysql 配置、查看binlog日志: 示例为MySQL8.0 1、 检查binlog开启状态 SHOW VARIABLES LIKE ‘log_bin’; 如果未开启,修改配置my.ini 开启日志 安装目录配置my.ini(mysql8在data目录) log-binmysql-bin(开启日志并指定日志前缀ÿ…...
BiRefNet C++ TensorRT (二分类图像分割)
BiRefNet C TensorRT (二分类图像分割) 利用TensorRT和CUDA的双边参考网络(BiRefNet)的高性能c实现,针对实时高分辨率二分类图像分割进行了优化。 BiRefNet c TENSORRT旨在有效地在GPU上运行双边参考分割任务。通过利…...
蓝桥杯篇---IAP15F2K61S2矩阵键盘
文章目录 前言简介矩阵键盘的工作原理1.行扫描2.检测列状态3.按键识别 硬件连接1.行线2.列线 矩阵键盘使用步骤1.初始化IO口2.扫描键盘3.消抖处理4.按键识别 示例代码:4x4矩阵键盘扫描示例代码:优化后的矩阵键盘扫描注意事项1.消抖处理2.扫描频率3.IO口配…...
【ARM】MDK在编译 i.MXRT1芯片的时候出现报错Error: L6079E
1、 文档目标 解决MDK在编译 i.MXRT1芯片的时候出现报错Error: L6079E 2、 问题场景 客户在使用NXP 的NXP i.MXRT1050的芯片进行工程构建的时候出现下面的报错信息: Error: L6079E: Subtool invocation error: Error executing armcc. The system could not find…...
论文笔记(七十二)Reward Centering(二)
Reward Centering(二) 文章概括摘要2 简单的奖励中心 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arXiv preprint arXiv:2405.0…...
LeetCode 2595.奇偶位数:位运算
【LetMeFly】2595.奇偶位数:位运算 力扣题目链接:https://leetcode.cn/problems/number-of-even-and-odd-bits/ 给你一个 正 整数 n 。 用 even 表示在 n 的二进制形式(下标从 0 开始)中值为 1 的偶数下标的个数。 用 odd 表示…...
推荐几款较好的开源成熟框架
一. 若依: 1. 官方网站:https://doc.ruoyi.vip/ruoyi/ 2. 若依SpringBootVueElement 的后台管理系统:https://gitee.com/y_project/RuoYi-Vue 3. 若依SpringBootVueElement 的后台管理系统:https://gitee.com/y_project/RuoYi-Cl…...
基于知识图谱的问答系统:后端Python+Flask,数据库Neo4j,前端Vue3(提供源码)
基于知识图谱的问答系统:后端PythonFlask,数据库Neo4j,前端Vue3 引言 随着人工智能技术的不断发展,知识图谱作为一种结构化的知识表示方式,逐渐成为问答系统的重要组成部分。本文将介绍如何构建一个基于知识图谱的问答…...
【华为机试】HJ80 整型数组合并
解法一: HashSet>List列表 Collections.sort(list)对列表进行排序 import java.util.*; import java.util.HashSet;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner sc new Scanner(…...
day17-后端Web原理——SpringBoot原理
目录 SpingBoot原理1. 配置优先级2. Bean管理2.1 获取Bean2.2 Bean作用域2.3 第三方Bean 3. SpringBoot原理3.1 起步依赖3.2 自动配置3.2.1 概述3.2.2 常见方案3.2.2.1 概述3.2.2.2 方案一3.2.2.3 方案二 3.2.3 原理分析3.2.3.1 源码跟踪3.2.3.2 Conditional 4. Web后端开发总结…...
我们来学nginx -- work process
题记 工作进程能处理大量的并发请求几乎不会阻塞Worker进程可绑定到固定的核,避免CPU频繁地上下文切换看样子,还得转为人话 大白话 作为一般的应用的开发大部分人没有很强的底层技术基础如果深究,涉及复杂技术点,很容易迷惘为什…...
马拉车算法
Manacher算法 ,用于处理最长回文字符串的问题,可以在O(n)的情况下,求出一个字符串的最长回文字符串 回文串的基础解法: 以每个点为中心对称点,看左右两边的点是否相同。这种算法的时间复杂度为O࿰…...
【PLL】应用:同步
1. 用于时钟去偏移的PLL 时钟频率增加内部时钟与外部时钟的偏移,在芯片之间通信时很重要时钟偏移可能是由时钟树引起的,该时钟树缓冲外部时钟以驱动大量内部节点 芯片间通信中的时钟偏移问题 芯片1和芯片2共享外部时钟CKext芯片内部逻辑电路操作的实际时…...
golang常用库之-swaggo/swag根据注释生成接口文档
文章目录 golang常用库之-swaggo/swag库根据注释生成接口文档什么是swaggo/swag golang常用库之-swaggo/swag库根据注释生成接口文档 什么是swaggo/swag github:https://github.com/swaggo/swag 参考文档:https://golang.halfiisland.com/community/pk…...
Go入门之数组与切片
var arr1 [...]int{1, 2, 3}fmt.Println(len(arr1)) 数组长度不能扩展 var arr2 [...]int{0: 100, 5: 101}fmt.Println(len(arr2)) } 指定索引初始化 可以通过for和range遍历 值类型:基本数据类型和数组都是值类型,改变副本的值不会改变本身的值 切片为引用数…...
30天开发操作系统 第22天 -- 用C语言编写应用程序
前言 在昨天的最后我们成功干掉了crack2.hrb, 今天我们要尝试一下更厉害的攻击手段。 所以说, 从现在开始又要打开坏人模式了哟,嘿嘿嘿 虽然把操作系统的段地址存入DS这一招现在已经不能用了,不过我可不会善罢甘休的。我要想个更厉害的招数,…...
后端开发:开启技术世界的新大门
在互联网的广阔天地中,后端开发宛如一座大厦的基石,虽不直接与用户 “面对面” 交流,却默默地支撑着整个互联网产品的稳定运行。它是服务器端编程的核心领域,负责处理数据、执行业务逻辑以及与数据库和其他后端服务进行交互。在当…...
