编辑: 645135144 | 2019-07-12 |
5
第五节、如何用 DMA 方式取得 AD 数据 当您有了 hDevice 设备对象句柄后,便可用 InitDeviceAD 函数初始化 AD 部件,关于采样通道、频率等的参数的 设置是由这个函数的 pADPara 参数结构体决定的.您只需要对这个 pADPara 参数结构体的各个成员简单赋值即可实 现所有硬件参数和设备状态的初始化.同时应调用 CreateSystemEvent 函数创建一个内核事件对象句柄 hDmaEvent 赋给InitDeviceAD 的相应参数,它将作为 Dma 事件的变量.然后用 StartDeviceAD 即可启动 AD 部件,开始 AD 采样, 接着调用 Win32 API 函数 CreateFileObject 等待 hDmaEvent 事件的发生,当前缓冲段没有被 DMA 完成时,自动使所 在线程进入睡眠状态(不消耗 CPU 时间) ,反之,则立即唤醒所在线程,执行它下面的代码,此时您便可用 GetDevStatusAD 来确定哪一段缓冲是新的数据,即刻处理该数据,至到所有的缓冲段变为旧数据段.然后再回到 CreateFileObject,就这样反复读取 AD 数据即可实现连续不间断采样.当您需要暂停设备时,执行 StopDeviceAD, 当您需要关闭 AD 设备时, ReadDeviceAD 便可帮您实现 (但设备对象 hDevice 依然存在) . 具体执行流程请看图 2.1.3. 注意:图中较粗的虚线表示对称关系.如红色虚线表示 CreateDevice 和ReleaseDevice 两个函数的关系是:最初 执行一次 CreateDevice,在结束时就须执行一次 ReleaseDevice. PXI8603 WIN2000/XP 驱动程序使用说明书 版本:V6.000
6 图2.1.3 DMA 方式 AD 采集实现过程 阿尔泰科技发展有限公司
7
第六节、如何实现数字量的简便操作 当您有了 hDevice 设备对象句柄后,便可用 SetDeviceDO 函数实现数字量的输出操作,其各路数字量的输出状态 由其 bDOSts[8]中的相应元素决定.由GetDeviceDI 函数实现数字量的输入操作,其各路数字量的输入状态由其 bDISts[8]中的相应元素决定.
第七节、哪些函数对您不是必须的 公共函数如 CreateFileObject,WriteFile,ReadFile 等一般来说都是辅助性函数,除非您要使用存盘功能.如果您 使用上层用户函数访问设备,那么 GetDeviceAddr,WriteRegisterByte,WriteRegisterWord,WriteRegisterULong, ReadRegisterByte,ReadRegisterWord,ReadRegisterULong 等函数您可完全不必理会,除非您是作为底层用户管理设 备.而WritePortByte,WritePortWord,WritePortULong,ReadPortByte, ReadPortWord,ReadPortULong 则对 PXI 用户来讲,可以说完全是辅助性,它们只是对我公司驱动程序的一种功能补充,对用户额外提供的,它们可以帮助 您在 NT、Win2000 等操作系统中实现对您原有传统设备如 ISA 卡、串口卡、并口卡的访问,而没有这些函数,您可 能在基于 Windows NT 架构的操作系统中无法继续使用您原有的老设备.
第三章 PXI 设备操作函数接口介绍 由于我公司的设备应用于各种不同的领域, 有些用户可能根本不关心硬件设备的控制细节, 只关心 AD 的首末通 道、采样频率等,然后就能........