怎样提高Windows的数据采集速度?
我现在在用工控机做实时控制,从外界数据采集卡采集到的数据怎样才能更快地读到系统内存中呢?最好在100us之内。
Windows定时器的定时精度只有55ms,多媒体的也只有7ms,如果用QueryPerformanceFrequency()和QueryPerformanceCounter(),他们一直运行好像会将CPU占用太高,有没有好的解决办法?
单CPU可不可以做到边采集边做其他事??
用没有人用双CPU做过这种方案?
[解决办法]
windows本来就不是一个RTOS它对时间的把握并不严格,要不你换OS吧
单CPU永远在中一时刻里只能做一件事,只不过是操作系统多任务的思想,让它看起来像是同时做多件事罢了...
就算是多CPU,在访问同一块内存的时候也不允许同时操作,那会在读写上出问题的...
[解决办法]
DMA+中断可以解决,但是需要写驱动,对软件水平要求太高。
[解决办法]
windows双CPU也不能分个CPU给你,XP后的系统不知道,没研究过。
Linux据说可以把一个CPU单分配给一个任务,也是据说而已。
QueryPerformanceFrequency应该就可以了。建立个线程运行。
不过,他不能保证都是100us采一下。
我原来用QueryPerformanceCounter做,几百K的频率也能做到,不过是windows下,其他操作多少会影响到。
祝
好运
[解决办法]
在驱动层面用中断服务程序解决实时性问题,采集还可以,但是用GUI显示速度肯定事跟不上了。
[解决办法]
100US?你采集卡得采集周期最快能到多少?