USB4711A使用手册简稿.docx
- 文档编号:12205814
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:22
- 大小:494.72KB
USB4711A使用手册简稿.docx
《USB4711A使用手册简稿.docx》由会员分享,可在线阅读,更多相关《USB4711A使用手册简稿.docx(22页珍藏版)》请在冰豆网上搜索。
USB4711A使用手册简稿
1.介绍
1.1概述
USB-4711A系列板卡是即插即用数据采集模块,它通过USB端口与计算机相连,为数据测量与系统控制提供了便利。
USB-4711A通过USB端口获得所需电源,在该板卡上包含了所有的数据采集功能,如:
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的用途不同,其中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
输出
脉冲输出通道
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设备函数组应用流程
指定要进行I/O操作的设备,即要打开的设备的设备号。
设备号在AdvantechDeviceManager(运行界面如图4.2)中初始化设备的时候分配。
比如“000:
AdvantechDEMOI/O=1H”,这个设备的设备号就为000,用户可以直接在DRV_DeviceOpen函数中指定要打开的设备号,也可以通过调用DRV_SelectDevice函数打开一个对话框选择需要的设备,从而取得相应的设备号。
图4.2AdvantechDeviceManager运行界面
4.1.1DRV_DeviceOpen
DRV_DeviceOpen(ULONGDeviceNum,LONG*DriverHandle);
用途:
通过指定的设备号(DeviceNum)来打开一个已经安装的设备,返回设备句柄DriverHandle以备后续操作。
与指定设备相关的所有操作都必须使用指向该设备的句柄,所以用户在使用与设备所分配资源相关的任何一项操作,如DIO、AO、AI等之前,必须先调用此函数。
参数:
4.1.2DRV_DeviceClose
DRV_DeviceClose(LONG*DriverHandle);
用途:
关闭由设备句柄DriverHandle指向的设备,释放为该设备分配的资源。
所有与设备分配资源相关的操作,如:
DIO、AO、AI等完成后需要关闭该设备,以释放由函数DRV_DeviceOpen为该设备分配的资源。
参数:
4.2模拟量输入函数组
软件方式:
该组函数通过软件命令触发数据转换。
可以使用软件定时器来周期性地调用这些函数,对单通道或多通道周期性地进行采样。
对于大块数据的连续高速采样,可以采用中断或DMA传输方式。
单通道采样:
DRV_AIConfig函数为指定通道设置输入值范围。
如果在运行期需要改变输入值范围,则需要再次调用DRV_AIConfig函数。
DRV_AIVoltageIn函数读取输入通道当前电压值。
设备驱动通过函数DRV_AIBinaryIn读取输入通道的当前二进制值,DRV_AIScale函数可以把它转化成电压值。
4.2.1DRV_AIConfig
DRV_AIConfig(LONGDriverHandle,LPT_AIConfiglpAIConfig);
用途:
在设备句柄DriverHandle指向的设备上,通过设置GainCode来配置指定AI(AnalogInput)通道(Channel)的电压输入范围。
参数:
在lpAIConfig指向的结构PT_AIConfig中保存的参数包括:
所要设置的通道(DasChan)和GainCode(DasGain)。
函数DRV_AIConfig使用到的PT_AIConfig结构体:
TypedefstructtagPT_AIConfig
{
USHORTDasChan;
USHORTDasGain;
}PT_AIConfig,*LPT_AIConfig;
成员描述:
gaincode列表
GainCode
输入电压范围
4
10V
0
5V
1
2.5V
2
1.25V
3
0.625V
4.2.2DRV_AIVoltageIn
DRV_AIVoltageIn(LONGDriverHandle,LPT_AIVoltageInlpAIVoltageIn);
用途:
在设备句柄DriverHandle指向的设备上,读取指定AI(AnalogInput)通道的电压值。
参数:
此函数等同于依序调用DRV_AIBinaryIn与DRV_AIScale。
在lpAIVoltageIn指向的结构PT_AIVoltageIn中保存的参数包括:
采样通道(chan)、GainCode(gain)、触发模式(TrigMode)和返回电压值(voltage)。
函数DRV_AIVoltageIn使用到的PT_AIVoltageIn结构体:
typedefstructtagPT_AIVoltageIn
{
USHORTchan;
USHORTgain;
USHORTTrigMode;
FLOAT*voltage;
}PT_AIVoltageIn,*LPT_AIVoltageIn;
成员描述:
4.3模拟量输出函数组
该组函数实现模拟量输出的功能。
采样方式分为单通道,多通道同步输出,及DMA方式的波形输出等。
软件方式:
单通道单次转换
DRV_AOVoltageOut函数用于电压输出:
DRV_AOVoltageOut函数接收到一个浮点电压值,并把它转化成二进制数写入模拟量输出通道来改变电压输出值。
电压输出范围取决于AdvantechDeviceManager中DA参考电压的设置。
在运行态可以调用DRV_AOConfig函数改变电压范围的设置。
设备驱动也提供了二进制数据输出函数DRV_AOBinaryOut,函数接收到二进制数值并把它写入模拟量输出通道。
先通过DRV_AOScale函数可以把想得到的模拟量输出值转换成二进制数,再通过函数DRV_AOBinaryOut输出。
4.3.1DRV_AOConfig
DRV_AOConfig(LONGDriverHandle, LPT_AOConfiglpAOConfig);
用途:
在设备句柄DriverHandle指向的设备上,改变所指定AO(AnalogOutput)通道的输出范围默认配置(未调用本函数前,AO通道的输出范围默认的是用户在研华设备管理器AdvantechDeviceManager中的设置数据,这个数据保存在注册表Registry中)。
本函数改变的配置数据只是执行时的暂存信息,保存在注册表的配置数据并没有被改变。
参数:
在lpAOConfig指向的结构(PT_AOConfig)中保存的参数包括指定通道(chan),指定参考源(RefSrc),参考电压上限(MaxValue)和参考电压下限(MinValue)。
函数DRV_AOConfig使用到的PT_AOConfig结构体:
typedefstructtagPT_AOConfig
{
USHORTchan;
USHORTRefSrc;
FLOATMaxValue;
FLOATMinValue;
}PT_AOConfig,*LPT_AOConfig;
成员描述:
4.3.2DRV_AOVoltageOut
DRV_AOVoltageOut(LONGDriverHandle,LPT_AOVoltageOutlpAOVoltageOut);
用途:
在设备句柄DriverHandle指向的设备上,以设置浮点型的电压值,来改变指定AO(AnalogOutput)通道的输出状态。
参数:
此函数等同于依序调用DRV_AOScale与DRV_AOBinaryOut。
在lpAOVoltageOut指向的结构PT_AOVoltageOut中保存的参数包括:
指定的AO通道(chan)和所要设置的浮点型电压值(outputValue)。
函数DRV_AOVoltageOut使用到的PT_AOVoltageOut结构体:
typedefstructtagPT_AOVoltageOut
{
USHORTchan;
FLOATOutputValue;
}PT_AOVoltageOut,*LPT_AOVoltageOut;
成员描述:
4.4Counter函数组
Counter函数组包含三种操作方式:
事件计数,脉冲输出和频率测量。
中断方式的Counter和QCounter(PCL-833)都属于事件计数组。
事件计数函数
普通Counter(Intel8254或AMD9513A):
DRV_CounterEventStart启动counter操作。
当counter开始计数时,可以反复调用DRV_CounterEventRead函数读取计数值。
操作完成后可以调用函数DRV_CounterReset停止计数。
4.4.1DRV_CounterEventStart
DRV_CounterEventStart(LONGDriverHandle, LPT_CounterEvenStartlpCounterEventStart);
用途:
在设备句柄DriverHandle指向的设备上,将指定的计数器配置为事件计数并启动该操作。
启动后,可调用函数DRV_CounterEventRead读取计数值与状态。
参数:
在lpCounterEventStart指向的PT_CounterEventStart结构中,保存的参数包括:
目标计数器通道号(counter)和门控模式(GateMode)。
函数DRV_CounterEventStart使用到的PT_CounterEventStart结构体:
typedefstructtagPT_CounterEventStart
{
USHORTcounter;
USHORTGateMode;
}PT_CounterEventStart,*LPT_CounterEventStart;
成员描述:
4.4.2DRV_CounterEventRead
DRV_CounterEventRead(LONGDriverHandle, LPT_CounterEventReadlpCounterEventRead);
用途:
在设备句柄DriverHandle指向的设备上,读取指定计数器的当前计数值和溢出状态标志。
此操作将不影响计数器的持续工作。
参数:
在lpCounterEventRead指向的PT_CounterEventRead结构中,保存的参数包括:
目标计数器通道号(counter),读回的溢出标志(overflow),以及读回的当前计数值(count)。
函数DRV_CounterEventRead使用到的PT_CounterEventRead结构体:
typedefstructtagPT_CounterEventRead
{
USHORTcounter;
USHORT*overflow;
ULONG*count;
}PT_CounterEventRead,*LPT_CounterEventRead;
成员描述:
4.4.3DRV_CounterReset
DRV_CounterReset(LONGDriverHandle, LPARAMcounter);
用途:
在设备句柄DriverHandle指向的设备上,重置计数器以停止当前的操作。
本函数适用于所有与计数器相关的函数(包括:
DRV_CountEventStart,DRV_CounterFreqStart,DRV_QCounterStart,DRV_CounterPulseStart,DRV_CounterPWMEnable,DRV_TimerCounterSetting等等),但不包括DRV_FreqOutStart函数。
参数:
5.VC中使用研华设备驱动编程指南
研华Windows设备驱动是动态链接的。
VC开发应用时必需的文件:
文件名
描述
文件位置
DRIVER.H
函数声明,MicrosoftCandBorlandC的变量定义。
安装路径\ADSAPI\Include\DRIVER.H
Adsapi32.lib
C/C++库文件。
安装路径\ADSAPI\Lib\Adsapi32.lib
因此开发应用程序时,要进行必要的配置包含上述路径,以MicrosoftVisualC++6.0为例,说明配置工作。
⑴打开MicrosoftVisualC++6.0,从主菜单栏中选择“工具→选项”。
⑵选择“目录”选项卡,选择目录“Includefiles”,点击图标
,新建路径“安装路径\ADSAPI\Include”。
⑶选择目录“Libraryfiles”,选择目录“Includefiles”,点击图标
,新建路径“安装路径\ADSAPI\Lib”。
配置完成。
以设备打开和关闭操作为例,说明开发应用程序的基本步骤。
(一)创建一个新的控制台工程
依照以下步骤创建VC++工程:
⑴从主菜单栏中选择“文件→新建”。
⑵定义新工程类型为“Win32ConsoleApplication”,并指定一个工程文件路径,输入工程名称,本例工程名称为“test”。
⑶定义控制台程序类型为“一个空工程”
5.1添加必要文件
为使用研华设备驱动开发应用程序,首先要添加必要的文件。
⑴添加研华设备驱动中的Include头文件(Driver.h)。
从主菜单栏中选择“工程→添加到工程→文件”,文件在“安装路径\ADSAPI\Include\DRIVER.H”。
⑵同样方法添加adsapi32.lib,使应用程序目标文件和设备驱动库链接起来,文件在“安装路径\ADSAPI\Lib\Adsapi32.lib”。
5.2编写代码
⑴从主菜单栏中选择“文件→新建”。
⑵选择文件“C++SourceFile”,勾选添加到工程,输入文件名,本例文件名称为“test”。
在空的test.cpp源文件中编写代码:
#include
#include
#include"driver.h"
voidmain()
{
DWORDdwErrCde;
ULONGlDevNum;
longlDriverHandle;
lDevNum=0;
dwErrCde=DRV_DeviceOpen(lDevNum,&lDriverHandle);
if(dwErrCde!
=SUCCESS)
{
printf("设备打开错误!
\n");
return;
}
else
{
printf("设备打开成功!
\n");
printf("设备句柄:
%ld\n",lDriverHandle);
}
dwErrCde=DRV_DeviceClose(&lDriverHandle);
if(dwErrCde!
=SUCCESS)
{
printf("设备关闭错误!
\n");
return;
}
else
{
printf("设备关闭成功!
\n");
}
}
5.3测试程序
点击
编译,无错误后,点击
运行程序,结果如下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- USB4711A 使用手册
![提示](https://static.bdocx.com/images/bang_tan.gif)