×
嵌入式 > 技术百科 > 详情

USB接口的高性能虚拟示波器的开发实现

发布时间:2023-04-25 发布时间:
|
1 引言虚拟示波器,是将计算机强大的计算处理能力和一般硬件仪器的信号采集,控制能力结合在一起,从而实现一般示波器所不能实现的功能和友好的界面。随着计算机技术的发展,使得虚拟仪器的实现成为可能,传统仪器的一些专用处理器和设备,被计算机的通用设备所代替,常用的虚拟仪器,多采用pci或isa插槽,将各种硬件连接到一起,然而采集卡的数量一般有限,因此组织系统的时候,只能指定特定的计算机,或打开计算机盖装入专门的采集卡,在使用笔记本电脑或工业一体化电脑的场合,根本就不支持pci或isa总线的设备。所以,我们需要一种更方便,更有效,更灵活的总线通讯方式来实现虚拟仪器,现代计算机一般都具有usb接口,且usb接口的使用灵活,方便,所以首先考虑采用usb总线。usb总线是intel,ibm,nec,微软等7家著名公司提出的新一代总线技术,采用新一代usb总线之后,pc机配置新的硬件设备不用在打开机盖,且支持热插拔技术,给使用者以极大的方便[1],通过usb集线器,扩充设备可达127个,并可通过3-5m的电缆连接到计算机,而使采集卡靠近测试对象,从而大大地提高了电磁兼容性,在标准协议usb1.1中,umb总线的传输速率可达1.5-12mb/s,而在规范usb2.0中,速率则可达360mb/s。这样的速率足以满足绝大多数场合的要求[2、3]。2 虚拟示波器的硬件设计虚拟示波器的硬件设计就是要完成虚拟示波器的usb物理设备的设计,即usb接口和usb功能设备,虚拟示波器的硬件结构如图1所示。

图1可分为4个部分:信号调理部分,a/d转换模块,逻辑控制模块,usb接口模块,虚拟示波器的硬件部分完全采用模块化设计方案,使各部分硬件相对紧凑,最终缩小了采集,而且a/d转换模块不在计算机内部,可以有效地避免高频电磁干扰对计算机的影响,也减轻了计算机的负担,使计算机可稳定、高效的运行。usb接口模块是这个系统通讯的关键,模块需要完成上位机和a/d转换模块的通讯,需要将上位机的指令送到逻辑控制器idt7207,还需将转换结果送入上位机,usb接口芯片选用cypress公司的an2131qc,该芯片有其他芯片所没有的特点:(1)基于ram的“软”系统解决方案(soft,ram based)不需要ram或其他的固化存储器,而只使用片内的程序/数据ram。通过主机下载的方式来配置usb接口,因而使接口系统的修改和升级变得非常简单,使外设硬件的更新和升级变得更为方便。(2)数据吞吐量完全达到usb协议要求,可以向用户提供足够的端口、缓冲区和传输速度,提供usb协议要求的全部4种传输方式(控制传输、中断传输、批量传输和同步传输),可以满足用户对各种类型数据传输的需求。(3)片上的串行接口处理机(sie)完成大部分的usb协议操作,使用户可以摆脱复杂的协议细节,简化了用户配置代码,加快了开发过程。(4)内嵌增强型8051处理器,兼容8051指令系统,一个指令周期仅需4个时钟周期,可提供标准8051三倍以上的处理能力;双数据指针;方便数据块搬移,使用片内的ram作为数据/程序存储器,非复用数据/地址总线,使程序指令速度更快,并且同外部器件的连接更加简单。(5)休眠模式可以降低系统功耗,延长器件的使用寿命。逻辑控制模块是整个设备控制的核心,其主要是负责解释和控制执行主机软件系统的控制命令和要求,完成设备状态设置和控制设备完成激励信号的发出、响应信号的采集等功能,逻辑控制模块主要由可编程逻辑控制器idt7207,及其辅助电路和外围扩展电路构成,芯片通过内部i/o编程,方便地实现输入/输出的逻辑关系,使得电路更加简洁,功能更加强大,在逻辑控制模块的控制下a/d转换模块利用a/d芯片7899完成对信号的a/d转换,由于a/d芯片电压输入范围为正负10v,因此前端信号调理模块负责将信号幅值调理到正负10v之间,并实现采集电路与被测试对象的信号隔离。3 虚拟示波器软件设计虚拟示波器的软件主要完成对虚拟示波器控制、显示的设计,即对各个模块的硬件控制,以及用户界面的设计,虚拟示波器的整体软件应该采用分层机构,整个控制软件分为3层,底层物理设备的控制程序,usb设备在pc机上的驱动程序,上位pc机的人机界面软件,控制软件的分块,分层设计使各层软件相对独立,只需考虑各层软件的接口即可,这样使软件的设计、编写较为简单,运行更为可靠,整体控制软件流程图如图2所示。

