USB4711A使用手册.docx

上传人:b****5 文档编号:3960082 上传时间:2022-11-26 格式:DOCX 页数:32 大小:646.85KB
下载 相关 举报
USB4711A使用手册.docx_第1页
第1页 / 共32页
USB4711A使用手册.docx_第2页
第2页 / 共32页
USB4711A使用手册.docx_第3页
第3页 / 共32页
USB4711A使用手册.docx_第4页
第4页 / 共32页
USB4711A使用手册.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

USB4711A使用手册.docx

《USB4711A使用手册.docx》由会员分享,可在线阅读,更多相关《USB4711A使用手册.docx(32页珍藏版)》请在冰豆网上搜索。

USB4711A使用手册.docx

USB4711A使用手册

 

1.介绍

1.1概述

USB-4711A系列包括即插即用数据采集模块,因此无需再打开您的计算机机箱来安装板卡。

仅需插上模块,便可以采集到数据,简单高效。

USB-4711A是给任何带有USB端口的计算机增加测量和控制能力的最佳途径。

它通过USB端口获得所有所需的电源,因此无需连接外部的电源。

USB-4711A在一块卡上包含了所有的数据采集功能,如:

16路AI,2路AO,8路DI,8路DO,1路32位计数器,其中A/D数据采集为12位。

USB-4711A板卡如图1.1所示。

图1.1USB-4711A板卡

1.2I/O接口

USB-4711A配有插入式螺丝端子接口,因此连接模块时无需另外准备端子板或电缆。

1.3针脚定义

图1.2为USB-4711A上五个10针I/O接口的针脚定义。

两个接地参考AGND和DGND的用途不同,因此应分开使用。

不要将两者进行连接。

表1.1为I/O接口信号的描述。

图1.2I/O接口针脚定义

表1.1I/O接口信号描述

信号名

参考

方向

描述

AI<0…15>

AGND

输入

模拟量输入通道0~15。

AO0/AO1

AGND

输出

模拟量输出通道0/1。

AGND

-

-

模拟量输入输出接地

DI<0…7>

DGND

输入

数字量输入通道。

DO<0…7>

DGND

输出

数字量输出通道。

DGND

-

-

数字量接地。

GATE

DGND

输入

A/D外部触发门。

将GATE连接至+5V将禁用外部触发信号的输入。

EXT_TRG

DGND

输入

A/D外部触发。

此针脚为A/D转换的外部触发信号。

低-高沿将触发A/D转换。

EVT_IN

DGND

输入

外部事件输入通道。

P_OUT

DGND

输出

脉冲输出通道

1.4模拟量输入连接

USB-4711A支持16路单端/8路差分输入。

每个输入通道都可通过软件方式进行选择。

1.4.1单端通道连接

单端输入配置只为每个通道提供1根信号线,且被测电压(Vm)是以公共地为参考的线缆电压。

没有接地端的信号源称为“浮动信号源”。

将单端通道连接至浮动信号源尤为简单。

在这种模式下,USB-4711A为外部浮动信号源提供一个参考地。

图1.3为浮动信号源与USB-4711A的1个输入通道的单端通道连接。

图1.3单端输入通道连接

1.4.2差分输入连接

差分输入为每个通道提供两根信号线,两根信号线之间的电压差是可测量的。

在USB-4711A中,当所有通道都配置为差分输入,最多可有8个模拟通道。

如果信号源的一侧连接到地面,信号源作为参考地。

因此,信号源的地与板卡地将形成不完全相同的电压。

地面之间的电压差异,形成了一个共模电压(Vcm)。

为了避免共模电压引起的接地回路噪声的影响,您可以连接到低输入信号地面。

注:

在差分输入模式,输入通道n应使用通道n+1。

(N=0,2,4...14)

图1.4为USB-4711A的1个输入通道的差分输入通道连接。

图1.4差分输入通道连接

1.5模拟量输出连接(电压)

USB-4711A提供了2个模拟量输出通道,即AO0和AO1。

