技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > 嵌入式系統(tǒng)在工業(yè)控制中的應(yīng)用

嵌入式系統(tǒng)在工業(yè)控制中的應(yīng)用

時(shí)間:2008-07-24 10:08:00來(lái)源:ronggang

導(dǎo)語(yǔ):?本文主要利用Linux系統(tǒng)來(lái)具體實(shí)現(xiàn)一個(gè)嵌入式工業(yè)控制系統(tǒng)。同時(shí),所討論的實(shí)時(shí)系統(tǒng)的研究,為在一個(gè)系統(tǒng)中同時(shí)支持多種實(shí)時(shí)調(diào)度方法提供了可能性
摘 要:工業(yè)控制是嵌入式系統(tǒng)的應(yīng)用的重要領(lǐng)域,Linux 系統(tǒng)是嵌入式系統(tǒng)開(kāi)發(fā)的有力工具,本文主要利用Linux系統(tǒng)來(lái)具體實(shí)現(xiàn)一個(gè)嵌入式工業(yè)控制系統(tǒng)。同時(shí),所討論的實(shí)時(shí)系統(tǒng)的研究,為在一個(gè)系統(tǒng)中同時(shí)支持多種實(shí)時(shí)調(diào)度方法提供了可能性。 關(guān)鍵字:實(shí)時(shí)性 嵌入式系統(tǒng) 工業(yè)控制 1. 前言   嵌入式技術(shù)是21世紀(jì)最有生命力的新技術(shù)之一,目前已經(jīng)廣泛應(yīng)用于社會(huì)生活的各個(gè)方面。嵌入式系統(tǒng)的應(yīng)用與開(kāi)發(fā)則是當(dāng)今計(jì)算機(jī)行業(yè)發(fā)展的一個(gè)熱點(diǎn)。現(xiàn)今嵌入式軟件的應(yīng)用與開(kāi)發(fā)的領(lǐng)域主要有:國(guó)防、移動(dòng)通信、電子、辦公自動(dòng)化、機(jī)/車(chē)頂盒、掌上電腦(或PDA)、手機(jī)軟件、工業(yè)控制、信息家電等領(lǐng)域。工業(yè)等各部門(mén)對(duì)智能控制需求的不斷增長(zhǎng),對(duì)嵌入式微處理器的實(shí)時(shí)性、運(yùn)算速度、可擴(kuò)充能力、系統(tǒng)可靠性、功耗和集成度等方面提出了更高的要求。 2. 嵌入式系統(tǒng)與工業(yè)控制網(wǎng)絡(luò)   美國(guó)電氣工程師協(xié)會(huì)(IEE)的一個(gè)定義:嵌入式系統(tǒng)是用來(lái)控制或監(jiān)視機(jī)器、裝置或工廠(chǎng)等大規(guī)模系統(tǒng)的設(shè)備。嵌入式系統(tǒng)通常具有如下特性:  ?。?)通常只執(zhí)行特定功能;是在特定領(lǐng)域內(nèi)完成特定的功能的專(zhuān)用計(jì)算機(jī)系統(tǒng),比如,它可用于一種工業(yè)儀器,也可能用于航天設(shè)備中的某個(gè)電子裝置。這一點(diǎn)與一般桌上型辦公設(shè)備或數(shù)據(jù)庫(kù)系統(tǒng)有很大區(qū)別。   (2)嵌入式系統(tǒng)中硬件配置一般是根據(jù)系統(tǒng)的性能指標(biāo)來(lái)確定的;除了附加的調(diào)試接口外,沒(méi)有多余的硬件設(shè)備,一般是以計(jì)算機(jī)周邊器件構(gòu)成核心,其規(guī)模可在大范圍內(nèi)變化。如從8051芯片到X86芯片。而且嵌入式系統(tǒng)中是軟件和硬件緊密結(jié)合。   (3)嚴(yán)格的時(shí)序和穩(wěn)定性要求;這是因?yàn)樵跈C(jī)器控制的大型系統(tǒng)中,程序運(yùn)行稍有差錯(cuò)則可能使得整個(gè)系統(tǒng)失去控制,甚至釀成災(zāi)害。而且系統(tǒng)一般不進(jìn)行交互動(dòng)作,所以要求系統(tǒng)的自動(dòng)運(yùn)行要穩(wěn)定、糾錯(cuò)能力強(qiáng),可靠運(yùn)行。   (4)具有實(shí)時(shí)性;因?yàn)樵诠I(yè)控制應(yīng)用中大多數(shù)是屬于過(guò)程控制,這些領(lǐng)域?qū)ο到y(tǒng)要求是必須具有實(shí)時(shí)性,而且還要求有實(shí)時(shí)性的嵌入式操作系統(tǒng)。  ?。?)嵌入式系統(tǒng)的開(kāi)發(fā)一般采用宿主機(jī)/目標(biāo)機(jī)模式;在某個(gè)環(huán)境下調(diào)試好目標(biāo)機(jī)器的軟件和硬件,才能使目標(biāo)機(jī)器離開(kāi)開(kāi)發(fā)環(huán)境,從而獨(dú)立運(yùn)行。   嵌入式系統(tǒng)是電腦軟件與硬件的綜合體,它是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁剪,從而能夠適應(yīng)應(yīng)用系統(tǒng),對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。它將操作系統(tǒng)和功能軟件集成于計(jì)算機(jī)硬件系統(tǒng)之中,簡(jiǎn)單的說(shuō)就是系統(tǒng)的應(yīng)用軟件與系統(tǒng)的硬件一體化,類(lèi)似于BIOS的工作方式,具有軟件代碼小,高度自動(dòng)化,響應(yīng)速度快等特點(diǎn)。特別適合于要求實(shí)時(shí)的和多任務(wù)的體系。   工業(yè)控制網(wǎng)絡(luò)是由傳感器、執(zhí)行機(jī)構(gòu)、顯示和數(shù)據(jù)記錄設(shè)備等組成,用于監(jiān)視和控制電氣設(shè)備的系統(tǒng)。通常除遇到系統(tǒng)不能自愈的故障需要人工干預(yù)排除外,均應(yīng)有自動(dòng)實(shí)現(xiàn)監(jiān)控功能。在工業(yè)應(yīng)用中,控制網(wǎng)絡(luò)可以用于監(jiān)視設(shè)備的狀態(tài)、調(diào)節(jié)轉(zhuǎn)速和流量等、采集模擬輸入量、順序開(kāi)關(guān)/起停設(shè)備、與主控機(jī)通信并在顯示器或?qū)iT(mén)定制的顯示設(shè)備上顯示各參量的大小和狀態(tài)。由于工業(yè)控制系統(tǒng)特別強(qiáng)調(diào)可靠性和實(shí)時(shí)性??刂凭W(wǎng)絡(luò)數(shù)據(jù)通信以引發(fā)物質(zhì)或能量的運(yùn)動(dòng)為最終目的。用于測(cè)量與控制的數(shù)據(jù)通信的主要特點(diǎn)是:允許對(duì)實(shí)時(shí)的事件進(jìn)行驅(qū)動(dòng)通信,具有很高的數(shù)據(jù)完整性。   智能儀表的出現(xiàn)推動(dòng)著工業(yè)控制網(wǎng)絡(luò)的發(fā)展,新一代的工業(yè)控制網(wǎng)絡(luò)呼喚功能更強(qiáng)大的儀表和控制器的出現(xiàn),面向工業(yè)控制的嵌入式系統(tǒng)應(yīng)勢(shì)而生。 3. 系統(tǒng)實(shí)現(xiàn)   系統(tǒng)的實(shí)現(xiàn)包括硬件實(shí)現(xiàn)和軟件實(shí)現(xiàn)。   硬件實(shí)現(xiàn)   系統(tǒng)結(jié)構(gòu)框圖如圖1。兩個(gè)串行通信接口可以采用RS232。用以采集來(lái)自其他設(shè)備的遠(yuǎn)程的數(shù)據(jù),然后由ARM微處理器進(jìn)行處理,處理后的結(jié)果通過(guò)以太網(wǎng)接口分發(fā)給其他設(shè)備。為了調(diào)試的方便,F(xiàn)lash存儲(chǔ)器使用了兩個(gè),512K的用于存儲(chǔ)引導(dǎo)裝載程序,2M的用來(lái)承載包含應(yīng)用程序的操作系統(tǒng)映像。此種設(shè)計(jì)方式可以使在啟動(dòng)加載方式下,調(diào)試不同操作系統(tǒng)的應(yīng)用程序時(shí),只需要簡(jiǎn)單的更換包含對(duì)應(yīng)的操作系統(tǒng)的引導(dǎo)程序的Flash芯片就能做到。為了滿(mǎn)足大多數(shù)情況的需要,內(nèi)存選用容量為16M的16bit的芯片。10M以太網(wǎng)接口的設(shè)計(jì)是考慮到通用性。為了調(diào)試的方便,這里使用了一個(gè)JTAG(國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議)接口,可以訪(fǎng)問(wèn)其他系統(tǒng)資源,它還可以跟仿真器相連。USB接口分為兩個(gè)主機(jī)接口和一個(gè)設(shè)備接口。LED用來(lái)在調(diào)試和使用過(guò)程中的顯示數(shù)據(jù)結(jié)果。 [align=center] 圖1 系統(tǒng)硬件結(jié)構(gòu)圖[/align]   軟件實(shí)現(xiàn)   軟件的實(shí)現(xiàn)包括兩個(gè)方面,一個(gè)是系統(tǒng)的內(nèi)核,另一個(gè)是設(shè)備的驅(qū)動(dòng)程序。  ?。?)首先編譯 Kernel的源代碼:   執(zhí)行下列命令:   cd /usr/src/linux   make mrproper   make xconfig   會(huì)出現(xiàn)一個(gè)界面,可以根據(jù)自己的實(shí)際需要來(lái)選擇。在編譯內(nèi)核的過(guò)程中,最繁雜的事情就是這步配置工作。在配置過(guò)程中,大部分選項(xiàng)可以使用其缺省值,只有小部分需要根據(jù)用戶(hù)不同的需要選擇。選擇的原則是將與內(nèi)核其它部分關(guān)系較遠(yuǎn)且不經(jīng)常使用的部分功能代碼編譯成為可加載模塊,有利于減小內(nèi)核的長(zhǎng)度,減小內(nèi)核消耗的內(nèi)存,簡(jiǎn)化該功能相應(yīng)的環(huán)境改變時(shí)對(duì)內(nèi)核的影響;不需要的功能就不要選;與內(nèi)核關(guān)系緊密而且經(jīng)常使用的部分功能代碼直接編譯到內(nèi)核中。在選項(xiàng)Code maturity level options、Loadable module support、Processor type and features、Networking options、Network device support、ISDN subsystem、Character devices等分別選擇適合自己所需要的項(xiàng)目。File systems建議選擇相應(yīng)的項(xiàng)目,為了以后擴(kuò)充使用。   (2)為每個(gè)設(shè)備編寫(xiě)程序   Linux系統(tǒng)的設(shè)備驅(qū)動(dòng)程序完成的主要工作是:  ?、?對(duì)每個(gè)硬件設(shè)備進(jìn)行初始化和釋放;   ② 數(shù)據(jù)傳輸,將數(shù)據(jù)從內(nèi)核傳到硬件設(shè)備,或者從硬件設(shè)備傳到內(nèi)核,讀取應(yīng)用程序傳送給硬件設(shè)備的數(shù)據(jù)和回送應(yīng)用程序請(qǐng)求的數(shù)據(jù);  ?、?檢測(cè)和處理硬件設(shè)備出現(xiàn)的錯(cuò)誤和異常;   Linux系統(tǒng)的設(shè)備驅(qū)動(dòng)程序的主要組成部分有:  ?、?自動(dòng)配置和初始化子程序;  ?、?服務(wù)于I/O請(qǐng)求的子程序;  ?、?中斷服務(wù)子程序;   根據(jù)所選擇的設(shè)備和設(shè)備所要完成的功能分別進(jìn)行編寫(xiě)。 4. 實(shí)時(shí)性解決辦法   實(shí)時(shí)操作系統(tǒng)是實(shí)時(shí)控制系統(tǒng)和實(shí)時(shí)處理系統(tǒng)的統(tǒng)稱(chēng)。所謂實(shí)時(shí)就是要求系統(tǒng)及時(shí)響應(yīng)外部條件的要求,在規(guī)定的時(shí)間內(nèi)完成對(duì)該事件的處理,并控制所有實(shí)時(shí)設(shè)備和實(shí)時(shí)任務(wù)協(xié)調(diào)一致地運(yùn)行。實(shí)時(shí)控制系統(tǒng)實(shí)質(zhì)上是過(guò)程控制系統(tǒng)。實(shí)時(shí)操作系統(tǒng)首先考慮的是系統(tǒng)的實(shí)時(shí)性和可靠性。實(shí)時(shí)處理系統(tǒng)主要指對(duì)信息進(jìn)行及時(shí)的處理。   高實(shí)時(shí)性是許多工業(yè)控制網(wǎng)絡(luò)的基本要求,Linux 在這樣的環(huán)境下還存在許多缺陷。它不是一個(gè)真正的實(shí)時(shí)操作系統(tǒng),內(nèi)核不支持事件優(yōu)先級(jí)和搶占實(shí)時(shí)特性。那么,要將 Linux 系統(tǒng)改造成為適用于工業(yè)控制領(lǐng)域內(nèi)的嵌入式系統(tǒng)必須解決一個(gè)重要的問(wèn)題——實(shí)時(shí)性。所以,在開(kāi)發(fā)嵌入式 Linux 的過(guò)程中,首要問(wèn)題是擴(kuò)展 Linux 的實(shí)時(shí)性能。目前把Linux改造為嵌入式實(shí)時(shí)系統(tǒng)的方法有兩個(gè):一個(gè)方法是對(duì)Linux系統(tǒng)的內(nèi)核進(jìn)行改造;另一個(gè)方法是在 Linux 系統(tǒng)底層添加一個(gè)硬件抽象層,也就是添加一個(gè)實(shí)時(shí)內(nèi)核進(jìn)行改造。其目的都是為了保證系統(tǒng)會(huì)首先執(zhí)行優(yōu)先級(jí)更高的實(shí)時(shí)進(jìn)程然后才是優(yōu)先級(jí)低的普通進(jìn)程,并且防止別的普通進(jìn)程打斷實(shí)時(shí)進(jìn)程的運(yùn)行。   為達(dá)到系統(tǒng)實(shí)時(shí)性的要求,本文對(duì)Linux 內(nèi)核進(jìn)行改造的方法。改造方法主要是通過(guò)截取硬件底層中斷,在硬件上實(shí)現(xiàn)一個(gè)抽象層,通過(guò)抽象層來(lái)傳遞和控制 Linux 中斷。目前,為滿(mǎn)足實(shí)時(shí)性而進(jìn)行的系統(tǒng)改造主要集中在雙內(nèi)核、中斷和時(shí)鐘機(jī)制、內(nèi)核狀態(tài)調(diào)整、進(jìn)程間通信方式的調(diào)整和進(jìn)程搶占式調(diào)度算法這五個(gè)方面:   第一, 雙內(nèi)核技術(shù)   這種方法對(duì)于支持工業(yè)控制,數(shù)據(jù)采集等等有硬實(shí)時(shí)性要求的應(yīng)用系統(tǒng)比較合適。所謂的雙內(nèi)核主要是指,在標(biāo)準(zhǔn)的 Linux 內(nèi)核的下面再提供子內(nèi)核,這個(gè)子內(nèi)核不是一個(gè)完整的內(nèi)核,它沒(méi)有足夠的驅(qū)動(dòng)程序,缺乏擴(kuò)展庫(kù),它是標(biāo)準(zhǔn)內(nèi)核的補(bǔ)充,主要處理實(shí)時(shí)任務(wù)。而原來(lái)的 Linux 內(nèi)核作為在其上運(yùn)行的一個(gè)核心任務(wù)。在硬件中斷和原來(lái)的 Linux 內(nèi)核之間加入一個(gè)實(shí)時(shí)內(nèi)核,通過(guò)實(shí)時(shí)內(nèi)核解決原 Linux 內(nèi)核的關(guān)中斷問(wèn)題,該實(shí)時(shí)內(nèi)核始終不關(guān)閉硬件中斷,可以接受所有的中斷信號(hào),當(dāng)中斷信號(hào)需要實(shí)時(shí)進(jìn)程來(lái)處理時(shí),由優(yōu)先級(jí)更高的實(shí)時(shí)進(jìn)程搶占Linux內(nèi)核。   第二,中斷和時(shí)鐘機(jī)制。   實(shí)時(shí)系統(tǒng)與外部中斷處理相關(guān)的一個(gè)重要的方面是“關(guān)閉中斷”處理機(jī)制,需要保證確認(rèn)硬件外部中斷時(shí)內(nèi)核不再重入,并且緊跟一個(gè)軟件中斷處理流程,實(shí)質(zhì)就是用軟中斷來(lái)代替硬中斷。實(shí)時(shí)系統(tǒng)與外部中斷處理相關(guān)的另一個(gè)重要的方面是系統(tǒng)中斷嵌套的能力,即可以指定外部事件服務(wù)的相對(duì)優(yōu)先級(jí),并且保證關(guān)鍵的外部操作能夠提前處理。同時(shí),可以改造時(shí)鐘機(jī)制來(lái)縮小軟中斷的切換時(shí)間。   第三,提高內(nèi)核的可搶占性。   為了提供進(jìn)程間通信和進(jìn)程搶占式調(diào)度的良好實(shí)現(xiàn),需要對(duì)進(jìn)程狀態(tài)進(jìn)行改造,完全的改造 Linux 內(nèi)核為可強(qiáng)占內(nèi)核。加一個(gè)搶占點(diǎn)來(lái)改良系統(tǒng)響應(yīng)時(shí)間長(zhǎng)的問(wèn)題,所謂的搶占點(diǎn)就是,在這個(gè)點(diǎn)的時(shí)候如果系統(tǒng)中有更高優(yōu)先級(jí)的進(jìn)程就序,系統(tǒng)提供這樣一個(gè)機(jī)會(huì)高優(yōu)先級(jí)的進(jìn)程運(yùn)行。那么就可在一個(gè)用戶(hù)進(jìn)程在核心狀態(tài)執(zhí)行時(shí)能被一個(gè)更高的優(yōu)先級(jí)的可執(zhí)行進(jìn)程搶占。將實(shí)時(shí)進(jìn)程包括在內(nèi)核里,實(shí)時(shí)內(nèi)核本身也通過(guò)內(nèi)核模塊的方式進(jìn)行裝載與卸載,其目的是為了方便進(jìn)程間通信的及時(shí)進(jìn)行,并且可以實(shí)現(xiàn)更好的進(jìn)程搶占式調(diào)度算法。   第四,進(jìn)程間通信方式調(diào)整。   用可搶占式內(nèi)核的方法實(shí)現(xiàn)進(jìn)程調(diào)度,需要采用關(guān)中斷或使用信號(hào)量機(jī)制來(lái)保護(hù)臨界區(qū),需要提供進(jìn)程間通信的若干實(shí)現(xiàn)方法。   第五,進(jìn)程搶占式調(diào)度。   實(shí)時(shí)系統(tǒng)的調(diào)度必須滿(mǎn)足以下條件:進(jìn)程的優(yōu)先級(jí)通過(guò) API 指定、調(diào)度器自動(dòng)選擇并執(zhí)行最高優(yōu)先級(jí)的進(jìn)程、調(diào)度在一個(gè)固定的時(shí)間周期里選擇和執(zhí)行最高優(yōu)先級(jí)的進(jìn)程。系統(tǒng)需要提供滿(mǎn)足要求的調(diào)度方法。 5. 系統(tǒng)測(cè)試分析   為了保證系統(tǒng)的正常運(yùn)行,在理論上通過(guò)的前提下,測(cè)試是必不可少的。限篇幅有限這里只將測(cè)試結(jié)果列表如下:   表5-1 測(cè)試結(jié)果統(tǒng)計(jì)
6. 結(jié)論   本論文的創(chuàng)新點(diǎn)在于:(1)提出了一種嵌入式工業(yè)控制網(wǎng)的硬件模型;(2)詳細(xì)的分析了影響工業(yè)控制過(guò)程實(shí)時(shí)性的因素。通過(guò)測(cè)試結(jié)果可以發(fā)現(xiàn),本文提出的硬件模型性能較好,能夠滿(mǎn)足大多數(shù)工業(yè)控制的需要。同時(shí),在吸取前人關(guān)于實(shí)時(shí)性分析問(wèn)題經(jīng)驗(yàn)的基礎(chǔ)上,提出了自己的觀(guān)點(diǎn),并用測(cè)試實(shí)驗(yàn)得以驗(yàn)證。 參考文獻(xiàn)   [1]班建民,付保川等.基于嵌入式數(shù)據(jù)庫(kù)的實(shí)時(shí)數(shù)據(jù)采集方法.微計(jì)算機(jī)信息.2005,10   [2]田霖,李正熙,童朝南.實(shí)時(shí)仿真與嵌入式系統(tǒng).微計(jì)算機(jī)信息.2005,13   [3]王保進(jìn).一種提高構(gòu)件化嵌入式操作系統(tǒng)性能的方案.微計(jì)算機(jī)信息.2005,7   [4]許海燕,付炎.嵌入式系統(tǒng)技術(shù)與應(yīng)用.北京:機(jī)械工業(yè)出版社,2003   [5]雷澎.Linux 的內(nèi)核與編程.北京:機(jī)械工業(yè)出版社,2000   [6]陳莉君.Linux 操作系統(tǒng)內(nèi)核分析.北京:人民郵電出版社,2000   [7]鄒思軼.嵌入式 Linux 設(shè)計(jì)與應(yīng)用.北京:清華大學(xué)出版社,2002

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:嵌入式EIP在數(shù)控機(jī)床的應(yīng)用解...

下一篇:微能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é)任。