发表于:2002-02-05 21:29:00
2楼
使用双缓冲(double buffer)是为了解决连续采数的功能。在DOS环境下,一次DMA或中断方式采集数据通常不能超过64K(2^16),在Windows环境下,一次DMA的数据量依赖与板卡的PCI控制芯片的寻址范围和系统物理内存大小(如使用AMCC5933的话,只能一次DMA 64MB数据),无法实现长时间连续采数功能。因此必须要靠double buffer 来实现长时间连续采数功能。有一些板卡提供FIFO半满中断功能,利用这个功能,也可以实现双缓冲连续采数功能。
值得注意的是,double buffer方式涉及到内存的频繁读写,因此当采样速率很高>10M/s或是系统任务很繁忙的时候,往往会出现丢数现象。