第 6 章 虚拟仪器概述

72
虚虚虚虚虚虚虚 《》 第 1第 虚 6 虚 虚虚虚虚虚虚 虚虚虚虚 6.1 虚虚 6.2 虚虚虚虚虚 DAQ 虚虚 6.3 虚虚虚虚虚虚虚虚虚 6.4 虚虚虚虚虚虚虚虚 虚虚 6.5 虚虚虚虚虚虚虚虚 6.6 DDS 虚虚虚虚虚虚

Upload: phillip-santiago

Post on 15-Mar-2016

76 views

Category:

Documents


3 download

DESCRIPTION

第 6 章 虚拟仪器概述. 本章概述 6.1 概述 6.2 高速多功能 DAQ 主板 6.3 模拟输入信号的调理 6.4 高速采集及存储系统设计 6.5 时序控制逻辑设计 6.6 DDS 信号源的设计. 6.1 概述. 虚拟仪器通用测试平台的组成 虚拟仪器通用测试平台由硬件和软件两大部分组成 硬件部分包括:( 1 )个人计算机( PC )( 2 )外置式多功能 DAQ 主板( 3 )系列化的测试与实验电路模板. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 1页

第 6章 虚拟仪器概述本章概述6.1 概述6.2 高速多功能 DAQ主板 6.3 模拟输入信号的调理 6.4 高速采集及存储系统设计 6.5 时序控制逻辑设计 6.6 DDS信号源的设计

Page 2: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 2页

6.1 概述 虚拟仪器通用测试平台的组成 虚拟仪器通用测试平台的组成 虚拟仪器通用测试平台由硬件和软件两大部分组成 虚拟仪器通用测试平台由硬件和软件两大部分组成 硬件部分包括:(硬件部分包括:( 11 )个人计算机()个人计算机( PCPC )()( 22 )外置式)外置式多功能多功能 DAQDAQ 主板(主板( 33 )系列化的测试与实验电路模板)系列化的测试与实验电路模板

Page 3: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 3页

软件部分包括:(软件部分包括:( 11 )基于)基于 WindowsWindows 环环境下的虚拟仪器软件开发平台境下的虚拟仪器软件开发平台 LabVIEWLabVIEW 或或 LabWindoLabWindows/CVIws/CVI ;(;( 22 )虚拟仪器库,包括有示波器、信号源、)虚拟仪器库,包括有示波器、信号源、电压表、计数器等十余种虚拟仪器驱动程序库;电压表、计数器等十余种虚拟仪器驱动程序库;(( 33 )系列化的测试与实验的示范程序软件包。)系列化的测试与实验的示范程序软件包。

虚拟仪器通用测试平台的应用虚拟仪器通用测试平台的应用 (( 11 )各种模拟电路的测试)各种模拟电路的测试 (( 22 )各种数字电路的测试)各种数字电路的测试 (( 33 )各种电参数的测试)各种电参数的测试 (( 44 )各种非电量的测试)各种非电量的测试

Page 4: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 4页

6.26.2高速多功能高速多功能 DAQDAQ主板主板 高速数据采集技术概况 高速数据采集技术概况 随着科学技术的发展和数据采集技术的广泛应用,对随着科学技术的发展和数据采集技术的广泛应用,对数据采集系统的许多技术指标,如采样率、分辨率、数据采集系统的许多技术指标,如采样率、分辨率、存储深度、信号处理速度、抗干扰能力等方面提出了存储深度、信号处理速度、抗干扰能力等方面提出了越来越高的要求,其中前两项为评价超高速数据采集越来越高的要求,其中前两项为评价超高速数据采集系统的最重要技术指标。系统的最重要技术指标。 超高速数据采集技术已广泛应用在雷达、导弹、通信、超高速数据采集技术已广泛应用在雷达、导弹、通信、声呐、遥感、图像、地质勘探、振动工程、无损检测、声呐、遥感、图像、地质勘探、振动工程、无损检测、智能仪器、语音处理、激光多普勒测速、光时域反射智能仪器、语音处理、激光多普勒测速、光时域反射测量、物质光谱学与光谱测量、生物医学工程等多个测量、物质光谱学与光谱测量、生物医学工程等多个领域,进而不断推动着这些领域的发展。领域,进而不断推动着这些领域的发展。

Page 5: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 5页

高速数据采集的关键技术 11 、高速、高速 A/DA/D 转换技术转换技术 最高采集速率首先受到采集器件最高采集速率首先受到采集器件 A/DA/D 转换器性能的限制,高速转换器性能的限制,高速

A/DA/D 器件是关键。目前,模数转换器件的速度高达器件是关键。目前,模数转换器件的速度高达 1000MHz1000MHz ,,分辨率已高达分辨率已高达 2424 位;数模转换器件的速度也高达位;数模转换器件的速度也高达 500MHz500MHz ,分,分辨率达辨率达 1818 位。 位。 在集成电路性能上,速度与精度总是一对矛盾体。在集成电路性能上,速度与精度总是一对矛盾体。 器件的发展是在三个方面进行器件的发展是在三个方面进行 :: 一是专攻速度一是专攻速度 二是专攻精度二是专攻精度 三是保证速度与精度兼顾三是保证速度与精度兼顾

Page 6: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 6页

2 、高速采样存储技术 在高速采集中,每个新获取的采集数据都必须立即存在高速采集中,每个新获取的采集数据都必须立即存入采集存储器,因此它必须具有与采集速率同步的连入采集存储器,因此它必须具有与采集速率同步的连续接收数据的能力。续接收数据的能力。 为了降低对存储速度的要求,常用的解决办法是利用为了降低对存储速度的要求,常用的解决办法是利用多个存储器并行工作,采用分时轮流写入,从而降低多个存储器并行工作,采用分时轮流写入,从而降低对单个存储器的速度要求,但这对高速锁存器和精确对单个存储器的速度要求,但这对高速锁存器和精确定时逻辑又提出了很高的要求。定时逻辑又提出了很高的要求。

Page 7: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 7页

高速多功能高速多功能 DAQDAQ 主板的方案 主板的方案 高速多功能高速多功能 DAQDAQ 主板由模拟主板由模拟 I/OI/O 、数字、数字 I/OI/O 、定、定时时 // 计数三大部分组成。 计数三大部分组成。

信号调理(衰减、放大)

双路ADC 缓存RAM

计数/定时

数字I/O

信号调理(发大、衰减)

FPGA 逻辑控制

双路DAC

标准总线通信接口

缓存RAM

0 7~D D

0 15~A A

模入A

模入B

计数入

数字出

数字入

模入A

模入B

计算机

0 15~A A

0 15~A A

0 15~A A

0 7~D D

0 7~D D

0 7~D D

0 7~D D

0 7~D D

0 7~D D

0 7~D D

0 7~D D

0 7~D D

0 7~D D

Page 8: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 8页

6.36.3模拟输入信号的调理模拟输入信号的调理 模拟输入通道的组成模拟输入通道的组成

高速ADC

高速RAM

EPP接口

触发控制逻辑

地址控制器

分频器

输入信号

量程选择码

ABCD

abcde

采集频率选择码

IV

CK

触发 WR RD

40MHz

X4

计算机

N12位

1K 2K1A 2A

高阻衰减器 前级放大器 低阻衰减器 后级放大器 8位100MHz 64KB

DAC

sfclkf

Page 9: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 9页

基本指标 基本指标 (( 11 )带宽:高速)带宽:高速 DAQDAQ 主板的被测信号的带宽很宽(主板的被测信号的带宽很宽( 0~0~

1GHz1GHz以上)以上) (( 22 )分辨力:主要取决于)分辨力:主要取决于 ADCADC 的位数,的位数, nn 位位 ADCADC ,其,其幅度(电压)分辨力为幅度(电压)分辨力为 1/21/2nn

