便携式多功能虚拟示波器设计.doc

上传人:scccc 文档编号:11228914 上传时间:2021-07-15 格式:DOC 页数:10 大小:33KB
返回 下载 相关 举报
便携式多功能虚拟示波器设计.doc_第1页
第1页 / 共10页
便携式多功能虚拟示波器设计.doc_第2页
第2页 / 共10页
便携式多功能虚拟示波器设计.doc_第3页
第3页 / 共10页
便携式多功能虚拟示波器设计.doc_第4页
第4页 / 共10页
便携式多功能虚拟示波器设计.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《便携式多功能虚拟示波器设计.doc》由会员分享,可在线阅读,更多相关《便携式多功能虚拟示波器设计.doc(10页珍藏版)》请在三一文库上搜索。

1、便携式多功能虚拟示波器设计便携式多功能虚拟示波器设计便携式多功能虚拟示波器设计DesignofPortableMultifunctionalVirtualOscilloscope郑兴凯李宇成郑勇(北方工业大学模糊控制与智能装置研究室,北京100041)摘要给出了一个简单便携式虚拟示波器及信号发生器的设计方法,从软件到硬件两方面做了详细阐述.采用新一代高度集成的C8O51F02O为核心设计的数据采集板和由VB编写的上微机软件可以简单的实现8通道的信号测量和多种信号输出.关键词:虚拟示波器,信号发生,数据采集,C8o51F020AbstractThisPapergivesadesignmethod

2、ologyofsimpleportablevirtualoscil!oscopeandsignalgenerator.andexplaineditssoftwareandhardwareexplicitly.ThesystemiscomposedofdataacquisitionboarddesignedmostlybyanewgenerationofhighlyintegratedC8051F02OandsoftwarepreparedbyVisualBasic.Itcaneasilycollectsignalsfromeightchannelsandexportmultiplesignal

3、s.Keywords:virtualoscilloscope.signalgenerator,datacollection.C8051F020虚拟示波器一般由一块基于PCI总线的多功能数据采集卡和相应的软件及一台具有PCI插槽的电脑组成,这种组成的虚拟示波器比较累赘,装卸不便.具有USB接口的虚拟示波器则有着携带和使用方便的优势.1虚拟示波器总体设计便携式虚拟示波器由具有USB通讯接El的数据采集板和相应的软件及一台电脑组成.数据采集板能实现8通道的数据采集,2通道的数据输出,能输出各种常用波形.与计算机之间通过USB接口进行数据通讯,支持热插拔,可以方便地实现数据采集卡与计算机之间的连接和断

4、开,计算机可采用具有便携功能的笔记本电脑或台式机.数据采集卡实现的主要功能是一方面将模拟电压信号转换成数字信号,并且通过USB接El发送给计算机;另一方面,通过USB接El接收计算机发送的数字信号并且将此数字信号转换成模拟信号输出.数据采集通道的原理是:将外部范围为一5-+5V的输入电压通过变换电路转换成范围为0-3V的可供AD转换器转换的电压,再经过AD转换器转换成计算机可识别的数值,然后将数字通过串口转USB电路发送给计算机;数据输出通道的原理是:通过串转USB电路接收计算机发送来的数字信号,然后通过DA转换器将数字信号转换成0-3V的模拟信号,最后通过电压变换电路将03V的电压转换成范围

5、为-5-+5V的电压.数据采集卡硬件电路结构如图1所示.o2o图1数据采集卡硬件电路结构2虚拟示波器硬件设计2.1微控制器的选择数据采集卡的微控制器采用SiliconLaboratories公司的C8051F02O,此单片机是完全集成的混合信号系统级芯片(SOC),具有与MCS一51完全兼容的指令内核,具有高速,流水线结构,可达25MIPS.具有全速,非侵入式的系统调试接口,方便程序的下载,调试;具有真正12位,100Ksps的8通道ADC,带PGA和模拟多路开关,可以满足数据采集卡模数转换的需要;两个12位DAC,具有可编程数据更新方式,可以满足数据采集卡数模转换的需要;64K字节可在系统编