图1.5为USB-4711A的模拟量输出通道连接。

图1.5模拟量输出通道连接

1.6触发源连接

1.6.1内部脉冲触发连接

USB-4711A提供了2个16-bit计数器,可以连接至1个10MHz时钟。

计数器0负责输入通道的事件计数。

计数器1是1个16-bit定时器,用于脉冲触发。

计数器1输出的上升沿信号(低—高)将触发USB-4711A的A/D转换。

1.6.2外部触发源连接

除脉冲触发以外,USB-4711A还为A/D转换提供了外部触发。

将GATE信号连接至+5VDC源时,外部触发功能即被禁用。

断开与+5VDC源的连接即可启用外部触发功能。

2.研华设备驱动应用

研华Windows设备驱动是动态链接的。

以下列出了开发应用时必需的文件:

3.函数参考

3.1USB系列函数支持列表

3.1.1Device函数组

DRV_DeviceOpen

DRV_DeviceClose

DRV_DeviceGetFeatures

DRV_DeviceGetProperty

DRV_DeviceSetProperty

3.1.2模拟量输入函数组

DRV_AIConfig

DRV_AIGetConfig

DRV_AIBinaryIn

DRV_AIScale

DRV_AIVoltageIn

DRV_AIVoltageInExp

DRV_MAIConfig

DRV_MAIVoltageIn

DRV_MAIVoltageInExp

DRV_MAIBinaryIn

3.1.3模拟量输出函数组

DRV_AOConfig

DRV_AOScale

DRV_AOBinaryOut

DRV_AOVoltageOut

3.1.4数字量输入/输出函数组

AdxDioGetCurrentDoPortsState

AdxDioReadDiPorts

AdxDioWriteDoPorts

DRV_DioReadBit

DRV_DioWriteBit

DRV_DioReadPortByte

DRV_DioWritePortByte

DRV_DioReadPortWord

DRV_DioWritePortWord

DRV_DioReadPortDword

DRV_DioWritePortDword

DRV_DioGetCurrentDOBit

DRV_DioGetCurrentDOByte

DRV_DioGetCurrentDOWord

3.1.5Counter函数组

DRV_CounterEventStart

DRV_CounterEventRead

DRV_CounterReset

4.使用函数

函数描述

函数部分包括模拟量输入函数,模拟量输出函数,数字量输入函数,数字量输出函数等等。

研华的每个函数都将以如下形式出现:

status=FUNCTION_Name(parameter1,parameter2,...,parametern)(n>0),

每个函数都会返回一个状态,表明函数执行成功还是失败(保存在status变量中)。

Status(Value)

结果

UNSUCCESS(>0)

遇到错误,函数执行失败

SUCCESS(=0)

函数执行成功

Status是一个4字节的整型变量,在DRIVER.H里被定义。

4.1设备函数组

进行所有I/O操作时,必须首先调用DRV_DeviceOpen,通过设备号(DeviceNumber)打开设备得到设备句柄,以使用户访问该设备,然后调用一系列函数执行相应的功能。

结束操作时,调用DRV_DeviceClose关闭设备,释放由DRV_DeviceOpen分配的资源,基本流程如图4.1所示。

图4.1设备函数组应用流程

DeviceNumber(Type:

UnsignedLong,Size:

4bytes)

指定要进行I/O操作的设备,即要打开的设备的设备号。

设备号在AdvantechDeviceManager中初始化设备的时候分配。

比如“000:

AdvantechDEMOI/O=1H”,这个设备的设备号就为000,用户可以直接在DRV_DeviceOpen函数中指定要打开的设备号,也可以通过调用DRV_SelectDevice函数打开一个对话框选择需要的设备,从而取得相应的设备号。

DRV_DeviceOpen和DRV_DeviceClose函数

DRV_DeviceOpen打开设备号(DeviceNumber)指定的设备。

在I/O操作中,其它函数执行前必须先调用此函数。

与之对应,DRV_DeviceClose函数用来关闭设备。

DriverHandle(Type:

Long,Size:

4bytes)