(( 33 )量程:被测信号的幅度变化范围很宽,小到几毫伏,)量程:被测信号的幅度变化范围很宽,小到几毫伏,大到几百伏。大到几百伏。 通道量程的设计通道量程的设计 输入通道的量程从输入通道的量程从 50mV50mV 到到 50V50V ,按,按 11 、、 22 、、 55 的倍率划的倍率划分成分成 1010档档

2n

Page 10: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 10页

模拟输入通道的量程设计模拟输入通道的量程设计 量程(

V)A

(K1A1K2A2)K1 A1 K2 A2

S1S2S3S4

( 程控码)

0.05 20 1 5 1 4 01100.1 10 1 2.5 1 4 01000.2 5 1 1.25 1 4 00100.5 2 1 0.5 1 4 00001 1 1 2.5 0.1 4 01012 0.5 1 1.25 0.1 4 00115 0.2 1 0.5 0.1 4 000110 0.1 0.1 2.5 0.1 4 110120 0.05 0.1 1.25 0.1 4 101150 0.02 0.1 0.5 0.1 4 1001

Page 11: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 11页

前级调理电路的设计 前级调理电路的设计 包括输入电路、前置放大器、中间衰减器等,其主要任包括输入电路、前置放大器、中间衰减器等,其主要任务是将被测输入信号进行衰减或放大,或得后面务是将被测输入信号进行衰减或放大,或得后面 ADCADC 所需幅值所需幅值的电压 的电压

输入 高阻分压

DC

AC

900K

100K

750×4

1K375

167

750

750

450

50

低阻分压器

5/2.5/1.25/0.5AD8066

375

375

750× 4

5S1R

2R

1S

3S

2S

2U

1U

X

A

B

Y

0X

3X

3Y

0Y

3U

0X

1XX

4S

1A

+

_

_

+

+

_

1C

2C

Page 12: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 12页

22 、输入电路、输入电路 主要由输入衰减器和输入耦合(主要由输入衰减器和输入耦合( ACAC 和和 DCDC )选择开关)选择开关 S5S5 组成 组成 输入衰减器由输入衰减器由 R1C1R1C1 和和 R2C2R2C2 组成组成 衰减器的衰减量为衰减器的衰减量为

式中式中 ZZ11 为为 CC11 和和 RR11 的并联阻抗,的并联阻抗, ZZ22 为为 CC22 和和 RR22 的并联阻抗。若的并联阻抗。若 RR

11CC11=R=R22CC22 (调节(调节 CC22 来满足),则衰减量为 来满足),则衰减量为

2

2 2 21

1 21 2

1 1 2 2

1

1 1

o

i

RU Z j R Ck

R RU Z Zj RC j R C

2

2 2 21

1 21 2

1 1 2 2

1

1 1

o

i

RU Z j R Ck R RU Z Z

j RC j R C

2 21

1 2 1 2

o

i

U Z RkU Z Z R R

Page 13: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 13页

图给出了调整补偿电容时,方波脉冲信号通过衰减器的波形。图给出了调整补偿电容时,方波脉冲信号通过衰减器的波形。图(图( aa )为正常(最佳)补偿的波形,此时波形无失真。图()为正常(最佳)补偿的波形,此时波形无失真。图( bb ))为过补偿的波形,图(为过补偿的波形,图( cc )为欠补偿的波形。 )为欠补偿的波形。

(a) 最佳补偿 (b)过补偿 (c)欠补偿

Page 14: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 14页

33 、前级放大器、前级放大器 前级放大器采用测量放大器的电路结构形式,它由高输入阻抗、前级放大器采用测量放大器的电路结构形式,它由高输入阻抗、低噪声、宽带(低噪声、宽带( 145MHz145MHz )的场效应管双运放)的场效应管双运放 U1U2U1U2 (( AD806AD806

66 )和宽带运放)和宽带运放 U3U3 (( AD844AD844 )组成。 )组成。 U1U1 、、 U2U2 和和 U3U3 构成的程控增益测量放大器,当控制双构成的程控增益测量放大器,当控制双 44 选选 11 模模拟开关的通道选择码拟开关的通道选择码 S2S2 、、 S3S3 时,则改变了放大器的增益。时,则改变了放大器的增益。 S2S2 、、

S3S3 与增益与增益 A1A1 的对应关系如表 的对应关系如表 S2S3 00 01 10 11

A1 0.5 1.25 2.5 5

Page 15: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 15页

后级驱动放大器的设计 后级驱动放大器的设计 ADCADC 的驱动放大器的直流和交流性能直接影响的驱动放大器的直流和交流性能直接影响 ADCADC 。。交流性能包括:带宽、建立时间、谐波失真、总谐波失真、交流性能包括:带宽、建立时间、谐波失真、总谐波失真、噪声及总谐波加噪声失真(噪声及总谐波加噪声失真( THD+NTHD+N )。直流性能包括:)。直流性能包括:增益、失调、温漂及增益线性误差。选择驱动放大器的原增益、失调、温漂及增益线性误差。选择驱动放大器的原则是:放大器的性能指标应该优于则是:放大器的性能指标应该优于 ADCADC 的性能指标。 的性能指标。 (( 11 )) ADCADC 驱动放大器的带宽驱动放大器的带宽 要实现高速转换,输入级的频响非常重要,要实现高速转换,输入级的频响非常重要,通常要求输入缓冲驱动级的响应要高于通常要求输入缓冲驱动级的响应要高于 A/DA/D 转换的响应。转换的响应。 (( 22 )) ADCADC 驱动放大器的噪声。驱动放大器的噪声。 大部分采样大部分采样 ADCADC 的输入带宽都比其最大采的输入带宽都比其最大采样频率大很多。而样频率大很多。而 ADCADC 的驱动放大器的带宽又比的驱动放大器的带宽又比 ADCADC的输入带宽大,通常的输入带宽大,通常

Page 16: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 16页

(( 33 )) ADCADC 有差分输入与单输入。有的有差分输入与单输入。有的 ADCADC的输入级完全是差分输入电路,但是用单端或差分电路驱的输入级完全是差分输入电路,但是用单端或差分电路驱动都可以,例如动都可以,例如 AD9288AD9288 、、 AD9220/21/23AD9220/21/23 、、 AD9050AD9050 。。为了取得更低的总谐波失真(为了取得更低的总谐波失真( THDTHD )和最佳的无杂散动)和最佳的无杂散动态范围(态范围( SFDRSFDR ),应该用差分放大器或差分变压器去驱),应该用差分放大器或差分变压器去驱动动 ADCADC 。。 (( 44 )根据信号是单极性还是双极性,以及)根据信号是单极性还是双极性,以及 A/A/

DD 转换器要求的输入电平范围,驱动放大器还要完成极性转换器要求的输入电平范围,驱动放大器还要完成极性变换和电平转换。例如变换和电平转换。例如 AD9288AD9288 需要约需要约 +1V+1V 的直流偏置的直流偏置电压,而且为单极性的电压,它要求有信号输入时电压,而且为单极性的电压,它要求有信号输入时 AD92AD928888 的输入电平范围为(的输入电平范围为( 1±0.51±0.5 )) VV ,即在,即在 +0.5V~+1.5V+0.5V~+1.5V之内,驱动放大器应完成所需要的极性变换和电平变换。之内,驱动放大器应完成所需要的极性变换和电平变换。

Page 17: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 17页

22 、驱动放大器的电路设计、驱动放大器的电路设计

+

_

+_ ½ AD9288

+

_

+

_

+_

+_

DAC7512

-128mV~+128mV

AD8054

510

510

510

510

510

510

2

5

6

7

3

4 7~U U

5U

6U

7U

9U

510

510

+5V

iu

510 510

510

2k

10k

51010k8U

INA A

INREF A

OUTREF

INREF B

________

INA A

0 7~D D

B

C

D

A

0~5V-5V~+5V

1.25V

4U

10k

OP07

OP07

输出数据被测信号

Page 18: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 18页

