• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      嵌入式操作系統(tǒng)SHELL定制開發(fā)

      2018-01-17 00:32陳天毅周平李政張新民
      電子技術(shù)與軟件工程 2017年23期
      關(guān)鍵詞:嵌入式操作系統(tǒng)定制開發(fā)

      陳天毅++周平++李政++張新民

      摘 要 介紹了微軟嵌入式WindowsXP操作系統(tǒng)的SHELL定制開發(fā)方法以及開發(fā)中主要考慮的技術(shù)問題,并介紹了SHELL實(shí)現(xiàn)的主要功能。針對(duì)車載嵌入式系統(tǒng)開發(fā)的XPe通過對(duì)XP的裁減,去掉了不需要的組件和服務(wù),減小了最終操作系統(tǒng)的體積,使系統(tǒng)的實(shí)時(shí)性得到極大的增強(qiáng);通過自主開發(fā)定制的SHELL,增強(qiáng)了系統(tǒng)的安全性,改善系統(tǒng)的可操作性,在實(shí)際的系統(tǒng)調(diào)試及試驗(yàn)操作中取得了良好的效果,證明SHELL的定制開發(fā)是成功的,所采用的技術(shù)適合嵌入式系統(tǒng)遠(yuǎn)程操作控制使用。

      【關(guān)鍵詞】嵌入式操作系統(tǒng) SHELL 定制 開發(fā)

      某車載移動(dòng)式設(shè)備,為完成特定的功能,其控制系統(tǒng)需要完成比較復(fù)雜的時(shí)序控制、壓力閉環(huán)調(diào)節(jié)、安全連鎖以及試驗(yàn)數(shù)據(jù)實(shí)時(shí)采集等功能,涉及比較復(fù)雜的控制算法及大量的數(shù)據(jù)采集與遠(yuǎn)程傳輸,對(duì)系統(tǒng)的可靠性要求較高。系統(tǒng)方案設(shè)計(jì)時(shí),通過分析比較,我們選擇了德國(guó)控創(chuàng)的cPCI系統(tǒng)構(gòu)成測(cè)控系統(tǒng)核心控制器硬件平臺(tái),選用微軟的WindowsXP Embedded為控制系統(tǒng)軟件的操作系統(tǒng)平臺(tái),為適應(yīng)車載抗振的需求,用CF卡作為操作系統(tǒng)與應(yīng)用軟件的存貯器,自主開發(fā)相關(guān)的應(yīng)用軟件。

      控制系統(tǒng)正常工作時(shí)為無人操作,也無人機(jī)接口,所有的操作都通過網(wǎng)絡(luò)遠(yuǎn)程進(jìn)行,為保證各分系統(tǒng)互操作的可靠性,系統(tǒng)中設(shè)計(jì)了CAN總線網(wǎng)和以太網(wǎng),CAN主要用于接收系統(tǒng)控制命令與反饋命令操作的結(jié)果,以太網(wǎng)主要用于實(shí)時(shí)數(shù)據(jù)的傳輸。系統(tǒng)結(jié)構(gòu)見圖1。

      由于該系統(tǒng)是一套車載試驗(yàn)設(shè)備,控制系統(tǒng)裝在車上,在空間狹小的控制車上連接顯示器和鼠標(biāo)鍵盤技術(shù)人員修改系統(tǒng)控制程序和配置參數(shù),非常困難和麻煩。因此,控制系統(tǒng)具有一套遠(yuǎn)程傳輸服務(wù)管理系統(tǒng),使最終用戶在上位計(jì)算機(jī)上可以通過以太網(wǎng)遠(yuǎn)程啟??刂栖浖?、遠(yuǎn)程重啟核心控制器、遠(yuǎn)程傳輸修改好的控制程序以及修改的系統(tǒng)各種屬性參數(shù)文件非常重要。

      WindowsXP Embedded是微軟針對(duì)X86體系定制的一款組件化的嵌入式操作系統(tǒng)。目前在工業(yè)自動(dòng)化控制和嵌入式設(shè)備中使用相當(dāng)廣泛。與普通桌面XP版本的最大區(qū)別是可以定制,針對(duì)不同的應(yīng)用場(chǎng)景選取不同的組件組成不同的XPe目標(biāo)平臺(tái),從而能夠極大地減少對(duì)存儲(chǔ)空間的占用率,提高系統(tǒng)性能;直接開關(guān)系統(tǒng)電源就可以使用,沒有繁瑣的開關(guān)機(jī)過程,方便作為設(shè)備使用。

      XPe的組件包括驅(qū)動(dòng)程序、服務(wù)和應(yīng)用程序等,為XP開發(fā)的應(yīng)用程序可以運(yùn)行在XPe平臺(tái)上。除了Win32 API外,XPe還支持.NETFramework。本項(xiàng)目采用的版本是Windows XP Embedded SP2 Feature Pack 2007,具有EWF、FBWF等功能,非常適合嵌入式設(shè)備所用CF卡的特殊要求。

      Windows操作系統(tǒng)一般都需要Explorer shell、Command shell或Task Manager shell等三種程序中的一個(gè)作為系統(tǒng)的外殼,其提供的功能供用戶與操作系統(tǒng)交互,XPe也不例外。對(duì)于本系統(tǒng),由于無人機(jī)界面,因此,我們將自主開發(fā)的遠(yuǎn)程傳輸服務(wù)管理系統(tǒng)作為WindowsXP Embedded操作系統(tǒng)的外殼,簡(jiǎn)化了系統(tǒng)操作流程,增強(qiáng)了系統(tǒng)的可靠性,降低了系統(tǒng)對(duì)操作人員技術(shù)水平的要求,為達(dá)到最終系統(tǒng)要求的良好可操作性及可靠性起到了很好的作用。

      1 SHELL定制

      XPe的開發(fā)環(huán)境主要包括Target Designer,即目標(biāo)設(shè)計(jì)器,用于選擇加入到目標(biāo)平臺(tái)中的組件,進(jìn)行依賴檢查,然后編譯成目標(biāo)平臺(tái);Target Analyzer,即目標(biāo)分析器,用于分析目標(biāo)設(shè)備,獲取目標(biāo)設(shè)備的信息;Component Designer,即組件設(shè)計(jì)器,用于設(shè)計(jì)自定義組件,可以將應(yīng)用程序、驅(qū)動(dòng)程序等設(shè)計(jì)成XPe可以使用的組件;Component Database Manager,即組件數(shù)據(jù)庫(kù)管理器,用于管理組件對(duì)象庫(kù)中的組件。

      要構(gòu)造一個(gè)完整的XPE系統(tǒng),首先需要在Target Designer中創(chuàng)建一個(gè)配置(Configuration),然后在該配置中添加所有的硬件支持組件、系統(tǒng)內(nèi)核組件和軟件功能組件。添加完成后使用Target Designer自動(dòng)檢測(cè)組件的關(guān)聯(lián)關(guān)系,并自動(dòng)把缺少的組件添加到配置中。

      我們開發(fā)的產(chǎn)品不是普通的軟件,而是專用的操作系統(tǒng),操作系統(tǒng)與硬件緊密相關(guān),所以需要針對(duì)某個(gè)特定的硬件平臺(tái)(目標(biāo)機(jī))來進(jìn)行開發(fā),只有充分地了解和支持硬件,才能讓操作系統(tǒng)正常穩(wěn)定的運(yùn)行。由于X86結(jié)構(gòu)計(jì)算機(jī)的硬件比較復(fù)雜,普通開發(fā)者很難對(duì)它充分地理解熟悉,因此,微軟提供了一個(gè)硬件分析工具來幫助開發(fā)者分析硬件。Windows XP Embedded提供的這個(gè)工具是Target Analyzer,可以自動(dòng)分析所在設(shè)備的硬件信息,分析完成后會(huì)產(chǎn)生一個(gè)XML格式的輸出文件Devices.pmq,根據(jù)這個(gè)文件生成一個(gè)XPE組件,并保存到組件數(shù)據(jù)庫(kù)中,以后每次開發(fā)系統(tǒng)都可以調(diào)用,為開發(fā)完整的操作系統(tǒng)作準(zhǔn)備。

      通常每一個(gè)嵌入式設(shè)備都會(huì)運(yùn)行一個(gè)或多個(gè)用戶自己的應(yīng)用程序,另外如果使用了非通用的硬件設(shè)備,還需要添加相應(yīng)的驅(qū)動(dòng)程序,將各個(gè)獨(dú)立的部分做成XPE組件,在開發(fā)階段進(jìn)行集成。

      定制SHELL的主要作用是限制用戶對(duì)系統(tǒng)的訪問或者提供采用標(biāo)準(zhǔn)SHELL無法提供的功能。

      為了使開發(fā)的遠(yuǎn)程傳輸服務(wù)管理軟件成為XPe的SHELL,必須將其做成XPe的component,為此,在Component Designer中新建component,將其Prototype設(shè)為Shell prototype component,將其Dependencies設(shè)為Shell group,將Categories設(shè)為Software\System\User Interface\Shells,然后在Target Designer中刪除默認(rèn)的Explorer shell、Command shell或Task Manager shell,加入新建的SHELL component,進(jìn)行Dependency Check,選擇Auto-Resolve Dependencies,再Build Target Image即可。endprint

      SHELL定制的核心是作為SHELL的組件必須繼承Shell prototype component的屬性。

      2 SHELL開發(fā)

      SHELL要完成的主要工作為遠(yuǎn)程啟??刂栖浖?;遠(yuǎn)程重啟核心控制器(WindowsXP Embedded重新啟動(dòng));將修改好的控制程序以及修改的系統(tǒng)各種屬性參數(shù)文件傳輸?shù)角度胧娇刂破髦?;遠(yuǎn)程改變XPe的EWF狀態(tài),以便于將修改后的程序和屬性文件保存在CF卡上,并保護(hù)CF卡;操作安全認(rèn)證,確保只有授權(quán)的用戶才能對(duì)系統(tǒng)進(jìn)行操作。FTP(可以完成文件傳輸,但無法對(duì)正在運(yùn)行的控制程序進(jìn)行更新)或遠(yuǎn)程桌面可以實(shí)現(xiàn)類似功能,但存在的重大問題是系統(tǒng)的安全無法保證,無法確保只有授權(quán)用戶才能操作設(shè)備;另一方面的不足是對(duì)操作者的技術(shù)水平要求較高,需對(duì)系統(tǒng)的配置充分了解。

      為了實(shí)現(xiàn)以上功能,采用VC++60開發(fā)所需的遠(yuǎn)程傳輸服務(wù)管理軟件。

      作為操作系統(tǒng)的SHELL,其重要性不言而喻,必須著重考慮的是其自身的穩(wěn)定性、可靠性、對(duì)系統(tǒng)的安全保護(hù)以及對(duì)系統(tǒng)網(wǎng)絡(luò)故障的自適應(yīng)性,最大程度保證系統(tǒng)可用。SHELL除要求自身穩(wěn)定外,還必須在系統(tǒng)啟動(dòng)完成后,啟動(dòng)控制系統(tǒng)核心控制軟件運(yùn)行,完成系統(tǒng)功能。因此,SHELL的開發(fā)主要從以下幾個(gè)方面考慮:

      2.1 網(wǎng)絡(luò)檢查

      本系統(tǒng)由于沒有人機(jī)界面,網(wǎng)絡(luò)是系統(tǒng)與外部聯(lián)系的唯一通道,為提高可靠性,在系統(tǒng)中配置了兩塊以太網(wǎng)卡,從而構(gòu)成冗余網(wǎng)絡(luò)系統(tǒng)。通信的實(shí)現(xiàn)采用基于MFC的WINSOCKET完成。由于各分系統(tǒng)的工作情況不同,啟動(dòng)時(shí)間不同,有可能出現(xiàn)要連接的系統(tǒng)沒有響應(yīng)的情況,因此,在系統(tǒng)啟動(dòng)時(shí)必須對(duì)網(wǎng)絡(luò)的連通情況進(jìn)行檢查。為此,將用來LISTEN的SOCKET構(gòu)建在系統(tǒng)堆上,如果網(wǎng)絡(luò)不通,則刪除SOCKET,然后定時(shí)重建。如果試驗(yàn)過程中由于振動(dòng)等原因,造成網(wǎng)線接觸不良導(dǎo)致通信故障時(shí),由SHELL重建SOCKET,從而確保通信可靠。

      2.2 安全認(rèn)證

      如果SHELL中用于LISTEN的SOCKET接到連接請(qǐng)求,SHELL在接受連接的同時(shí),對(duì)連接的請(qǐng)求方要求必須的特定連接串,如果請(qǐng)求方不能提供要求的連接串,或提供的連接串錯(cuò)誤,則切斷請(qǐng)求的連接,確保只有授權(quán)的用戶才能操作系統(tǒng)。

      2.3 啟動(dòng)控制軟件

      SHELL啟動(dòng)完成后,檢查網(wǎng)絡(luò)的連接狀態(tài),如果網(wǎng)絡(luò)良好,則啟動(dòng)核心控制軟件,系統(tǒng)進(jìn)入待命狀態(tài),然后等待CAN總線的操作命令,對(duì)系統(tǒng)進(jìn)行控制,完成試驗(yàn)任務(wù)。

      在Windows系統(tǒng)中,無法對(duì)正在運(yùn)行的程序進(jìn)行更新,為了能夠遠(yuǎn)程更新控制軟件及配置參數(shù)文件,必須實(shí)現(xiàn)SHELL對(duì)控制軟件的啟停的功能,便于控制軟件的更新,為此,在SHELL啟動(dòng)控制軟件后,由SHELL向操作系統(tǒng)廣播自定義的消息,并在消息中攜帶SHELL的窗口ID,在控制軟件中則響應(yīng)SHELL發(fā)出的消息,并將控制軟件的窗口ID返回到SHELL中,從此,SHELL與控制軟件互相知道對(duì)方的窗口ID,相互之間就可以通過自定義的消息進(jìn)行通信,從而實(shí)現(xiàn)由SHELL控制核心控制軟件的啟停的目的。其控制原理見圖2。

      2.4 文件傳輸

      文件傳輸是一個(gè)較簡(jiǎn)單的功能,采用SOCKET可以較容易地實(shí)現(xiàn)。文件傳輸分為文件的上傳與下載,上傳用于將cPCI中現(xiàn)用的控制軟件及配置參數(shù)傳回到上位機(jī)中進(jìn)行比較,以確認(rèn)cPCI中的控制軟件的版本及系統(tǒng)配置參數(shù),下載功能用于更新cPCI中的控制軟件及配置參數(shù)文件。

      2.5 EWF功能控制

      使用CF卡創(chuàng)建基于Compact Flash? (CF卡)引導(dǎo)運(yùn)行的XPE操作系統(tǒng)有很多優(yōu)勢(shì),最顯著的優(yōu)勢(shì)是創(chuàng)建嵌入式裝置,這些設(shè)備通常較為可靠,因?yàn)樗麄兌紱]有任何活動(dòng)部件,特別適合車載系統(tǒng)的使用條件。但使用CF卡也有缺點(diǎn),其主要缺點(diǎn)是它有一定的讀寫次數(shù)限制,當(dāng)反復(fù)對(duì)CF進(jìn)行讀寫操作的時(shí)候,隨著時(shí)間的推移,CF上的壞塊就會(huì)越來越多,同時(shí)讀寫速度也會(huì)越來越慢,甚至導(dǎo)致最終的系統(tǒng)崩潰或者文件丟失,這種特性對(duì)于使用CF卡作為存貯器的系統(tǒng)來說是不利的。

      XPe系統(tǒng)提供了EWF功能,可以使用EWF過濾所有向Flash存儲(chǔ)介質(zhì)的寫操作,從而保護(hù)CF卡。EWF即增強(qiáng)性過濾寫入功能的縮寫,通過限制直接寫入CF的方式,避免了頻繁的讀寫對(duì)CF卡造成的損壞,從而延長(zhǎng)了CF卡的使用壽命和讀寫次數(shù)。EWF主要的功能是在計(jì)算機(jī)內(nèi)存中構(gòu)建一個(gè)覆蓋層,這個(gè)覆蓋層理論上置于被保護(hù)卷的上方,所有對(duì)保護(hù)卷的讀寫操作都要先經(jīng)過覆蓋層。開啟EWF過濾功能后,被保護(hù)卷將不能被寫入,所有的針對(duì)保護(hù)卷的寫入操作都將記錄在覆蓋層上,但是可以讀取被保護(hù)卷的信息。如果目標(biāo)信息不在覆蓋層上,那么覆蓋層可以通過讀保護(hù)卷的操作,但是將會(huì)過濾寫入的操作。使用該功能的主要目的是用來保證基于CF卡的Windows系統(tǒng)的引導(dǎo)分區(qū)避免不必要的寫入,增強(qiáng)系統(tǒng)的健壯性,或者保護(hù)引導(dǎo)分區(qū)避免異常斷電帶來的損耗。EWF的作用原理見圖3。

      EWF一般情況下是通過命令行操作來實(shí)現(xiàn)開啟或關(guān)閉的,本系統(tǒng)由于無人機(jī)界面,因此,無法使用這種操作方式。XPe提供了EWF的編程接口,即Enhanced Write Filter API(EWF API),因此,在SHELL的開發(fā)中,通過在VC++60程序中加入EWF API調(diào)用,實(shí)現(xiàn)對(duì)EWF開啟、關(guān)閉及查看EWF狀態(tài)等功能,從而讓總控系統(tǒng)可以通過網(wǎng)絡(luò)遠(yuǎn)程開啟或關(guān)閉XPe的EWF功能,既能實(shí)現(xiàn)文件保存在CF卡上,同時(shí)也能在不傳輸文件時(shí)保護(hù)CF卡。

      3 應(yīng)用與結(jié)論

      本系統(tǒng)開發(fā)完成后,經(jīng)過近一年的系統(tǒng)調(diào)試以及5年正式的試驗(yàn)驗(yàn)證,系統(tǒng)穩(wěn)定可靠,操作方便,增強(qiáng)了系統(tǒng)的可操作性和安全性。

      XPe通過對(duì)XP的裁減,去掉了不需要的組件和服務(wù),使系統(tǒng)的實(shí)時(shí)性得到極大的增強(qiáng),通過自主開發(fā)定制XPe的SHELL,增強(qiáng)了系統(tǒng)的安全性,實(shí)現(xiàn)了遠(yuǎn)程啟停控制軟件、遠(yuǎn)程重啟核心控制器、遠(yuǎn)程傳輸修改好的控制程序以及修改的系統(tǒng)各種屬性參數(shù)文件等功能,大大改善系統(tǒng)的可操作性,取得了良好的效果,證明定制的SHELL是成功的,所采用的技術(shù)適合嵌入式系統(tǒng)遠(yuǎn)程操作控制使用。

      參考文獻(xiàn)

      [1]Microsoft.Windows? XP Embedded Service Pack 2 Feature Pack 2007Documents. Microsoft,2008.

      [2]蔡永泉.算機(jī)網(wǎng)絡(luò)安全理論與技術(shù)教程[M].市海淀區(qū)學(xué)院路37號(hào),京航空航天大學(xué)出版社,2003.

      [3]王達(dá).算機(jī)網(wǎng)絡(luò)遠(yuǎn)程訪問與遠(yuǎn)程啟動(dòng)[M].大學(xué)學(xué)研大廈,華大學(xué)出版社,2003.

      [4]雷斌等.VC++60網(wǎng)絡(luò)編程技術(shù)[M].北京市崇文區(qū)夕照寺街14號(hào),人民郵電出版社,2000.

      作者簡(jiǎn)介

      陳天毅(1966-),男,重慶市開縣人。碩士學(xué)位。現(xiàn)為四川綿陽(yáng)中國(guó)空氣動(dòng)力研究與發(fā)展中心四所高級(jí)工程師,從事控制系統(tǒng)設(shè)計(jì)與研究。

      周平(1963-),男,四川省三臺(tái)縣人。博士學(xué)歷。現(xiàn)為四川綿陽(yáng)中國(guó)空氣動(dòng)力研究與發(fā)展中心四所研究員,從事控制系統(tǒng)設(shè)計(jì)與研究。

      李政(1966-),男,湖北省松滋市人。碩士學(xué)位?,F(xiàn)為四川綿陽(yáng)中國(guó)空氣動(dòng)力研究與發(fā)展中心四所高級(jí)工程師,從事控制系統(tǒng)設(shè)計(jì)與研究。

      張興民(1972-),男,新疆維吾爾自治區(qū)烏魯木齊市人。碩士學(xué)位?,F(xiàn)為四川綿陽(yáng)中國(guó)空氣動(dòng)力研究與發(fā)展中心四所工程師,從事計(jì)算機(jī)控制。

      作者單位

      中國(guó)空氣動(dòng)力研究與發(fā)展中心四所 四川省綿陽(yáng)市 621000endprint

      猜你喜歡
      嵌入式操作系統(tǒng)定制開發(fā)
      典型實(shí)時(shí)嵌入式操作系統(tǒng)應(yīng)用分析
      汽車“定制”卷土重來
      河南方言文化資源的保護(hù)及其開發(fā)利用的研究
      遵義紅色旅游開發(fā)對(duì)策研究
      單片機(jī)在電子技術(shù)中的應(yīng)用和開發(fā)
      基于嵌入式操作系統(tǒng)的工業(yè)采集板設(shè)計(jì)
      應(yīng)用服務(wù)型人才培養(yǎng)體系下的嵌入式操作系統(tǒng)教學(xué)改革探索
      計(jì)算機(jī)嵌入式操作系統(tǒng)研究
      宣汉县| 义马市| 阿鲁科尔沁旗| 清丰县| 布尔津县| 关岭| 诏安县| 鹤庆县| 北川| 吴堡县| 金川县| 安平县| 望谟县| 台中县| 海南省| 蒲城县| 九台市| 罗江县| 无锡市| 厦门市| 辽宁省| 天等县| 额济纳旗| 宁安市| 仙游县| 弥勒县| 大港区| 滨海县| 报价| 福清市| 焉耆| 华阴市| 海林市| 潢川县| 茂名市| 邵武市| 苗栗县| 施甸县| 峨眉山市| 平乐县| 陵川县|