指向的缓存保存了设备的设置信息。

函数DRV_DeviceOpen返回句柄(DriverHandle),其它进行I/O相关操作的函数使用该句柄来指定设备。

ErrorCode(Type:

UnsignedLong,Size:

4bytes)

驱动函数返回错误代码(ErrorCode)来表明函数执行是否成功。

当返回代码非零时,函数执行失败。

DRV_GetErrorMessage函数

DRV_GetErrorMessage函数通过错误代码获取出错信息。

4.1.1DRV_DeviceOpen

LRESULTDRV_DeviceOpen(ULONGDeviceNum,LONG*DriverHandle);

用途:

通过指定的设备号(DeviceNum)来打开一个已经安装的设备,返回设备句柄DriverHandle以备后续操作。

与指定设备相关的所有操作都必须使用指向该设备的句柄(DriverHandle),所以用户在使用与设备所分配资源相关的任何一项操作,如DIO、AO、AI等之前,必须先调用此函数。

参数:

返回值:

1.SUCCESS:

执行成功。

2.LoadLibraryFailed:

动态链接库装载失败,请尝试重新安装驱动程序。

3.MemoryAllocateFailed:

驱动程序内部内存分配失败。

4.ConfigDataLost:

从注册表获取设备配置信息失败,这些信息可能已经丢失,请尝试重新安装驱动程序。

5.GetProcAddressFailed:

无法获得驱动程序函数地址,请尝试更新驱动程序。

注意事项:

与设备所分配资源相关的任何一项操作,如DIO、AO、AI等,执行完毕后,用户必须调用DRV_DeviceClose函数来释放由该设备通过DRV_DeviceOpen分配的资源,为设备再次操作做好准备。

4.1.2DRV_DeviceClose

LRESULTDRV_DeviceClose(LONG*DriverHandle);

用途:

关闭由设备句柄DriverHandle指向的设备,释放为该设备分配的资源。

所有与设备分配资源相关的操作,如:

DIO、AO、AI等完成后需要关闭该设备,以释放由函数DRV_DeviceOpen为该设备分配的资源。

参数:

返回值:

1.SUCCESS:

执行成功。

2.InvalidDriverHandle:

设备句柄DriverHandle为NULL。

4.2模拟量输入函数组

软件方式:

该组函数通过软件命令触发数据转换。

设备驱动为单通道和多通道数据采集分别提供了不同的函数,两种数据采集都是一次完成。

可以使用软件定时器来周期性地调用这些函数,对单通道或多通道周期性地进行采样。

对于大块数据的连续高速采样,可以采用中断或DMA传输方式。

单通道采样:

DRV_AIConfig函数为指定通道设置输入值范围。

如果在运行期需要改变输入值范围,则需要再次调用DRV_AIConfig函数。

DRV_AIVoltageIn函数读取输入通道当前电压值。

设备驱动通过函数DRV_AIBinaryIn读取输入通道的当前二进制值,DRV_AIScale函数可以把它转化成电压值。

4.2.1DRV_AIConfig

LRESULTDRV_AIConfig(LONGDriverHandle,LPT_AIConfiglpAIConfig);

用途:

在设备句柄DriverHandle指向的设备上,通过设置GainCode来配置指定AI(AnalogInput)通道(Channel)的电压输入范围。

参数:

在lpAIConfig指向的结构PT_AIConfig中保存的参数包括:

所要设置的通道(DasChan)和GainCode(DasGain)。

返回值:

1.SUCCESS:

执行成功。

2.InvalidDriverHandle:

设备句柄DriverHandle为NULL。

3.InvalidChannel:

指定的通道(chanoflpAIConfig)超出有效范围。

4.InvalidGain:

GainCode(DasGainoflpAIConfig)超出有效范围。

5.CardTypeIDNotSupported:

驱动无法识别DriverHandle指向的设备,请更新驱动程序。

注:

PT_AIConfig

TypedefstructtagPT_AIConfig

{

USHORTDasChan;

USHORTDasGain;

}PT_AIConfig,*LPT_AIConfig;

