基于USB总线的嵌入式虚拟仪器的设计

分享到:
点击量: 247295 来源: 上海御盈电子科技有限公司

 


Design of Embedded Virtual Instrument Based on Universal Serial Bus

吴莹,秦树人,张帆

重庆大学机械工程学院,重庆,400044


摘要:针对传统虚拟仪器不具有即插即用、热插拔等功能,提出了基于系统和USB总线技术构建嵌入式虚拟仪器的设计方案和具体实现。同时在分析传统虚拟仪器不足的基础上,构建了基于USB总线的虚拟仪器体系。该嵌入式技术可以把虚拟仪器的硬件集成在嵌入式电路板上,软件固化在Flash存储器上,完成A/D转换、D/A转换以及数字滤波和数字信号处理等功能,并给出了软、硬件设计方案。设计的虚拟仪器具有智能化和良好的系统扩展性,是未来虚拟仪器发展的方向。
关键词:虚拟仪器,嵌入式系统,通用串行总线

0 引言
  虚拟仪器是以计算机作为测试仪器的硬件平台,通过调用不同的软件实现特定的测试功能,达到仪器的多功能快速切换,从而实现普通仪器的全部功能以及一些在普通仪器上无法实现的功能。随着后PC时代的来临,业界对虚拟仪器的智能化和小型化的要求越来越高。嵌入式系统的发展使得基于嵌入式微处理器和实时操作系统的嵌入式虚拟仪器能够满足恶劣工作环境下的便携虚拟仪器的需要。同时,基于USB总线的仪器设备克服了现有PC总线虚拟仪器的不足,具有即插即用、热插拔的优点,满足自动化工业测量的要求,特别适合现场信号的测试。因此,基于嵌入式计算平台和USB总线技术,设计具有数据融合和USB总线协议的通信能力的虚拟仪器成为构建测试系统的新思路。

1 传统虚拟仪器及其缺点
  目前比较流行的虚拟仪器系统基本上是基于PCI/ISA总线的插卡式虚拟仪器。通过将特定的仪器功能制作在数据采集卡上,然后将其插入计算机的扩展槽中,在计算机的软硬件支持下完成测试任务[1]。相对于传统的仪器而言,虚拟仪器使用户可以根据具体的应用需要,设计自己的仪器系统,实现了仪器的定制化和多样化。但是,基于PCI/ISA总线的虚拟仪器存在着明显的缺点:一方面在插入数据采集卡时需要打开主机箱,由于主机上的PCI插槽有限,直接接入主机的现场测试信号对计算机的**造成很大的威胁;同时,计算机内部的强电磁干扰对被测信号也会造成很大的影响,并且由于采用插卡模式,不便于与笔记本电脑相连,进行现场数据信号的测试;另一方面,由于通用PC机主要用于办公室环境,它的电气和机械设计不以工业应用为目的,系统的可靠性差。此外,通过PC机上的Windows操作系统不是实时多任务操作系统,是为了便于用户管理和利用计算机资源而设计的。传统虚拟仪器的测试不可避免地存在着丢失数据的危险。因此,实时性、可靠性比较差。

2 嵌入式虚拟仪器的体系结构
  嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统[2]。
  构建基于嵌入式系统的虚拟仪器需要解决的技术问题集中在系统平台的构建和特定的虚拟仪器应用程序的设计等方面。基于嵌入式软/硬件环境,系统的体系结构如图1所示。


    图1嵌入式虚拟仪器的体系结构
  嵌入式系统的硬件平台是嵌入式操作系统和应用程序运行的硬件环境,它以嵌入式微处理器为中心,配置存储器、输入与输出(I/O设备)、通信模块等必要的外设,并根据特定的应用进行高效率地设计。针对虚拟仪器的特定应用,在以嵌入式微处理器为核心的基础上,增加数字信号处理(DSP)芯片,对高速的数据流处理进行优化和数学计算,具有独立控制和实时处理的优点,可以使嵌入式微处理器从数据处理任务中解脱出来,更高效地完成其他任务,起到了加快数据采集和信号处理的作用。
  嵌入式系统中的软件部分以嵌入式操作系统为核心,向上提供应用编程接口(API),向下屏蔽具体硬件特性的板级支持包括BSP、USB驱动程序等。其中,嵌入式系统所使用的实时多任务操作系统(RTOS),采用优先级调度策略和时间片轮转调度策略的任务调度机制,能够充分保证系统的实时性和可靠性。虚拟仪器的应用程序是图形化界面和人机接口层与外界进行通信的,主要功能是对系统的测量参数进行设置和测量数据波形显示与分析。基于嵌入式技术,可以把虚拟仪器的硬件集成在嵌入式电路板上,软件固化在Flash存储器上,完成A/D转换、D/A转换以及数字滤波和数字信号处理等功能。通过虚拟仪器的应用程序能够方便地改变硬件的功能或性能参数,实现不同场合的测试应用,从而依靠硬件设备的柔性来增强其适用性和灵活性。