2. 2. 虚拟仪器的通用硬件平台虚拟仪器的通用硬件平台(( 11 )通用硬件平台的基本功能)通用硬件平台的基本功能

信号采集(模拟、数字输入);信号采集(模拟、数字输入); 信号产生(模拟、数字输出);信号产生(模拟、数字输出); 信号调理(信号幅度、频率、驱动、隔离等);信号调理(信号幅度、频率、驱动、隔离等); 定时与计数;定时与计数; 大容量数据存储。大容量数据存储。 实时信号处理。实时信号处理。 总线与通信。总线与通信。

Page 19: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 19页

6.46.4 高速采集及存储系统设计高速采集及存储系统设计 采集和存储系统方案设计采集和存储系统方案设计 以一片高速双以一片高速双 A/DA/D 转换器转换器 AD9288AD9288 为核心,为核心,在高密度可编程逻辑器件在高密度可编程逻辑器件 EPIC6Q240C6EPIC6Q240C6 的控制下构成的控制下构成双通道数据采集系统。上位机通过发送命令实现诸如采双通道数据采集系统。上位机通过发送命令实现诸如采样频率、量程设定和工作模式等设置命令给样频率、量程设定和工作模式等设置命令给 DAQDAQ 主板,主板,经调理后的信号从经调理后的信号从 ADCADC 的引脚输入,数据采集完成之的引脚输入,数据采集完成之后通过逻辑控制直接将双通道数据分别存储至后通过逻辑控制直接将双通道数据分别存储至 64K64K 大容大容量量 RAMRAM (( IS61LV6416IS61LV6416 )。然后由上位机将采集数据)。然后由上位机将采集数据读入。采集的时序控制由读入。采集的时序控制由 FPGAFPGA逻辑电路完成。逻辑电路完成。

Page 20: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 20页

系统结构图系统结构图

A/D

A/D

RAM

RAM

锁存

锁存

触发采集控制

RAM地址计数器

总线接口

时钟分频器

标准总线

写计数

外触发

通道 A

通道 B

采集时钟 (40MHz时钟)0fsf

FPGA

Page 21: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 21页

采集与存储的连线和时序图采集与存储的连线和时序图

采样时钟

AD输出数据D0~D7

计数器输出地址

存储器写信号

sf

____

( )WE

采样时钟 减输入sf

AENC

_____RD

加输入

____WE

____OB

0A

7A8A

15A15A

8A

7A

0A

………

………

………

………

____

INA A

7AD

6AD

5AD

4AD

3AD

2AD

1AD

0AD

7/I O

6/I O

5/I O

4/I O

3/I O

2/I O

1/I O

0/I O

½ AD

9288

IS61

LV64

16

地址计数器(FPGA)双向

(a)

(b)

INA A

sf地址计数时钟

0 15( ~ )A A

Page 22: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 22页

采集系统核心器件——采集系统核心器件—— AD9288AD9288 AD9288AD9288 是是 ADAD 公司提供的半闪存式双公司提供的半闪存式双 88 位高速模数转换器,位高速模数转换器,该器件使用该器件使用 +3V+3V 电源,最大采样频率为电源,最大采样频率为 100MSPS100MSPS ,输入模拟带宽,输入模拟带宽可达可达 475MHz475MHz以上,有内置基准电压源,在高速转换的同时能够保以上,有内置基准电压源,在高速转换的同时能够保持低功耗,在每个通道持低功耗,在每个通道 100MHz100MHz 的速率下,其功耗仅为的速率下,其功耗仅为 90mW90mW 。。

Page 23: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 23页

11、、 ADCADC设计的几点考虑设计的几点考虑 高速高速 ADAD 的特点:的特点: 100MHz100MHz以上的高速以上的高速 A/DA/D 器件,大多采用并行转换结器件,大多采用并行转换结构,采用以空间换时间的策略。构,采用以空间换时间的策略。 并行比较方式的另一个缺点是加重了输入级负载并行比较方式的另一个缺点是加重了输入级负载 并行比较还有功耗大的缺点,这也限制了它的位并行比较还有功耗大的缺点,这也限制了它的位数的增加。数的增加。 采用流水线结构都应有数字误差补偿技术以保证采用流水线结构都应有数字误差补偿技术以保证转换的正确性。为了减少比较器数量,并行比较的方式下转换的正确性。为了减少比较器数量,并行比较的方式下精度(分辨率)不可能很高,因为并行结构的比较器是按精度(分辨率)不可能很高,因为并行结构的比较器是按的方式增长,做到的方式增长,做到 1010 位后就很难再高了。近年来速度在位后就很难再高了。近年来速度在

100MHz100MHz以下的以下的 A/DA/D 转换器中流行一种流水线型串并结构。转换器中流行一种流水线型串并结构。流水结构带来的优点是,它能兼顾速度与分辨率,同时对流水结构带来的优点是,它能兼顾速度与分辨率,同时对降低功耗、减小输入级负载也都有好处。降低功耗、减小输入级负载也都有好处。

Page 24: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 24页

ADCADC设计的几点考虑:设计的几点考虑: 11 )选择)选择 A/DA/D芯片时,精度和速度的指标应当留有裕量 芯片时,精度和速度的指标应当留有裕量 高速高速 A/DA/D 器件的性能主要是指转换速度(或器件的性能主要是指转换速度(或取样速度)和分辨率 取样速度)和分辨率 按器件给出的速度指标全速运用也是不可取的。 按器件给出的速度指标全速运用也是不可取的。 22 )对)对 A/DA/D芯片的外围电路有严格要求 芯片的外围电路有严格要求 高速高速 A/DA/D 器件对时钟的要求比较严格。器件对时钟的要求比较严格。 对基准电压源的要求也比较严格。对基准电压源的要求也比较严格。 高速高速 A/DA/D 电路的输入信号幅度都较小,一般不电路的输入信号幅度都较小,一般不超过超过 4V4V (峰峰值)。(峰峰值)。 33 )接地与去耦)接地与去耦 高速高速 A/DA/D 器件通常都要求有良好的接地与去耦。器件通常都要求有良好的接地与去耦。同时器件内部有模拟电路和数字电路两大部分,它们的模同时器件内部有模拟电路和数字电路两大部分,它们的模拟电源、数字电源、模拟地、数字地都是分离的,这有利拟电源、数字电源、模拟地、数字地都是分离的,这有利于减少数字部分对模拟部分的干扰。于减少数字部分对模拟部分的干扰。

Page 25: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 25页

采集存储器的读写控制采集存储器的读写控制 存储电路用于保存存储电路用于保存 AD9288AD9288 的输出数据,并通过总线接口的输出数据,并通过总线接口向计算机传输数据。这里选用静态存储器向计算机传输数据。这里选用静态存储器 IS61LV6416-10IS61LV6416-10作为大容量存储单元,和先进先出存储器作为大容量存储单元,和先进先出存储器 FIFOFIFO 相比,读相比,读写控制电路相对复杂一些,但是解决了大容量存储和价格写控制电路相对复杂一些,但是解决了大容量存储和价格昂贵等问题。昂贵等问题。

Page 26: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 26页

6.5 6.5 时序控制逻辑设计时序控制逻辑设计 关于采集速率的设计 关于采集速率的设计 1.1.触发的基本概念触发的基本概念 一个运行着的数据采集系统,特别是高速一个运行着的数据采集系统,特别是高速采集系统,所提供的数据流是快速的、巨大的、无穷尽的,采集系统,所提供的数据流是快速的、巨大的、无穷尽的,而存储数据的存储器容量和显示数据的窗口大小总是有限而存储数据的存储器容量和显示数据的窗口大小总是有限的。因此,要全部一个不漏地一次存储或显示数据流中的的。因此,要全部一个不漏地一次存储或显示数据流中的数据是不可能的。我们获取到的数据只是在存储器中存储数据是不可能的。我们获取到的数据只是在存储器中存储下来的数据,它只采集数据流中的一小部分。为了有效地下来的数据,它只采集数据流中的一小部分。为了有效地对数据流进行分析研究,应当针对性地存储数据,才能提对数据流进行分析研究,应当针对性地存储数据,才能提高存储器的利用率。为此,可以该将数据流分成若干段落,高存储器的利用率。为此,可以该将数据流分成若干段落,并分段有选择地采集与存储数据。并分段有选择地采集与存储数据。