函数DRV_AIConfig使用到PT_AIConfig。

成员描述:

gaincode列表

GainCode

输入电压范围

4

10V

0

5V

1

2.5V

2

1.25V

3

0.625V

4.2.2DRV_AIVoltageIn

LRESULTDRV_AIVoltageIn(LONGDriverHandle,LPT_AIVoltageInlpAIVoltageIn);

用途:

在设备句柄DriverHandle指向的设备上,读取指定AI(AnalogInput)通道的电压值。

参数:

此函数等同于依序调用DRV_AIBinaryIn与DRV_AIScale。

在lpAIVoltageIn指向的结构PT_AIVoltageIn中保存的参数包括:

采样通道(chan)、GainCode(gain)、触发模式(TrigMode)和返回电压值(voltage)。

返回值:

1.SUCCESS:

执行成功。

2.InvalidDriverHandle:

设备句柄DriverHandle为NULL。

3.DataNotReady:

使用外部触发模式时(TrigMode为1),在特定时间内,驱动没有检测到外部触发信号。

4.AIConversionFailed:

使用内部触发模式时(TrigMode为0),在特定时间内,设备未准备好数据。

5.InvalidChannel:

指定的通道(chanoflpAIVoltageIn)超出有效范围。

6.CardTypeIDNotSupported:

驱动无法识别DriverHandle指向的设备,请更新驱动程序。

注:

PT_AIVoltageIn

typedefstructtagPT_AIVoltageIn

{

 USHORTchan;

 USHORTgain;

 USHORTTrigMode;

 FLOAT*voltage;

}PT_AIVoltageIn,*LPT_AIVoltageIn;

函数DRV_AIVoltageIn使用到PT_AIVoltageIn。

成员描述:

4.2.3DRV_AIBinaryIn

LRESULTDRV_AIBinaryIn(LONGDriverHandle,LPT_AIBinaryInlpAIBinaryIn);

用途:

在设备句柄DriverHandle指定的设备上,读取指定AI(AnalogInput)通道的当前二进制值,函数DRV_AIScale可用来将原始数据换为相应的电压值。

参数:

在lpAIBinaryIn指向的结构PT_AIBinaryIn中保存的参数包括:

所要设置的通道(chan)、触发模式(TrigMode)和返回的原始数据(reading)。

返回值:

1.SUCCESS:

执行成功。

2.InvalidDriverHandle:

设备句柄DriverHandle为NULL。

3.DataNotReady:

使用外部触发模式时(TrigMode为1),在特定时间内,驱动没有检测到外部触发信号。

4.AIConversionFailed:

使用内部触发模式时(TrigMode为0),在特定时间内,驱动检测到数据没有做好准备。

5.InvalidChannel:

指定的通道(chanoflpAIBinaryIn)超出有效范围。

6.CardTypeIDNotSupported:

驱动无法识别DriverHandle指向的设备,请更新驱动程序。

注:

PT_AIBinaryIn

typedefstructtagPT_AIBinaryIn

{

USHORTchan;

USHORTTrigMode;

USHORT*reading;

}PT_AIBinaryIn,*LPT_AIBinaryIn;

函数DRV_AIBinaryIn使用到PT_AIBinaryIn。

 

成员描述:

4.2.4DRV_AIScale

LRESULTDRV_AIScale(LONGDriverHandle,LPT_AIScalelpAIScale);

用途:

把二进制原始数据(通常得自函数DRV_AIBinaryIn)转换为相应的电压值,或用户需要的其它模拟量值。

参数:

在lpAIScale指向的结构PT_AIScale中保存的参数包括:

最大输入模拟量值(MaxVolt)、最大计数值(MaxCount)、零点偏移量(offset)、输入数字量值(reading)和返回模拟量值(voltage)。

返回值:

1.SUCCESS:

执行成功。

2.AIScaleFailed:

输入参数有误,致转换无法进行。

注:

PT_AIScale

TypedefstructtagPT_AIScale

