基于嵌入式系统 USB接口的虚拟示波器的开发与实现
扫描二维码
随时随地手机看文章
虚拟示波器是将计算机强大的计算处理能力和一般硬件仪器的信号采集和控制能力结合在一起,从而实现一般示波器所不能实现的功能和友好的界面,弥补了传统示波器功能单一、体积庞大、携带不便、价格昂贵的不足。随着计算机技术的发展 ,对虚拟仪器的智能化和小型化的要求越来越高。嵌入式系统的发展使得基于嵌入式微处理器和实时操作系统的嵌入式虚拟仪器能够满足恶劣工作环境下的便携虚拟仪器的需要。同时,基于USB总线的仪器设备克服了现有PC总线虚拟仪器的不足,可满足自动化工业测量的要求,特别适合现场信号的测试。
常用的虚拟仪器多采用PCI或ISA插槽,然而采集卡的数量一般有限,因此在搭建系统的时候,只能指定特定的计算机或嵌入专门的采集卡,但有些设备根本就不支持PCI或ISA总线,这种内置形式很容易受到PC机箱内高频干扰的影响,降低系统的采样精度和稳定性。如果能够将整个系统做成外置式,不仅能够提高系统的采样精度和稳定性,还能增强系统的灵活性,同时还有利于系统的维护。
USB接口是实现虚拟仪器的一种更方便、更有效、更灵活的总线通讯式。USB总线是新一代总线技术,使PC机配置新的硬件设备不用在打开机盖,且支持热插拔技术,给使用者以极大的方便。USB总线具有传输速率高、支持异步和等时传输特点,并且可同时挂接127个独立的USB设备,适合于外登式中高速、高精度采样系统。USB技术是非赢利性的规范,已得到了广泛工业支持。
1 系统整体设计
嵌入式处理器是由C8051F020单片机和USB总线芯片CH375组成。C8051F020单片机作为系统的CPU担任着逻辑控制、数据采集和存储管理的工作,接收测试分析对象上传的数据源信号,通过信号调理模块和模数转换模块等控制功能实时采集数据,由USB总线芯片CH375作为与上位机通信的接口将数据传送给上位机监控模块。系统结构如图1所示。
C8051F系列单片机是完全集成混合信号的系统级芯片,具有与8051兼容的控制器内核,并与MCS-51指令集兼容;片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件。C8051F单片机采用流水线结构,机器周期由标准的12个系统时钟降为1个系统时钟,处理能力大大提高,峰值性能可 达25M IPS.C8051F单片机是能真正独立工作的片上系统(SoC)。每个MCU都能有效地管理模拟外设和数字外设,可以关闭单个或全部外设节省功耗。Flash存储器还具有片上重新编程能力,可用于非易失性数据存储。片内JTAG调试支持观察、修改储存器和寄存器,支持断点、单步、运行、停机命令。调试时所有的模拟和数字外设都能全功能运行。
C8051F最突出的改进是引入了数字交叉开关。这是一个大的数字开关网络,允许将内部数字系统资源分配给端口I/O 引脚。这种结构可支持所有的功能组合,可通过设置交叉开关控制寄存器,将片内的计数器 /定时器、串行总线、硬件中断、ADC转换启动输入及微控制器内部的其他数字信号配置在端口I/O引脚,这就允许用户根据自己的特定应用选择通用端口I/O和所需数字资源的组合。
USB模块CH375是一个USB总线的通用设备接口芯片,无需编写驱动程序,内置有USB通讯中的底层协议,完全满足USB1.1标准。该模块具有8位数据总线(D0~D7)、地址输入(A0)、读(RDJHJ)、写(WRJHJ)、片选控制线(CSJHJ),以及中断输出(INTJHJ)等功能,可以方便地挂接到单片机的数据总线上。当A0为低电平时选择数据端口,单片机通过8位并口对CH375进行读写数据;当AO为高电平时选择命令端口,可以向其写入命令。
在本地端,单片机对CH375的操作是采用命令加数据的I/O 操作方式,任何操作都是先发命令给CH375,然后执行数据输入输出。CH375接收到上位机发送的数据或者发送完给上位机的数据后,以中断方式通知单片机。各通道的USB模块CH375在计算机应用层与其本地端单片机之间提供了端对端的连接,统一采用数据加应答方式进行通信,所有的通信都由计算机应用层发起,然后以接收到单片机的应答结束。
2 嵌入式软件设计
嵌入式软件设计采用模块化的程序设计思想,主要由4个部分组成,即A/D转换子程序、数据采集及存储子程序、USB通信子程序,以及D/A转换子程序,并由嵌入式处理器进行统一调配。这里主要介绍数据采集和USB通信子程序。
该虚拟示波器中使用了2种传输方式:控制传输和数据报告。控制传输用来实现位于计算机上的USB总线驱动程序及编写的功能驱动程序对设备的各种控制操作,根据计算机端软件设定的增益、时基、触发等参数控制数据采集模块,需要计算机向单片机发送少量的控制信息。
数据报告用来完成将采集数据从设备传送到计算机的功能,这属于大批量数据的传输。如图2所示,当USB控制器从USB总线检测到计算机启动的某一传输请求时,USB控制器通过中断方式将此请求通知单片机。单片机通过访问USB控制器的状态寄存器和数据寄存器获得与此次传输有关的各种参数,并根据具体传输参数,对USB控制器的控制寄存器和数据寄存器进行相应的操作。如果是上传(上传缓冲区的数据被计算机成功读取),则释放当前USB缓冲区,然后退出中断程序;如果是下传(下传缓冲区成功接收到计算机发送的数据 ),则从数据下传缓冲区读取数据块。在分析接收到的数据块时,如果是数据请求的上传命令,则准备应答数据(采集数据 );单片机将采集数据写入数据上传缓冲区中,然后退出中断程序,完成计算机的传输请求。该通讯方式具有数据自动同步、程序设计简单、交互性和可控性较好等优点。
3 上位机软件设计
上位机软件主要功能是模拟一个示波器的界面,实现数据的显示及满足不同需要的分析功能,同时完成对数据采集硬件的参数设定。在这个设计中已实现了基本的功能,如图3所示,包括波形显示、数据保存、量程的自动转换和数据的深度分析(波形测量和频谱分析),甚至能结合嵌入式系统硬件实现波形发生器等功能。
上位PC机的人机界面是虚拟示波器与用户的接口,直接关系到系统的可用性和方便性。人机界面程序主要是使用户能够方便地控制整个虚拟示波器的工作,并通过数据分析,使用户能够方便地选择通道,采集频率、增益等。上位机的人机界面采用VC++语言开发,在软件中充分利用了类功能,将USB设备的启动函数、停止函数、数据读取函数等各个函数全部整合到动态链接库USB.DLL中。将CH375芯片的驱动程序、动态链接库拷贝到上位机中,利用CH375动态链接库DLL提供的API函数(设备管理API、数据传输API、中断查询API和直接控制API)对其进行操作,数据传输API是最重要最常用的一组函数,它提供了多种数据传输模式。
中断查询API一般用于USB设备使用到中断传输的场合。直接控制API是用于CH375直接输入输出信号,由设置、输入和输出3部分组成。这样不但使软件程序结构清晰,方便阅读,而且在需要时可以方便快捷地升级人机界面,无需大的改动。使用动态链接库后,当其他应用软件要使用该USB设备时,也可方便声明函数,从而有效地控制USB设备工作,因此,该USB设备可以方便地用于其他场合,实现其他的功能。软件充分利用了计算机强大的处理能力,可在控制USB设备的同时对16个信号进行采集和显示,并可根据用户的需要测出不同信号的频率、幅值、有效值等参数。软件波形观测界面如图4所示。
4 结束语
根据嵌入式系统USB接口的虚拟示波器的硬件和软件设计方案,实现了该虚拟示波器数据传输、算法控制、显示调试等基本功能。实践表明,该系统性能良好,功能强大,体积小巧,使用简便,价格低廉,适合多种场合应用,能为使用者建立了一个良好的使用平台。