论文部分内容阅读
实时控制与实时数据采集是当今计算机应用领域的一个热点。实时操作系统是其中的核心。随着硬件性能的提高,实时应用对操作系统性能要求提高的同时,对其功能也提出了越来越高的要求,如图形界面、网络功能等方面的要求。在现有应用与实时控制系统的实时操作系统中,要么就是价格昂贵,要么就是功能简单,要么是缺少标准,各种接口不兼容。于是构建实时控制与实时数据采集系统时选择一个开放的、标准的、硬件兼容性较好、底层驱动易于移植开发、高效且廉价的实时操作系统成为开发实时控制系统的重点。基于这个目的,本文首先从实时操作系统的实时要素出发,剖析实时操作系统的相关概念,分别从任务、任务调度、以及中断延迟、中断响应时间、上下文切换时间等方面,指出在实时系统中影响实时性的相应要素。接着,引入RTAI(Linux实时扩展)作为实时数据采集系统的操作系统。通过RTAI与传统Linux在中断延迟时间与中断响应时间的测试比较中,可以看出RTAI完全满足实时数据采集与控制系统的应用要求。在易用性方面,因为RTAI对底层数据采集和控制卡没有一套统一的管理接口,系统开发者需要自己开发相应的板子驱动。本文引入了Comedi(Linux设备控制管理接口),它是兼容Linux与RTAI的第三方软件。做为设备管理模块,它把各种数据采集设备与控制设备进行统一管理,在用户层提供统一接口。开发者只需要编写相应驱动程序就可以在用户进程中对该设备的操作,利用它搭建的实时数据采集与控制系统具有较好的易用性与兼容性。基于工业PC的控制系统可以利用Qt作为用户界面的开发,工业PC的资源相对比开发板多很多,有足够的内存资源运行。而且相比于Minigui,Qt的开源性也更加适合做为界面开发工具。同时,本文利用TLC5510数据采集芯片,搭建了自己的数据采集硬件,通过的编写基于EPP模式Comedi实时驱动程序,读取数据并传送给用户态下的实时控制进程。最后通过贡献内存或fifo方式把数据传送给Qt显示进程显示。本文最后给出来测试结果以及RTAI与传统Linux下数据采集的比较结果。