Page 27: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 27页

2. 2. 触发源的选择和触发脉冲的形成触发源的选择和触发脉冲的形成 11 )触发源 该数据采集系统提供了)触发源 该数据采集系统提供了 44 种触发源:种触发源:① ① 通道信号触发 触发信号取自通道模拟信号上的通道信号触发 触发信号取自通道模拟信号上的某个时刻点;某个时刻点;② ② 外部信号触发 外部外部信号触发 外部 TTLTTL 电平的数字信号或键盘电平的数字信号或键盘击键的手控信号;击键的手控信号;③ ③ 时钟信号触发 由采集时钟来连续不断地自动触时钟信号触发 由采集时钟来连续不断地自动触发;发;④ ④ 手动触发 由手控键盘或鼠标发出的触发信号。手动触发 由手控键盘或鼠标发出的触发信号。

Page 28: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 28页

22 )触发脉冲的形成)触发脉冲的形成+

微分-

输入信号

AB C D

脉冲形成比较器 极性变换

触发脉冲

控制端 触发极性选择触发电平选择-V +V (+) (-)

+5V(a)

HU

a bA

(比较器输入)

B

(比较器输出)

正极性(+)

负极性

(+) (-)

OV

C

D

C

D

HU

(-)

(-)

(b)

Page 29: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 29页

从上述触发电路的工作原理可知,最后取出从上述触发电路的工作原理可知,最后取出微分的窄脉冲作为数据采集的触发脉冲,当触发电平微分的窄脉冲作为数据采集的触发脉冲,当触发电平UHUH 在正、负范围内调节,再配合触发极性的”在正、负范围内调节,再配合触发极性的” +” ”+” ”-”选择,就可在被观测波形的任一点产生触发。下-”选择,就可在被观测波形的任一点产生触发。下图给出了图给出了 44 种触发位置的示意图,水平虚线表示触发种触发位置的示意图,水平虚线表示触发电平,与波形实线的交点为触发点。电平,与波形实线的交点为触发点。

(a) 正极性、正电平 (b)负极性、负电平

(c)正极性、负电平(d)负极性、负电平

A B

DC

Page 30: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 30页

触发方式触发方式 数据采集的触发方式很多,但最基本的触发方式是 数据采集的触发方式很多,但最基本的触发方式是始端触发、终端触发和中间触发始端触发、终端触发和中间触发

(( aa )始端触发 ()始端触发 ( bb )终端触发 ()终端触发 ( cc )中间触发)中间触发

Page 31: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 31页

基于基于 FPGAFPGA 的时序逻辑控制电路 的时序逻辑控制电路 控制逻辑控制了采集(控制逻辑控制了采集( 88 位位 AD9288AD9288 )和)和存储存储 (64k RAM IS61LV6416)(64k RAM IS61LV6416) 工作的全过程。 工作的全过程。 11 、采集和存储阶段(、采集和存储阶段( RAMRAM 写入数据) 写入数据) 22 、读数和传输阶段、读数和传输阶段 (RAM(RAM读出数据读出数据 ) )

Page 32: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 32页

高速数据采集的控制逻辑图高速数据采集的控制逻辑图

Page 33: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 33页

6.6 DDS6.6 DDS 信号源的设计信号源的设计 DDSDDS 信号源概述 信号源概述 11 、频率合成的定义、频率合成的定义 合成信号发生器是利用频率合成技术构建的信合成信号发生器是利用频率合成技术构建的信号发生器。所谓频率合成,是对一个或多个基准频率进行号发生器。所谓频率合成,是对一个或多个基准频率进行频率的加(混频)、减(混频)、乘(倍频)、除(分频率的加(混频)、减(混频)、乘(倍频)、除(分频)四则运算,从而得到所需的输出频率。这一系列输出频)四则运算,从而得到所需的输出频率。这一系列输出频率的准确度和稳定度取决于基准频率。频率的准确度和稳定度取决于基准频率。 频率合成的方法很多,但基本分为两类:频率合成的方法很多,但基本分为两类: 一类是直接合成法,直接合成法包括模拟直接合成法 一类是直接合成法,直接合成法包括模拟直接合成法 和数字直接合成法。和数字直接合成法。 一类是间接合成法,间接合成法则通过锁相技术进行频一类是间接合成法,间接合成法则通过锁相技术进行频率的算术运算,最后得到所需的频率。率的算术运算,最后得到所需的频率。

Page 34: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 34页

22 、直接数字合成(、直接数字合成( DDSDDS )技术原理)技术原理 直接数字频率合成技术是一种新型的频率合成技术,直接数字频率合成技术是一种新型的频率合成技术,它根据奈奎斯特采样定理,从连续信号的相位出发,将信号在它根据奈奎斯特采样定理,从连续信号的相位出发,将信号在一个周期内取样、量化和编码,形成一个相位和幅度对应的函一个周期内取样、量化和编码,形成一个相位和幅度对应的函数表,存放在波形存储器中。数表,存放在波形存储器中。DDSDDS原理框图 原理框图

输出波形相位累加器

参考时钟

波形存储器 高速D/A 滤波器LPF

N MK

频率控制字

Page 35: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 35页

33 、设计方案原理框图 、设计方案原理框图 数字合成信号发生器由如下四大模块组成:数字合成信号发生器由如下四大模块组成: (( 11 )) DDSDDS 信号产生电路模块:包括相位累加器、波信号产生电路模块:包括相位累加器、波形数据存储器和高速形数据存储器和高速 DACDAC ;; (( 22 )) CPLDCPLD控制电路模块:包括命令接收与处理,产控制电路模块:包括命令接收与处理,产生各种控制信号;生各种控制信号; (( 33 )模拟通道输出信号调理模块:实现信号放大、幅)模拟通道输出信号调理模块:实现信号放大、幅度调节和直流偏置调节等功能。度调节和直流偏置调节等功能。 (( 44 )总线通信接口电路模块:实现与上位机的通信,)总线通信接口电路模块:实现与上位机的通信,传送波形、频率、幅度等参数和控制命令。传送波形、频率、幅度等参数和控制命令。

Page 36: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 36页

数字合成信号发生器系统原理框图 数字合成信号发生器系统原理框图

相位累加器

数据锁存器

控制逻辑

系统时钟

FPGA总线接口

幅度调节DAC

偏置调节DAC

FPGA

D/A时钟

波形存储器

波形合成DAC

输出调理单元

偏置调节

频率控制字K

总线

Page 37: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 37页

波形存储器波形存储器 11 )波形存储原理)波形存储原理 合成信号源的波形存储器是由合成信号源的波形存储器是由 ROMROM (或(或 RARA

MM )存储器组成,它把将要输出的波形数据表(如正弦)存储器组成,它把将要输出的波形数据表(如正弦函数表)预先存入函数表)预先存入 ROMROM (或(或 RAMRAM )单元中,然后在系)单元中,然后在系统标准时钟频率驱动下,按照一定顺序从统标准时钟频率驱动下,按照一定顺序从 ROMROM (或(或 RARAMM )单元中读出数据,再进行)单元中读出数据,再进行 D/AD/A 转换,就可以得到一转换,就可以得到一定频率和幅度的输出波形。定频率和幅度的输出波形。

22 )波形存储器的主要指标)波形存储器的主要指标 存储容量和读取速率是波形存储器两个主要技存储容量和读取速率是波形存储器两个主要技术指标,两者要求是相互矛盾的,制造速率快且容量大的术指标,两者要求是相互矛盾的,制造速率快且容量大的存储器,技术难度大并且成本十分昂贵。 存储器,技术难度大并且成本十分昂贵。

