之前有小伙伴提到需要虚拟示波器的资料,有些库还有文件丢失了,直接给的工程跑不起来,这里我把关键的地方讲解一下,大家可以自行开发。其实开发不难,只是有些点会耗点时间。虚拟示波器,顾名思义就是非实物的示波器,但也还是硬件(便携的采集设备)和软件(在电脑上显示和操作)的结合,和数字示波器相比,本质上区别不大,现在贵一些的数字示波器从功能上看,也很像一台计算机了)。今天要讲的只是低配的,简易版的虚拟示波器(在下当年的毕业设计)。下位机是基于STM32的ADC采集实现的信号抓取,然后通过串口传到上位机中显示。单片机的ADC和串口传输,注定了这虚拟示波器采集的波形频率不会太高,之前能在上位机上还原得比较好的波形频率是25Khz以下,如果大家有其他更快的采集(DSP,FPGA,NI采集卡)和数据上传的方式(USB等),可以尝试一下,也期待你们的分享。下面大体对硬件(外围电路),单片机程序(STM32),和上位机程序(labview)三部分进行讲解。

1、硬件

硬件很简单,就是将输入到单片机的波形信号进行处理。因为我用的STM32的单片机,能检测到的电压值是0~3.3V,所以硬件部分就是把输入的交流信号先控制在-1.65V~1.65V之间,最后再通过电路将信号往上偏置1.65V就可以给单片机采集了。至于如何将信号放大放小,控制到可采集的电压范围呢,可以通过上位机发送串口数据给单片机,让单片机控制继电器(或者其他开关方式)切换运放端的电阻,达到更改运放倍数的方式,最后上位机呈现波形的时候加上放大缩小的倍数,就可以在上位机界面上还原波形信号了。我这里先采用了LM358的双电源运放芯片(交流信号,需要双电源运放芯片),后面因为LM358在高频输入的时候,运放输出的信号在零点处会失真,换了一款高频的运放芯片UA741,问题解决。双电源里面的负电压是通过LCL7660输出的。至于偏置电压,是我在multisim上面仿真出来的,实际测试后确实可以偏置,大家可以尝试使用1比1的运放后加偏置电压,也可以参考我的设计电路。附上完整电路图。

1-1:运放电路

这是直接用了毕业设计里面的图片,之前的文件不见了。应该能看懂吧 。运放采用的是最简单的负反馈放大电路。放大倍数Vout/Vin=R1/R2。

1-2:负电压电路

由于运放芯片想运放负极电压信号,需要采用双电源模式,必须为运放芯片提供负电压。所以本设计采用低功率,额定电压为5V的电源极性转换器ICL7660。ICL7660输入5V正电压,输出-5V电压。为LM358提供双电源。本设计采用ICL7660的基本负电压转换模式。

1-3:1.65V偏置电路(自己仿真实现的,实测可用)

2、单片机软件

        这个直接用STM32的单片机ADC采集和串口例程,将数据分高4位和低8位的方式(单片机串口只能上传8位的数据),将12位的ADC数据通过串口分别传输给上位机,ADC采样率调到最高,串口通过DMA的方式,这样可以达到最高的采集速度。最后分别用两个for循环,循环往串口发送1000个低8位和1000个高4位数据。每次发送两组1000个数据的间隔你们可以自己定,我记得我应该间隔是100ms左右刷新一次数据,上位机整合两组数据后,一次显示1000个数据点。ADC和串口传输数据的可以在STM32的例程中找到,具体逻辑这里不再累述。不过还是附上当年写的几条程序吧。

1、连续读取1000个ADC数据;

2、拆分低8位和高4位;

3、向串口上传低8位数据;

4、向串口上传高4位数据;

3、上位机

上位机在整合两次接收的数据,直接调用Labview提供的信号分析函数,如单频测量函数,频谱测量函数以及幅值和电平测量函数。

3-1:读取串口数据

3-2:整合高4位,低8位位数据。右侧输出直接给到波形显示控件

3-3:波形控件

前面板->控件->新式->图形->波形图。

4、最终整合后的虚拟示波器效果

采集的信号范围为5HZ~25KHZ(STM32F1系列采样率最高为0.5MS/s),0.1V~16.5V的模拟信号;幅值误差低于5%,频率误差低于2%,能满足日常中大多信号/电压的信号采集与分析。希望对大家有所作用,也希望国内开源资源能越来越丰富吧。虽然一般技术不能给我们工程师带来多大的财富,但至少在某个年龄段,在追求一种引以为傲的技能的时候,能让我们感到充实,自豪,也是一种不错的人生体验呢!

原创不易,一键三连拉!

