阅读:2469回复:13
为何我的多线程数据采集老出现丢数现象
我想用多线程实现高速的数据采集,实验时,接正弦信号可以发现采集的波形会出现丢数现象,没有规律,大概几个周期有一次数据丢失发生。
已经被困绕很久,请高手帮帮忙! |
|
沙发#
发布于:2004-08-23 12:44
能说的在详细些吗?
本人就曾作过类似工作. |
|
板凳#
发布于:2004-08-24 10:46
先谢谢你答复,
我用多线程技术实现高速的并口数据采集,(delphi7下),使用双缓冲,一边采集,一边处理和绘图显示采集数据,曲线能绘出来,但偶尔波形有变形,没有发现有规律,跟缓冲区的大小和输入波形的频率似乎没有关系,估计是数据丢失所导致,不知何因? |
|
地板#
发布于:2004-08-24 12:05
我估计,应该是缓冲区溢出问题,建议:
1.可以将缓冲区的大小加大,试试看,如果还是不能解决. 2.可以采用环行缓冲区,将缓冲区多开几块,在试试看. 本人曾用此法解决了高速数据采集记录问题(155M速率的采集记录,而且是IDE硬盘). [编辑 - 8/24/04 by Sundsea] |
|
地下室#
发布于:2004-08-27 08:40
能说的在详细些吗? 还不拿出来共香共香? :D |
|
|
5楼#
发布于:2004-08-27 09:36
[quote]能说的在详细些吗? 还不拿出来共香共香? :D [/quote] 涉及到一些保密的东西,所以Sorry! |
|
6楼#
发布于:2004-08-27 10:35
[quote][quote]能说的在详细些吗? 还不拿出来共香共香? :D [/quote] 涉及到一些保密的东西,所以Sorry! [/quote] 155M的, 恩, 理解。 |
|
|
7楼#
发布于:2004-08-27 21:57
不知道你是怎样同步的
|
|
8楼#
发布于:2004-08-28 12:50
不知道你是怎样同步的 什么同步? |
|
9楼#
发布于:2004-08-31 14:42
我的多线程丢数现象,我发现应该是并口驱动程序或并口 采集卡出了问题,因为我用同样的程序可以很好地 采集pci卡设备。
我的并口驱动是98下的直接端口访问,并口采集卡不带缓冲。 Sundsea大哥的建议对我还是有用,我的采集速度只能到10k,100M想都没想过,真的能到这么高吗?要到这么高还需要有什么技术支持? 想给你加分,不知到哪加。 |
|
10楼#
发布于:2004-11-12 17:35
上位机必须使用三个缓冲区;
A为公共缓冲区; b为采集缓冲区 c为作图缓冲区; 下位机必须使用双缓冲区;d,e d,e区采满数据后发送中断给上位机!并且轮流交换存放数据的位置以避免数据丢失~! 上位机得到中断立刻读取d,OR ,e 区数据放到b,采集完毕一次中断数据再copy到a,此时发送信息给主程序来刷新; 主程序得到信息则从a区读取数据到c进行计算绘图等等! 我的采样频率为20k;全部数据都进行了滤波,计算,绘图; 运行情况良好! |
|
11楼#
发布于:2004-11-12 17:40
另:说什么采样频率达到150多M
试问什么的cpu可以达到这样的频率; 20k/s的采样频率的时间周期已经是50微妙! 1微妙的采样频率最多也就是20k*50/s==100M/s 估计这个采样频率现在都没有办法达到吧! |
|
12楼#
发布于:2004-11-19 09:18
各位大虾能不能把电路、代码给一部分让我学习学习啊?
|
|
13楼#
发布于:2004-12-29 08:57
另:说什么采样频率达到150多M PC并不能做完所有的事, 尤其高速传输。。。 |
|
|