{

 USHORTreading;

 FLOATMaxVolt;

USHORTMaxCount;

 USHORToffset;

 FLOAT*voltage;

}PT_AIScale,*LPT_AIScale;

函数DRV_AIScale使用到PT_AIScale。

成员描述:

4.3模拟量输出函数组

该组函数实现模拟量输出的功能。

采样方式分为单通道,多通道同步输出,及DMA方式的波形输出等。

软件方式:

单通道单次转换

DRV_AOVoltageOut函数用于电压输出:

DRV_AOVoltageOut函数接收到一个浮点电压值,并把它转化成二进制数写入模拟量输出通道来改变电压输出值。

电压输出范围取决于AdvantechDeviceManager中DA参考电压的设置。

在运行态可以调用DRV_AOConfig函数改变电压范围的设置。

设备驱动也提供了二进制数据输出函数DRV_AOBinaryOut,函数接收到二进制数值并把它写入模拟量输出通道。

先通过DRV_AOScale函数可以把想得到的模拟量输出值转换成二进制数,再通过函数DRV_AOBinaryOut输出。

4.3.1DRV_AOConfig

LRESULTDRV_AOConfig(

  LONGDriverHandle,

  LPT_AOConfiglpAOConfig);

用途:

在设备句柄DriverHandle指向的设备上,改变所指定AO(AnalogOutput)通道的输出范围默认配置(未调用本函数前,AO通道的输出范围默认参考的是用户在研华设备管理器AdvantechDeviceManager的设置数据,这个数据保存在注册表Registry中)。

本函数改变的配置数据只是执行时的暂存信息,保存在注册表的配置数据并没有被改变。

参数:

在lpAOConfig指向的结构(PT_AOConfig)中保存的参数包括指定通道(chan),指定参考源(RefSrc),参考电压上限(MaxValue)和参考电压下限(MinValue)。

返回值:

  1.SUCCESS:

执行成功。

  2.InvalidDriverHandle:

设备句柄DriverHandle为NULL。

  3.InvalidChannel:

指定的通道号(chanoflpAOConfig)超出有效范围。

  4.CardTypeIDNotSupported:

驱动无法识别DriverHandle指向的设备,请更新驱动程序。

  5.FunctionNotSupported:

DriverHandle指向的设备不支持本功能,请参阅相关硬件手册。

注:

PT_AOConfig

typedefstructtagPT_AOConfig

{

USHORTchan;

USHORTRefSrc;

FLOATMaxValue;

FLOATMinValue;

}PT_AOConfig,*LPT_AOConfig;

函数DRV_AOConfig使用到PT_AOConfig。

成员描述:

4.3.2DRV_AOVoltageOut

LRESULTDRV_AOVoltageOut(

LONGDriverHandle,

LPT_AOVoltageOutlpAOVoltageOut);

用途:

在设备句柄DriverHandle指向的设备上,以设置浮点型的电压值,来改变指定AO(AnalogOutput)通道的输出状态。

参数:

此函数等同于依序调用DRV_AOScale与DRV_AOBinaryOut。

在lpAOVoltageOut指向的结构PT_AOVoltageOut中保存的参数包括:

指定的AO通道(chan)和所要设置的浮点型电压值(outputValue)。

返回值:

  1.SUCCESS:

执行成功。

  2.InvalidChannel:

指定的通道号(chanoflpAOVoltageOut)超出有效范围。

  3.InvalidDriverHandle:

设备句柄DriverHandle为NULL。

  4.InvalidAnalogOutValue:

设置的输出值(OutputValue)超出硬件支持的范围,请参阅相关硬件手册正确设置。

  5.FunctionNotSupported:

DriverHandle指向的设备不支持本功能,请参阅相关硬件手册。

  6.CardTypeIDNotSupported:

驱动无法识别DriverHandle指向的设备,请更新驱动程序。

注:

PT_AOVoltageOut

typedefstructtagPT_AOVoltageOut

{

USHORTchan;

FLOATOutputValue;

}PT

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1