張堅林
(清遠市技師學院,廣東 清遠 511517)
計算機總線技術在測控系統(tǒng)中的應用
張堅林
(清遠市技師學院,廣東 清遠 511517)
測控系統(tǒng)的發(fā)展是社會進步與更新?lián)Q代的共同需求,是計算機技術在實際環(huán)境中的有效實踐。特別是總線技術的應用,極大地提高了測控系統(tǒng)的工作效率,加強了穩(wěn)定性,拓展了應用范圍,為新技術的推廣打下了良好的基礎。本文從測控系統(tǒng)中計算機總線的結構入手,分析了總線在數(shù)據(jù)驅動中的應用,以期能為總線技術的教學提供一些有益的經(jīng)驗。
測控系統(tǒng);計算機總線技術
隨著社會的不斷進步,企業(yè)單位及個人對于計算機軟件的需求不斷增長,導致軟件系統(tǒng)變得越來越復雜。不僅是應用規(guī)模十分龐大,軟件之間的交互也日益增多,使用單一對象的軟件開發(fā)模式已經(jīng)無法滿足這種需求。尤其是在測控系統(tǒng)中,對軟件開發(fā)的效率及成本控制有著更高的要求。因此,培養(yǎng)合格的軟件開發(fā)人才,成為當前所有高校的一項共識。目前來說,常見的方法主要是利用已有的構件模塊來進行設計,通過一個合理而規(guī)范的框架來使這些模塊進行集成,共同發(fā)揮作用從而形成一個新的應用。該應用吸取了各個模塊的高效穩(wěn)定的優(yōu)點,改進了操作復雜、信息落后的缺點,提高了軟件開發(fā)的效率,縮短了開發(fā)時間,節(jié)省了開發(fā)成本,并且在后期維護的工作中,也占有一定的優(yōu)勢,使其在測控領域中的應用中極具競爭力。該應用實現(xiàn)的關鍵點就是領域框架的設計,即基于總線技術的框架設計。本文通過分析計算機總線的結構,了解實現(xiàn)數(shù)據(jù)驅動所需要的基本模塊,并進行實踐應用,以期為計算機總線技術在測控系統(tǒng)中的應用積累一些經(jīng)驗,日后能夠為提高教學效率作出一些貢獻。
計算機總線就是指系統(tǒng)的硬件和軟件總線,硬件總線是計算機各個部件包括輸入輸出設備相互傳送信息的公共通道,其他類型的接口模塊,只要符合接入標準,都可以通過硬件總線接入到計算機系統(tǒng)當中,大大增強了系統(tǒng)的可拓展性。軟件總線則是虛擬的傳輸通道,其作用與硬件總線相同,都是進行數(shù)據(jù)信息的傳送。接入軟件總線時也需要使用標準的軟件接口,通過系統(tǒng)中各個模塊之間功能的集成,來實現(xiàn)信息的交換??梢詫⒖偩€結構想象為各個模塊之間的中介,模塊接入系統(tǒng)之后,信息的傳輸和交換都需要經(jīng)過總線結構,通常接入的模塊會采用COM或動態(tài)鏈接庫的形式,以便實現(xiàn)動態(tài)加載,提高硬件總線的處理效率。模塊加載完成之后,所有信息都要利用軟件總線來進行通訊,以完成模塊集成或互相協(xié)作的目的。軟件總線的加入能夠有效降低模塊之間的耦合度,一些二進制的模塊也能夠實現(xiàn)復用,極大地縮短了軟件開發(fā)的周期,提高了軟件處理復雜信息的能力,在一定程度增強了系統(tǒng)的可靠性。
想要實現(xiàn)數(shù)據(jù)驅動的軟件總線需要有四個基本模塊:
(1)通訊模塊,它可以協(xié)調所有接入系統(tǒng)中的模塊的信息交換過程,提高信息傳輸?shù)陌踩?,縮短信息處理的時間。
(2)構件管理模塊,它可以對每個接入系統(tǒng)的模塊進行管理,并按照一定的順序來安排系統(tǒng)對各個模塊的響應,以提高系統(tǒng)運行的效率。
(3)接口模塊,它負責鏈接各個模塊與系統(tǒng),只有符合標準的模塊才可以接入,進而實現(xiàn)模塊與總線、模塊與模塊之間的信息交互。
(4)任務調度模塊,它是實現(xiàn)數(shù)據(jù)驅動的主要模塊,能夠根據(jù)數(shù)據(jù)內容來調動系統(tǒng)進行相應的處理,從而實現(xiàn)數(shù)據(jù)的轉換與流動,即數(shù)據(jù)的驅動。
測控系統(tǒng)中的軟件系統(tǒng)通常分為三個層次:一是數(shù)據(jù)輸入層,即從所有接入系統(tǒng)的硬件設備中獲取數(shù)據(jù)信息,常見的數(shù)據(jù)輸入層設備有數(shù)據(jù)采集卡和通訊連接設備;二是數(shù)據(jù)處理層,將獲取到的數(shù)據(jù)信息進行處理,為下一步的數(shù)據(jù)輸出做好準備,例如濾波操作、故障檢測等;三是數(shù)據(jù)輸出層,主要是將經(jīng)過系統(tǒng)處理的數(shù)據(jù)進行存儲,或者輸出到其他終端以供用戶查詢。這個過程就是數(shù)據(jù)信息的通訊。將總線技術應用到測控系統(tǒng)中后,可以設計為基于數(shù)據(jù)驅動的方式進行工作:數(shù)據(jù)輸入層獲得數(shù)據(jù)后,會在軟件總線中形成數(shù)據(jù)流,驅動數(shù)據(jù)處理層和數(shù)據(jù)輸出層進行各種操作,例如接口模塊處理所有接入系統(tǒng)的功能模塊與軟件總線之間的信息交互,構件管理模塊根據(jù)系統(tǒng)處理任務的優(yōu)先級來分配各個功能模塊的動態(tài)加載及初始化,通訊模塊再次將經(jīng)過處理的信息集成為數(shù)據(jù)流,輸出到其他功能模塊中,從而實現(xiàn)信息的交互與通訊。這三個模塊之間的協(xié)作需要經(jīng)過任務調度模塊的統(tǒng)一安排才能實現(xiàn),包括數(shù)據(jù)流的輸入和輸出,都要經(jīng)過任務調度模塊的處理才能進行下一個步驟。
下面介紹這幾種模塊的應用:
(1)構件管理模塊
構件管理模塊負責各個功能構件的加載及初始化,換句話說,就是協(xié)調各個功能構件的運行,以保證順利接入總線并實現(xiàn)信息通訊,同時還能避免構件數(shù)量增加所導致的加載緩慢,提高總線的處理效率。其流程大概分成四步:功能構件接入總線、構件管理啟動響應、處理所有的構件信息、處理完畢準備接入任務調度模塊。其中,構件管理模塊的響應主要是從接入的構件中提取相應的初始化信息,然后將信息存儲到總線系統(tǒng)的內存中;直到所有的構件信息存儲完畢,響應才算結束。然后總線系統(tǒng)開始處理內存中的構件信息,并通過接口模塊將處理結果反饋到各個構件的數(shù)據(jù)庫中;各個構件根據(jù)這些經(jīng)過處理的信息來進一步完成自己的初始化,這時各個構件才算是真正地接入到了總線當中。與此同時,總線能夠直接接收到各個構件的信息請求,例如自己數(shù)據(jù)庫中可用的信息,需要其他構件提供的信息等,構件管理模塊將這些信息請求集成為任務表,為接下來的任務調動模塊的工作做好準備。
(2)任務調度模塊
任務調度模塊是軟件總線實現(xiàn)數(shù)據(jù)驅動的主要模塊,它能夠根據(jù)各個模塊提交的任務信息來進行合理的分析和處理,以實現(xiàn)系統(tǒng)運行效率的最大化。例如構件管理模塊在集成了信息請求的任務表之后,會提交到任務調度模塊中,任務調度模塊會根據(jù)任務表中的請求來驅動系統(tǒng)從其他模塊中提取相應的信息,或者調用相應的函數(shù)來處理數(shù)據(jù)。這就是任務調度模塊完成任務的過程。需要注意的一點是,每次提交任務表的時候,都會形成相應的數(shù)據(jù)流,處理該數(shù)據(jù)流的時候可能需要用到若干個其他構件的數(shù)據(jù)庫信息及處理函數(shù);然而在調用其他構件數(shù)據(jù)庫信息及處理函數(shù)的過程中,這些任務表又有可能會產(chǎn)生新的數(shù)據(jù)流。這就需要任務調度模塊將處理數(shù)據(jù)流時產(chǎn)生的任務表進行再次集成,然后提交任務表,并再次形成新的數(shù)據(jù)流;這種反復循環(huán)的模式驅動了系統(tǒng)進行連續(xù)工作,但是其中涉及到了大量的計算,需要一個優(yōu)秀的算法來支持模塊的運行。
算法過程如下:
任務調度模塊對構件管理模塊提交的任務表進行響應,從接入系統(tǒng)的各個功能構件中獲取信息請求,這些信息請求就是原始的數(shù)據(jù)流。這些原始數(shù)據(jù)流需要經(jīng)過接口管理模塊才能進入軟件總線當中,同時系統(tǒng)也可以做好處理這些數(shù)據(jù)流的準備。當這些數(shù)據(jù)流進入總線之后,任務調度模塊會將它們與之前構件管理模塊提交的任務表信息進行集成,形成新的數(shù)據(jù)流。然后新的數(shù)據(jù)流會進入線程池進行相應的分析和處理。如果在線程池處理數(shù)據(jù)的過程中,產(chǎn)生了新的數(shù)據(jù)流,即之前提到過的反復循環(huán)的任務模式,就需要將這些新產(chǎn)生的數(shù)據(jù)流返回到接口管理模塊中進行處理,得到系統(tǒng)響應后,然后再次進入線程池。
(3)線程池
線程池可以說是總線技術的主要技術,在測控系統(tǒng)中發(fā)揮了十分重要的作用。它的實質是對任務調度模塊提交的任務表進行有效的處理,由于不同的任務包含了不同的時效性,需要根據(jù)各個接入系統(tǒng)的模塊的請求進行判斷,然后設置對應的優(yōu)先級。例如數(shù)據(jù)庫和系統(tǒng)控制需要較高的優(yōu)先級,而數(shù)據(jù)存儲和信息通訊的優(yōu)先級就較低。這樣可以避免低優(yōu)先級的任務阻礙高優(yōu)先級的任務,合理分配系統(tǒng)資源,最大限度地提高系統(tǒng)處理信息的效率。在處理任務流的過程中,隨時會產(chǎn)生新的數(shù)據(jù)流,線程池需要將這些數(shù)據(jù)流經(jīng)過任務調度模塊返回接口模塊中,并再次啟動數(shù)據(jù)處理的響應。
線程池的設計如下:保證線程池中每個線程有一個FIFO的任務隊列,F(xiàn)IFO是英文First Input First Output的縮寫,意思就是先入先出,該任務隊列保證了數(shù)據(jù)處理的過程能夠按照順序來執(zhí)行,是一種傳統(tǒng)有效的處理機制。每個線程都有各自固定的優(yōu)先級,在處理任務流時,線程池會根據(jù)任務調度模塊的響應,將具有較高優(yōu)先級的任務加入到具有對應的線程當中,保證了任務的優(yōu)先處理。同時,當任務流較少時,線程池會安排一些任務隊列進入休眠狀態(tài),直到任務流增加或有較高優(yōu)先級任務時再進行喚醒。這樣不僅降低了系統(tǒng)的損耗,也大大提高了任務處理的效率。
總線技術的應用能夠很好地降低測控系統(tǒng)中各個模塊之間的耦合度,有利于系統(tǒng)的運行和維護,對系統(tǒng)軟件的復用達到了更高的層次:不僅縮短了軟件的開發(fā)周期,也提高了軟件的可靠性。特別是線程池概念的引入,使得系統(tǒng)處理任務流的效率大大提高,在一定程度上提高了測控系統(tǒng)的性能。
[1]李軍.基于軟件總線技術的測控系統(tǒng)框架實現(xiàn)[J].計算機測量與控制,2005,13(8):849-850.
[2]袁占亭.基于軟件總線技術的軟件工程方法[J].計算機工程與應用,2003,39(15):137-139.
TheApplication of Computer Bus Technology in the Measurement and Control System
Zhang Jianlin
(Qingyuan City Technician Institute,Qingyuan 511517,Guangdong)
The development of measurement and control system is the common demand of social progress and upgrading.It is the effective practice of the computer technology in the practical environment.Especially,the application of bus technology greatly improves the efficiency of the measurement and control system,strengthening the stability and expanding the application scope,laying a good foundation for the promotion of the new technologies.This paper introduces the structure of the computer bus in the measurement and control system,and analyzes in the application of bus in data driven,hoping to provide some experience for bus technology teaching.
measurement and control system;computer bus technology
G434
A
1008-6609(2017)03-0055-03
張堅林(1978-),男,廣東清遠人,教師,一級實習指導老師,研究方向為計算機教學。