0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于C语言开发环境实现虚拟示波器测试系统的设计

电子设计 来源:郭婷 作者:电子设计 2019-02-06 09:19 次阅读

引 言

随着虚拟仪器技术的发展,采用“虚拟仪器”来取代传统仪器的新的测控方法正在取代传统的测控系统,即利用数据采集卡、信号调理卡或其他计算机外围硬件进行信号的采集与检测,然后由计算机来实现对信号的处理、计算和分析以及测试结果的显示。

Labwindows/CⅥ是基于标准C语言的集成软件开发环境,其开发虚拟仪器的步骤主要是先确定程序的基本框架,创建用户界面,然后完成程序代码的编写,最后创建工程文件,将程序文件、头文件、用户界面文件加入工程中,编译调试生成可执行文件。

1 数据采集卡的设计

传统的数据采集卡包括多路开关、放大器、采样/保持器、A/D转换器、D/A转换器等器件组成。PCI(peripheral component interconnect)总线即外部部件互连总线,是一种高性能32/64位地址数据复用高速外围设备接口局部总线。随着微处理机的性能不断提高,人们对微机系统的I/O带宽不断提出新的要求,原有的标准总线,如ISA、EISA和Mc已经逐渐不能胜任现代数据采集技术的要求。PCI局部总线的引入,打破了数据传输的瓶颈,以其优异的性能和适应性,成为微机总线的主流,基于PCI总线的数据采集系统是高速数据采集系统的发展方向。基于PCI总线的数据采集卡的整体结构可以设计如图1所示:

基于C语言开发环境实现虚拟示波器测试系统的设计

完成数据采集卡的硬件设计后,需要进行板卡的驱动程序编写。其中的WDM(Window Driver Model)是Microsof讼司力推的驱动模型,其提供了更多特性,包括即插即用、电源管理、WMI等,且WDM还是一个跨平台的驱动程序模型,可以在不修改代码的情况下重新编译就可以在不同平台上运行了。

2 虚拟示波器软件设计

虚拟示波器测试系统是通过外围硬件电路获得离散数据并对该信号进行时域的显示和分析。从而获得近似真实仪器的测试结果。本设计利用数据采集卡获得模拟信号,其软件结构如图2所示:

基于C语言开发环境实现虚拟示波器测试系统的设计

1)信号采集模块

由于本设计采用非NI数据采集卡,不能直接运用LabWindows/CVI的函数库来实现。但是板卡设计的驱动程序一般是以动态链接库的形式提供的,所以对于LabWindows/CVI而言,可以直接利用驱动程序中的动态链接库来实验数据文件的采样。我们把采集到的数据存储在一个一维数组中以便进行分析运算。

2)波形显示模块

设计采用LabWindows/CVI提供的Graph来显示波形,对于采集到的数据,存放在一个大小可调节的动态数组中,对该数据进行时域分析并画图显示。波形显示模块还包括AB通道波形的叠加,相减等基本运算。其实现方法就是利用C语言对数据元素的简单加减。

3)时域分析模块

时域分析包括A、B通道的自相关,AB通道信号互相关分析,AB通道的卷积,AB通道的李沙育图。相关运算设计利用LabWindows/CVI函数库中的Convolve()函数来完成。卷积是通过Correlate()函数来完成。图2左侧是AB通道的信号,其中脉冲信号可表示为:

基于C语言开发环境实现虚拟示波器测试系统的设计

正弦信号可以表示为:x(n)=sin(k),0≤k≤1024,k∈Z图3右侧表示x(n)卷积u(k)的结果。其中横坐标表示采样点数共1024个点,纵坐标表示幅值。幅值增益1V/d.

基于C语言开发环境实现虚拟示波器测试系统的设计

4)信号调节模块

信号调节模块主要设计完成信号的垂直增益,垂直位移,水平增益的调节。设计的具体实现也是通过C语言对数组的操作实现。图4表示信号调节模块程序流程图。

基于C语言开发环境实现虚拟示波器测试系统的设计


5)存储模块

真实示波器由于存储硬件的限制,只能存储2~4个数据,而在在虚拟的数字存储示波器中,利用硬盘等存储介质,可以任意存取无限多个数据,而且存储更加安全。具体实现方法是:存储对被测信号取样,然后转换成数组,再将数组保存到文件中,读取时恰好相反,其工作流程如图5所示。

基于C语言开发环境实现虚拟示波器测试系统的设计

3 测试结果及仿真分析

按照LabWindows/CVI的设计流程,我们完成虚拟示波器的设计,并对正弦信号进行采样分析,结果如图6所示:

基于C语言开发环境实现虚拟示波器测试系统的设计

虚拟仪器的主要问题就是仪器的仿真,而仿真包括两个方面的内容,一个是仪器功能的仿真,另一个就是仪器外观及面板的仿真。本设计着重于仪器功能的仿真。

1)数据处理功能及波形存储功能的仿真

通过虚拟仪器软件功能设计,我们完成信号的显示、相关运算、卷积运算、文件的存储与读取,基本实现了示波器的功能。达到仿真的目标。

2)频带宽度仿真

一般来说,用计算机直接生成的虚拟示波器的带宽实际上就是计算机的带宽,其所能测量的频率的上限取决于计算机的性能。而实际上示波器受到种种因素的限制,其带宽远远低于计算机的带宽。限制示波器带宽的因素主要有:

①示波器上限工作频率的限制。

②Y通道放大器带宽的限制。

③时基电路扫描速度的限制。

为了达到仿真的效果,为虚拟示波器设计了一个100MHz,-3dB的低通数字滤波器。使用契必雪夫等IIR滤波器虽然能够较好的保持被测信号的幅频特性,但其相频特性很不理想。因此,采用矩形窗设计了一个FIR滤波器,保证了经过滤波器的信号能够线性的逼近被测信号的相位。矩形窗的频谱特性如下式(见图7)所示。