6、程的FLASH存储器,以及4352字节的片内RAM,足可满足软件编程需要;两个UART串行接口方便单片机和计算机的通讯.C8051F020的ADC0子系统包括一个9通道的可编程模拟多路选择器(AMUX0),一个可编程增益放大器(PGA0)和一个100Ksps,12位分辨率的逐次逼近寄存器型ADC,ADC中集成了跟踪保持电路和可编程窗El检测器.只有当ADC0控制寄存器中的ADOEN位被置1时ADC0子系统(ADC0,跟踪保持器和PGA0)才被允许工作.当ADCOEN位为0时,ADC0子系统处于低功耗关断方式.ADC0的电压基准选用外部电压基准,通过AS1117得到3.OV参考电压,连接到ADC

7、O的外部基准电压输入引脚VREF0,这样ADC0的可转换范围为0+3V.C8051F020器件有两个片内12位电压方式数/模转换器(DAC).每个DAC的输出摆幅均为0V到(VREF一1LSB),对应的输入码范围是0x000到0xFFF.可以用对应的控制寄存器DACOCN和DAC1CN使能/禁止DAC0和DAC1.在被禁止时,DAC的输出保持在高阻状态,DAC的供电电流降到1或更小.DAC的电压基准选用外部电压基准,同ADC0一样也是将通过AS1117得到的3.0V参考电压连接到外部基准电压输入引脚VREFD,这样DAC的输出电压范围为0-+3V.2.2USB接口电路设计USB通讯电路芯片选用

8、美国Silicon公司的USB-UART桥接电路芯片CP2102,该电路的集成度高,内置USB2.0全速功能控制器,USB收发器,振荡器和带有全部的调制解调器控制信号的异步串行数据总线(UART),全部功能集成在一个5mmx5mmMLP一28封装的IC中,无需其他的外部USB元件,外围电路设计简单,使用方便.电路如图2所示,图中RXD和TXD分别为单片机UART的接收端和发送端.工业控制计算机)2007年2O卷第2期712102圈2CP2102的接口电路在下位机使用上,CP2102的UART接口可以处理所有的RS232信号,包括控制和握手信号,所以下位机固件编写上可以完全把CP2102接口作为

9、一个UART口来使用,使得程序编写简单,方便;在PC机使用时,CP2102可以通过使用CYGNAL免费提供的COM口器件驱动器程序将PC的USB口虚拟成串口,在程序编写上完全可以把USB接口作为一个串口来使用,从而简化编程.3单片机软件设计采用片上集成两路DA转换和8路AD转换,不但使得硬件电路设计变得简单,而且使软件编写也相对简化.启动DA转换,只要向相应的寄存器写入要转换的值即可,在输入寄存器高位的时候同时启动了DA转换,而不需要专门的启动指令来控制.如在本系统中,要让DA0输出OV的电压,只要写下面两条命令即可:DACOL=0x00;DACOH=Ox08;由于DAC是12位的,输出范围一

10、5V到+5V对应的D/A转换数字是OxO000到0x0FFF,所以0V对应的数值是Ox0800.C8051F020对片上ADC的操作也比较简单,我们采用的具有12位分辨率的ADC0有四种转换启动方式:IADCOCN的ADOBUSY位写1;定时器3溢出(即定时的连续转换);外部ADC转换启动信号的上升沿,CNVSTR;定时器2溢出(即定时的连续转换).这里我们采用第一种方法,向ADCOCN的ADOBUSY位写1.ADOBUSY位在转换期间被置1,转换结束后回复O.ADOBUSY位的下降沿触发一个中断(当被允许时)并将中断标志AD01NT(ADCOCN.5)置1.转换数据被保存在ADC数据字的MS

11、B和LSB寄存器:ADCOH和ADCOL.转换程序和步骤如下:voidADCStart(ucharsource)/ADCO转换子程序AMXOSL=source;/选择通道ADOINT=0:/写0到ADOINTADOBUSY=1:/向ADOBUSY写1.启动AD转换while(!AD01NT)J/查询并等待AD0JNT变1ADOINT=0:j程序执行完毕,转换结果在寄存器ADCOH和ADCOL中.然后将转换的结果通过UART0传送给计算机.主程序框图如图3所示.初始化以后进入主循环程序,等待接收上位机发送的命令字,然后根据不同的命令做出相应的处理,处理完毕,进入下一轮循环.4上位机软件编写本系统