Page 38: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 38页

33 )数据存取控制模块的设计)数据存取控制模块的设计

SRAM相位累加器(地址发生)

波形数据

至D/A数据线

SRAM写信号

AD[11..0]

____

RD

读CLK

____

WE

Page 39: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 39页

高速高速 DACDAC 器件 器件 D/AD/A 转换器是整个转换器是整个 DDSDDS 信号发生器的核心器件。输出波信号发生器的核心器件。输出波形的质量取决于形的质量取决于 D/AD/A 的分辨率和转换率。当用的分辨率和转换率。当用 D/AD/A 转换转换器产生一个连续波形时,信号由若干个阶梯构成,器产生一个连续波形时,信号由若干个阶梯构成, D/AD/A的分辨率越高则信号波形越平滑,高次谐波分量越小。 的分辨率越高则信号波形越平滑,高次谐波分量越小。 典型高速 DAC芯片位数及速率型号 位数 速率

AD9764 14 100MHz

AD9762 12 125MHz

AD9760 12 100MHz

AD9708 8 100MHz

AD9701 8 250MHz

MAX555 12 300MHz

DAC600 12 256MHz

DAC650 12 500MHz

Page 40: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 40页

高速高速 D/AD/A 器件的特点 器件的特点 (( 11 )分段式电流源结构有效地降低了加权电流转换模式中)分段式电流源结构有效地降低了加权电流转换模式中最高权值电流与最低权值电流的比值,易于实现它们之间最高权值电流与最低权值电流的比值,易于实现它们之间的加权匹配。的加权匹配。(( 22 )在)在 D/AD/A 转换器电路中,电阻不完全匹配是误差的一个转换器电路中,电阻不完全匹配是误差的一个主要来源。主要来源。(( 33 )为满足高速)为满足高速 D/AD/A 器件的转换速度要求,数字部分大都器件的转换速度要求,数字部分大都采用采用 ECLECL 逻辑,特别是转换速度大于逻辑,特别是转换速度大于 100MHz100MHz 的器件。的器件。(( 44 )对于高速的)对于高速的 D/AD/A 电路,为保证其输出频率响应,输出电路,为保证其输出频率响应,输出电流都比较大。电流都比较大。(( 55 )高速)高速 D/AD/A 器件中不少是电流输出型器件,采取互补差器件中不少是电流输出型器件,采取互补差动输出方式,给外接运放以较大的方便。动输出方式,给外接运放以较大的方便。

Page 41: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 41页

高速高速 D/AD/A 器件应用中考虑的问题 器件应用中考虑的问题 高速高速 D/AD/A 的一个问题是数—模间的“的一个问题是数—模间的“ GlitcGlitc

h”h” 干扰。该问题是指输入数据做最大变化,例如从干扰。该问题是指输入数据做最大变化,例如从 100…100…000000变化为变化为 011…111011…111 时,数字信号在模拟输出端感应产时,数字信号在模拟输出端感应产生干扰脉冲。该脉冲的持续时间较短,但有一定幅度。它生干扰脉冲。该脉冲的持续时间较短,但有一定幅度。它的影响通常用能量来描述。的影响通常用能量来描述。

高速高速 D/AD/A 转换器的选用 转换器的选用 综合任意波形发生器的各项技术指标及成本综合任意波形发生器的各项技术指标及成本要求,本设计实例中采用了要求,本设计实例中采用了 AD9762 AD9762

Page 42: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 42页

参考时钟产生电路参考时钟产生电路 参考时钟的频率稳定度和准确度直接决定了合成信号源的频率稳定参考时钟的频率稳定度和准确度直接决定了合成信号源的频率稳定度和准确度,时钟信号应当由一个频率稳定度和准确度很好的晶体振荡器来提供度和准确度,时钟信号应当由一个频率稳定度和准确度很好的晶体振荡器来提供 从两个方面可改变合成信号源的输出频率:一是改变频率控制字从两个方面可改变合成信号源的输出频率:一是改变频率控制字 KK ,,二是改变时钟频率。 二是改变时钟频率。

Page 43: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 43页

DDSDDS 信号发生模块的设计 信号发生模块的设计 (( 11 )参考时钟频率的选取)参考时钟频率的选取(( 22 )相位累加器长度)相位累加器长度 NN(( 33 )波形存储容量)波形存储容量(( 44 )高速)高速 D/AD/A 的量化位数的量化位数

频率寄存器

相位累加器

累加寄存器

加法器 波形器 DAC

相位寄存器

12

32

1232

12

Page 44: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 44页

6.7 6.7 模拟输出信号的调理技术模拟输出信号的调理技术 模拟输出通道的组成框图模拟输出通道的组成框图 通用测试平台包含有两路独立的通用测试平台包含有两路独立的 DDSDDS合成合成信号源,每个独立的信号源能够分别产生不同频率、不同信号源,每个独立的信号源能够分别产生不同频率、不同幅度和不同波形的信号输出 幅度和不同波形的信号输出 DDSDDS 信号源相位累加器、信号源相位累加器、 RAMRAM 波形存储器、波形存储器、 DACDAC数模转换器、低通滤波器以及输出信号幅度调理电路(数模转换器、低通滤波器以及输出信号幅度调理电路( DD

AC0832AC0832 、衰减器等)组成。、衰减器等)组成。 DDSDDS 信号源的工作原理是:相位累加器在时钟信号信号源的工作原理是:相位累加器在时钟信号驱动下对频率控制码进行累加,输出累加值即相位序列码驱动下对频率控制码进行累加,输出累加值即相位序列码值作为值作为 RAMRAM 的地址,在的地址,在 RAMRAM 里面取出预先存放的一个里面取出预先存放的一个周期输出波形的幅值编码,然后经周期输出波形的幅值编码,然后经 D/AD/A 转换得到模拟的转换得到模拟的输出电压,再经低通滤波器滤波、信号幅度调理后得到输输出电压,再经低通滤波器滤波、信号幅度调理后得到输出的信号波形。出的信号波形。

Page 45: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 45页

数字合成(数字合成( DDSDDS )信号源组成框图)信号源组成框图

∑ RAM DAC LPF

参考电压

K2

DAC0832

时钟

K2

频率码

波形存储器

波形合成器

低通滤波器

中间放大器

中间衰减器

输出放大器

输出衰减器

A1 A2

32位fN

幅度码

AN

输出幅度调节器

4X 4X

幅度范围选择码

输出信号

/ 2NARV

refV

(1,1/2,1/4,1/8)

相位累加器

A

B

C

Page 46: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 46页

输出频率 输出频率 调节输出频率的原理和方法如下 ,根据式调节输出频率的原理和方法如下 ,根据式改变 改变 ffCLKCLK或者改变或者改变 KK值,均可改变 输出频率 。值,均可改变 输出频率 。 采用了粗调和细调两种方法 采用了粗调和细调两种方法 粗调,是采用改变时钟频率的办法来完成。粗调,是采用改变时钟频率的办法来完成。 输出频率的细调是在时钟频率一定的情况下通过改变输出频率的细调是在时钟频率一定的情况下通过改变 KK值来实现的。 值来实现的。

OUTf2OUT CLKN

Kf f 2OUT CLKN

Kf f

2OUT CLKN

Kf f

Page 47: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 47页

输出幅度调节 输出幅度调节 1.1.输出幅度调节原理 输出幅度调节原理 UrUr 为为 DAC9762DAC9762 的参考电压(也即满度输出电压的参考电压(也即满度输出电压 1V1V ),),

N=0N=0~~ 255255 为为 88 位位 DAC0832DAC0832 的输入数码,放大器的输入数码,放大器 A1A1 和和A2A2 的增益均为的增益均为 44 ,衰减器,衰减器 K1K1 的衰减量为的衰减量为 11 、、 1/21/2 、、 1/41/4 、、1/81/8 共共 44档,衰减器档,衰减器 K2K2 的衰减量为的衰减量为 11 、、 1/161/16共共 22档。信档。信号源输出幅度号源输出幅度