底层物理设备的控制,主要是对usb接口芯片an2131的初始化,以及其接收、发送数据的控制,由于其内嵌了8051的单片机芯片,所以就采用8051单片机的汇编语言编写控制程序,其要点为:通过写的相应寄存器,分别设置中断引脚的电平特性、缺省地址和各中断事件的屏蔽,激活断点0作用,进入正常操作状态,在主循环过程中,主要等待主机通过控制断点0发来的控制命令和握手命令来执行相应的功能设备任务:设置状态、接收pc激励信号、发出激励、采集数据等,采集的数据以包为单位装载到端点1的fifo中,还要响应an2131的主要事件,其部分控制程序如下:

usb设备在pc机上的驱动程序,主要给设备分配地址,说明控制字,与底层的usb驱动程序接口。上位pc机的人机界面是虚拟示波器与用户的接口,直接关系到系统的可用性和方便性,人机界面程序主要是使用户能够方便地控制整个虚拟示波器的工作,并能通过界面方便地观测到采集的结果和响应的数据分析,用户能够通过程序方便地选择通道,采集频率,增益等,考虑到microsoft公司的visual basic开发的, 界面直观,易用,上位机的人机界面采用vb开发,在软件中,充分利用了类功能,将usb设备的启动函数,停止函数,数据读取函数等各个函数全部整合到动态链接库usb.dll中,在应用软件中如需使用这些函数控制usb设备,只需在软件相应的模块进行申明,在程序中直接调用即可。这样做不但使软件程序结构清晰,方便阅读,而且在需要时可以方便快捷的升级人机界面,无需大的改动,使用动态链接库后,其他应用软件要使用该usb设备时,也可方便申明函数,从而方便地控制usb设备工作,因此,该usb设备可以方便地用于其他场合,实现其他的功能,软件充分利用了计算机强大的处理能力,可控制usb设备同时对16个信号进行采集和显示,并可根据用户的需要测出不同信号的频率,幅值、有效值等参数,软件波形观测界面如图3所示,此时测量的是一个4574hz的标准正弦波,和一个叠加负直流分量的正弦波。

同时,为了进一步帮助使用者分析所得波形,软件还能对所采集的信号进行谐波分析,传统的离散信号dft算法为:

为了节约cpu资源,能快速、实时地得出采集波形的谐波含量,软件中采用了快速傅里叶变换fft的蝶型算法,从而实现了对采集数据的实时的谐波分析和显示,为了对比各次谐波的含量,显示时可输出柱状图界面(如图4);同时为了得到精确的谐波含量,用户也可以选择列表方式显示(如图5)。

4 虚拟示波器结果分析通过和实际示波器所测波形进行比较可以看出,波形完全反应了实际波形的情况,波形没有失真,所测各项参数与实际示波器测得的数据相等,且具备了一般示波器所不具备的多通道同时采集、谐波分析的功能。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Keil5(MDK5)在调试(debug)过程中遇到的问题