1、黄石理工学院学报调 理 电 路 A/D 转 换FIFO 缓 冲USB 接 口PC 处 理 与 显 示被测信号 CPLD时序控制基于 VC6.0 的 USB 型虚拟示波器设计与实现张坤 沈华东 尹念东(黄石理工学院机电工程学院,湖北 黄石 435003)摘 要:以8位A/D转换器TLC5510、逻辑控制芯片EPM7064、USB接口芯片AN2131QC为核心,以计算机系统为硬件平台,以Labwindows/CVI和VC为开发工具,设计并制作一种USB型虚拟示波器。系统由数据采集、数据分析处理、数据输出与显示三部分组成。关键词:虚拟示波器;Labwindows/CVI;USB ;中图分类号:TM9
2、35.37 文献标识码:ADesign and Implementation of virtual oscilloscope with USB based on VC6.0Zhang Kun Yin Niandong Shen Huadong(School of Mechanical Engineering,Huangshi Institute of Technology,Huangshi Hubei 435003)Abstract:On the basis of 8-bit A / D converter TLC5510, logic control chip EPM7064, USB in
3、terface chip AN2131QC,a kind of virtual oscilloscope was designed and made. With the computer system hardware platform and Labwindows / CVI for instrument for the development, a USB-based virtual oscilloscope was designed and produced. The system consists of data acquisition, data processing, data o
4、utput and display.Keywords:Virtual Oscilloscope;Labwindows ;USB1 引言虚拟仪器是利用现有的 PC 计算机、加上特殊设计的仪器硬件及专用软件,形成既有普通仪器的基本功能,又有一般仪器所没有的特殊功能的新型仪器。本文介绍一种基于 USB 总线接口技术,用Labwindows/CVI 及 Visual C+6.0 编程的虚拟示波器试验系统。该系统集波形采集、数据分析、输出、显示为一体。2 系统总体框图虚拟示波器系统主要由数据采集卡、计算机和专用软件组成,其中,数据采集卡主要包括:信号调理电路、A/D 转换模块、CPLD 时序逻辑控制、F
5、IFO 缓冲、USB 接口。系统的结构框图如图 1。信号调理电路主要负责信号的滤波、放大和阻抗匹配;A/D 模块主要对经过调理后的信号进行模/数转换实现信号数字化; CPLD时序控制主要为 A/D 转换和 FIFO 缓冲提供时序信号完成 A/D 转换和数据的存储;USB 接口实现与 PC 间的通讯,把采集的数据送给 PC 处理和接收 PC 发来的控制信号进行相应的处理。图 1 系统总体结构2.1 系统硬件电路设计根据系统总体框图选择元器件。A/D转换选择美国德州仪器(TI)公司生产的位半闪速结构模数转换器TLC5510。CPLD 选择 ALTERA 公司MAX7000 系列 EPM7064 C
6、PLD,具有高性能低功耗 CMOS EEPROM 技术、遵循 PCI规范、内嵌 JTAGBST 电路、标准 ISP 特性、5ns pin to pin 延时,最高频率 175.4 MHz、 I/O 接口支持 5V、3.3V 和 2.5V 等多种电平的特点。USB 接口选择 Cypress公司的 EZ-USB 系列的 AN2131QC,它支持 12Mb/s 的全速传输,可使用 4 种 USB传输协议方式:控制传输、中断传输、块传输和同步传输,完全兼容 USB1.1 协议,1、 湖北省自然科学基金项目(编号 2007ABA403)2、 湖北省重点学科“机械电子工程”资助项目3、 “虚拟试验技术”校
7、级创新团队项目黄石理工学院学报图 2 系统硬件电路原理图AN2131QC 主要包括 USB 收发器、 Ancher Core、增强型 8051、8KB RAM、2KB 的FIFO 存储器、24 个 I/O 口、8 位数据总线、16 位总线和 I2C 接口。系统的电路如图2。该系统的主要技术指标:1A 、B 双通道工作模式 2+/- 10V 的双极性输入3最高采样率为 1MSPS450 阻抗匹配3 USB 驱动的设计3.1 WDM 驱动程序的组成WDM( Windows Driver Mode, Windows 驱动模型)基本组成包括以下 5 个例程。(1)驱动程序入口例程:处理驱动程序的初始化
8、。(2)即插即用例程:处理 PnP 设备的添加、删除和停止。(3)分发例程:处理用户应用程序发出的各种 I/O 请求。(4)电源管理例程:处理电源管理请求。(5)卸载例程:处理驱动程序的卸载。3.2 USB 驱动的开发编写 USB 设备驱动程序所需的开发环境,主要包括:DDK、BUILD 工具和Visual C+开发环境设置。DDK 是Microsoft 公司提供的驱动程序开发包,它是开发驱动程序所必须的软件,在WindowsXP 下使用的是 WinXP DDK。在DDK 安装完毕后,其文件下的 bin 目录下包含一些可执行文件,如 Build.exe(用于创建驱动程) 、Setenv.bat
9、(用于设置驱动程序的构造环境) 。Visual C+ 开发环境需要进行一些设置以使其能直接编译、连接设备驱动程序的源代码。主要是以下几个地方需要修改。(1)把 DDK 的 bin 目录添加到的可执行文件目录列表中。(2)创建一个 Make file 项目,按表1 设置 “Win32 Release”选项,相应的设置“Win32 Debug”。表 1 自由构造环境设置(Win32 Release)名称 取值Build command line DrvBuild%DDKPTH%d:d:usbdriver freeRebuild all options -nmake/aOutput file nam
10、e Usbdrive.sysBrowse info file name Objchki386usbdriver.bsc(Win2000/XP)(3)选“BUILDCONFIGURATIONS”菜单,单击“ADD ”按钮,在新窗口中的“CONFIGURATION”中设置输入配置名字: 分别为“Free” 或“Checked” ;其对黄石理工学院学报应为“Copy setting from ”分别为 “xxx-Win32 Relesse”和“xxx-Win32 Debug” ,然后把两个“xxx-Win32 Relesse”和“xxx-Win32 Debug”删除即可。USB 设备驱动程序框架包含
11、了驱动程序头文件、入口例程和卸载例程即插即用例程、电源管理例程、资源管理头文件、版本资源信息等。可以在此基础上添加自己所需的一些分发例程即可。也可采用Cypress 公司提供的标准驱动程序来完成USB 的驱动开发。在正确安装了 USB 驱动后可以在设备管理器中看到 USB 设备。4 系统软件设计 4.1 EZ-USB 固件程序设计固件共包含 8 个程序文件:main.c、 function.c、delayms.a51、decrptr.a51、jmptable.a51、testheader.h、testregs.h和 testregsl.inc。其中,头文件 testregs.h 和testre
12、gs.inc 对 AN2131 中的各种寄存器进行定义;testheader.h 定义通用的 EZ-USB 常量、数据类型和宏;dscrprt.a51 定义系统所使用的各种 USB 描述符;delayms.a51 中包含延时 1ms 子程序和芯片挂起处理子程序;jmptable.a51 文件定义 EZ-USB 的 INT2 中断跳转表;main.c 是固件运行的主程序文件,负责处理各种 USB 设备请求;function.c包含各种功能函数的定义,用于完成系统的主要功能,如处理 USB 同步传输等。main.c 是固件运行的主程序文件,负责处理主机发出的各种 USB 设备请求。实现流程如下所示
13、,该程序首先初始化所有的内部状态变量,然后调用 TD_Init(以前缀”TD_” 开头的函数均在 function.c 文件中定义)用户函数进行初始化,并打开中断,最后固件程序开始列举 USB 设备,直至在端点上接收到 SETUP 令牌包时为止。一接收到 SETUP 令牌包,其将重复执行下面的任务分配过程。(1)调用函数 TD_poll,以完成用户指定的任务。(2)判断是否有 USB 设备请求(SETUP令牌包) 。如果有则调用parseControlTransfer 函数进行相应的处理;如果没有,则继续向下执行。(3)检测 USB 总路线是否空闲。如果空闲,则调用程序 TD_Suspend,
14、以交由用户处理。在 TD_Suspend 返回真值后,它将调用 EZUSB_Susp 函数(在 delayms.a51 文件中定义) ,以使 8051 处于空闲状态。这时,只有 USB 总路线活动或芯片 WAKAEUP#管脚活动,才可能将 8051 重新激活。(4)8051 被激活后,固件程序将首先调用 EZUSB_Resume 函数,以使用 8051 从空闲状态中恢复出来,然后再调用TD_Resume 函数来处理用户指令。主程序流程图如图 3。图 3 主程序流程图4.2 Labwindows/CVI 人机界面设计人机界面主要功能是模拟传统示波器,实现波形显示,满足不同需要的分析功能以及对数据
15、采集系统硬件的参数设定。采用 NI 公司的虚拟仪器软件开发平台Labwindows/CVI 可以充分发挥虚拟仪器的上电复位初始化变量调用 TD-Init()使用中断是 否 接 收 到SETUP 包 延时 1S,重举例调用 TD-POLL()是 否 接 收 到SETUP 包 执行设备请求USB 总 线 空 闲标 志 是 否 有 效挂起处理器调用 TD-Resume ()调用 TD-Suspend()YNYNNY黄石理工学院学报灵活性。LabWindows/CVI 开发的应用程序如果要与 AN2131Q 通过 USB 接口通讯,必须另外开发连接 DLL。应用程序调用连接 DLL 与 AN2131Q
16、 通讯,取得 AN2131Q上传的数据包后把数据包拆包,这样才能获得采样数据。因此,开发上层应用软件的首要工作是动态链接库的开发,动态链接库采用 VC+6.0 进行开发。PC 端应用程序是虚拟示波器控制软件的最上层,虚拟示波器用户控制面板具有界面友好、操作直观等优点,通过面板上的各种控件便可实现数据的采集、存储、再现及分析等功能。人机界面如图 4。图 4 人机界面 5 结束语随着 USB20 标准的提出,USB 的应用范围越来越广,已经涉及到几乎所有计算机外设。USB 的特点为解决当前虚拟仪器的一些问题提供了一个新思路。本文是将 USB 接口引入虚拟仪器、仪表系统的一次探索性研究。参考文献1
17、李英伟.USB2.0 原理与工程开发(第二版)M. 北京:国防工业出版社,20072 王辉.MAX+pus和 Quartus应用与开发技巧M. 北京:机械工业出版社,20073 王建新.LabWindows/CVI 测试技术及工程应用M. 北京:化学工业出版社,20064 王开军.面向 CPLD/FPGA 的 VHDL 设计M.北京:机械工业出版社,20075 赵伟军.基于 PCI 总线的虚拟示波器的设计与实现J.现代雷达,2007 ,29 (1):41-436 马春雷.基于 EZ-USB 的虚拟示波器设计J. 国外电子测量技术,2006,25(12):31-33作者简介:张坤,1986-,男,湖北荆州,汉, 04 级机械设计制造及其自动化专业本科在读。