0 1 1 2 2

1 2

2

2

2

rn

Sn

mn

m

UU N AK A K

N K K U

UN

N U

Page 48: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 48页

22.输出幅度调节方法 .输出幅度调节方法 11 )幅度粗调)幅度粗调 粗调是由改变两个衰减器的衰减量粗调是由改变两个衰减器的衰减量 K1K1 和和 K2K2完成完成的,输出信号幅度范围的,输出信号幅度范围 00~~ 16V16V ,划分为,划分为 88 个档位(粗调),个档位(粗调),按按 11 、、 22 、、 44 、、 88倍率步进式改变输出量程。各个量程的步进倍率步进式改变输出量程。各个量程的步进衰减量衰减量 K1K1 和和 K2K2值,如表所示。值,如表所示。 22 )幅度细调)幅度细调 细调是由一个幅度调节细调是由一个幅度调节 DACDAC (( DAC0832DAC0832 )来完)来完成的,它改变波形合成成的,它改变波形合成 DACDAC (( AD9762AD9762 )的参考电压)的参考电压 UUrr 。。

88 位位 DAC0832DAC0832完成每个量程档内的幅度调节(细调),为完成每个量程档内的幅度调节(细调),为 2828=256=256级,调节间隔(幅度分辨力)为 级,调节间隔(幅度分辨力)为 ,, 如表所如表所示。示。 256

mm

UU

Page 49: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 49页

信号源的输出幅度范围(信号源的输出幅度范围( US=A1A2UrUS=A1A2Ur ,, Ur=1VUr=1V ,, A1=4A1=4 ,, A2=4 A2=4 ))

量程 Um=K1

K2Us

量程选择 间隔 ( mV )

输出范围

( N=100~256 )K1 K2

16 1 1 62.5 6.25 ~ 16

8 1/2 1 31.25 3.1 ~ 8

4 1/4 1 15.63 1.5 ~ 4

2 1/8 1 7.81 0.78 ~ 2

1 1 1/16 3.90 0.39 ~ 1

0.5 1/2 1/16 1.95 0.19 ~ 0.5

0.25 1/4 1/16 0.98 0.1 ~ 0.25

0.125 1/8 1/16 0.49 0.05 ~ 0.125

256m

mUU 0 mU N U

Page 50: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 50页

直流偏置的调节直流偏置的调节

+

_

+

_

+

_

交流输入信号

-1.25V基准电压源

1KO

1KO

R1

R3

R2

R4

OUTV

refV

VDD

VFB/SYNCSCLK

GNDinD

5

7

6

8

43

2

1

DAC7512

4KO

1KO

refU

AC

R5 R6 R8

R71KO

1KO

1KO U2COP467

+5V

U2B OUTBU

0~5V

OUTAU

U2A

OUTCU

U2C

inU

DCU

1KO

Page 51: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 51页

6.8 6.8 虚拟仪器的软件设计虚拟仪器的软件设计 虚拟仪器的软件设计与实现步骤 虚拟仪器的软件设计与实现步骤 虚拟仪器的设计方法与实现步骤和一般软虚拟仪器的设计方法与实现步骤和一般软件的设计方法及实现步骤基本相同,只不过虚拟仪器是由件的设计方法及实现步骤基本相同,只不过虚拟仪器是由硬件和软件共同组成的,在设计时要考虑与硬件部分接口硬件和软件共同组成的,在设计时要考虑与硬件部分接口的软件设计。 的软件设计。 11 、分析问题和确定任务、分析问题和确定任务 22 、通过系统总体设计,确定仪器的接口形式、通过系统总体设计,确定仪器的接口形式 33 、确定所选择的接口卡是否具有设备驱动程序、确定所选择的接口卡是否具有设备驱动程序 44 、确定仪器应用程序的编程语言、确定仪器应用程序的编程语言

Page 52: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 52页

55 、设计仪器的面板,编写用户的应用程序、设计仪器的面板,编写用户的应用程序 (( 11 )在前面板设计窗口放置控件)在前面板设计窗口放置控件 (( 22 )在流程图编辑窗口,放置节点、图框)在流程图编辑窗口,放置节点、图框 (( 33 )数据流编程)数据流编程 66 、运行检验应用程序、运行检验应用程序 (( 11 )仿真检验)仿真检验 (( 22 )实测检验)实测检验

Page 53: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 53页

77 、程序调试技术、程序调试技术 ① ① 找出语法错误 找出语法错误 ② ② 慢速跟踪程序的运行 慢速跟踪程序的运行 ③ ③ 断点与单步执行 断点与单步执行 ④ ④ 设置探针设置探针 88 、数据观察、数据观察 99 、命名存盘、命名存盘

Page 54: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 54页

基于基于 LabVIEWLabVIEW 的虚拟仪器设计 的虚拟仪器设计 使用使用 LabVIEWLabVIEW 开发平台创建虚拟仪器就是开发平台创建虚拟仪器就是在在 LabVIEWLabVIEW 开发平台上编制图形化程序,该图形化程序开发平台上编制图形化程序,该图形化程序是虚拟仪器程序,简称是虚拟仪器程序,简称 VIVI 。 。 11 、虚拟仪器程序的组成、虚拟仪器程序的组成 虚拟仪器程序由两部分组成:前面板程序与流程图程虚拟仪器程序由两部分组成:前面板程序与流程图程序(又称框图程序)。序(又称框图程序)。 前面板程序分为:前面板程序分为: (( 11 )输入控制类()输入控制类( ControlsControls )) (( 22 )输出显示类()输出显示类( IndicatorsIndicators ) ) 流程图程序流程图程序 在流程图编辑窗口进行图形化流程图程序编程,它由在流程图编辑窗口进行图形化流程图程序编程,它由端口、节点、图框和连线构成 端口、节点、图框和连线构成

Page 55: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 55页

22 、、 LabVIEWLabVIEW编程特点编程特点 在在 LabVIEWLabVIEW 开发平台创建虚拟仪器就是在开发平台创建虚拟仪器就是在“前面板开发窗口”与“流程图编辑窗口”进行“虚拟前“前面板开发窗口”与“流程图编辑窗口”进行“虚拟前面板”及其相对应的“流程图”程序设计。编辑好的流程面板”及其相对应的“流程图”程序设计。编辑好的流程图程序是用图形化表示的。图程序是用图形化表示的。 使用使用 LabVIEWLabVIEW 开发平台编辑程序的特别之开发平台编辑程序的特别之处就是将组成传统程序所需用的常量、数组、数据流控制处就是将组成传统程序所需用的常量、数组、数据流控制命令、各种函数、各种运算等语句代码都用图标表示。因命令、各种函数、各种运算等语句代码都用图标表示。因而,不熟悉用源代码进行语言编程的工程师、科学家,一而,不熟悉用源代码进行语言编程的工程师、科学家,一样可以随心所欲地编制流程图程序。我们可以把用样可以随心所欲地编制流程图程序。我们可以把用 LabVILabVI

EWEW 图形编程语言编写的流程图程序理解为就是用源代码图形编程语言编写的流程图程序理解为就是用源代码编写的传统程序,它们的区别只是表达方式不同而已。编写的传统程序,它们的区别只是表达方式不同而已。

Page 56: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 56页

6.8 6.8 动态链接库动态链接库 (DLL)(DLL) 创建与调用创建与调用 LabviewLabview 是一种功能强大的图形化编程语言,但是是一种功能强大的图形化编程语言,但是 CC语言在硬件编程方面的灵活性和能力更具优势,我们通常语言在硬件编程方面的灵活性和能力更具优势,我们通常采用采用 CC 语言把直接和硬件接口的函数及数据信息封装在语言把直接和硬件接口的函数及数据信息封装在一个动态链接库(一个动态链接库( Dynamic-Link LibraryDynamic-Link Library ,, DLLDLL )中,)中,

