微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > 虚拟仪器 > 问个比较弱的采集和存储问题

问个比较弱的采集和存储问题

时间:12-13 整理:3721RD 点击:
    我的目的是实现数据的双通道快速(>500KS/s)和连续(>10min.)采集,并在采集的同时将数据存储,即边采边存。如果在一个while循环中实现,存储数据时会占用CPU(我是这么认为的,但不知道何种程度),因此我怕这么高的采样率会造成数据采集的不连续,如果采用二进制文件格式是否就不存在这一问题了?但我不太喜欢二进制格式。搜索了一下其它坛子的帖子,有人建议采用多循环,即多进程的方式进行,不知道这样做是不是必须用到queue,这个我不是很懂。因为我尝试使用两个循环而不用queue,则第二个循环要等第一个循环采集停止后将数据传送出来后才会运行,无法达到同时进行的目的。
    在NI论坛问这个问题没人理我,555~,可能是太弱了。请不吝赐教,谢谢。

没用过队列
原来写过一个采集的程序,好像有个1、200k的速率,弄两个比较大的数组当缓存,满了
之后让另一个while写,效果还不错。
速度要求较高还是推荐用bin格式,实在觉得不爽的话,再写一个程序在采完之后转一下
就好了

是否可以用卡的定时采集性能?
貌似卡上也有自己的缓存,这样才了存在卡里,只要定时读取就可以了

用大数组当缓存是个不错的办法,满了如何启动另一个while呢?我尝试两个while的时候,如果从第一个while引出数据线到第二个while,第二个总要等第一个运行完才肯运行。

卡上倒是有16M缓存,定时读取不占用资源的话是用DMA吗

另一个while里加个case,主while里面判断缓存满了就给个true就好了

有16M的缓存,你的编程条件很宽松了呀,完全不用担心时间问题

这个true送出的方式是用local variable还是直接连线呢

local variable
呵呵,虽然说局部变量之类的少用,但是也不是不能用的,就用一两个不会导致XX hell的

。。。。。。。。。。。。。。。。。。。。。。。。

hi lv神熊猫

因为是初学,对二进制格式的复杂性比较打怵,想直接存成txt的
另外,有没有方法实时的知道16M缓存的使用情况

见笑了,因为试过用连线的方式但发现传不出去,呵呵

用查询,手册上肯定都有的
粗略计算了一下,你这个程序里用1s的周期都足够了,但是不建议用txt,不过你可以试
试看10min能有多大的文件

我还是先试试txt看看,准备不撞南墙不回头了^_^


和我一样
最讨厌二进制了。。。
呵呵

因为二进制是王道
可以二进制然后stream to disk使用的是DMA完全够了

二进制的多通道数据存储和读取不知道有没有特别的说法,会不会不好搞掂

bin只是数据存储格式,跟通道数没啥关系,好好看看help里面关于bin文件的章节

我是用多循环+queue+卡本身的缓存实现的
以前考虑过随采随存的方式,但是算法不好优化,折腾了许久放弃了。
queue还挺好用的。

希望你的处理不要太复杂,hoho
我算个rms就会来不及读buffer了
现在希望实现online analyzer,让我非常痛苦
考虑用一台专门采样,另外一台处理数据
不知道可行不可行

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top