编辑: ddzhikoi 2019-10-20
01

01 关于本手册 本手册为阿尔泰科技推出的 PXI2391 多功能计数器卡驱动程序使用手册,其中包括版权信息与 命名约定、使用纲要、各功能操作流程介绍、PXI 设备操作函数接口介绍、上层用户函数接口应用 实例、共用函数介绍、修改历史等.

文档版本:V6.00.00

02 目录 关于本手册.1

1 版权信息与命名约定.4 1.1 版权信息.4 1.2 命名约定.4

2 使用纲要.5 2.1 使用上层用户函数,高效、简单.5 2.2 如何管理 PXI 设备.5 2.3 如何实现开关量的简便操作.5 2.4 哪些函数对您不是必须的.5

3 各功能操作流程介绍.6 3.1 边沿、编码器、半周期、脉宽、两边沿间隔和开关量输入操作流程

7 3.2 频率/周期操作流程.8 3.3 脉冲输出操作流程.9 3.4 开关量输出操作流程.10 3.5 DIO 操作流程.11

4 PXI 设备操作函数接口介绍.12 4.1 设备驱动接口函数总列表.13 4.2 设备对象管理函数原型说明.14 4.3 计数器控制函数原型说明.17 4.4 计数器硬件参数操作函数原型说明.20 4.5 数字 I/0 输入输出函数原型说明.21

5 上层用户函数接口应用实例.23 5.1 简易程序演示说明.23 5.1.1 怎样使用 GetDeviceDI 函数进行开关量输入操作.23 5.1.2 怎样使用 SetDeviceDO 函数进行开关量输出操作.23 5.2 高级程序演示说明.23

6 共用函数介绍.24 6.1 公用接口函数总列表.24 6.2 PXI 内存映射寄存器操作函数原型说明.25

03 6.3 IO 端口读写函数原型说明.32 6.4 线程操作函数原型说明.35

7 修改历史.36

04 1 版权信息与命名约定 1.1 版权信息 本软件产品及相关套件均属北京阿尔泰科技发展有限公司所有,其产权受国家法律绝对保护, 除非本公司书面允许,其他公司、单位、我公司授权的代理商及个人不得非法使用和拷贝,否则将 受到国家法律的严厉制裁.您若需要我公司产品及相关信息请及时与当地代理商联系或直接与我们 联系,我们将热情接待. 1.2 命名约定 为简化文字内容,突出重点,本文中提到的函数名通常为基本功能名部分,其前缀设备名如 PXIxxxx_则被省略.如PXI2391_CreateDevice 则写为 CreateDevice. 表1-2-1:函数名及参数中各种关键字缩写 缩写 全称 汉语意思 缩写 全称 汉语意思 Dev Device 设备 DI Digital Input 数字量输入 Pro Program 程序 DO Digital Output 数字量输出 Int Interrupt 中断 CNT Counter 计数器 Dma Direct Memory Access 直接内存存取 DA Digital convert to Analog 数模转换 AD Analog convert to Digital 模数转换 DI Differential (双端或差分) 注: 在常量选项 中Npt Not Empty 非空 SE Single end 单端 Para Parameter 参数 DIR Direction 方向 SRC Source 源ATR Analog Trigger 模拟量触发 TRIG Trigger 触发 DTR Digital Trigger 数字量触发 CLK Clock 时钟 Cur Current 当前的 GND Ground 地OPT Operate 操作 Lgc Logical 逻辑的 ID Identifier 标识 Phys Physical 物理的 以上规则不局限于该产品.

05 2 使用纲要 2.1 使用上层用户函数,高效、简单 如果您只关心通道及频率等基本参数,而不必了解复杂的硬件知识和控制细节,那么我们强烈 建议您使用上层用户函数,它们就是几个简单的形如 Win32 API 的函数,具有相当的灵活性、可靠 性和高效性.而底层用户函数如WriteRegisterULong 、 ReadRegisterULong 、 WritePortByte 、 ReadPortByte……则是满足了解硬件知识和控制细节、且又需要特殊复杂控制的用户.但不管怎样, 我们强烈建议您使用上层函数(在这些函数中,您见不到任何设备地址、寄存器端口、中断号等物 理信息,其复杂的控制细节完全封装在上层用户函数中. )对于上层用户函数的使用,您基本上不必 参考硬件说明书,除非您需要知道板上 D 型插座等管脚分配情况. 2.2 如何管理 PXI 设备 由于我们的驱动程序采用面向对象编程,所以要使用设备的一切功能,则必须首先用 CreateDevice 函数创建一个设备对象句柄 hDevice,有了这个句柄,您就拥有了对该设备的控制权. 然后将此句柄作为参数传递给其他函数,如SetDeviceDO 函数可用实现开关量的输出等.最后可以 通过 ReleaseDevice 将hDevice 释放掉. 2.3 如何实现开关量的简便操作 当您有了 hDevice 设备对象句柄后,便可用 SetDeviceDO 函数实现开关量的输出操作,其各路 开关量的输出状态由其 bDOISts[8]中的相应元素决定. 2.4 哪些函数对您不是必须的 公共函数一般来说都是辅助性函数,除非您要使用存盘功能.如果您使用上层用户函数访问设 备,那么WriteRegisterByte , WriteRegisterWord , WriteRegisterULong , ReadRegisterByte , ReadRegisterWord,ReadRegisterULong 等函数您可完全不必理会, 除非您是作为底层用户管理设备. 而WritePortByte,WritePortWord,WritePortULong,ReadPortByte,ReadPortWord,ReadPortULong 则对 PXI 用户来讲,可以说完全是辅助性,它们只是对我公司驱动程序的一种功能补充,对用户额 外提供的,它们可以帮助您在 NT、Win7 等操作系统中实现对您原有传统设备如 ISA 卡、串口卡、 并口卡的访问,而没有这些函数,您可能在基于 Windows NT 架构的操作系统中无法继续使用您原 有的老设备.