3 基于USB总线的虚拟仪器系统
  基于USB总线的嵌入式虚拟仪器具有使用方便、数据传输速度快、连接灵活的特点。可以采用星型的拓扑结构构建分布式测试系统,如图2所示。


    图2嵌入式虚拟仪器的USB总线系统
  该系统主要由PC机、USB集线器和嵌入式虚拟仪器组成。系统的体系结构设计按照智能模块的设计思路进行,智能模块的作用是完成特定应用的测试功能。利用USB总线的优势可以实现测试方案的灵活配置和测试功能的自由扩展,即当需要添加新测试功能时,只需开发支持USB接口的相应测试功能的嵌入式虚拟仪器模块即可。USB系统中嵌入式虚拟仪器部分的USB总线接口和逻辑设备组合在一起就构成了USB设备接口,提供了传送和接收数据包的总线接口,并管理虚拟仪器设备的各种工作状态。USB设备接口的开发是USB外设开发的关键,它涉及到USB协议和规范的具体实现。USB系统软件中的USB驱动程序是开发的一个难点。虚拟仪器设备可以定义为人机接口设备(HID)类,这样PC机可以直接使用Windows操作系统内置的HID类驱动程序。PC机的通信应用程序使用VisualC++调用API函数和HID驱动程序进行通信,完成和嵌入式虚拟仪器通信的功能。当插入嵌入式虚拟仪器时,主机检测该设备并通过自动加载相关的驱动程序来对该设备进行配置,并使其正常工作。
  USB技术和虚拟仪器技术结合在一起是计算机仪表领域研究的热点,基于USB总线接口设计的嵌入式虚拟仪器具有良好的系统扩展性。嵌入式虚拟仪器可以独立完成特定的信号处理和分析,又可以通过USB总线系统组合在一起,构建大型的测试系统,完成复杂的测试功能。


    图3 硬件逻辑图

4 硬件系统设计
  嵌入式虚拟仪器从功能模块上分为:信号调理和模数转换电路、嵌入式控制模块、存储系统、液晶显示模块、USB总线接口逻辑等部分,详见图3。信号调理部分主要是为了使输入的信号满足采样的电压幅度,降低系统中影响信号质量的噪声干扰。模拟信号调理电路可以根据输入的模拟信号频率、幅度、通道数等选择合适的芯片,设计时应充分考虑抗干扰的性能。在微处理器和USB控制器的设计有两种方式可供选用:一种嵌入式微处理器加上专用的USB通信芯片组成;另一种是采用具有USB通信功能的嵌入式微处理器。此外,由于采样速率较高,因而需要设计大容量的缓存,可以在同样采集频率下保存较长的连续采样信号,便于分析处理。
  该嵌入式虚拟仪器以三星公司的S3C44B0X微处理器为核心,该处理器基于ARM7TMDI内核,并自带8通道10位A/D转换器。配以TI公司的TMS320C5416作为数字信号处理器,采用Philips公司的PDIUSBD12作为USB接口芯片。S3C44B0X微处理器与USB接口芯片PDIUSBD12通过并行接口进行数据传输,数据交换采用中断方式。系统的工作原理如下所述:输入信号首先进入模拟信号调理电路进行采样,进而送入S3C44B0X微处理器的A/D模块进行转换,并将得到的数字信号存储到系统的SDRAM存储器中。随后,接口控制器PDIUSBD12从SDRAM存储器里顺序读出数据并通过USB控制器发送到USB总线上,传输给PC机。同时,还可以在S3C44B0X微处理器控制下,利用DSP芯片进行数字滤波后,进行数字信号的分析和处理,并将结果在LCD上进行显示。

