18基于LabVIEW的實時控制與仿真技術(shù)應(yīng)用研究
本文關(guān)鍵詞:基于LabVIEW的實時控制與仿真技術(shù)應(yīng)用研究,由筆耕文化傳播整理發(fā)布。
南京航空航天大學(xué)碩士學(xué)位論文;第三章基于RTX和LabVIEW的實時控制研究;系統(tǒng)的實時性是指在一個確定的時間里,對外部產(chǎn)生的;Windows系統(tǒng)是一個通用的操作系統(tǒng),時系統(tǒng)中;不具有實時性,但它擁有大量的熟悉本系統(tǒng)的開發(fā)支持;本章通過對Windows環(huán)境下實時控制的幾種方法;3.1Windows環(huán)境下實時控制的幾種方法;3.1.1Windows系統(tǒng)實時性的
南京航空航天大學(xué)碩士學(xué)位論文
第三章 基于RTX和LabVIEW的實時控制研究
系統(tǒng)的實時性是指在一個確定的時間里,對外部產(chǎn)生的事件做出響應(yīng),并在確定的時間里完成這種響應(yīng)及處理。實時系統(tǒng)并非是指“快速”的系統(tǒng),它與非實時系統(tǒng)的本質(zhì)區(qū)別就在于實
Windows系統(tǒng)是一個通用的操作系統(tǒng),時系統(tǒng)中的任務(wù)都有時間限制,從而使系統(tǒng)具有確定性[37]。
不具有實時性,但它擁有大量的熟悉本系統(tǒng)的開發(fā)支持人員和最終用戶,并以高性價比被越來越廣泛地應(yīng)用在各種控制系統(tǒng)。LabVIEW是一種基于Windows平臺的開發(fā)環(huán)境,它很好地發(fā)揮了Windows的出色的多任務(wù)性能和友好的圖形化界面的特點。
本章通過對Windows環(huán)境下實時控制的幾種方法的分析,重點研究基于RTX的實時控制系統(tǒng)的原理,構(gòu)建一種基于RTX和LabVIEW實時控制系統(tǒng),它可以利用RTX擴展Windows的實時性,利用LabVIEW開發(fā)人機界面,最后用串口通信實例、數(shù)據(jù)采集實例及PID控制實例對該系統(tǒng)的實時性進行驗證。
3.1 Windows環(huán)境下實時控制的幾種方法
3.1.1 Windows 系統(tǒng)實時性的固有缺陷
計算機技術(shù)的飛速發(fā)展已使PC機在實時數(shù)據(jù)采集和控制領(lǐng)域占據(jù)了越來越重要的地位。在PC操作系統(tǒng)中,Windows操作系統(tǒng)已成為通用的桌面操作系統(tǒng),應(yīng)用范圍不僅僅在于個人用戶級,同時也廣泛地應(yīng)用在工業(yè)、軍事等領(lǐng)域。自1995年Microsoft公司推出Windows 95,獨立于Dos操作系統(tǒng)以來,就在圖形界面、搶先式多任務(wù)和多線程、即插即用,簡化用戶配置硬件操作等方面具有高性能的人性化的特點 [38]。今天的Windows XP在繼承了以前版本的優(yōu)點上,又做了一些細微的修改。集成了防火墻、媒體播放器以及它與網(wǎng)絡(luò)服務(wù)的緊密結(jié)合。是目前使用率最高的一個操作系統(tǒng)。鑒于以上優(yōu)點,Windows系統(tǒng)也正逐漸應(yīng)用在工業(yè)自動化、航空航天控制等高端領(lǐng)域。
Windows XP作為控制系統(tǒng)開發(fā)平臺,具有如下優(yōu)點[39-40]:
z 高性價比;
z 可運行多種應(yīng)用程序;
z 支持多種開發(fā)工具;
z 豐富的Win32應(yīng)用程序接口;
z 大量的熟悉本系統(tǒng)的開發(fā)支持人員和最終用戶。
25
基于LabVIEW的實時控制與仿真技術(shù)應(yīng)用研究
Win32應(yīng)用程序運行在Windows用戶層級別,而所有硬件管理都在核心層,Win32應(yīng)用程序不能直接訪問硬件,必須通過系統(tǒng)服務(wù)調(diào)用來獲得核心層級別的訪問[41]。這就限制了Windows 系統(tǒng)的實時性,也造成了利用其開發(fā)實時控制系統(tǒng)的局限性。Windows XP的系統(tǒng)結(jié)構(gòu)如圖
3.1
圖3.1Windows XP系統(tǒng)體系結(jié)構(gòu)圖
WindowsXP系統(tǒng)通過這樣的體系很好地屏蔽了底層的操作,對于系統(tǒng)的安全有重要的作用,但這些機制同樣也限制了用戶應(yīng)用程序的權(quán)限。為了滿足服務(wù)器和桌面應(yīng)用的可靠性,Windows XP分兩個階段處理中斷:首先,通過非常短的中斷服務(wù)程序(ISR)進行一些基本的響應(yīng),然后由一個DPC(延遲過程)調(diào)用剩余的任務(wù)。雖然ISR按照優(yōu)先級,以搶占方式運行,但DPC卻是按照排隊方式運行,這樣使得WindowsXP對異步事件的響應(yīng)不能滿足時間期限。 另外,WindowsXP是一個多任務(wù)系統(tǒng),操作系統(tǒng)是按照一定的時間片大小將CPU處理器的控制權(quán)分配給各個線程,而每個線程的優(yōu)先級決定了時間片的優(yōu)先分配順序,但其線程調(diào)度存在優(yōu)先級倒置,即優(yōu)先級較低的線程能阻止較高的優(yōu)先級線程的運行,這樣違背了實時系統(tǒng)的搶占調(diào)度原則。并且WindowsXP的線程優(yōu)先級太少,這對一個復(fù)雜的實時系統(tǒng)來說是不可想象的。
總的來說,WindowsXP系統(tǒng)不能成為一個實時操作系統(tǒng),主要有以下幾點原因:
z 線程優(yōu)先級太少;
z 不確定的線程調(diào)度機制;
z 優(yōu)先級倒置,尤其體現(xiàn)在中斷處理中。
26
南京航空航天大學(xué)碩士學(xué)位論文
雖然Windows系統(tǒng)在實時性方面有著固有缺陷,但它具有開發(fā)控制系統(tǒng)的諸多優(yōu)勢。目前,在Windows平臺上,實現(xiàn)實時控制系統(tǒng)的方法主要有三類:
(1)基于多媒體定時器的實時控制系統(tǒng);
(2)基于智能板卡或?qū)S糜布膶崟r控制系統(tǒng);
(2)基于RTX的實時控制系統(tǒng)。
3.1.2 基于多媒體定時器的實時控制系統(tǒng)
實時計算機控制系統(tǒng)和普通計算機系統(tǒng)最大的不同在于實時計算機控制系統(tǒng)必須與外部世界相互作用,外部世界由工作環(huán)境、設(shè)備硬件和在其中發(fā)生的事件表示。系統(tǒng)在響應(yīng)這些事件時所進行的判斷、推理和計算,不僅要保證產(chǎn)生正確的結(jié)果,而且要保證在確定的時間產(chǎn)生這些結(jié)果[32]。
對于以Dos為平臺的控制系統(tǒng),可以通過對硬件直接操作而得到精確的采樣時間。而由于Windows系統(tǒng)是搶占式多任務(wù)操作系統(tǒng),系統(tǒng)掌管了全部的硬件資源,用戶無法直接同硬件打交道,所以Windows的定時機制都是基于操作系統(tǒng)提供的API函數(shù)來進行的。主要有兩種方式:
(1)系統(tǒng)計時器。
這個定時器是IBM PC硬件和ROM BIOS構(gòu)造的定時器邏輯的一個相當(dāng)簡單的擴展。PC的ROM初始化Intel8259定時器芯片來產(chǎn)生硬件中斷08H。這個中斷有時稱為"定時器滴答"中斷。中斷08H每隔54.925毫秒產(chǎn)生一次,或大約每秒18.2次。BIOS使用中斷08H更新存于BIOS數(shù)據(jù)區(qū)的時間值。因此,這個定時器在Windows中的最大缺點是計時器的最大分辨率是55毫秒。此外,這個計時器消息的優(yōu)先級太低,只有在所有的消息(除了消息WM_PAINT)被處理后才能被處理。因此函數(shù)SetTimer只能用于一般的定時,它遠遠不能滿足實時數(shù)據(jù)采集的要求[42]。
(2)多媒體定時器(Multimedia Timer)。
它是在Win95之后引入的,它使用單獨的線程,來調(diào)用回調(diào)函數(shù)。其優(yōu)先級很高,每隔一定時間就發(fā)送一個消息而不管其它消息是否執(zhí)行完。
利用多媒體定時器的基本功能,可以通過兩種方法實現(xiàn)精確定時:
z 使用timeGetTime()函數(shù),該函數(shù)定時精度為ms級,返回從Windows啟動開始所經(jīng)過
的時間。由于使用該函數(shù)是通過查詢的方式進行定時控制的,所以,應(yīng)該建立定時循環(huán)
來進行定時事件的控制。
z 使用timeSetEvent()函數(shù),該函數(shù)原型如下:
MMRESULT timeSetEvent(UINT uDelay,UINT uResolution,LPTIMECALLBACK
lpTimeProc, DWORD dwUser,UINT fuEvent);
該函數(shù)的參數(shù)說明如下:
27
基于LabVIEW的實時控制與仿真技術(shù)應(yīng)用研究
z uDelay表示延遲時間;
z uResolution表示時間精度,在Windows中缺省值為1ms;
z lpTimeProc表示回調(diào)函數(shù),為用戶自定義函數(shù),定時調(diào)用;
z dwUser表示用戶提供的回調(diào)數(shù)據(jù);
z fuEvent為定時器的事件類型,TIME_ONESHOT表示執(zhí)行一次;
z TIME_PERIODIC表示周期性執(zhí)行。具體應(yīng)用時,可以通過調(diào)用timeSetEvent()函數(shù),,
將需要周期性執(zhí)行的任務(wù)定義在lpTimeProc回調(diào)函數(shù)中(如:定時采樣、控制等),從而完成所需處理的事件。需要注意的是:任務(wù)處理的時間不能大于周期間隔時間。另外,在定時器使用完畢后,應(yīng)及時調(diào)用timeKillEvent()將之釋放。
對于現(xiàn)在的Intel CPU來說,多媒體定時器的最小定時精度通常都可以達到1毫秒[43]。但在工程實踐中,5ms以下的精確定時難以保證,只能滿足對變化不劇烈的信號的實時數(shù)據(jù)采集。
Windows的多任務(wù)搶占式的運行機制以及多媒體定時器的應(yīng)用,為Windows下實現(xiàn)一般實時控制系統(tǒng)提供了可能。但由于多媒體定時器的線程仍然運行在Windows用戶層,線程較少,定時任務(wù)也不能太多,所以對于系統(tǒng)任務(wù)比較多或系統(tǒng)的定時周期比較短的實時控制系統(tǒng),多媒體定時器就無能為力了。
3.1.3 基于智能板卡或?qū)S糜布膶崟r控制系統(tǒng)
對于比較復(fù)雜或?qū)崟r性要求較高的實時控制系統(tǒng)中,如航空發(fā)動機控制系統(tǒng)、飛行控制系統(tǒng),可采用智能板卡或?qū)S糜布䜩頋M足實時性的要求。智能板卡或?qū)S糜布隙紟в懈咝阅艿膯纹瑱C或DSP(數(shù)字信號處理)芯片作為中央處理器來采集信號或進行高速運算[43-44]。
板卡驅(qū)動實現(xiàn)了和Win32的接口,在Windows環(huán)境下開發(fā)應(yīng)用程序部分,使用PC機作為上位機來進行數(shù)據(jù)顯示或監(jiān)控。這類方法的實時性好,但需要編寫底層驅(qū)動程序,需要了解系統(tǒng)核心層的知識,編寫程序復(fù)雜,開發(fā)周期長,通用性不好。NI公司的RT系列實時板卡都采用這種方式來定制自己的實時系統(tǒng)[45]。
采用DSP等專用硬件的方法來構(gòu)建實時控制系統(tǒng),需要根據(jù)實際情況定制自己的硬件系統(tǒng),這類方法通用性同樣不強,成本高,硬件及嵌入式軟件開發(fā)需要專業(yè)知識支持,適合于實時性要求特別高的特殊場合。
3.1.4 基于RTX的實時控制系統(tǒng)
由前文對Windows系統(tǒng)實時性固有缺陷的分析,不難發(fā)現(xiàn),Windows平臺的許多缺點都是由于其線程模型和調(diào)度機制,如果解決了這個問題,那么就可以彌補其實時性比較弱的劣勢。 28
南京航空航天大學(xué)碩士學(xué)位論文
為此,國外在上世紀(jì)90年代中后期對Windows實時擴展技術(shù)已開始了深入的研究,并在一些重要的期刊上就有關(guān)于此方面的文章發(fā)表[46]。微軟也贊助了關(guān)于Windows XP實時性的研究,
但對于Windows XP這種面向廣闊并在應(yīng)用程序事先聲明其資源需要方面取得了一些成果 [47]。
市場的操作系統(tǒng),為了完整其功能而加入實時性系統(tǒng),導(dǎo)致它使用起來較復(fù)雜,是不可行的。這意味著使Windows XP具有實時性的最好方法是通過對原產(chǎn)品的擴展或者由插件實現(xiàn)。美國Venturcom 公司、Ardence公司、Nematron公司以及Radisys公司都在此取得了成果。 其中,Ardence公司的RTX(Real-time-eXtension)是目前Windwos平臺的唯一純軟件的硬實時擴展子系統(tǒng),在國內(nèi)應(yīng)用較廣。
Windows具有實時性的不足,但它同時也提供了豐富的設(shè)備驅(qū)動模型,可定制的硬件抽象層(Hardware Abstraction Layer ,HAL)模型,這種開放的、可擴展的環(huán)境為其功能上的補充提供了可能。Ardence RTX利用Windows的這個特點,按照微軟Windows XP驅(qū)動開發(fā)工具(Driver Development Kit,DDK)和HAL模型對Windows的實時功能進行了擴展,具體體現(xiàn)在以下幾個方面:
z 通過修改WindowsHAL,增加了Real Time HAL Extension,簡稱rtHAL,它提供了對攔截中斷和直接訪問硬件的支持。
z 利用DDK,開發(fā)了一套完全獨立于Windows內(nèi)核的中斷處理、線程調(diào)度、事件同步機制。
z RTX的優(yōu)先級高于Windows的內(nèi)核。當(dāng)有硬件中斷到來時,rtHAL會首先攔截該中斷,交給實時子系統(tǒng)處理,如果實時子系統(tǒng)不處理該中斷,中斷會被交給Windows內(nèi)核去處理?梢娡ㄟ^rtHAL、獨立的中斷處理、線程調(diào)度、事件同步機制及優(yōu)先執(zhí)行,使得RTX能夠真正避開Windows內(nèi)核,實現(xiàn)實時處理。RTX和Windows的關(guān)系如圖3.2所示[48-51]:
29
下載地址:18基于LabVIEW的實時控制與仿真技術(shù)應(yīng)用研究.Doc
【】最新搜索
基于LabVIEW的實時控制與仿真技術(shù)應(yīng)用研究
2016澳洲墨爾本大學(xué)語言學(xué)
指令大全
抗菌藥物84 1476
山東省泰安市泰山區(qū)2014-2015學(xué)年七年級上學(xué)期期中學(xué)情
行政部2011年度工作計劃
村級雙聯(lián)會議記錄
張藝謀電影風(fēng)格及其形成原因分析01
十大土元品牌排行榜 土元哪個牌子好61
16關(guān)于美俄海洋戰(zhàn)略的認識
本文關(guān)鍵詞:基于LabVIEW的實時控制與仿真技術(shù)應(yīng)用研究,由筆耕文化傳播整理發(fā)布。
本文編號:222447
本文鏈接:http://sikaile.net/kejilunwen/hangkongsky/222447.html