LabviewLabview 应用程序通过应用程序通过 DLLDLL 能够方便的调用用户编写的能够方便的调用用户编写的硬件接口函数以及硬件接口函数以及WindowsWindows 自带的大量自带的大量 APIAPI 函数。 函数。 除了动态链接库接口方式,除了动态链接库接口方式, LabviewLabview 提供的提供的强大外部程序接口能力还能与众多其他编程语言接口,可强大外部程序接口能力还能与众多其他编程语言接口,可以充分利用其他语言的优势,这些接口包括以充分利用其他语言的优势,这些接口包括 CC 语言接口语言接口(( CINCIN )、)、 ActiveXActiveX 、、 .net.net 、、 DDEDDE 、、 MATLABMATLAB 等。等。

Page 57: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 57页

动态链接库(动态链接库( DLLDLL )简介 )简介 动态链接库(动态链接库( DLLDLL )是一个可以多方共享的)是一个可以多方共享的程序模块,内部对共享的函数和数据进行了封装。动态链程序模块,内部对共享的函数和数据进行了封装。动态链接库文件的扩展名通常是接库文件的扩展名通常是 .dll.dll ,也可能是,也可能是 .drv.drv 、、 .sys.sys 等。等。

DLLDLL 和可执行文件(和可执行文件( EXEEXE )非常类似,主要的区别是)非常类似,主要的区别是 DDLLLL 虽然包含了可执行代码却不能单独执行,必须由虽然包含了可执行代码却不能单独执行,必须由 WinWindowsdows 应用程序直接或间接调用。应用程序直接或间接调用。

创建动态链接库的时候通常会产生两个文件,创建动态链接库的时候通常会产生两个文件,一个是导出库(一个是导出库( .LIB.LIB )文件,一个是)文件,一个是 DLLDLL 文件,导出库文件,导出库文件(文件( .LIB.LIB )中包含)中包含 DLLDLL 导出函数的名称和位置,导出函数的名称和位置, DLDLLL文件中包含实际的函数和数据。应用程序使用导出库文文件中包含实际的函数和数据。应用程序使用导出库文件(件( .LIB.LIB )链接到所需要用的)链接到所需要用的 DLLDLL 文件,库中的函数和文件,库中的函数和数据并不复制到可执行文件中。 数据并不复制到可执行文件中。

Page 58: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 58页

VCVC 中创建中创建 DLLDLL 的方法的方法 VCVC支持三种支持三种 DLLDLL ,即,即 NonNon--MFCDLLMFCDLL (非(非 MFCMFC 动动态库)、态库)、 MFCRegularDLLMFCRegularDLL (( MFCMFC规则规则 DLLDLL )、)、 MFCExMFCEx

tensionDLLtensionDLL (( MFCMFC扩展扩展 DLLDLL )。非)。非 MFC(MFC(微软基类库微软基类库 ))动态库不采用动态库不采用 MFCMFC类库结构,其导出函数为标准的类库结构,其导出函数为标准的 CC 接口,接口,能被非能被非 MFCMFC 或或 MFCMFC编写的应用程序所调用;编写的应用程序所调用; MFCMFC规则规则 DDLLLL 包含一个继承自包含一个继承自 CWinAPPCWinAPP 的类,但无消息循环;的类,但无消息循环; MFCMFC扩展扩展 DLLDLL 采用采用 MFCMFC 的动态链接版本创建,它只能被用的动态链接版本创建,它只能被用 MFMFCC类库所编写的应用程序所调用。 类库所编写的应用程序所调用。

在在 Visual C++ 6.0Visual C++ 6.0 开发环境下,打开开发环境下,打开 File\New\File\New\ProjectProject选项,可以选择选项,可以选择Win32 Dynamic-Link LibraryWin32 Dynamic-Link Library 或或 MMFC AppWizard[DLL]FC AppWizard[DLL] 以不同的方式来创建以不同的方式来创建 Non-MFC DLLNon-MFC DLL 、、Regular DLLRegular DLL 或或 Extension DLLExtension DLL 等不同种类的动态链接库。等不同种类的动态链接库。

Page 59: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 59页

11..Win32 Dynamic-Link LibraryWin32 Dynamic-Link Library 方式创建方式创建 Non-MFC DNon-MFC DLLLL 动态链接库 动态链接库

需要对每个进程或线程作初始化和清除操作需要对每个进程或线程作初始化和清除操作时,需要在相应的时,需要在相应的 DLLDLL 工程的工程的 .C.C 源文件中对源文件中对 DllMain ()DllMain ()函数按照下面的格式处理。 函数按照下面的格式处理。 11 )使用导出函数关键字)使用导出函数关键字 _declspec(dllexport)_declspec(dllexport) 的方法的方法 22 )使用)使用 .def.def 文件的方法文件的方法 22.. MFC AppWizard[DLL]MFC AppWizard[DLL] 方式创建常规方式创建常规 // 扩展扩展 DLLDLL

Page 60: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 60页

Labwindows CVILabwindows CVI 中创建中创建 DLLDLL 的方法的方法 在在 Labwindows CVILabwindows CVI 中创建中创建 DLLDLL 必须要创建必须要创建一个独立的工程,在工程文件窗口选择一个独立的工程,在工程文件窗口选择 Buid→Target TyBuid→Target Ty

pe→Dynamic Link Library,pe→Dynamic Link Library, 然后在工程窗口选择然后在工程窗口选择 Buid→Buid→Configuration→Release,Configuration→Release, 完成之后,完成之后, Create Release DynaCreate Release Dynamic Link Librarymic Link Library 命令就会出现在工程窗口的命令就会出现在工程窗口的 BuildBuild 菜单菜单中,使用这个命令创建用于发布的中,使用这个命令创建用于发布的 DLLDLL ,可以在工程窗,可以在工程窗口中选择口中选择 Build→Target SettingsBuild→Target Settings 设置设置 DLLDLL名称和其它选名称和其它选项。使用项。使用 Create Release ExecutableCreate Release Executable 命令创建的命令创建的 DLLDLL 不不包含任何调试信息,因此不能被调试。为了创建一个可以包含任何调试信息,因此不能被调试。为了创建一个可以调试的调试的 DLL,DLL, 在工程文件窗口选择在工程文件窗口选择 Build→ConfigurationBuild→Configuration→Debug→Debug ,并在工程窗口使用,并在工程窗口使用 Build→Create Debuggable Build→Create Debuggable Dynamic Link LibraryDynamic Link Library 命令。 命令。

Page 61: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 61页

DLLMainDLLMain函数模板 函数模板 在源文件窗口编辑菜单下使用在源文件窗口编辑菜单下使用 Insert ConstructsInsert Constructs命令,可以生成命令,可以生成 DDLLMainLLMain函数的模板: 函数的模板:

int __ stdcall DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPint __ stdcall DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvEeserved)VOID lpvEeserved)

{{Switch(fdwReason)Switch(fdwReason) {{ case DLL_PROCESS_ATTACH:case DLL_PROCESS_ATTACH: if(InitCVIRTE)(hinstDLL,0,0)==0)if(InitCVIRTE)(hinstDLL,0,0)==0) return 0;return 0; break;break; case DLL_PROCESS_DETACH:case DLL_PROCESS_DETACH:

CloseCVIRTE(); CloseCVIRTE(); break;break;}} return 1;return 1;}}

Page 62: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 62页

导出导出 DLLDLL函数和变量函数和变量 DLLDLL只能导出声明为全局的函数和变量,不能导出只能导出声明为全局的函数和变量,不能导出声明为静态的函数和变量。如果在声明为静态的函数和变量。如果在 LabWindows/CVILabWindows/CVI 下创下创建建 DLLDLL ,有两种方式导出函数和变量:头文件法和导出,有两种方式导出函数和变量:头文件法和导出关键字法。关键字法。 头文件法必须包含对导出函数的声明。头文件法必须包含对导出函数的声明。 导出关键字法可以把每个要导出的函数和变量标记一个关导出关键字法可以把每个要导出的函数和变量标记一个关键字,目前并不是所有编译器都支持相同的导出关键字名键字,目前并不是所有编译器都支持相同的导出关键字名称。称。

