新闻中心

EEPW首页>电源与新能源>设计应用> 500兆/秒高速A/D系统的实现

500兆/秒高速A/D系统的实现

作者: 时间:2011-05-26 来源:网络 收藏

4 Windows95下软件设计的实时性考虑

的软件运行于Window 95平台之上的。设计的指标要求每秒能计时200次的操作,每次采集512点,既要求在5毫秒内将部分采到的512Bytes传到计算机并存储在硬盘上。这个要求对于PCI接口来说是非常低的,实测结果显示的平均反应时间远小于这个时间。但是结果显示系统的平均反应时间远小于这个时间。但是我们发现系统每处理10 000次响应总会有一到两次的反应时间特别慢,超过5毫秒有时甚至达到40毫秒。而我们的系统要处理的是一个连续有序的事件,要求对每一个事件都必须做反应,否则后面的事件就会被误处理。经过分析表明,这种现象完全是由于Windows95操作系统本身的原因造成的。Windows95是一种多任务的平台,它的核心运行在优先级较高的Ring0上,普通的应用程序则运行在优先级低的Ring3上,应用程序靠内核的调度分时运行。Windows95是专门为PC机设计的,主要的用途是处理人们的娱乐以及办公自动化等事务,考虑的是使用起来如何方便,并没有对工业控制方面的实时性加以考虑,所以外层的应用程序有可能会随时被内核打断,根本没有什么时间的保障。要想准确无误地处理对时间要求比较荷刻的事件,必须把处理程序放在运行于内核级的中断服务程序中去执行,这样除非有更高级的中断否则程序就不会被打断。在编写中断服务程序处理函数时我们采用了Windriver提供的Kernal PlugIn功能,将自己编写的中断服务程序挂接在系统内核上。用此种方法可以每秒10 000次的断处理而不丢失。我们在编写中断服务程序时借用了硬件设计中FIFO的思想,先在内存中开辟一块共域作缓冲区分别设置读指针和写指针,硬件触发中断后服务程序先从读取数据进行处理,然后发了指令控制等待下一次事件,接着向上层应用软件发出消息请求上层应用程序从缓冲区读取数据存盘和显示。中断服务程序发出的消息有可能不会马上被上层应用程序响应,但只要缓冲区足够大,每一次事件产生的数据就不会丢失。整个程序的流程图如图8所示。

本数据采集系统成成功地在上海某科研单位得到应用。虽然设计初衷是为了满足某用户的需求,但它容易扩展成通用的A/D采样系统应用于相关的各个领域。


上一页 1 2 3 4 下一页

关键词:实现系统A/D高速

评论


相关推荐

技术专区

关闭