- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于虚拟仪器的循环缓存技术在高速连续信号采集中的应用.pdf
基于虚拟仪器的循环缓存技术在高速连续信号采集中的应用
基于虚拟仪器的循环缓存技术在高速连续信号采
集中的应用
陶银赵转萍
(南京航空航天大学机电工程学院,江苏南京,210016)
摘要随着计算机总线技术的日趋成熟和电子元器件的飞速发展,拓展了电子测量技术及仪器
技术的发展空间,高速连续信号采集与处理也随之广泛应用。本文介绍计算机技术与仪器技术
综合应用的产物一一虚拟仪器:即基于PCI总线技术的美国NationalInstrument公司的
PXI-6070E多功能数据采集卡,在VC语言下利用循环缓存技术完成对高速连续信号的采集、
显示和存储.
关键词虚拟仪器信号采集循环缓存
1 高速连续信号采集技术现状与需求
信号采集时,首先考虑对采集的数据是边采集边分析,还是采集完以后再分析:其次要决定是采集
事先确定数目的数据还是不确定数目的数据。
对于采集预定数目的数据,采集完后再分析的场合,常用简单缓存技术,其原理是采集程序根据采
样率和取样的信道数在内存中分配一块缓存区用来存储数据。缓存区的大小等于每信道采样数乘以信道
数,数据采集设备按照程序中指定的采样率采集信号,数据被传递到缓存区内,采集到整个样本后,缓
存区被数据填满,然后通过程序对数据进行分析、存储及显示。由此可知其缺点是计算机有效的自由内
存数量限制了输入或输出的数据数量。这种采集方法对于高速采集数据,计算机内存中装不下,或者需
要在一个很长的时间内边采集边分析,而数据的点数并不重要的场合,就不实用了,而应采用循环缓存
的技术来采集数据。
2循环缓存技术机理
图1说明了采用循
环缓存技术机理,采集
程序如何在接收数据
的同时,让数据采集设
备在后台连续采集数
据。首先,采集程序为
数据采集分配两块缓
存:循环缓存和转移缓
存,同时,将循环缓存
分成逻辑上成相等的
两部分(物理上不是真
正地两块),数据采集
过程中,DAQ(数据采
集设备)用数据填充循
环缓存。与此同时,通
过NI-DAQ(数据采集
函数)判断循环缓存区
的前一半是否被填满, 图I循环缓存技术的工作方式
是则将数据转移到转
装备制造业与信息化高层论坛
移缓存区,然后NI·DAQ调整程序访问转移缓存区;当数据到达循环缓存的尾部时,设备返回到循环缓
存的开始处再次将它装满数据。这样程序可以无限期连续采集数据直到它被一个硬件错误中断或调用函
数清除。不像简单缓存了操作,循环缓存的操作重复使用同一块缓存,因此,不需要无穷大的内存就能
够输入或输出一个大量的数据。
图1.a,当NI—DAQ设备开始向循环缓存的前一半缓存区写数据。循环缓存输入操作开始,当开始
向循环缓存的后一半缓存区写数据时,NI-DAQ开始拷贝循环缓存区前一半缓存区的数据转移缓存区,
图1.b,这时可以根据程序需要,将转移缓存区的数据存储到磁盘或进行相应的处理。当DAQ设备填满
循环缓存区的后一半的缓存区时,DAQ设备将返回到循环缓存区的前一半缓存区开始覆盖旧数据。DAQ
函数又开始拷贝循环缓存区后一半的数据到转移缓存区,图1.c。这时,应用程序又开始对转移缓存区
的数据做相应的处理。这个过程可以向应用程序重复无止尽地提供数据。图1.d是与图1.b等效的步骤,
是第二次循环的开始。
3循环缓存技术不足之处的有效处理
采用循环缓存技术的数据采集方案并不是完美无缺的,它可能出现二类问题。
缓存完成之前覆盖数据。下图2.b,NI.DAQ函数在DAQ设备开始向循环缓存区的后一半缓存区写数
据时,错过了将循环缓存区前一半的数据拷贝到转移缓存的时机,结果,NI.DAQ函数正将循环缓存前
一半缓存区的数据向转移缓存区拷贝时,DAQ设备就开始覆盖循环缓存前一半缓存区的数据,图2.c。
为了保证采集数据不被破坏,NI.DAQ函数必须在设备开始向另一半缓存区写完数据之前,完成从
循环缓存区的前一半拷贝数据到转移缓存区中,否则,NI.DAQ函数返回一个错误警告,提示转移缓存
区的数据无效。
图2因错过时机拷贝数据完之前覆盖数据
第二种类问题是发生当DAQ设备覆盖数据时,DAQ函数正在同步向转移缓存中拷贝数据,如下图
3.b
文档评论(0)