Page 63: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 63页

虚拟仪器通用测试平台(虚拟仪器通用测试平台( SJ8002BSJ8002B )动态链接库的创建)动态链接库的创建 我们将用我们将用 Labwindows CVI 7.0 Labwindows CVI 7.0 环境创建一个名环境创建一个名为为 sj8002b.dllsj8002b.dll 的动态链接库,此动态库包含访问虚拟仪器通的动态链接库,此动态库包含访问虚拟仪器通用测试平台(用测试平台( SJ8002BSJ8002B )硬件的全部功能函数,最后将给出)硬件的全部功能函数,最后将给出在在 Labview 7.0 Labview 7.0 环境中调用该动态库中函数的详细方法。环境中调用该动态库中函数的详细方法。 首先新建一个名为首先新建一个名为 sj8002b.prjsj8002b.prj 的空工程文件,接的空工程文件,接下来新建一个名为下来新建一个名为 sj8002b.csj8002b.c 的空的空 CC文件和一个名为文件和一个名为 sj8002b.sj8002b.

hh 的空的空 HH文件,把文件,把 22 个空文件加进个空文件加进 sj8002b.prjsj8002b.prj 工程文件中。工程文件中。

Page 64: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 64页

文件编辑完成之后,保存文件编辑完成之后,保存 SJ8002BSJ8002B 工程和所工程和所有源文件,在编译之前,要在工程文件窗口选择有源文件,在编译之前,要在工程文件窗口选择 Buid→TBuid→Target Type→Dynamic Link Libraryarget Type→Dynamic Link Library ,如果要更改生成的,如果要更改生成的动态链接库的名字等信息,可以通过动态链接库的名字等信息,可以通过 Build→Target SettiBuild→Target Settingsngs设置,一般采用默认值即可。现在点击设置,一般采用默认值即可。现在点击 Build→Creat Build→Creat Debuggable Dynamic Link LibaraDebuggable Dynamic Link Libara ,可以看到如图,可以看到如图 4-94-9所所示的信息,表示动态链接库和函数导出库创建成功。 示的信息,表示动态链接库和函数导出库创建成功。

Page 65: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 65页

LabviewLabview调用调用 DLLDLL 方法(方法( CLFCLF 节点) 节点) (( 11 )在)在 LabviewLabview 程序的后面板程序的后面板 (Block Diagram)(Block Diagram) 中点击中点击右键:右键: All functions>Advanced>All functions>Advanced> ,选取,选取 CLFCLF节点(节点( Call Call

Library Founction Node) Library Founction Node)

Page 66: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 66页

(( 22 )在后面板)在后面板 (Block Diagram)(Block Diagram) 中放置好中放置好 CLFCLF 节点后双节点后双击节点图标,出现如图所示的设置参数对话框,此时可设击节点图标,出现如图所示的设置参数对话框,此时可设置置 sj8002b.dllsj8002b.dll 的路径,调用的函数名字,函数参数名字、的路径,调用的函数名字,函数参数名字、类型等信息。 类型等信息。

Page 67: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 67页

(( 33 )在)在 Library Name Or PathLibrary Name Or Path 中设置中设置 sj8002b.dllsj8002b.dll 的路的路径,我们这里的路径是径,我们这里的路径是 D:\my-work\SJ-D:\my-work\SJ- 系列系列 \SJ-8002B h\SJ-8002B hb\b\ 软件软件 \dll use\sj8002b.dll\dll use\sj8002b.dll ,如果用户要调用其他,如果用户要调用其他 DLLDLL ,,可用可用 BrowseBrowse 按钮查找其位置并确定。在按钮查找其位置并确定。在 Function NameFunction Name中用下拉列表选择好要调用的函数名字,这里选择中用下拉列表选择好要调用的函数名字,这里选择 profesprofession_sourcesion_source ;; Calling ConventionsCalling Conventions 指的是调用动态库函指的是调用动态库函数的环境,默认的是数的环境,默认的是 CC ,我们可以修改成,我们可以修改成 stdcallstdcall ,表明,表明我们是在标准我们是在标准WINDOWSWINDOWS 环境中调用此函数。 环境中调用此函数。

Page 68: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 68页

(( 44 )接下来要设置函数的参数,默认情况下有)接下来要设置函数的参数,默认情况下有一个返回类型参数,因此需要用一个返回类型参数,因此需要用 Add aparameter Add aparameter AfterAfter按钮添加参数,对应于按钮添加参数,对应于 profession_sourceprofession_source函数的参数表函数的参数表

设置完成后的设置完成后的 CLFCLF节点如图所示节点如图所示

Page 69: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 69页

6.86.8数字存储示波器的的软件设计数字存储示波器的的软件设计 设计的需求分析设计的需求分析 11 、指标要求分析、指标要求分析(( 11 )双通道,)双通道, 40MHz40MHz 采集速率;单通道采集速率;单通道 80MHz80MHz 采集速率;采集速率;(( 22 )双通道,)双通道, 64k64k 板载存储器;单通道板载存储器;单通道 128k128k 板载存储器;板载存储器;(( 33 )) 88 位垂直数据分辨率;位垂直数据分辨率;(( 44 )输入通道实时带宽)输入通道实时带宽 10MHz10MHz ;;(( 55 )具有外触发、内触发、手控触发和自动触发等模式。)具有外触发、内触发、手控触发和自动触发等模式。

Page 70: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 70页

22 、功能要求分析、功能要求分析(( 11 )输入通道选择:)输入通道选择: A,B,A+BA,B,A+B (双踪),(双踪), A*BA*B (组合)(组合)(( 22 )输入通道耦合方式(交流)输入通道耦合方式(交流 // 直流),选择偏转因数(伏直流),选择偏转因数(伏

//格),垂直位移调节格),垂直位移调节(( 33 )时间因数(秒)时间因数(秒 // 格)选择,水平位移调节格)选择,水平位移调节(( 44 )触发源(内、外、手动、自动)选择,触发极性选择)触发源(内、外、手动、自动)选择,触发极性选择(( 55 )显示:信号波形显示、)显示:信号波形显示、 XX-- YY显示、幅度(峰—峰显示、幅度(峰—峰 )值、频率值显示 )值、频率值显示

Page 71: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 71页

软面板设计 软面板设计 11 、软面板外观设计、软面板外观设计 软面板是实现用户与仪器进行通信,操作示波软面板是实现用户与仪器进行通信,操作示波器、设置输入参数、显示输出结果的图形化用户接口。软器、设置输入参数、显示输出结果的图形化用户接口。软面板提供了示波器的主要测试功能,用户通过软面板实现面板提供了示波器的主要测试功能,用户通过软面板实现人机互动,软面板应当是界面友好,操作简便。软面板设人机互动,软面板应当是界面友好,操作简便。软面板设计的总体思路是,根据仪器功能确定软面板上的整体布局,计的总体思路是,根据仪器功能确定软面板上的整体布局,确定所需各种开关、旋钮、控制器和显示器的种类和数量,确定所需各种开关、旋钮、控制器和显示器的种类和数量,完成面板的总体设计。 完成面板的总体设计。

Page 72: 第 6 章 虚拟仪器概述

《虚拟仪器技术》

第 72页

2.2. 前面板控件的设计前面板控件的设计 软面板由大量的虚拟控件组成,虚拟仪器软面板由大量的虚拟控件组成,虚拟仪器开发软件平台开发软件平台 LabVIEWLabVIEW 中有一个软件元件库。元件库中中有一个软件元件库。元件库中包括各种开关、旋钮、表头、拉杆、指示灯等虚拟元件。 包括各种开关、旋钮、表头、拉杆、指示灯等虚拟元件。