基于互联网的信号传输系统

2023-11-05

参加完电子设计竞赛不知不觉快过去两个月了,今天小刚写一下当时我们这道题的方案。
本系统基于互联网的信号传输系统采用STM32F407ZGT6和FPGA Cyclone IV作为主控芯片,对信号进行采样和处理。系统由幅度测量电路、频率测量电路、信号传输电路、信号处理电路、模拟输出电路等部分组成。FPGA采得一点的相位和幅度信息后,通过STM32和以太网交换机传输给模拟输出电路,模拟输出电路把点信息写入寄存器并循环读寄存器产生信号,可通过按键切换选择恢复一路或者两路的信号。相位同步通过发送端和接收端互传含时间戳的数据包实现,由接收端快速收发同步数据求出延时补偿。
本系统由幅度测量电路、频率测量电路、信号传输模块、信号处理模块、模拟输出电路五部分组成。幅度测量电路和频率测量电路从信号中提取出相位、幅度和频率等信息,传输给单片机。A、B端的单片机与C端单片机进行网络通信,构成信号传输模块。网络延时等于C端发送给A、B端同步数据包再立即返回所需时间的一半,求出延时补偿后对数据包中的时间戳进行修正。C端的信号处理模块以大容量的Xilinx ARTIX-7 FPGA为核心,以寄存器为储存单元,存储已经压缩成500个点以内的信号数据,模拟输出电路循环读取储存单元即可输出信号。按键可以切换再生A和B信号。
在这里插入图片描述
1.互联网传输策略
互联网传输以探索者STM32F4开发板为核心,使用UDP协议。发送端A、B端传至接收端C端的报文如下:1位发送端标志“A”或“B”+3位十进制相位+3位十进制幅度值+7位十进制信号频率。数据传输报文如图2所示。
在这里插入图片描述

2.网络时间延迟测量及补偿
网络延迟数据包每秒发送一次,用于求得网络延迟。方法是由C端发送一个只含一个字符“T”的数据包,同时开启计时器计数。A和B端接收后立马返回一个同样的数据包,C端接收到后停止计时器,网络延迟等于计时器计时的一半。
另外,A和B端会不停地向C端发送同步数据包,报文如下:1位发送端标志“A”或“B”+63位当前时间戳+3位十进制幅度值。这个同步数据包的意义是:发送端在指定的时间戳,信号运行到了指定的相位,将这个目标相位和当前相位比较,再小幅度增大或减小输出信号的周期以接近目标相位,这样就能够同步信号。同步数据报文如图3所示。
在这里插入图片描述

硬件电路设计

输入信号为周期信号,由于要采集输入信号的周期,所以要将输入信号通过比较器TLV3501将其转为周期性的矩形波信号给FPGA进行处理,测量其周期大小。由于输入幅值可变,所以通过迟滞比较器,将门限电压设置在零点附近,后级采用电压更随器实现信号隔离和阻抗匹配。比较器电路如图5所示。
在这里插入图片描述
3)滤波电路
由于最后一级的输出信号是通过DAC产生电所以要加一级低通平滑滤波器,滤波器采用7阶椭圆滤波器,将截止频率设置在10MHz。采用filter-solutio软件设计参数,滤波器电路参数如图6所示。
在这里插入图片描述
电源原理图:
在这里插入图片描述在这里插入图片描述

ADC采用的是ADC10065:
在这里插入图片描述
DAC为DAC904:
在这里插入图片描述
这道题做下来感觉平时硬件的训练都没有用武之地,这道题关键在软件,软件也调的心累,主要是相位同步吧。

四天三夜基本靠软件,不过数据传输过程中会在信道里引入干扰,最后滤波器比较重要。那几天真的是心有余而力不足,虽然最后结果还算满意但是还有一丝丝不甘心——审题不仔细漏掉好几个得分点。
接下来要多学学软件,学学算法。
保持初心,保持进步吧!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于互联网的信号传输系统 的相关文章

  • 23种常用设计模式(C++)

    Part One Methods for constrcting a new object 1 Factory method 我们把简单工厂方法归类到工厂方法中 工厂方法的目的是用来解决具有同一接口 基类 派生类对象的生成问题 尽管可以通过

