技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于嵌入式操作系統(tǒng)的控制系統(tǒng)平臺(tái)設(shè)計(jì)

基于嵌入式操作系統(tǒng)的控制系統(tǒng)平臺(tái)設(shè)計(jì)

時(shí)間:2008-07-07 11:31:00來(lái)源:ronggang

導(dǎo)語(yǔ):?本文討論了嵌入式系統(tǒng)軟件的設(shè)計(jì)與實(shí)現(xiàn),旨在創(chuàng)建一個(gè)完整的嵌入式控制系統(tǒng)軟件平臺(tái)。該平臺(tái)將嵌入式實(shí)時(shí)操作系統(tǒng)、嵌入式組態(tài)軟件、軟PLC等有機(jī)地結(jié)合起來(lái),為嵌入式控制系統(tǒng)提供一個(gè)完整的運(yùn)行環(huán)境
摘 要: 隨著計(jì)算機(jī)和微電子技術(shù)的飛速發(fā)展,嵌入式系統(tǒng)(Embedded System)作為計(jì)算機(jī)應(yīng)用的一個(gè)重要領(lǐng)域,已深入到社會(huì)的方方面面。本文討論了嵌入式系統(tǒng)軟件的設(shè)計(jì)與實(shí)現(xiàn),旨在創(chuàng)建一個(gè)完整的嵌入式控制系統(tǒng)軟件平臺(tái)。該平臺(tái)將嵌入式實(shí)時(shí)操作系統(tǒng)、嵌入式組態(tài)軟件、軟PLC等有機(jī)地結(jié)合起來(lái),為嵌入式控制系統(tǒng)提供一個(gè)完整的運(yùn)行環(huán)境。 關(guān)鍵字: 軟件平臺(tái), 嵌入式, 控制系統(tǒng) 1 引言   近年來(lái),嵌入式系統(tǒng)在工業(yè)控制領(lǐng)域的應(yīng)用越來(lái)越廣泛。隨著嵌入式控制系統(tǒng)的發(fā)展,嵌入式控制系統(tǒng)將在一定程度上取代現(xiàn)有的工業(yè)PC控制系統(tǒng),在微型TDCS(集散控制系統(tǒng))、現(xiàn)場(chǎng)總線系統(tǒng)、PLC控制系統(tǒng)、智能化儀表等領(lǐng)域得到廣泛的應(yīng)用。由于其相對(duì)于大型的TDCS系統(tǒng)來(lái)說(shuō)具有較強(qiáng)的成本優(yōu)勢(shì)和靈活性,其應(yīng)用領(lǐng)域正在進(jìn)一步擴(kuò)大。本文建立了一套完整的嵌入式控制系統(tǒng)軟件平臺(tái),該平臺(tái)建構(gòu)于嵌入式硬件系統(tǒng)之上,包括嵌入式實(shí)時(shí)操作系統(tǒng)、軟PLC系統(tǒng)、嵌入式組態(tài)軟件等。   平臺(tái)包括運(yùn)行環(huán)境和開發(fā)環(huán)境兩部分。使用開發(fā)環(huán)境,用戶可以方便組態(tài)和二次開發(fā),而將開發(fā)重點(diǎn)集中到具體的控制系統(tǒng)應(yīng)用上,而諸如系統(tǒng)的軟件架構(gòu)設(shè)計(jì)、實(shí)時(shí)性保證、通用的控制系統(tǒng)軟件如網(wǎng)絡(luò)通信、控制算法等復(fù)雜而繁瑣的軟件工作,則交由平臺(tái)完成。 2平臺(tái)的總體框架   嵌入式控制系統(tǒng)平臺(tái)是以嵌入式實(shí)時(shí)操作系統(tǒng)為核心,包括硬件平臺(tái)、硬件驅(qū)動(dòng)、圖形庫(kù)運(yùn)行環(huán)境、實(shí)時(shí)數(shù)據(jù)庫(kù)管理與通信、人機(jī)界面、軟PLC、網(wǎng)絡(luò)通信、用戶應(yīng)用程序等。   嵌入式控制系統(tǒng)平臺(tái)總體框架如圖1所示。 [align=center] 圖1嵌入式控制系統(tǒng)軟件平臺(tái)總體框架[/align]   由圖1可知,嵌入式控制系統(tǒng)軟件平臺(tái)主要包括以下部分:  ?。?) 嵌入式硬件平臺(tái) (2) 嵌入式實(shí)時(shí)操作系統(tǒng) (3) 硬件驅(qū)動(dòng)程序  ?。?) 圖形庫(kù)與運(yùn)行環(huán)境 (5) 實(shí)時(shí)數(shù)據(jù)庫(kù)管理與通信 (6) 人機(jī)界面  ?。?) 軟PLC (8) 網(wǎng)絡(luò)通信 (9) 用戶應(yīng)用程序 3 嵌入式控制系統(tǒng)軟件平臺(tái)主要模塊的實(shí)現(xiàn)   嵌入式控制系統(tǒng)軟件平臺(tái)是個(gè)非常復(fù)雜的系統(tǒng),從總體框架圖可以看出平臺(tái)包括實(shí)時(shí)操作系統(tǒng)、實(shí)時(shí)數(shù)據(jù)庫(kù)管理與通信、圖形庫(kù)與運(yùn)行環(huán)境、人機(jī)界面等許多模塊,本章著重介紹嵌入式實(shí)時(shí)操作系統(tǒng)、實(shí)時(shí)數(shù)據(jù)庫(kù)管理與通信等模塊的實(shí)現(xiàn)。   3.1嵌入式Linux實(shí)時(shí)操作系統(tǒng)   Linux是一種能運(yùn)行于多種平臺(tái)、功能強(qiáng)大、源代碼公開、免費(fèi)的操作系統(tǒng),基于Linux開發(fā)一個(gè)開放的、標(biāo)準(zhǔn)的、高效廉價(jià)的實(shí)時(shí)操作系統(tǒng)是完全可行的。本文介紹的嵌入式控制系統(tǒng)軟件平臺(tái)就采用嵌入式Linux實(shí)時(shí)操作系統(tǒng),使用雙內(nèi)核RTAI解決方案。RTAI的實(shí)現(xiàn)方案類似于RT-Linux,是雙內(nèi)核系統(tǒng),即利用Linux內(nèi)核,同時(shí)增加一個(gè)實(shí)時(shí)內(nèi)核,兩個(gè)內(nèi)核共同工作。RTAI利用Linux提供的內(nèi)核模塊機(jī)制完成實(shí)時(shí)任務(wù),提供實(shí)時(shí)服務(wù)。模塊是內(nèi)核的一部分,但是沒有被編譯到內(nèi)核里去。模塊被編譯成一組目標(biāo)文件,根據(jù)需要,這些文件能夠被插入到正在運(yùn)行的內(nèi)核中,也可以從正在運(yùn)行的內(nèi)核中移去。RTAI實(shí)現(xiàn)的主要模塊有RTAI核心模塊、RTAI調(diào)度器模塊、RTAI先進(jìn)先出模塊、RTAI共享內(nèi)存模塊和LXRT模塊等。   3.1.1基于RTAI的Linux實(shí)時(shí)操作系統(tǒng)的實(shí)現(xiàn)   我們實(shí)現(xiàn)基于RTAI的Linux實(shí)時(shí)操作系統(tǒng)的過(guò)程是:在標(biāo)準(zhǔn)Linux的基礎(chǔ)上,打上RTAI的實(shí)時(shí)補(bǔ)丁包,根據(jù)特定硬件條件和運(yùn)行環(huán)境的要求進(jìn)行適當(dāng)?shù)呐渲?再對(duì)內(nèi)核進(jìn)行裁剪后編譯成一個(gè)支持實(shí)時(shí)性的內(nèi)核。   3.1.2基于RTAI-Linux的應(yīng)用程序開發(fā)   在編寫基于RTAI-Linux的應(yīng)用程序時(shí),根據(jù)實(shí)時(shí)系統(tǒng)的具體要求,將應(yīng)用程序分為實(shí)時(shí)任務(wù)和非實(shí)時(shí)任務(wù)。實(shí)時(shí)任務(wù)是實(shí)時(shí)模塊,作為L(zhǎng)inux核心可加載模塊運(yùn)行在核心態(tài)。一般地,定義init_module()函數(shù),它在執(zhí)行insmod命令裝載模塊時(shí)被調(diào)用,在該函數(shù)中一般是作一些初試化工作,并且啟動(dòng)實(shí)時(shí)任務(wù)。同樣的,還需要定義cleanup_module()函數(shù),它在執(zhí)行rmmod卸載模塊時(shí)被調(diào)用,在該函數(shù)中一般是做一些資源釋放工作。實(shí)時(shí)任務(wù)的設(shè)計(jì)應(yīng)該盡可能簡(jiǎn)單,僅包含那些有強(qiáng)實(shí)時(shí)要求的處理模塊,如實(shí)時(shí)數(shù)據(jù)采集、外部設(shè)備控制等。   非實(shí)時(shí)任務(wù)是普通的Linux進(jìn)程,它在用戶態(tài)運(yùn)行,運(yùn)行那些對(duì)實(shí)時(shí)要求不高的任務(wù),如數(shù)據(jù)處理、圖形顯示等。   實(shí)時(shí)任務(wù)(RTAI核心態(tài))并不能直接調(diào)用系統(tǒng)調(diào)用,它必須通過(guò)特定的方法和非實(shí)時(shí)任務(wù)(Linux進(jìn)程)進(jìn)行通信。它們可以通過(guò)共享內(nèi)存和FIFO等方法通信。   基于RTAI應(yīng)用程序的結(jié)構(gòu)圖如圖2所示。 [align=center] 圖2 RTAI應(yīng)用程序結(jié)構(gòu)圖[/align]   3.2實(shí)時(shí)數(shù)據(jù)庫(kù)管理與通信   本系統(tǒng)的實(shí)時(shí)數(shù)據(jù)庫(kù)管理著全局I/O數(shù)據(jù)。通過(guò)硬件驅(qū)動(dòng)程序,將數(shù)據(jù)采集,并放入到實(shí)時(shí)數(shù)據(jù)庫(kù)中,同時(shí),上層軟件從實(shí)時(shí)數(shù)據(jù)庫(kù)中獲得數(shù)據(jù)。   3.2.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)   實(shí)時(shí)數(shù)據(jù)庫(kù)與其他一般數(shù)據(jù)庫(kù)一樣,包含一組對(duì)象及其結(jié)構(gòu),由于目前對(duì)實(shí)時(shí)數(shù)據(jù)庫(kù)還沒有提出統(tǒng)一的數(shù)據(jù)模型,所以不同廠家開發(fā)的數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)都有很大差別。本系統(tǒng)的實(shí)時(shí)數(shù)據(jù)庫(kù),一個(gè)基本的數(shù)據(jù)對(duì)象為“數(shù)據(jù)”,一個(gè)數(shù)據(jù)包含若干信息,如數(shù)據(jù)名稱、數(shù)據(jù)類型、數(shù)據(jù)位置、數(shù)據(jù)長(zhǎng)度等。   考慮到數(shù)據(jù)的存取效率,程序運(yùn)行一開始,我們將在內(nèi)存區(qū)開辟一段緩沖區(qū),緩沖區(qū)中只存放數(shù)據(jù),如果緩沖區(qū)大小不夠,即緩沖區(qū)的數(shù)據(jù)較多,可以自動(dòng)擴(kuò)展緩沖區(qū)大小。實(shí)時(shí)數(shù)據(jù)存放在緩沖區(qū)時(shí),我們采取這種思想:如果不是bit型數(shù)據(jù),由于數(shù)據(jù)長(zhǎng)度都是字節(jié)的整數(shù)倍,存入緩沖區(qū)中以字節(jié)來(lái)進(jìn)行存儲(chǔ),該數(shù)據(jù)的長(zhǎng)度length是以字節(jié)來(lái)計(jì)算。如果是bit型數(shù)據(jù),存入緩沖區(qū)中,該數(shù)據(jù)的長(zhǎng)度length是以位來(lái)計(jì)算,接著再存儲(chǔ)一個(gè)實(shí)時(shí)數(shù)據(jù),若為非bit型數(shù)據(jù),則從下一個(gè)字節(jié)開始存放,即原來(lái)的bit型數(shù)據(jù)占用一個(gè)字節(jié),若為bit型數(shù)據(jù),根據(jù)此數(shù)據(jù)的長(zhǎng)度來(lái)判斷其存放位置,這里又分兩種情況,如果這兩個(gè)bit型數(shù)據(jù)的長(zhǎng)度沒有超過(guò)8位,則緊接著前一個(gè)bit型數(shù)據(jù)后存儲(chǔ)這個(gè)bit型數(shù)據(jù),如果兩個(gè)bit型數(shù)據(jù)的長(zhǎng)度超過(guò)8位,則從下一個(gè)字節(jié)開始存放,即原來(lái)的bit型數(shù)據(jù)占用一個(gè)字節(jié)。   3.2.2數(shù)據(jù)存取設(shè)計(jì)   為了存取方便,我們將所有的實(shí)時(shí)數(shù)據(jù)組成一個(gè)鏈表,鏈表的節(jié)點(diǎn)類型為上述的rtdb_data_t結(jié)構(gòu)。當(dāng)向?qū)崟r(shí)緩沖區(qū)中加入一條數(shù)據(jù)時(shí),就自動(dòng)會(huì)計(jì)算出數(shù)據(jù)存儲(chǔ)位置、長(zhǎng)度等信息,并在實(shí)時(shí)數(shù)據(jù)庫(kù)鏈表中加上一個(gè)節(jié)點(diǎn)。這樣,取實(shí)時(shí)數(shù)據(jù)就非常靈活和方便,如果知道實(shí)時(shí)數(shù)據(jù)的名稱,則可以遍歷鏈表得到數(shù)據(jù),如果知道數(shù)據(jù)的存儲(chǔ)位置和長(zhǎng)度,則可以利用實(shí)時(shí)數(shù)據(jù)庫(kù)提供的接口直接從緩沖區(qū)中獲得數(shù)據(jù),而不必遍歷鏈表,因?yàn)楸闅v鏈表需要花費(fèi)一些時(shí)間,這在實(shí)時(shí)性要求較高的本系統(tǒng)中不太適合,所以本系統(tǒng)常常采用后一種方法存取數(shù)據(jù)。實(shí)時(shí)數(shù)據(jù)庫(kù)鏈表結(jié)構(gòu)如圖3所示。 [align=center] 圖3實(shí)時(shí)數(shù)據(jù)庫(kù)鏈表結(jié)構(gòu)[/align]   3.3人機(jī)界面軟件   人機(jī)界面模塊是本系統(tǒng)重要的部分,它提供用戶與底層控制的交互平臺(tái)。   3.3.1人機(jī)界面數(shù)據(jù)庫(kù)   人機(jī)界面數(shù)據(jù)是指與界面相關(guān)的數(shù)據(jù),包括全局I/O數(shù)據(jù)和內(nèi)存數(shù)據(jù)。I/O數(shù)據(jù)指的是需要系統(tǒng)和其它應(yīng)用程序(包括I/O服務(wù)程序)交換數(shù)據(jù)的變量,與實(shí)時(shí)數(shù)據(jù)庫(kù)中的全局I/O數(shù)據(jù)相似。內(nèi)存變量是只在系統(tǒng)內(nèi)需要的變量,比如計(jì)算過(guò)程的中間變量。為了存取方便,我們使用鏈表來(lái)組織人機(jī)界面數(shù)據(jù),形成兩個(gè)鏈表:I/O數(shù)據(jù)鏈和內(nèi)存數(shù)據(jù)鏈。人機(jī)界面數(shù)據(jù)庫(kù)也是依據(jù)XML配置文件hmidb.xml來(lái)填充的,XML配置文件來(lái)自于開發(fā)環(huán)境。   3.2.2界面圖元   圖元是構(gòu)成畫面的基本元素,包括基本圖元,如線條、矩形、橢圓等,以及組合圖元,如油罐、閥門等,它們是由基本圖元組合而成。本系統(tǒng)提供了大量的圖元,這些圖元的繪制將調(diào)用特定系統(tǒng)下的平臺(tái)函數(shù),如Linux系統(tǒng)和Windows CE系統(tǒng),即對(duì)于用戶來(lái)說(shuō),不管使用哪個(gè)系統(tǒng),這一層是相同的。   描述人機(jī)界面需要一個(gè)XML配置文件,如hmiwidget.xml,這個(gè)配置文件是用戶在開發(fā)環(huán)境中設(shè)計(jì)界面時(shí)生成的。系統(tǒng)還支持圖元的變化,即動(dòng)態(tài)屬性,以及事件響應(yīng)。因此人機(jī)界面圖元還有動(dòng)態(tài)屬性和事件屬性,解析配置文件hmiwidget.xml時(shí),會(huì)分析這些屬性,并將其鏈起來(lái)。   在系統(tǒng)初始化時(shí),MiniGUI分為兩種情況:服務(wù)器(Server)和客戶端(Client)。這主要取決于全局變量mgServer的值,如果為TRUE,表示為服務(wù)端,如果為FALSE,表示為客戶端。我們將MiniGUI應(yīng)用程序名改為mginit,則該應(yīng)用程序?yàn)榉?wù)端,如果MiniGUI應(yīng)用程序名作為客戶端運(yùn)行,則必須先運(yùn)行MiniGUI提供的服務(wù)端程序mginit。 [align=center] 圖4 MiniGUI應(yīng)用程序流程[/align] 本文作者創(chuàng)新點(diǎn):   本文討論的嵌入式控制系統(tǒng)軟件平臺(tái)是一個(gè)復(fù)雜、龐大的系統(tǒng),而且每個(gè)組成部分其內(nèi)部結(jié)構(gòu)和實(shí)現(xiàn)也非常復(fù)雜。我在此課題中做了很多研究,提出了系統(tǒng)設(shè)計(jì)的框架,如今已經(jīng)實(shí)現(xiàn)部分為: 嵌入式Linux實(shí)時(shí)操作系統(tǒng)、實(shí)時(shí)數(shù)據(jù)庫(kù)管理與通信、圖形庫(kù)與運(yùn)行環(huán)境等,取得了優(yōu)秀的成果。 參考文獻(xiàn):   [1] 朱文凱,王衛(wèi)華,丁漢等.基于嵌入式PC的開放式PLC[J].機(jī)械與電子,2003(3):3-7   [2]李嘉.嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)的開發(fā)[J].自動(dòng)化儀表,2002,4 23(4):5-7   [3]須文波,張星燁,歐愛輝.基于RTAI-Linux的實(shí)時(shí)操作系統(tǒng)的分析與研究[J].山東電子,2003(2):21-23   [4] 陳瑋,周瑞祥,黎卓韜. 分布式制造資源集成系統(tǒng)軟件平臺(tái)研究[J]. 微計(jì)算機(jī)信息, 2006, 5-1: 309-311 作者簡(jiǎn)介:   何會(huì)民 (1967.3-), 男,漢族, 河北永年人,副教授,主要從事計(jì)算機(jī)體系結(jié)構(gòu)與嵌入式的教學(xué)與研究。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:VVVF變頻器高頻運(yùn)行的一種設(shè)...

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)