5 软件系统设计
  在嵌入式虚拟仪器中,将信号采集到系统中并不意味着任务已经完成,还需要利用软件完成信号分析的工作。因此,嵌入式虚拟仪器的软件系统包括数据采集、存储、处理、显示以及USB通信等。软件系统流程图如图4所示。


    图4 嵌入式虚拟仪器的软件流程图
  虚拟仪器软件的*大特点是模块化,根据系统具体要求编制各子程序用于解决各个子任务,然后再将它们集成到一套完整的应用系统中。虚拟仪器中有对多个输入的信息进行数据融合的功能。如何由采集到的数据*大限度的提取出有用信号都属于数据融合的范畴。可以采用的算法有:加权平均法、卡尔曼滤波、D2N证据推理法、**算法、遗传算法等。此外,虚拟仪器应用程序还包括信号的频域分析如DFT、FFT等频谱分析功能,以及信号的时域处理包括数组数据的积分、微分、卷积和相关计算,以及统计分析计算、数值分析和计算和数字滤波器等。
  整个系统的USB驱动程序可分为两部分:一部分是嵌入式虚拟仪器的USB驱动程序;另一部分是PC主机端的USB驱动程序。嵌入式虚拟仪器的USB驱动程序是软件系统中*重要的组成部分之一,用来实现仪器硬件的通信和控制功能。采用C语言在嵌入式开发平台下进行驱动程序的设计。智能虚拟仪器的USB驱动程度应提供四种功能:从主机中接收数据;向主机发送数据;启动和重新设定参数以及能够产生同步的控制信号。为此,需要完成如下操作:
  ①设备复位,硬件初始化,配置PDIUSBD11的寄存器;
  ②通过读取PDIUSBD11中断输出管脚的状态,判断是否有PDIUSBD11中断;
  ③如果有中断,则读取PDIUSBD11中断寄存器,否则,转步骤⑤;
  ④进入中断处理程序,根据中断的类型,执行相应的数据传输操作;
  ⑤判断设备是否需要挂起,若是,则将设备挂起,直到被USB总线唤醒;
  ⑥重复执行步骤②。
  PC主机端的USB驱动程序由USB主机控制器(HCD)、USB驱动(USBD)和USB设备驱动程序组成。USBD和HCD称为USB系统软件,完成USB协议相关的操作和USB设备的总线枚举,一般由操作系统提供。针对本嵌入式虚拟仪器的USB设备驱动程序可以按照HID类的规范进行驱动程序的编制,主要完成与USBD软件层接口以及管理设备的数据通信管道等工作,实现USB设备的一些特定初始化工作,并将用户应用程序的请求转化为对相应USBD驱动程度的调用。通过对用户应用程序提供API函数,从而屏蔽USB实现的细节。另外,为了扩展嵌入式虚拟仪器的功能,充分利用已有的虚拟仪器的技术,可以采用PC机作为嵌入式虚拟仪器的数据处理和协调中心,构建基于USB总线的分布式测试系统。这时,PC机作为虚拟仪器平台来分析、处理和显示数据,其**开发语言采用Lab2View,提供人机交互、显示多窗口虚拟仪器界面、提供测试控制、数据输入和结果输出,并模拟产品面板,实现仿真功能。这是一般的虚拟仪器研究的内容,在此不作详细讨论。

6 结束语
�� 虚拟仪器技术是计算机技术、现代测试技术和电子仪器技术相结合的产物,正向着智能化、开放式体系结构的方向发展。本文提出的基于嵌入式计算平台和USB总线技术的嵌入式虚拟仪器符合这一发展趋势,具有很好的开发与应用前景。

参考文献
1杨乐平。虚拟仪器技术概论[M]。北京:电子工业出版社,2003。
2陈章龙。嵌入式技术与系统———IntelXScale结构与开发[M]。北京:北京航空航天大学出版社,2004。
3程兴亚。基于嵌入式系统的虚拟仪器设计[J]。微计算机信息,2004,120(12):63-64。
4邱宁。利用USB总线的虚拟逻辑分析仪[J],自动化仪表,2003,24(9):21-24。
5滕岩峰,周雪峰,黄谨,等。基于USB总线的虚拟仪器开发[J]。仪表技术与传感器,2004,(2):40-42。