为了保证AC6115板卡能够进行高速不间断采样我们提供了一-Read.DOC

为了保证AC6115板卡能够进行高速不间断采样我们提供了一-Read.DOC

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
为了保证AC6115板卡能够进行高速不间断采样我们提供了一-Read.DOC

AC6112PCI采集卡SDK 2.0说明 自AC6112板卡上市以来,满足了许多用户多通道无相差连续采样的需求。但其中有一些高端用户希望在进行采样的同时能够灵活进行其他任务,如显示、数据存盘等,但以前提供的SDK在这方面的性能较低,对用户编程的要求过高。 为了保证AC6112板卡能够进行高速不间断采样的同时仍能进行其他操作,我们提供了一套新的驱动和开发包—SDK 2.0。该驱动使用了中断及虚拟软件采集方式,采样任务的优先级高于其他用户层(ring3)上运行的应用软件,用户的应用层操作将不能影响内核层(ring 0)的任务,保证了采集程序不间断的运行;在内核中提供了了约2M WORD的缓冲空间,对于AC6112最高400K的采样速率可提供约5秒的缓冲时间,用户的应用程序只要在5秒内能够及时读取内核缓冲数据,就可以保证采样的连续性;在采样的同时用户仍可进行其他IO操作,如DA、IO、计数器等。 内核与应用层数据流向的原理框图如下: AD采样数据流程如图1所示。当启动采样后,AC6112采集卡即按用户设定的采样方式、速率等参数进行采样,数据按时间和通道顺序进入板载FIFO中;当板载FIFO半满时,产生中断;驱动程序响应中断,将2048个采样点写入缓冲池。用户应用程序方面随时可以查询采样状态,查看缓冲池中的数据情况,按需要读取缓冲池中的数据。由于在内核中使用了中断方式,其优先级别高于其他操作,因此可保证采集卡的采样数据完整的进入ring0层的数据缓冲;用户主要应该注意的是要在内核缓冲池溢出之前,及时读走数据,也就是上文所说的400K采样速率有5秒的缓冲时间(400K X 5 s=2M)。 具体的编程方式提供了1普通的查询方式、2定时器中断采集方式共两种方式。当用户需要类似普通查询AD板的采样方式时,可以选取方式1;若用户要求在连续采集的同时,可以进行显示、存盘、计算处理等其他操作时,可以选择方式2。 对两种编程方式的具体描述见下: 0、无论用户采取哪种方式编程,在程序的开始处都要执行AC6112_CreateDevice()以获得驱动句柄;在整个程序体内AC6112 API函数对设备的识别都要依靠该句柄,如AC6112_DA()等等;一旦需要结束程序的时刻,请用户先调用AC6112_CloseDeivce()释放设备句柄,然后再进行退出应用程序。 查询方式: 最为普通的采集方式,基本流程如下: a.AC6112_INI 设定相关参数; b.AC6112_RUN 启动AD采样; c.AC6112_STATE 检查采样状态,FIFO非空、半满、溢出等; d.若得到了需要的状态,可根据具体状态读取需要的数据AC6112_READ_HARD_FIFO;若状态为达到要求,可循环执行c,直至得到符合要求的状态。 e.AC6112_STOP;停止采样 定时器中断采集方式: a.AC6112_INI 设定相关参数,启动中断方式; b.启动定时器 c.AC6112_RUN 启动AD采样; 下面是在定时器中的代码。注意:在内核缓冲区溢出之前一定要将数据读走! a.AC6112_STATE 检查采样状态,缓冲池中的数据数量、是否溢出等; b.当达到需要读取的数据调用AC6112_READ_KFIFO 按方式2编程,采集过程不影响PC其他操作,使用户在进行不间断采样的过程中可以进行其他操作(如:图形显示、数据存盘、数学运算、IO控制、DA输出、记数等其他操作)。该驱动使用了WDM方式,可以安装在Windows 98/Windows 2000/xp上。随驱动提供了相关的API接口(API函数位于AC6112.DLL动态链接库中)。提供Visual C++ 6.0 / Visual Basic 6.0 / C++ Builder 5.0 / Delphi 6.0四种语言的详细例程。 相关接口函数如下: AC6112_CreateDevice 获得AC6112操作句柄 AC6112_CloseDevice 关闭设备 AC6112_Version 检查驱动程序和DLL的版本(厂家保留) AC6112_INI AC6112采集板的初始化,包括AD采样模式、采样速度、起止通道、输入电压范围、触发方式、边沿选择、中断使用、 事件使用、事件通知门限等等 AC6112_STATE 查询AC6112采集板硬件FIFO状态,查询AC6112驱动中软件FIFO的状态:FIFO容量,可读数量,可写数量 AC6112_CHN 设置通道和输入电压范围(厂家保留) AC6112_AD_MODE 设置采样模式,触发方式,边沿选择(厂家保留) AC6112_RUN 启动采样过程 AC6112_STOP 停止AC6112采样,关闭中断 AC6112_REW 停止AC6112采样(厂家

您可能关注的文档

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档