12、的上位机程序采用功能强大,灵活高效的可视化开发工具VisuaiBasic编写.VB中有很多资源可直接利用,这样使得程序的编写变得简便,快捷.本程序主要实现两部分的功能:示波器功能和信号发生器功能.4.1示波器部分程序设计上位机软件的示波器部分要实现数据的采集,显示以及保存.数据采集包括可选择的8圈3C8051F020程序流程图通道数据输入,可同时在同一个视图显示8通道输入数据,或者可选择的显示其中一个或几个通道,可正常显示也可反相显示.显示方式可选择打点或者画线,线条颜色和宽度可选.坐标轴每单位长度所代表的时间或者电压值可调,即可实现显示曲线的放大缩小.实现方法为:在VB中建一个工程,在主窗体

13、上添加一个图片框控件,用来显示波形,采用MoveToEx(设置绘图起点),LineTo(绘制直线),SetPixel(画点)等API函数绘制曲线.在下拉菜单中添加参数设置选项,动态加入参数设置窗体,在参数设置窗体中可以做出各种选择,以实现上述所有功能.在主程序中我们利用定时器响应来实现程序的循环运行.首先通过参数设置窗体设置好定时器参数,图片控件参数和其他一些参数,然后打开定时器.在定时器响应程序中发送转换命令,然后等待接收转换数据,接着将此转换数据显示,程序框图如图4.4l2信号发生器部分程序设计上位机软件的信号发生器部分能够计算并发送供信号采集板实现各种信号的转换数据.这些信号包括:阶跃信

14、号,斜坡信号,抛物线信号,正弦波,三角波,方波,锯齿波,随机值,并且输出信号的幅值可调,频率可调.在主程序中,首先定义一个定时为1ms的定时器,设置好参数以后开启定时器,在定时器中断中根据不同的波形计算出当次需要转换的数据,然后将此数据通过串口控件发送出去,程序框图如图5.定时事件相应发送转换命令,信息接收数据画图显示退出定时事件相应生成待转换数据发送转换命令,数据退出图4数据采集子程序框图圈5数据输出子程序框图在此以正弦波为例说明一下转换数据的计算方法.首先在主程序中定义一个long型全局变量t,用来记录进入定时器的次数,每一次进入定时器中断时加1.由于定时时间为1ms,从第一次进入定时器开

15、始,当前的时间就可表示为+s.用f来表示正弦波的频率,MV表示正弦波的峰值,就lUUU(下转第73页)工业控制计算机2007年2o卷第2期置标准信号的幅度,频率,和初始相位.信号类型的选择包括正弦波,三角波,方波锯齿波以及自定义公式波形,在其有侧是声卡硬件参数的设置,如声道,采样率,声卡位数以及声卡缓冲大小的选择.下方是自定义波形的表达公式,包括公式的输入和以及幅度和频率的设置.在各种基本波形中还可以根据实际需要加入噪声,右下角是控制波形的输出,暂停,停止的控制按钮.3_2程序框图的设计虚拟信号发生器的程序框图和前面板是对应的.框图程序相当于传统程序的源代码,只有创建了框图程序以后,该程序才能

16、真正运行.该程序运行的过程如下,程序启动后,首先根据实际情况,对个参数进行设置,然后输出信号,在信号的输出过程中,可以暂停,最后停止输出.根据要实现的功能,设计分为各控件参数的初始化,输出通道和精度的选择,信号的生成,框图程序如图3.1)运行参数的初始化和输出通道及精度的选择.初始化是确保程序能够正确运行的前提,在此主要是运行控制的几个控件和声卡缓冲区大小的设置.输出通道包括mono和stereo,输出精度是由声卡的位数(8位和16位)决定,因此有四种组合单声道8位,单声道16位,双声道8位和双声道16位.此功能的实现是编程的一个难点,如图3所示.图3虚拟信号发生器框图程序2)信号数据的生成,

17、这部分要实现主信号和噪声信号数据的生成.LabVIEW的程序具有模块化特征,可以将一个大的VI设计成几个模块,这样有利于程序的开发和维护,因此把信号生成作为一个子VI,该部分是关键.首先根据用户在前面板中设置的各种参数调用不同的子VI生成需要的信号数据,然后经声卡输出.需要指出的是经声卡输出的信号是比较弱的,一般在1.5V以下,需要外部电路进行调理才能使用,输出信号线最好是专用音频线,以降低环境噪声干扰.在框图程序产生波形数据部分有仿真信号和噪声两个子VI.仿真信号子VI主要用于基本周期信号和公式波形数据的生成.用到了BasicFunctionGenerator.vi和FormulaWave-