06 3 各功能操作流程介绍 本卡可进行边沿、编码器、半周期、脉宽测量、两边沿间隔、频率/周期、脉冲输出、开关量输 入、开关量输出、双向 DIO 操作. 表3:各功能对应的简易程序名 功能 简易程序名 边沿计数 CNT 半周期 HalfCycle 脉宽测量 PulseWidth 编码器 CodeCnt 脉冲输出 PulseOutput 两边沿间隔 TwoDdgeWidth 频率/周期 MeasureCycle 开关量输入 DI 开关量输出 DO DIO DIO

07 3.1 边沿、编码器、半周期、脉宽、两边沿间隔和开关量输入操作流程

08 3.2 频率/周期操作流程

09 3.3 脉冲输出操作流程

10 3.4 开关量输出操作流程 N 采样/连续采样需要从 GetWFIFOSts(HANDLE hDevice, PLONG lWFIFOSts, PLONG lWriteDataCount,ULONG ulChannel)参数 lWriteDataCount 中得到每次写入缓冲区的 DO 数 据个数,即硬件缓冲区需要写入的数据个数,取得此个数后,即可进行 WriteDeviceProCNT 操作.

11 3.5 DIO 操作流程 用户可根据需要循环进行开关量输出值的设置.

12 4 PXI 设备操作函数接口介绍 由于我公司的设备应用于各种不同的领域,有些用户可能根本不关心硬件设备的控制细节,只 关心首末通道、采样频率等,然后就能通过一两个简易的采集函数便能轻松得到所需要的数据.这 方面的用户我们称之为上层用户.那么还有一部分用户不仅对硬件控制熟悉,而且由于应用对象的 特殊要求,则要直接控制设备的每一个端口,这是一种复杂的工作,但又是必须的工作,我们则把 这一群用户称之为底层用户.因此总的看来,上层用户要求简单、快捷,他们最希望在软件操作上 所要面对的全是他们最关心的问题,而关于设备的物理地址、端口分配及功能定义等复杂的硬件信 息则与上层用户无任何关系.那么对于底层用户则不然.他们不仅要关心设备的物理地址,还要关 心虚拟地址、端口寄存器的功能分配,甚至每个端口的 Bit 位都要了如指掌,看起来这是一项相当 复杂、 繁琐的工作. 但是这些底层用户一旦使用我们提供的技术支持, 则不仅可以让您不必熟悉 PXI 总线复杂的控制协议, 同是还可以省掉您许多繁琐的工作, 比如您不用去了解 PXI 的资源配置空间、 PNP 即插即用管理,而只须用 GetDeviceAddr 函数便可以同时取得指定设备的物理基地址和虚拟线 性基地址.这个时候您便可以用这个虚拟线性基地址,再根据硬件使用说明书中的各端口寄存器的 功能说明,然后使用 ReadRegisterULong 和WriteRegisterULong 对这些端口寄存器进行

32 位模式的 读写操作,即可实现设备的所有控制. 综上所述,用户使用我公司提供的驱动程序软件包将极大的方便和满足您的各种需求.但为了 您更省心,别忘了在您正式阅读下面的函数说明时,先明白自己是上层用户还是底层用户,因为在 《设备驱动接口函数总列表》中的备注栏里明确注明了适用对象. 另外需要申明的是,在本章和下一章中列明的关于 LabView 的接口,均属于外挂式驱动接口, 他是通过 LabView 的Call Labrary Function 功能模板实现的. 它的特点是除了自身的语法略有不同以 外,每一个基于 LabView 的驱动图标与 Visual C++等语言中每个驱动函数是一一对应的,其调用流 程和功能是完全相同的.那么相对于外挂式驱动接口的另一种方式是内嵌式驱动.这种驱动是完全 作为 LabView 编程环境中的紧密耦合的一部分,它可以直接从 LabView 的Functions 模板中取得, 如下图所示.此种方式更适合上层用户的需要,它的最大特点是方便、快捷、简单,而且可以取得 它的在线帮助.关于 LabView 的外挂式驱动和内嵌式驱动更详细的叙述,请参考 LabView 的相关演 示. LabView 内嵌式驱动接口的获取方法

13 4.1 设备驱动接口函数总列表 表4-1-1:驱动接口函数总列表(每个函数省略了前缀 PXI2391_ ) 函数名 函数功能 备注 ① 设备对象管理函数 CreateDevice 用逻辑号创建设备对象 上层及底层用户 GetDeviceCount 取得设备总台数 上层及底层用户 GetDeviceCurrentID 取得当前设备相应的 ID 号 上层用户 ListDeviceDlg 以对话框窗体方式列表系统当中的所有的 该PCI 设备 上层及底层用户 ReleaseDevice 释放设........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题