资源描述:
《多线程技术在复杂数据采集系统中的应用.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、电子测量技术第31卷第5期数据采集ELECTRONICMEASUREMENTTECHNOLOGY2008年5月多线程技术在复杂数据采集系统中的应用李建宏何玉珠(北京航空航天大学工程系统工程系北京10083)摘要:本文介绍了Windows操作系统的多线程原理和调度机制,结合某基于Windows复杂数据采集系统中,应用多线程编程技术设计主控界面,实现数据显示实时更新,方便操作人员对数据采集的过程监控;对多路I/O模块的同时控制以及数据的高速存储,并结合具体应用实例,给出了程序设计的流程,比较了应用多线程技术前后的结果。关键词:多线程;数据采集;用户界面中图分类号:TP274+.2文献
2、标识码:BApplicationofmultithreadingtechnologyincomplexdataacquisitionsystemLiJianhongHeYuzhu(SchoolofEngineeringSystematicEngineering,BeihangUniversity,Beijing100083)Abstract:ThetheoryandmethodofWindowssystemareintroducedinthearticle.Theexampleofmaincontrolinterfaceandmulti2I/Omoduleisintroduced
3、inapplicationofmultithreadingtechnologyincomplexdataacquisitionsystembasedWindowssysteminthispaper.Theresultandprogramaregiveninmultithreadingtodesign.Keywords:multithreading;dataacquisition;userinterface共享同一内存空间,当进程退出时该进程所产生的线程都0引言会被强制退出并清除。线程可与属于同一进程的其它线基于Windows的数据采集系统中,在程序的设计时,程共享进程所拥有的全部
4、资源,但本身基本上不拥有系统一般采用查询法或中断法。查询法就是采用一个循环,依资源,只拥有一点在运行中必不可少的信息(如程序计数次采集各个数据通道。中断法是采用硬件中断的形器、一组寄存器和堆栈等)。如图1所示。式———先启动A/D转换,在转换结束时发出一中断信号———CPU响应采集卡的中断时读出所采集的数据。中断法的优点是资源能充分利用;但当系统的硬件中断资源紧张时,容易造成中断冲突;另外对于某些采集硬件,不支持中断工作方式。当系统需要同时对多个I/O模块控制时,上述2种方法都很难实现。采用基于多线程的设计方法不仅可以同时完成对多个I/O模块的实时控制,并能实现数据采集、存储、显
5、示实时快速更新,方便操作人员进行分析判断。1Windows多线程原理图1进程与线程Windows操作系统中,每个运行的应用程序都建立一个进程,每个进程由一个或多个执行线程组成。一个线程Windows多线程调度的机制为:(thread)是一条经过一个进程代码的执行路径。操作系统(1)运行一个线程,直到被中断或线程必须等待到某内部的抢先调度程序在活动线程之间分配CPU占用时个资源可用;(2)保存当前执行线程的描述表;间,由于CPU运行速度很快,使得这些线程好像都在同时(3)装入下一执行线程的描述表;运行,从而能极大地提高系统和应用程序的运行效率。(4)若存在等待被执行的线程,则重复上
6、述过程。线程是运行在进程空间内的,同一进程所产生的线程·102·李建宏等:多线程技术在复杂数据采集系统中的应用第5期2多线程的主程序设计3多线程的数据采集程序设计在数据采集系统软件设计要求:具有身份验证登陆界系统的数据采集部分由多个多路D/I、D/O、A/D、D/面,进入主操作界面后能够实时进行数据采集、数据存储、A模块组成,D/A模块每隔200ms在原来的信号的幅值分析,进度显示,人员手动操作提示以及单项采集时间的基础上增加0.05伏电压送出,然后通过D/I模块第M路精确显示等。单线程编写的主控界面在测试过程中,会出采集规定信号是否反馈正确,如反馈不正确则重复上一过现因为数据采
7、集和传输占用系统资源过多而导致主控测程,直到反馈正确出现时,启动A/D模块进行采样,如果第试界面的测试进度无法实时刷新,遇到测试经历的时间较N路信号在5.2~6.8V之间,则认为系统该处测试无故长时,测试步骤的实时显示部分无法显示当前的测试进障,如幅值不在该范围内,则认为系统故障,报错并跳出测度,操作者会误认为系统死机,此时如果操作者进行其他试程序。具体流程如图3所示。操作,系统出现无法做出及时响应。主控界面通过基于对话框MFC应用程序,调用有关Picture、Groupbox、