基于USB接口的动平衡机数据采集系统
基于USB接口的动平衡机数据采集系统 基于USB接口的动平衡机数据采集系统49
基于USB接口的动平衡机数据采集系统
TheDataAcquisitionSystemofDynamicBalance MachineBasedonUS;BInterface
徐华勇王秋晓陈洪伟
(重庆大学机械学院,重庆400030)
摘要:针对动平衡测试系统,开发了一种新型的基于USB接口的高速采集系统?着重论述了通用串
行总线(USB)的特点,以及USB设备的同件程序设计,动程序开发和上层应用程序的开发一该系统采用
Cypress公司的CY7C64613—128NC型USB芯片,结合A/D转换器进行数据采集它克服了基于PCI/ISA
捅槽的A/D采样卡为测量手段的采集系统的缺点,抗干扰性能好,采集速度快 关键词:USB驱动程序同件程序ADC0805
Abstract:Aimedatmeasuringsystemofintellingentdynamicbalancemachine,anewtypeof
highspeed
acquisitionsystemonUSBinterfaceisintroduced.ThefeatureofUSB,firmwaredesignofLS
B(tex,ice,driver
designandapplicationdesignareemphaticallydescribed.ThesystemadoptsCY7C64613—128NCUSBchip
combinedwithA/Dconversiontocarrydataacquisition.Itovercomesthedrawbacksofacqui
sitionsystemwhich
employsA/DsamplingcardbasedonPCI/ISAsocketandhasbetterperformanceinanti—jannningandquicker
acquisitionspeed.
KeyWOrds:USBdriverfirmwareADC0805
0引言
一
般的采集系统是采用基于PCI/ISA插槽的 A/D采集卡进行数据采集.此种采集方式除受 到插槽数量,中断资源的限制外,测量精度,抗干 扰性也很差,对于要求测量精度很高的动平衡系 统已不适用.本系统通过USB接口,把数据采集
板和PC机相连,即插即用.数据采集电路 板由智能前端信号处理电路,A/D转换器和USB 控制器组成,与PC机分离.这种方式大大提高 了系统的采集精度和抗干扰性.此系统使用方 便,性能稳定,已成功开发出产品,客户反映良好. 1USB简介
1996年,USB—IF公布了USB规范1.0.到 1999年,第三版本USB2.0己公布.通用串行总 线(universalserialbus,USB)是一种标准的连接 接口,在把外面的设备与计算机连接时,允许不必 重新配置规划系统,也不必打开机壳另外调整接 口卡的指拨开关.而连上计算机时,计算机会自 动识别这些接口设备,并且配置适当的驱动程序. 无需用户再另外重新配置.新一代的计算机大都 配备了2—4个甚至更多的USB接口.USB设备 具有即插即用,热插拔等特性.USB提供4种传 输方式,既控制传输,批量传输,中断传输和等时 传输.用户可以根据自己的不同需求,选择不同 的传输方式.USB规范2.0最高传输速度达到 480Mb/s,可以满足绝大多数设备要求,且通过 USB集线器多层拓扑连接最多127个设备,再加 上低廉的价格,已成为越来越多用户的首选.
2硬件系统组成及工作原理
传统的数据采集系统通常采用基于PCI/ISA 插槽的A/D采集卡的方式采集数据,但这种采集 方式容易受到机箱内高频数字信号干扰,导致采集 的数据失真.RS232串行总线虽然连接简单,但其 缺点是传输速度慢(20,256Kb/s),且主机的串行 口数目有限.采用USB作为通信接口克服了这些 缺点,它传输速度快,使用方便,性价比高.此USB 数据采集系统,由内含微控制器的USB芯片 (CY7C64613—128NC),信号处理电路,A/D转换 器和USB接口组成.硬件系统总体框图如图1. 本系统以USB作为微控制器,控制A/D转 换器和采集电路.首先,压电传感器将支撑处的 动反力信号转换为相应的电荷信号,接着经电荷 放大器放大为电压信号,跟踪滤波器用来滤除信 号中的背景噪声,由此得到了与转子同频率的正
50机电一体化Mechatronics2004年第6期 弦波形式的不平衡信号;再经过程控放大进入解 算电路.程控放大倍数由微控制器根据信号的强 两路信号进入A/D转换器,转换后进入USB内 存,最后通过USB接口进入PC机.下面简单地 弱来控制.解算电路对每路信号进行积分,变为介绍一下所用到的USB芯片和A/D
转换器.
压电传感器1压电传感器2接近开关
il,
电荷放大器电荷放大器整形电路
i[一
跟踪滤波器跟踪滤波器锁
i相环
程控放大程控放大
l,『
l'.l
II
多路开关
l
A/D转换器
J
USB控芯片
图1硬件系统总体框图
1)CY7C64613芯片
CY7C64613芯片是Cypress公司推出的内 嵌增强版的8051核心,比标准的8051还要快上5 倍的执行成效.此外,具有内建的8K的RAM,也 能够从Pc主机下载固件的程序代码.这个内建 的内存,省却了许多系统中所需的内存.最重要的 是,其内含USB串行接口引擎(SIE),符合USB规 范1.0/1.1.SIE执行了串行数据的译码和编码以 及错误纠正,位填塞与USB所需的信号水平,最后 再从USB外围接口传送与接受数据位. 2)A/D转换器ADC0805
ADC0805芯片为8位CMOS单片逐次逼近式 A/D转换器,一次转换约需63—73个时钟周期. 在时钟频率fcLK=640kHz的典型运行下,一次转换 时间约为103—114s.模拟信号输入采用差动输 入方式,它可使两信号共同存在的噪声(共模噪 声)减少到最低程度,满足本系统的要求. ADC0805与CY7C64613芯片的连接如图2.
当芯片选择信号CS及写入控制信号WR为低 电位时,ADC0805内部重置,将中断请求信号 INTR设置为高电位.WR信号由低电位升至高电 位(前沿)时,ADC0805进行A/D转换.转换完 毕,会将数字数据存在输出锁存器中,并将INTR 信号设置为低电位,以通知CPU来读取数据. INTR信号持续保持低电位,直到CPU读取数据或 下一次重置时,INTR信号才会由低电位转换成高 电位.
3软件系统设计
USB设备的开发分为3大块:USB芯片的固 件代码,设备驱动程序,上层应用程序. 1)USB固件代码开发
USB有4种传输方式,即控制传输,中断传 输,批量传输,等时传输.本系统采用了其中两种 传输方式——控制传输和批量传输.控制传输是 USB传输中最重要的传输,它用来提供介于主机 与设备之间的配置,命令或状态的通信协议. USB通过端点O来完成控制传输.控制传输是 必须要有的,其他3种传输方式根据自己的需要
基于USB接口的动平衡机数据采集系统51 l5kn
22kn
t=】_一
(=—一
22kn
H
30pF三…
H
30pF PB7
XjNPB6
PB5
PB4
PB3
PB2
XoUTPBl
PBO
模拟信号 150pF r—l】—— C
ADC0805
1
4
2.....—— A1
A2
A6
~---o]GI.......---—..一fDIR
Bl
B2
B3
B4
B5
B6
B7
B8
VCC
GND
图2CY7C64613与ADC0805接口原理陶 选择.由于本系统传输数据量大,数据精度要求 高,所以选择批量传输.固件代码开发使用Keil Ccompiler工具软件,执行后产生HEX文件,然后 就可以通过编程器下载到USB芯片中.当该 USB设备与主机相连时,就会执行设备列举和重 新设备列举,根据固件中所提供的PID(产品ID) 和VID(制造商ID)码,加载USB驱动程序. Windows系统中包含了许多INF文件,它是一种 文本文件,必须与存储在设备描述符内的制造商 码(PID/VID)一致,才能找到符合驱动程序.固 件程序代码,驱动程序,应用程序是由PID/VID 联系在一起的,它们的关系如图3_4所示.本系 统固件代码程序包含Fw.C,DEV1.C,DSCR. A51,EZ—USB.LIB以及USBJMPTB.LIB等文件. 图3固件程序代码,应用程序与INF程序之间的关联性 2)设备驱动程序开发
笔者所开发的WDM(windowsdrivermode1)
设备驱动程序,是微软公司全新的驱动程序模式, 它的运行平台是Windows98/2000/XP操作系统. WDM驱动程序及应用程序开发所用到的开发包 有:VC++6.0,WindowsDDK.DriverStudio3.0
WDM驱动程序采用分层的结构模型,如图4 所示.在WDM驱动程序模型中,每个硬件至少 l8
——
l
16
15
14
13
l2
ll——
2()
有两个驱动程序,即总线驱动程序和功能驱动程 度.总线驱动程序由操作系统提供,功能驱动程 序是由开发者编写.在WDM中引入了功能设备 对象(FDO)与物理设备对象(PDO)两个新类来 描述硬件.总线驱动程序的一项任务就是枚举总 线上的设备,并为每一个设备创建一个PDO.一 个PDO对应一个真实硬件,一个硬件只允许有一 个PDO,却可以拥有多个FDO.驱动程序直接操 作的不是硬件,而是相应的PDO和FDO.在FDO 的上下,可能还有些过滤器设备对象(FiDO).位 于FDO上面的FiDO,称为上层过滤器驱动程序, 通常也称为最高层驱动程序;位于FDO下面(但 仍在FDO之上)的FiDO,称为下层过滤驱动程 序,通常也叫做最低层驱动程序.在用户态与内 核态通信方面,系统为每一个用户请求打包形成 一
个IRP(L/O请求包)结构,将其发送至驱动程 序,并通过识别IRP中的PDO来区分是发送给哪 一
个设备.每个对于设备的操作都是通过I/O请 求包提出,层次结构使I/O请求进程更加明了. IRP先被送到设备堆栈的最上层驱动程序,然后 逐渐过滤到下面的驱动程序.每一层驱动程序都 可以决定如何处理IRP.有时,驱动程序仅仅是
向下层传递该IRP;有时驱动程序直接处理完该 IRP,不再向下传递;还有时驱动程序既处理了 IRP,又把IRP传递下去.如何操作,取决于设备 以及IRP所携带的内容.
在单个硬件设备的驱动程序堆栈中,不同位 置的驱动程序扮演了不同的角色:功能驱动程序 管理FDO所代表的设备;总线驱动程序管理计算 v^l二一
一
曛
432l
一队
嘟,一S
52机电一体化Mechatronics2004年第6期 机与PDO所代表设备的连接;过滤器驱动程序用于监视和修改IRP流c
f应用程序;
【—.....——————————————————........——————————一
_J
1
IWin32APliJ~用函数
I''.————————————————————'...'''————————————
—一
IWin32子系统f
…
l/oi
…
~N
…
92(mP
…
)
………
图4USB通信中阶层式驱动程序
3)Windows应用程序开发
应用程序是不能直接与硬件通信的,必须通 过驱动程序作为中介:设备驱动程序成功加载以 后,应用程序就可以调用Win32API函数 CreatFile()获得句柄(handle).再通过调用 DevieeIoControl()函数和WDM进行通信,也可以 用ReadFile()和WriterFile(),从WDM中读数据 和写数据,用CloseHandle()关闭设备,这将产生 对应于此设备对象的相应IRP.应用程序可以用 一--…
团
一…
臣
一…
回
一…
臣
VB,VC++以及Delphi等来开发.本文使用的 丁具是VC++.应用程序可用下面两种方式打 开设备:用GU1D接口或符号链接名. 4实验
表1列出了基于USB接口的数据采集系统 与以前我们所开发的基于RS232串口的采集系 统的实验数据对比结果.两系统测量结果相差不 大,精度都满足要求;但USB系统的测量速度要
比RS232系统快了10倍.
表1实验数据
不平衡量l(g'Him)相位l(.)不平衡量2(g?mm)相位2(.) USB接口校正前42.332.552.71249 实验数据一次校正后5433.26.2121.7 二次校正后1.335.61.21236 RS232接校正前42.533.552.8125.2 口实验一次校正后5.234.76.5126.8 数据二次校正后1.432.41.1123.4 5总结
上述
开发出了基于USB接口的数据采
集系统.实验发现,所得数据精度高,传输速度
快,正向产品化方向发展.但该系统只连接了一 台设备,以后需进一步开发连接多台设备的系统, 从而大大降低设备成本.USB设备开发虽然有 一
定的难度,但由于它所具有的各种优点,在未来 将会成为发展的主流,应用于各种PC机外围
设备
参考文献
l许永和.USB外围设备设计与应用一——Ez—USBFX系列单 片机M北京:北京航空航天大学出版社,2002 2李华.MCS一51系列单片机实用接口技术[M].北京:北京航 空航天大学出版社,1993
3武安河,邰铭,于洪涛.WDM设备驱动程序开发[M].北京: 电子工业出版社,2003
4张弘.USB接口设计[Mj.西安:西安电子科技大学出版 社.2002