labview入门到出家11(补充)——基于单片机和labview开发的虚拟示波器相关推荐

  1. labview入门到出家5(进阶篇)——程序调试以及labview函数库的运用

    跟了前面几章的操作流程,相信大家对labview有了一定的认识.其实只要了解了labview的编程思路,再熟悉地运用各个变量,函数以及属性,那么我们就可以打开labview的大门了.跟其他编程语言一样 ...

  2. labview入门到出家6(进阶篇)——移位寄存器的使用

    前面介绍了如何熟悉和使用Labview自带的库函数以及调试方式,大家后期基本可以凭借这两个方式从入门到出家了,哈哈,后面就靠各位同仁99%的努力了.这篇为啥要讲移位寄存器呢,主要是之前做的项目和经验告 ...

  3. labview入门到出家9(进阶)——串口通讯

    Labview在工控领域,如产线,实验室等环境用得较多,其中与仪器通讯控制的方式有串口(RS232,RS485,TTL),GPIB,网口,CAN等,其中串口在仪器还有单片机控制中用来调试居多.(很多开 ...

  4. 基于单片机和labview上位机智能小车设计

    课程设计目的 课程设计题目及要求课程设计方案硬件模块设计选择主控模块(AT89c52)电机驱动模块红外循迹模块课程设计目的(1)掌握51单片机内部结构和应用(2)学习labview上位机程序设计和编写 ...

  5. 基于单片机的毕业设计推荐

    ** 2023基于单片机的毕业设计推荐: ** 1.基于51单片机的多功能门禁系统(低端.功能限制较大). 2.基于单片机的多功能实时时钟. 3.基于单片机的音乐播放器. 4.基于STM32单片机的多 ...

  6. 基于实践的LabVIEW零基础入门视频教程

    原文地址::http://blog.eeecontrol.com/LabVIEW1/ <基于实践的LabVIEW零基础入门视频教程> 资料不在多,而在于精,资料太多,反而会迷失方向,学习最 ...

  7. 基于STM32单片机和Labview的温湿度波形实时显示串口助手(一)----手把手教学

    基于STM32单片机和Labview的温湿度波形实时显示串口助手(一)----手把手教学 最近导师有个关于USRP的上位机系统需要找人做下,索性就把任务下发给我了.因为其它课题组有labview的正版 ...

  8. 单片机按键控制数码管c语言程序,基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文).doc...

    基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文) 物理与电子工程学院2014级课程设计 PAGE IV 物理与电子工程学院 <单片机原理与接口技术> 课程设计报告书 ...

  9. NIO框架入门(一):服务端基于Netty4的UDP双向通信Demo演示

    2019独角兽企业重金招聘Python工程师标准>>> 前言 NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能.这其中最流行的无非就是MINA和Netty了,MINA目 ...

  10. 基于单片机的贪吃蛇游戏

    绪论 1.1 研究背景与意义 随着社会的发展,人们生活的步调日益加快,越来越多的人加入了全球化的世界. 人们不再拘泥于--,J,块天地,加班,出差成了现代人不可避免的公务.而此时一款可以 随时随地娱乐 ...

最新文章

  1. keras.layers 各种层介绍
  2. mysql数据库表的基本操作
  3. 如何使用SQL Server 2008打开和关闭IDENTITY_INSERT?
  4. Debian下配置SSH服务器的方法
  5. 反击CobaltStrike
  6. 整理了十个Python自动化操作
  7. IDEA查看某个类的某个方法或该类在哪里被调用 / 引用
  8. android fragment 抽屉,android – 更改Fragment中的导航抽屉项目
  9. node服务成长之路
  10. Qt学习:QDomDocument
  11. android 7双排设置菜单,双排状态栏
  12. PPP协议基础与工作流程
  13. 祛除光盘上的小划痕/光盘的工作原理/光盘的正确使用方法
  14. Eclipse主题插件之DevStyle
  15. 节约里程法java代码,智慧职教: 在配送路线优化的节约里程法中有几个基本的假设前提条件,他们是()。...
  16. 空间三点定圆的解算过程
  17. 职场中如何与老板谈加薪
  18. 数据分析大数据面试题大杂烩02
  19. 南海将打造“区块链+”金融科技产业高地
  20. ubantu 18.04.4下载

热门文章

  1. 微软私有云部署及讲解专题
  2. Java项目部署到远程服务器(详细步骤)
  3. 安装之后如何激活冰点还原软件?
  4. 手动下载Windows Defender离线更新包
  5. android 动画 translate,Android动画之TranslateAnimation使用
  6. 虚幻引擎UE编辑器卡顿问题
  7. Android影音播放器需求分析,321影音全能影音播放器源码
  8. 关于java8 List转map 分组顺序重排问题
  9. android脚本录制脚本,Android 屏幕录制GIF脚本
  10. 【网络流量识别】【聚类】【一】模糊聚类FCS和GA—网络安全网络流量功能的模糊聚类