随机推荐

  • vray渲染白屏卡死_3DMAX使用VRay渲染的时候,在building embree static这一步最后一点卡死...

    DMAX使用vray渲染的时候 在building embree static这一步最后一点卡死是参数设置错误 解决方法如下 1 在我们为场景打好vray灯光以后 要设置vray渲染的参数 按 F10 打开vray渲染编辑器 在 公用 下栏
  • react-Suspense工作原理分析

    Suspense 基本应用 Suspense 目前在 react 中一般配合 lazy 使用 当有一些组件需要动态加载 例如各种插件 时可以利用 lazy 方法来完成 其中 lazy 接受类型为 Promise lt gt default
  • 大数据从入门到精通文章体系

    大数据知识可谓是多而杂 大数据相关的组件更是数不胜数 但是我们每一次的感受到学习的累 就足以证明我们在认真的学习 每感到到一次累的同时 就应该感受到一次进步 所以不要让自己停下来 各位小伙伴冲冲冲 大数据系列资源链接 名称 链接 提取码 H
  • PS笔记2

    第01堂课 出识Ps 图像处理软件 学习ps要做到三点 了解基本概念 掌握操作规律 开发扩展思维 第02堂课 软件安装 百度搜索ps 下载 会发现两种下载情况 第一种不需要安装 解压后在文件里直接找到PS图标 打开就可以了 第二种安装包 安
  • 织梦网站调用变量失败_织梦dedecms无法调用新添加变量的解决办法

    织梦dedecms无法调用新添加变量 在项目中使用了几次织梦cms程序 感觉越来越好用 以前刚接触dedecms时一看后台界面 如此之乱 使我心乱如麻 不知从何下手 后来因为工作逐渐就熟悉了它的后台 特别是一些客户的特殊要求 靠dede自带
  • Ubuntu配置国内源

    Ubuntu配置国内源 Ubuntu源 使用配置生成器 安装依赖包 打开apt源配置文件 国内apt源 中科大源 阿里源 Ubuntu源 每个 Ubuntu 版本都有自己的一组四个官方存储库 Main Canonical 支持的自由开源软件
  • Qt4_写FTP客户端

    写FTP客户端 QFtp类在Qt中实现了FTP协议的客户端程序 它提供了非常多的函数来执行多数常见的FTP操作 同时还可以执行任意的FTP指令 QFtp类是异步工作的 若调用一个像get 或者put 这样的函数 它会立即返回并且仅在控制权回
  • 创建 VirtualBoxClient COM对象失败

    错误问题描述 安装VirtualBox程序 鼠标右键点击VirtualBox属性 在兼容性选项中 勾选兼容性模式运行这个程序 下拉选择 Windows Server 2008 Service Pack 1 勾选以管理员身份运行此程序 3 点
  • [django项目] 用户注册功能 之 注册用户到数据库

    VIIII 注册功能 谋定而后动 先做分析在写代码 1 gt 业务流程分析 对参数进行校验 判断用户名是否为空 是否已注册 判断密码是否为空 是否一致 格式是否正确 判断手机号码是否为空 格式是否正确 判断短信验证码是否为空 格式是否正确
  • 创米云入驻集简云平台,实现无代码集成数百款应用

    PART 1 创米云介绍 创米云科技 是一家专注于小程序开发 同时也是 微信 阿里本地生活客如云 支付宝 的优质IT技术服务商 国内领先自主研发的小程序开发工具 制作过程无需代码 拖拽可视化组件即可完成 拥有海量小程序行业模板 帮助千万商户
  • python 饼图、直方图、散点图和盒图基本绘制

    文章目录 python 饼图 直方图 散点图和盒图基本绘制 饼图 直方图 使用pygal 使用pyplot 散点图 例1 例2 例3 盒图 python 饼图 直方图 散点图和盒图基本绘制 饼图 import matplotlib pypl
  • 将STM32工程下载到GD32中

    在已经写好stm32f103工程的情况下 将stm的工程直接下载到GD32的开发板中 1 导入GD32的pack包 选择使用的芯片型号 并将flash download换为GD32的 2 修改工程参考 STM32移植到GD32 3 如果代码
  • JAVA static修饰符

    static修饰的属于类本身 没有static修饰的属于实例 创建类时 static修饰的成员存放在堆内存中的permanent代 permanent代存放类的信息 如类中的static的成员 class a static int n 4
  • JDBC连接数据库工具类

    最近有人问加哥怎么连接数据库 和数据库建立连接 下面给大家分享一下JDBC连接数据库的模版方法 加哥是以mysql为例 若是其他数据库替换层其他的即可 步骤 1 引入数据库架包 2 加载驱动 3 创建连接 4 进行相应数据库操作 5 关闭数
  • fastreport在delphi中的使用

    文章目录 前言 一 发布后的设计 二 小计 三 分组 1 分组时 MasterData选择保持一致性 2 分组设置 四 页码 五 透视表 前言 记录fastreport在delphi中的使用方法 一 发布后的设计 程序发布后 需要在客户那边
  • 链表的定义和基本操作

    文章目录 单链表 定义 插入操作 删除操作 查找操作 单链表的建立 双链表 初始化 插入 删除 遍历 循环链表 初始化 单链表 定义 要表示一个单链表时 只需要声明一个头指针L 指向单链表的第一个节点 LNode L 或者 LinkList
  • C++基础——this指针

    目录 一 this指针 1 this指针定义 2 this指针的特性 3 this指针存在的位置 一 this指针 例 class Date public void Print int year int month int day cout
  • WDK李宏毅学习笔记重点知识复习总结

    李宏毅学习笔记复习总结 文章目录 李宏毅学习笔记复习总结 1 Regression 回归 和 Classification 分类 1 1 是什么 1 2 怎么做 2 Deep Learning 2 1 是什么 2 2 怎么做 3 CNN 卷
  • 什么是dns流量?如何监控dns流量

    DNS是重要的基础设施 用于域名服务 在负载均衡 移动IP等方面也有着重要的应用 DNS流量激增对互联网的正常运作的影响 并提出了恶意DNS流量攻击 蜂窝效应概念 什么是DNS流量 监控它的方法有哪些 一起来看看吧 什么是DNS流量 dns
  • 基于互联网的信号传输系统

    参加完电子设计竞赛不知不觉快过去两个月了 今天小刚写一下当时我们这道题的方案 本系统基于互联网的信号传输系统采用STM32F407ZGT6和FPGA Cyclone IV作为主控芯片 对信号进行采样和处理 系统由幅度测量电路 频率测量电路