|
2#
楼主 |
发表于 2010-2-25 11:41:58
|
只看该作者
将数据传送到上位机,选用存储量比较适中的先进先出存储器,这样既能满足少量数据存储 的
' T' N0 y0 x: Q! }$ A( X: j' V需要,又能在需要实时传送数据时,在A/D转换的同时进行数据传送,不丢失任何数据。)VXI总线接口 * V6 ? t1 Y- @1 M, w
VXI总线数据采集器通常可以利用两种VXI总线通用接口消息基接口和寄存器基接口。消 息基接口的作用是通过总线传送命令,从而控制仪
: u; O1 d9 W# T* Q( @7 Y器硬件的操作。通用寄存器基接口是由寄存器简单的读写来控制仪器硬件的操作。利用消息基接口进行设计,具体消息基接口的框图见图2。
+ z, s% n9 d2 T# o0 i. v/ A/ L 3)采样通道控制6 n* ~0 n: T8 b* \
为了满足几种典型系统通道控制的要求,使通道的数量足够多,通道的选取比较灵活,可以利用寄存器电路、可预置计数器电路以及一些: |6 ?0 U. ^6 q! X, x. q+ N
{词语被屏蔽}逻辑电路的配合,将采样通道设计成最多64路、最少2路可以任意选择,而且可以从任意一路开始采样,也可以到任意一路结束采样,只 V. [! `1 e. w- S+ D5 Y/ B
要截止通道号大于起始通道号就可以了。整个控制在虚拟仪器软面板上进行操作,通过消息基接口将命令写在这部分的控制寄存器中,从而设
# t; D3 G& |3 o! |置计数器的初值以及采样的通道总数。2 w/ s. D* S5 ?( E
4)定时采样控制
' T! L/ Y2 {, z" r6 M3 y 由于不同的自动测试系统对采样时间间隔的要求不同,以及同一系统在不同的试验中 需要的采样时间间隔也不尽相同,故可以采用程控& N; Y' b- u7 h- M6 Q5 m( F; F. K
的方式将采样时间间隔设置在2 μs~13. 0 ms之间任意选择,可以增加或减少的最小单位是2 μs。所有这些选择设置可以在虚拟仪器软面板上
. C% K; x, z% q$ Q. S7 R进行。
( M+ H# U- p( O o 5)采样点数控制
; t+ G/ ?" r- U- c$ R! w6 F 根据不同测试系统的需求,将采样点数设计成可在一个比较大的范围中任意选择,该选择同样是在软面板上进行。
/ f7 b6 F4 X0 O w 6)采样方式控制7 w& ]9 q9 W: `( w, E- q( d
总结各种自动测试系统的采样方式不外乎软件触发采样和硬件 触发采样。在硬件触发采样中又包括同步整周期采样和非同步整周期采样,2 C7 x( ]- ^. t( `% n" o# X' Z! s: I
这2种采样又可 以是定时进行的或等转速差进行的。所有这些采样方式,对于数据采集器来说都可以在软面 板上进行选择。
' t7 l) X. y' w3 X, Y% t' a: l 2.2 软件设计
) u* h9 r: K6 c4 j 软件是虚拟仪器的关键,为使VI系统结构清晰简洁,一般可采用组件化设计思想,将各部分彼此独立的软件单元分别制成2 o8 W( E9 ]0 S9 {) Q- K
标准的组件,然后按照系统的总体要求组成完整的应用系统,一个标准的组件化的虚拟仪器软件系统,如图3所示。
$ ?7 _$ _ f5 D& L. w' |/ H F 应用软件为用户提供了建立虚拟仪器和扩展其功能的必要工具,以及利用PC机、工作站的 强大功能。同时VPP联盟提出了建立虚拟仪器标
# z3 t( [& L0 Q( j& v准结构库(VISA)的建议,为虚拟仪器的研 制与开发提供了标准。这也进一步使由通用的VXI数据采集模块、CPU/DSP模块来构成虚拟仪 2 T1 m0 Y! j# Z$ ^
器成为可能。
( m/ y% B, t' u* M' {/ I 基于虚拟仪器的数据采集器的软件包括系统管理软件、应用程序、仪器驱动软件和I/O接 口 软件。以往这4部分需要用户自己组织或开发
# x$ S: C. {- s,往往很困难,但现在NI公司提供了所有这 四部分软件,使应用开发比以往容易得多。 P, f6 }$ c1 F& F; C
下面简单介绍以NI公司的Lab Windows/CVI为开发环境,来进行VXI虚拟仪器的驱动程序开 发的方法。/ J1 @! O2 v6 O" ?( |) o8 v% p
第一步:生成仪器模块的用户接口资源文件(?UIR)。用户接口资源、文件是仪器模块 开 发者利用Lab Windows/CVI的用户界面编辑器
, ?) _7 V5 W5 r1 R为仪器模块设计的一个图形用户界面(GUI)。 一个Lab Windows/CVI的GUI由面板、命令按钮、图标、下拉菜单、曲线、旋钮、指示表以' ~& G* q$ x7 W5 c- ~8 l/ n8 _
及 许多{词语被屏蔽}控制项和说明项构成。
6 O. [4 \3 ^* i+ p1 q 第二步:Lab Windows/CVI事件驱动编程。应用程序开发环境Lab Windows/CVI中设计一个 用户接口,实际上是在用户计算机屏幕上定义
) E4 s& V. F# B2 [一个面板,他由各种控制项(如命令按钮、菜 单、曲线等)构成。用户选中这些控制项就可以产生一系列用户接口事件(events)。例如 {/ @ f! n; ?: t
,当用户单击一个命令按钮,这个按钮产生一个用户接口事件,并传递给开发者编写的C语 言驱动程序。这是运用了Windows编程的事件驱动
2 q8 D4 z7 M. W' q! e- `机制。Lab Windows/CVI中使用不同类型的 控制项,在界面编辑器中将显示不同类型的信息,并产生不同操作的接口事件。在Lab Wind
' W! t e4 u0 A, T0 a0 Jows/CVI的开发平台中,对事件驱动进行C程序编程时可采用2种基本的方法:回调函数法和 事件循环处理法。
& {. j) @7 r3 e4 I 回调函数法是开发者为每一个用户界面的控制项写一个独立的用户界面的控制函数 ,当选中某个控制项,就调用相应的函数进行事件处+ E9 V- S( K, i3 k9 n& l: v/ q
理。在循环处理法中,只处理GUI控制 项所产生的COMMIT事件。通过Get User Event函数过滤,将所有的COMMIT事件区分开,识别 出是2 R/ J. |. [3 ~
由哪个控制项所产生的事件,并执行相应的处理。* w7 [: a# v" W
第三步:应用函数/VI集与应用程序软件包编写。应用函数/VI集需针对具体仪器模块 功能进行编程,应用程序软件包只是一些功能强大、
$ w& e% A( o: q6 t9 v; M需要完善的数据处理能力的模块才需要 提供,如波形分析仪模块、DSP模块等。
8 l7 }$ H- v( `4 n! Z0 a) f( g3 结语
/ R v- D9 Q; u6 J q1 Q R9 ^+ n 本文探讨了虚拟仪器的基本组成,以及实际的虚拟仪器软硬件设计的一般方法,这些方法经过实际设计工作运用证明是可靠的,可供系统* d6 G8 M) {1 {/ R ^+ o9 l
工程技术人员在组建具体的基于VXI总线的虚拟仪器数据采集、测试时参考使用。 |
|