18、form.vi两个Vl.BasicFunctionGenerator.vi用来产生基本的周期信号(正弦波,方波,三角波和锯齿波).有时在实际测试中,需要输出非周期信号或者是测试领域中的特殊信号,利用For?mulaWaveform.vi节点,通过编辑波形的数学表达式,来生成用户指定的特殊信号.噪声子VI可以根据对实际测试环境中的信号仿真需要,为基本信号叠加不同幅度的白噪声.应该注意的是,为了确保输出信号频率和前面板中设定的一致,必须使声卡的采样率和仿真信号的采样率相同.为了使输出信号连续和整周期采样,仿真信号采样点数和采样率设置一致.此外要说明的是,前面板信号的幅值没有进行标定,这要由具体计算

19、机声卡硬件参数而定.4结束语本文开发的虚拟信号发生器以廉价的计算机声卡为硬件,以图形化编程语言的虚拟仪器软件LabVIEW为开发工具,采用虚拟仪器技术,充分利用计算机的强大的信息处理能力和Lab?VIEW模块化编程以及多线程技术,实现了几种常见音频范围内信号和特殊信号的生成,输出频率范围宽,抗干扰能力强,并具有界面友好,操作简单,成本低,容易实现等优点.参考文献1吕红英,吴先球,等.基于声卡的虚拟数字存储示波器及其在电学实验中的应用【J】.实验技术与管理,2005,22(1o):95982邓炎,王磊,傅琦,等.LabVlEW7.1测试技术与仪器应用M.北京:机械工业出版社,2004:32532

20、93郭瑜,郑华文,陈永星.信号发生器波形的递推合成及其声卡实现【J.昆明理工大学,2005(1o):1431484侯国屏,叶齐鑫,等.LabVlEW7.1编程与虚拟仪器设计IN.北京:清华大学出版社,2005:419427收稿日期:2006.8.13(上接第71页)可算出当前需要ADC输出的电压为sin(南2霄f)xMV,进而可以得到发送给ADc的转换数据为sin(南2霄f)4095百1+.此时可以定义一个正弦波数据产生函数sinP(f,MV)来计算需发送的数据,见公式(1).sin_p(f,MtO=sin(x2rf)xx4095x1丁4095(1)其中f为正弦波的频率,MV为正弦波的峰值.为

21、了加快计算速度,实际应用中,可以将正弦数据提前算成表格,存储在机器中,免去在线的正弦计算.为了防止t不断增大后发生溢出,要在一个周期结束的时,即南时,将t清零,重新开始计数.5实验结果为了测试本系统信号发生和采集的精度,设计如下实验,系统信号发生器部分输出一条正弦曲线到采集板上,同时显示到屏幕匕,然后再通过采集板将波形采集回来后,反向显示到屏幕上做对比显示.操作步骤如下:在信号发生器部分参数设置中选择DA0输出一条频率为10Hz,峰值为3V的正弦波,并且在主界面中显示输出值,在数据采集板上将DA0的输出接到ADO,在示波器部分的参数设置中选择ADO反相显示.经过信号发生,采集后得到的结果和计算

22、机发送值相当吻合,说明本系统的信号发生功能和数字示波器功能很好的达到了预期的要求.从使用的效果来看,本系统可以较好的完成频率在10kHz以内,电压值在-5V+5V或一50V+50V的电压信号的采集,显示与记录;可以产生多种常用的信号输出,能够满足一般低频系统测试的需要.如果采用更高速的USB接口器件,本系统可以达到更快的信号采集速率.参考文献1SiliconLaboratoriesInc.C8051F020/1/2/3混合信号ISPFLASH微控制器数据手册M.潘琢金,译.沈阳:沈阳新华龙公司,2002f2SiliconLaboratoriesInc.CP2102Datasheet.3郭迎福,毛征宇,晏燕,等.基于虚拟仪器的数字示波器设计J.湖南科技大学(自然科学版),2o06(3)收稿日期:2006.9.1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1