基于C语言开发环境实现虚拟示波器测试系统的设计

基于C语言开发环境实现虚拟示波器测试系统的设计

如图7所示:H(ejω)

4 结束语

虚拟仪器的出现对于测试测量行业是一个转折点,它意味着我们可以根据自己的需要随时随地的通过对虚拟仪器软件模块的更改而改变仪器的性能。但是,想要完成一个高性能的虚拟测试系统的开发仍然很困难。不同的接口总线之间的不可交换性,使得我们必须得为每一种接口总线开发不同的硬件驱动程序,从而降低了虚拟仪器的通用性。高性能虚拟仪器接口电路的复杂与数据高速测量需求之间的矛盾也是制约其广泛应用的原因。然而,虚拟仪器技术作为新兴的仪器仪表技术,它的发展也不过短短的数十年,相信随着计算机技术,虚拟仪器技术的不断发展与完善,其必将取代传统仪器而成为仪器仪表行业的主力军。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 转换器
    +关注

    关注

    27

    文章

    8741

    浏览量

    147643
  • 示波器
    +关注

    关注

    113

    文章

    6278

    浏览量

    185568
  • 虚拟仪器
    +关注

    关注

    23

    文章

    775

    浏览量

    87383
收藏 人收藏

    评论

    相关推荐

    基于嵌入式系统USB接口的虚拟示波器开发实现

    基于嵌入式系统USB接口的虚拟示波器开发实现
    发表于 08-06 12:59

    基于Labwindows/CVI和SBS实时光网的虚拟示波器设计

    语言开发人员建立检测系统、自动测试环境、数据采集系统、过程监控
    发表于 11-29 15:53

    怎么实现基于FPGA的低成本虚拟测试系统的设计?

    本文选用FPGA实现数据处理、逻辑控制,充分利用PC机,结合Labwindows图形化上层应用软件界面生成的虚拟测试系统具有较强的竞争力。本系统
    发表于 05-12 06:58

    基于虚拟仪器技术的运行环境仿真系统开发研究

    基于虚拟仪器技术的运行环境仿真系统开发研究:本文主要关注于运行环境仿真系统
    发表于 05-14 00:40 13次下载

    8051单片机C语言开发环境实务与设计

    8051单片机C语言开发环境实务与设计从基础出发,循序渐进地介绍8051单片机的C语言程序
    发表于 10-08 21:28 0次下载
    8051单片机<b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b>实务与设计

    基于NI采集卡的虚拟示波器开发实现

    基于NI采集卡的虚拟示波器开发实现:运用多线程运行的软件结构,提出了一种虚拟示波器的设计方案。
    发表于 03-27 08:26 40次下载

    基于USB接口的虚拟示波器开发实现

    基于USB接口的虚拟示波器开发实现 为了克服虚拟示波器应用中的一些缺点,在
    发表于 05-04 21:53 1878次阅读
    基于USB接口的<b class='flag-5'>虚拟</b><b class='flag-5'>示波器</b>的<b class='flag-5'>开发</b><b class='flag-5'>实现</b>

    基于USB接口的虚拟示波器开发实现

    为了克服虚拟示波器应用中的一些缺点,在虚拟示波器中采用了一种新的总线接口标准——USB接口。主要介绍了基于USB的虚拟
    发表于 05-09 11:26 880次阅读

    基于嵌入式系统USB接口的虚拟示波器开发实现

    本文针对传统示波器不便携带 ,传统虚拟仪器不具有即插即用、 热插拔等功能的情况 ,提出了基于嵌入式系统 US B接口的虚拟示波器的设计方案和
    发表于 05-22 12:40 144次下载
    基于嵌入式<b class='flag-5'>系统</b>USB接口的<b class='flag-5'>虚拟</b><b class='flag-5'>示波器</b>的<b class='flag-5'>开发</b>与<b class='flag-5'>实现</b>

    嵌入式系统USB接口的虚拟示波器开发实现

    嵌入式系统USB接口的虚拟示波器开发实现
    发表于 10-31 10:28 14次下载
    嵌入式<b class='flag-5'>系统</b>USB接口的<b class='flag-5'>虚拟</b><b class='flag-5'>示波器</b>的<b class='flag-5'>开发</b>与<b class='flag-5'>实现</b>

    搭建C语言开发环境(Windows平台)汇总

    本文给大家汇总了5种在WIN平台下搭建C语言开发环境的方法,包括在Windows平台配置GNU环境,使用Sublime Test
    的头像 发表于 02-01 10:03 3773次阅读

    Xilinx正式版SDSoC开发环境实现嵌入式C/C++语言应用开发

    是赛灵思SDx软件定义开发环境系列成员之一,包括扩展库、开发板、设计服务生态系统支持,可实现嵌入式C
    发表于 08-21 09:32 2787次阅读

    使用LabWindows CVI进行虚拟示波器设计与实现资料免费下载

    环境与软件开发平台,按步骤阐述了虚拟示波器设计和实现的过程。结果设 计实现了一个简单的
    发表于 06-20 17:15 17次下载
    使用LabWindows CVI进行<b class='flag-5'>虚拟</b><b class='flag-5'>示波器</b>设计与<b class='flag-5'>实现</b>资料免费下载

    C语言运行环境是什么

    C语言运行环境C language runtime environment)是指在执行C语言
    的头像 发表于 11-27 16:13 3610次阅读

    常用的c语言开发环境有哪些

    C语言是一种广泛应用于系统编程、嵌入式开发和科学计算等领域的高级编程语言。为了能够高效地开发
    的头像 发表于 11-27 16:14 6021次阅读