亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于實時Linux的嵌入式機電控制系統(tǒng)技術(shù)研究

        2019-09-10 07:31:45王利博
        現(xiàn)代信息科技 2019年23期

        摘? 要:計算機集成電路技術(shù)的快速發(fā)展,使機電控制系統(tǒng)的集成復(fù)雜度越來越高,集成精度也越來越高。由于現(xiàn)代機電控制系統(tǒng)要處理眾多的數(shù)據(jù)信息,因此嵌入式機電控制系統(tǒng)憑借其較為精簡的系統(tǒng)形式,以及實用性與專業(yè)性較強的系統(tǒng)特征,成為機械電子產(chǎn)業(yè)最常用的控制系統(tǒng)。本文主要探討基于實時Linux的嵌入式機電控制系統(tǒng)啟動過程時間分析及優(yōu)化技術(shù),通過分析Linux內(nèi)核的嵌入式機電控制系統(tǒng)架構(gòu),給出嵌入式機電控制系統(tǒng)啟動過程的優(yōu)化方案。

        關(guān)鍵詞:嵌入式系統(tǒng);機電控制;快速啟動;Linux

        中圖分類號:TP271;TM921.5 ? ? ?文獻標(biāo)識碼:A 文章編號:2096-4706(2019)23-0066-03

        Research on Embedded Electromechanical Control System

        Technology Based on Real-time Linux

        WANG Libo

        (Henan Institute of Technology,Xinxiang? 453003,China)

        Abstract:With the rapid development of computer integrated circuit technology,the integration complexity of electromechanical control systems is getting higher and higher,and the integration accuracy is getting higher and higher. Since modern electromechanical control systems have to process a large amount of data information,embedded electromechanical control systems have become the most commonly used control systems in the mechatronics industry due to their relatively simplified system forms,system features with strong practicability and professionalism. This paper mainly discusses the time analysis and optimization technology of the embedded electromechanical control system based on real-time Linux. Through analyzing the embedded electromechanical control system architecture of the Linux kernel,the optimization scheme of the embedded electromechanical control system startup process is given.

        Keywords:embedded system;electromechanical control;fast startup;Linux

        0? 引? 言

        嵌入式機電控制系統(tǒng)核心為計算機控制系統(tǒng),運用以Linux為內(nèi)核的控制系統(tǒng),展開精確快速的機電控制工作。Linux的嵌入式機電控制系統(tǒng)主要由軟件架構(gòu)、系統(tǒng)內(nèi)核、文件系統(tǒng)等部分構(gòu)成,Linux系統(tǒng)的優(yōu)化也要從系統(tǒng)內(nèi)核與文件系統(tǒng)展開。

        1? 嵌入式機電控制系統(tǒng)的軟件架構(gòu)與啟動過程

        1.1? 嵌入式機電控制系統(tǒng)的軟件架構(gòu)

        嵌入式機電控制系統(tǒng)軟件由應(yīng)用程序、鏈接庫、系統(tǒng)接口層、文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議、設(shè)備驅(qū)動層、硬件等多部分組

        成,其中硬件以上的所有部分屬于嵌入式操作系統(tǒng)內(nèi)核,是操作系統(tǒng)的最重要部分,具體軟件結(jié)構(gòu)如圖1所示。Linux嵌入式機電控制系統(tǒng)通過統(tǒng)一形式完成機電控制與管理工作,對嵌入式機電硬件展開管理,并提供相應(yīng)的調(diào)用契約接口來服務(wù)系統(tǒng)軟件,最終達到拓展控制系統(tǒng)功能的目的。

        1.2? 嵌入式機電控制系統(tǒng)的啟動過程

        嵌入式機電控制系統(tǒng)啟動過程的具體步驟如圖2所示。

        嵌入式機電控制系統(tǒng)在開始啟動的時候,首先執(zhí)行引導(dǎo)加載程序,引導(dǎo)加載程序與DSP系統(tǒng)中的硬件存在緊密關(guān)聯(lián),承擔(dān)著初始化中央處理器,以及初始化內(nèi)存與串口的工作。然后執(zhí)行加載內(nèi)核鏡像工作,隨后控制系統(tǒng)會開始加載啟動程序代碼,展開系統(tǒng)內(nèi)核的初始化。之后開始代碼運行環(huán)境的設(shè)定工作,隨后執(zhí)行操作系統(tǒng)內(nèi)核函數(shù)。系統(tǒng)內(nèi)核在初始化完成后,開始加載設(shè)備驅(qū)動模塊。最后安裝根文件系統(tǒng),然后啟動應(yīng)用程序。

        1.3? 嵌入式機電控制系統(tǒng)內(nèi)核剖析

        1.3.1? 嵌入式實時Linux內(nèi)核架構(gòu)

        Linux的嵌入式操作系統(tǒng)為RTLinux,在Linux內(nèi)核系統(tǒng)中常會出現(xiàn)程序調(diào)用的情況。而Linux系統(tǒng)在保護供一個進程使用臨界資源的過程中,不得不屏蔽相應(yīng)的系統(tǒng)操作。因此,在臨界區(qū)域程序的優(yōu)先級較低,而低優(yōu)先級的程序會搶占高優(yōu)先級程序的使用請求,但標(biāo)準(zhǔn)Linux運用在固定時間進行內(nèi)核分配的方案,能夠?qū)Ω鱾€運行進程展開控制。各個優(yōu)先級進程需要按照相應(yīng)的時間片進行使用,這會產(chǎn)生進程時間的不可控情況。RTLinux在Linux中加入虛擬層,虛擬層也建立出一個系統(tǒng)內(nèi)核。該內(nèi)核能夠?qū)Ω鱾€進行的時間片長度進行預(yù)測,并且能夠搶先運行優(yōu)先級較高的進程,以滿足各種進程的硬實時性要求。其中實時任務(wù)為RTLinux內(nèi)核中優(yōu)先級最高的任務(wù),實時任務(wù)進程在處理運行完畢后,才能運行其他非實時進程。

        1.3.2? 嵌入式實時Linux內(nèi)核主要子系統(tǒng)

        Linux系統(tǒng)中能夠同時運行多個系統(tǒng),各種內(nèi)存、CPU的進程請求都會反饋到系統(tǒng)內(nèi)核中。Linux內(nèi)核的子系統(tǒng)包括:系統(tǒng)調(diào)用接口、進程管理、網(wǎng)絡(luò)堆棧、內(nèi)存管理、虛擬文件系統(tǒng)、設(shè)備驅(qū)動等。

        系統(tǒng)調(diào)用接口在系統(tǒng)中起到中介的傳遞作用,應(yīng)用程序會將相應(yīng)的函數(shù)請求,通過系統(tǒng)調(diào)用接口發(fā)送給內(nèi)核,而調(diào)用接口會將需要的函數(shù)從內(nèi)核中調(diào)取出來,并將最終的函數(shù)結(jié)果反饋給應(yīng)用程序。進程管理在系統(tǒng)中起到管理進程的作用,各個進程有著較為緊密的聯(lián)系,而進程管理會對進程的CPU調(diào)度器進行控制。因此即使存在多種線程同時搶占CPU的情況,O(1)調(diào)度算法也可以在特定時間內(nèi)展開線程控制。Linux內(nèi)存管理將4KB緩沖區(qū)作為基數(shù),從4KB緩沖區(qū)展開結(jié)構(gòu)分配、內(nèi)存頁跟蹤活動。內(nèi)存管理會根據(jù)內(nèi)存頁的富余狀況,進行內(nèi)存的動態(tài)調(diào)整與應(yīng)用。

        虛擬文件系統(tǒng)主要在文件系統(tǒng)中設(shè)置通用的虛擬接口,同時在系統(tǒng)調(diào)用接口、文件系統(tǒng)中間建立交換層。虛擬文件系統(tǒng)往下是緩存的緩沖區(qū),主要存儲通用函數(shù)集。緩存區(qū)會對大量的數(shù)據(jù)進行儲存與讀取,以便應(yīng)用程序隨時訪問物理設(shè)備。設(shè)備驅(qū)動程序在緩沖區(qū)下面,為各種物理設(shè)備提供接口。

        1.3.3? 實時Linux嵌入式內(nèi)核的啟動過程時間分析

        啟動加載器在進行內(nèi)核引導(dǎo)后,就會解除對Linux內(nèi)核的控制權(quán)。Linux內(nèi)核中存在著不同的鏡像文件類型,因此Linux內(nèi)核的啟動方式也存在著相應(yīng)差異。Linux內(nèi)核鏡像文件包含以下幾種:標(biāo)準(zhǔn)ELF文件格式的虛擬內(nèi)存Linux鏡像文件、gzip算法壓縮后的鏡像文件。在壓縮后的內(nèi)核鏡像中,內(nèi)核鏡像之前存在一個例程集合,能夠?qū)Σ糠钟布M行設(shè)置。在內(nèi)核鏡像中存在的內(nèi)核解壓縮后,會將解壓縮文件存入內(nèi)存中。而沒有壓縮過的內(nèi)核鏡像,在載入內(nèi)存中展開運行時,例程集合會對內(nèi)核展開調(diào)用以啟動內(nèi)核,具體如圖3所示。

        首先要進行與CPU體系結(jié)構(gòu)相關(guān)的初始化,Linux內(nèi)核會對CPU類型進行分析,然后從處理器中完成初始化函數(shù)的調(diào)用工作。之后展開內(nèi)存結(jié)構(gòu)的初始化,創(chuàng)建相應(yīng)的內(nèi)存頁表,對各種物理內(nèi)存展開一一映射。

        其次是建立Linux內(nèi)核的核心環(huán)境,主要包括以下幾方面內(nèi)容:Linux內(nèi)核程序調(diào)度器、時間、定時時鐘、控制臺,核心高速緩沖存儲器、內(nèi)存等的初始化。創(chuàng)設(shè)內(nèi)部高速緩沖存儲器、通用高速緩沖存儲器,創(chuàng)設(shè)文件、目錄、虛擬內(nèi)存高速緩沖存儲器,讀寫緩沖區(qū)、內(nèi)存頁哈希表初始化,創(chuàng)設(shè)程序信號隊列緩沖存儲器,創(chuàng)設(shè)內(nèi)存文件存儲器尋址數(shù)據(jù)表等,然后啟動第一運行進程。

        最后展開外設(shè)驅(qū)動程序的加載和初始化建設(shè),其中包含根文件系統(tǒng)的安裝、內(nèi)核加載等工作,主要包括以下幾方面內(nèi)容:總線初、網(wǎng)絡(luò)數(shù)據(jù)結(jié)構(gòu)的初始化,創(chuàng)設(shè)核心線程以完成內(nèi)存緩沖的清除工作,創(chuàng)設(shè)核心線程以完成內(nèi)存緩沖的信息更新工作,啟動核心內(nèi)存頁調(diào)整線程,將各種字符、計算機系統(tǒng)接口設(shè)備、網(wǎng)絡(luò)設(shè)備進行初始化,然后安裝根文件系統(tǒng)。

        1.4? 嵌入式機電控制系統(tǒng)快速啟動方案分析

        嵌入式機電控制系統(tǒng)中存在的靜態(tài)驅(qū)動程序越多,RTLinux內(nèi)核的啟動過程所需時間就越長。因此控制系統(tǒng)需要去除多余的驅(qū)動程序,并且要對各種驅(qū)動程序展開靜態(tài)、模塊化的驅(qū)動處理,以提升啟動速度。嵌入式Linux文件系統(tǒng)中包含CRAMFS、JFFS/JFFS2、YAFFS/YAFFS2等多種文件系統(tǒng)。其中CRAMFS文件系統(tǒng)不能進行程序編寫,因此在Linux系統(tǒng)斷電后可能會出現(xiàn)數(shù)據(jù)丟失的情況。

        JFFS、JFFS2文件系統(tǒng)則能夠在斷電后對數(shù)據(jù)進行保存,也能夠降低系統(tǒng)損耗、展開數(shù)據(jù)壓縮等工作。JFFS2文件系統(tǒng)在嵌入式系統(tǒng)中有著廣泛的應(yīng)用,但也存在著以下幾方面的不足:(1)JFFS2文件系統(tǒng)在完成flash設(shè)備的全局掃描后,才能展開掛載工作。JFFS2文件系統(tǒng)的掛載時長,與flash設(shè)備閃存中所具有的節(jié)點數(shù)呈正比例關(guān)系,通常掛載時長在40秒左右。(2)JFFS2文件系統(tǒng)在磨損平衡的測算中,通常采用磨損平衡概率測算法計算,造成磨損平衡的不確定。(3)JFFS2文件系統(tǒng)占用的系統(tǒng)內(nèi)存大小,與flash內(nèi)存的節(jié)點數(shù)呈正比例關(guān)系。JFFS2文件系統(tǒng)將flash存儲設(shè)備控制在128M內(nèi),這不符合Linux嵌入式機電控制系統(tǒng)的要求。

        YAFFS2文件系統(tǒng)適用于閃存存儲器,YAFFS2文件系統(tǒng)能夠?qū)δp平衡進行控制,還能夠在系統(tǒng)斷電后進行數(shù)據(jù)保存。與CRAMFS、JFFS2相比,它具有更加快速的掛載速度,也能夠容納更大容量的閃存。但由于根文件系統(tǒng)方案較為單一,因此YAFFS2文件系統(tǒng)不能完全解決斷電數(shù)據(jù)問題。所以CRAMFS文件系統(tǒng)、YAFFS2文件系統(tǒng)的交互使用,能夠解決斷電可靠性難題,而且其具備的數(shù)據(jù)儲存、快速掛載優(yōu)點,符合嵌入式機電控制系統(tǒng)的啟動條件。

        2? 嵌入式機電控制系統(tǒng)快速啟動優(yōu)化及實現(xiàn)

        2.1? 嵌入式系統(tǒng)軟件開發(fā)環(huán)境

        Linux的嵌入式系統(tǒng)資源、內(nèi)存空間較小,也沒有顯示器輸出設(shè)備,因此嵌入式系統(tǒng)的開發(fā)不能運用PC軟件來完成。當(dāng)前嵌入式系統(tǒng)采用宿主機—目標(biāo)機模式進行開發(fā)與編譯。宿主機、目標(biāo)機使用纜線進行連接,該纜線用串行線或者Ethernet連接,宿主機、目標(biāo)機間的數(shù)據(jù)傳送也通過串行線或者Ethernet連接進行。在目標(biāo)板的開發(fā)方面,運用串行線或者互聯(lián)網(wǎng)展開Linux內(nèi)核、系統(tǒng)鏡像、目標(biāo)程序等內(nèi)容的下載。但嵌入式系統(tǒng)的串行線連接,時常會出現(xiàn)連接速度慢的問題;而Ethernet的網(wǎng)絡(luò)接口連接,則能夠為嵌入式系統(tǒng)提供足夠的帶寬支持。目標(biāo)板、宿主機可以對多個網(wǎng)絡(luò)展開互聯(lián),但這種網(wǎng)絡(luò)互聯(lián)并不能對Linux內(nèi)核調(diào)試帶來幫助。

        JTAG接口能夠解決嵌入式Linux內(nèi)核的調(diào)試問題,JTAG接口與調(diào)試器進行連接,就能夠完成中央處理器的調(diào)試與控制工作。開發(fā)者可以通過JTAG接口,將各種啟動程序的初始化軟件在存儲芯片中進行編寫。通電后嵌入式系統(tǒng)就能夠啟動程序,以此完成串行線或者Ethernet網(wǎng)絡(luò)連接的任務(wù)。

        2.2? 嵌入式Linux內(nèi)核的優(yōu)化與實現(xiàn)

        2.2.1? 內(nèi)核裁剪與配置

        Linux內(nèi)核的嵌入式機電控制系統(tǒng)屬于模塊組裝,因此Linux內(nèi)核可以根據(jù)硬件環(huán)境、具體需要,對內(nèi)核中無用的模塊進行裁減。Linux內(nèi)核的裁剪與配置包括以下幾個步驟:(1)make config是Linux內(nèi)核的命令接口,若.config文件存在于內(nèi)核根目錄中,則.config文件能夠完成內(nèi)核配置的設(shè)置過程。(2)make oldconfig和make config相同,都是Linux內(nèi)核的命令接口,但make oldconfig在內(nèi)核中只修改沒有配置的內(nèi)核文件,配置完畢的文件則不會重復(fù)修改。(3)make menuconfig是最常用的內(nèi)核配置方式,在系統(tǒng)終端殼層中以菜單的方式進行表現(xiàn),將.config文件的默認值在菜單中進行顯示。(4)make xconfig與make menuconfig相似,也是根據(jù)內(nèi)核根目錄中的.config文件,進行內(nèi)核的配置工作。

        2.2.2? 內(nèi)核的編譯

        內(nèi)核的編譯主要是完成內(nèi)核源碼、內(nèi)核鏡像、內(nèi)核模塊的建立活動。內(nèi)核源碼的建立是由makefile文件,通過make命令構(gòu)建內(nèi)核源碼的文件依存體系。而.depend文件隱藏在內(nèi)核源碼樹的子目錄中,.depend文件中存在著該內(nèi)核文件、頭文件間的文件依存體系。在Linux內(nèi)核編譯的過程中,make命令會對.depend文件進行不停的修改。make命令在進行內(nèi)核重新編譯的時候,會遵循makefile規(guī)則對修改的內(nèi)核文件進行編譯。內(nèi)核源碼的文件依存體系可做如下表示:make ARCH=mips CROSS_ COMPILE=mips-linux- clean dep。

        Makefile在編譯的過程中,會對各種編譯文件變量進行內(nèi)核架構(gòu)的判斷。若內(nèi)核編譯中沒有指定架構(gòu)形式,則默認makefile的內(nèi)核編譯采用宿主機相同的架構(gòu)模式。在完成交叉編譯工具的編譯定義后,展開建立內(nèi)核文件、頭文件的依存聯(lián)系,內(nèi)核鏡像的編譯如下所示:make ARCH=mips CROSS_ COMPILE=mips-linux- zImage。

        2.3? 嵌入式Linux文件系統(tǒng)的優(yōu)化與實現(xiàn)

        Linux系統(tǒng)中的設(shè)備文件都儲存在/dev根文件系統(tǒng)中,Linux嵌入式系統(tǒng)中存在必要的設(shè)備文件。在設(shè)備文件設(shè)置完畢后,將展開根文件系統(tǒng)應(yīng)用程序的設(shè)置工作。其中BusyBox能夠運用單個應(yīng)用程序,完成Linux命令集的功能操作。在運用靜態(tài)鏈接進行BusyBox的配置與編譯后,將BusyBox的二進制文件在/bin目錄中進行安裝。BusyBox文件根據(jù)相應(yīng)的符號鏈接名稱,完成各種要求的命令工作。嵌入式系統(tǒng)在根文件系統(tǒng)初始化過程中,屬于單用戶工作模式,因此開發(fā)者可以運用init程序展開系統(tǒng)的啟動操作。BusyBox套件中init程序為目標(biāo)板中首個應(yīng)用程序,在系統(tǒng)啟動/sbin/init的時候,BusyBox套件中的init進程或立即啟動。

        3? 結(jié)? 論

        Linux嵌入式機電控制通過計算機技術(shù)與軟件應(yīng)用的使用,在數(shù)據(jù)運算處理、可靠與實時性等方面,均有顯著的提高。嵌入式控制系統(tǒng)是機電控制未來的發(fā)展方向,本文在針對系統(tǒng)啟動過程進行探討后,提出嵌入式機電控制系統(tǒng)的快速啟動方案。快速啟動方案不僅具有較高的可靠性、穩(wěn)定性,而且能在一定程度上縮短啟動時間。

        參考文獻:

        [1] 宋國軍,張侃諭,林學(xué)龍.嵌入式系統(tǒng)中U-Boot基本特點及其移植方法 [J].單片機與嵌入式系統(tǒng)應(yīng)用,2004(10):78-81.

        [2] 霍妍,孟凡榮.基于Linux嵌入式系統(tǒng)的研究與實現(xiàn) [J].計算機系統(tǒng)應(yīng)用,2004(8):4-6.

        [3] 陳光達,段寶巖,保宏,等.嵌入式系統(tǒng)在機電控制中的應(yīng)用 [J].電子機械工程,2004(3):55-58.

        [4] 何小慶.選擇ARM CPU的操作系統(tǒng)μC/OS-Ⅱ,μC Linux,還是Linux [J].電子產(chǎn)品世界,2004(3):38-40.

        [5] 林仕鼎,任愛華,王雷,等.Linux內(nèi)核在新型硬件平臺上的實現(xiàn) [J].北京航空航天大學(xué)學(xué)報,2003(3):197-201.

        作者簡介:王利博(1985.06-),女,漢族,河南新鄉(xiāng)人,教師,碩士,研究方向:計算機控制。

        久久婷婷色香五月综合激激情| 一本大道久久东京热无码av| 国产尤物精品自在拍视频首页 | 国产91极品身材白皙| 中国少妇×xxxx性裸交| 8av国产精品爽爽ⅴa在线观看| 纯肉无遮挡H肉动漫在线观看国产 国产精品自产拍在线观看免费 | 仙女白丝jk小脚夹得我好爽| 亚洲综合精品一区二区| 久久精品中文字幕| а√天堂资源8在线官网在线 | 幻女bbwxxxx在线视频| 精品囯产成人国产在线观看| 国产av熟女一区二区三区蜜臀| 国产精品激情自拍视频| 国产suv精品一区二区6| 中文字幕永久免费观看| 国产午夜激情视频在线看| 免费观看a级毛片| 四川丰满少妇被弄到高潮| 92精品国产自产在线观看48页| 中文字幕精品久久一区二区三区| 午夜熟女插插xx免费视频| 人妻丰满熟妇av无码区免| 国产成人精品免费视频大全| 亚洲一区二区自偷自拍另类| 亚洲国产欧美在线观看| 中文在线天堂网www| 五月婷婷激情六月开心| 国产人成精品免费久久久| 午夜无码片在线观看影视 | 日本一区不卡高清在线观看| 国产人妖网站在线视频| 中文字幕在线亚洲日韩6页| 国产在亚洲线视频观看| 国产精品女丝袜白丝袜美腿| 国产亚洲美女精品久久久2020| 国产精品一区二区久久精品| 日本中文字幕一区二区在线观看| 国产亚洲精品熟女国产成人| 日本公妇在线观看中文版|