• 
    

    
    

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

      ?

      應(yīng)用有限狀態(tài)機(jī)的實(shí)時(shí)操作系統(tǒng)平臺(tái)流程控制軟件實(shí)現(xiàn)技術(shù)

      2017-04-28 02:21:17李向陽(yáng)劉顯勤張向文
      關(guān)鍵詞:狀態(tài)機(jī)功能模塊線程

      李向陽(yáng),劉顯勤,張向文

      (北京航天發(fā)射技術(shù)研究所,北京,100076)

      應(yīng)用有限狀態(tài)機(jī)的實(shí)時(shí)操作系統(tǒng)平臺(tái)流程控制軟件實(shí)現(xiàn)技術(shù)

      李向陽(yáng),劉顯勤,張向文

      (北京航天發(fā)射技術(shù)研究所,北京,100076)

      在分析嵌入式實(shí)時(shí)操作系統(tǒng)(Real-Time Operating System,RTOS)平臺(tái)與嵌入式無(wú)操作系統(tǒng)平臺(tái)流程控制軟件架構(gòu)不統(tǒng)一、無(wú)法實(shí)現(xiàn)代碼重用的基礎(chǔ)上,提出一種應(yīng)用有限狀態(tài)機(jī)的實(shí)時(shí)操作系統(tǒng)流程控制軟件架構(gòu),解決了架構(gòu)不統(tǒng)一導(dǎo)致代碼無(wú)法重用的問(wèn)題,并經(jīng)過(guò)實(shí)際應(yīng)用驗(yàn)證,證明架構(gòu)可行。

      實(shí)時(shí)操作系統(tǒng);有限狀態(tài)機(jī);軟件架構(gòu);代碼重用

      0 引 言

      流程控制軟件是武器發(fā)射平臺(tái)的重要組成部分,用于實(shí)現(xiàn)武器發(fā)射平臺(tái)的展開(kāi)、撤收等流程動(dòng)作的控制;同時(shí)通過(guò)串口、CAN總線、以太網(wǎng)等通信方式實(shí)現(xiàn)與其他系統(tǒng)的通信;通過(guò)串口、CAN總線、以太網(wǎng)等接口實(shí)現(xiàn)參數(shù)的配置查詢等功能。

      流程控制軟件要求具有實(shí)時(shí)性、確定性。因此,運(yùn)行的平臺(tái)一般采用嵌入式無(wú)操作系統(tǒng)平臺(tái)或嵌入式實(shí)時(shí)操作系統(tǒng)平臺(tái),比如 VxWorks。為了實(shí)現(xiàn)多個(gè)任務(wù)并行工作,嵌入式無(wú)操作系統(tǒng)平臺(tái)的流程控制軟件一般采用有限狀態(tài)機(jī)的架構(gòu)方式實(shí)現(xiàn),而實(shí)時(shí)操作系統(tǒng)平臺(tái)具有特有的多任務(wù)并行工作的優(yōu)勢(shì),一般通過(guò)采用多線程的架構(gòu)方式實(shí)現(xiàn)。

      隨著武器型號(hào)的發(fā)展,型號(hào)軟件的研制周期越來(lái)越短,而流程控制軟件需要充分的測(cè)試驗(yàn)證才能確保軟件的可靠性。因此,對(duì)軟件的通用化、代碼的重用率要求越來(lái)越高。目前,現(xiàn)有型號(hào)采用嵌入無(wú)操作系統(tǒng)平臺(tái)實(shí)現(xiàn)的流程控制軟件數(shù)量多,已經(jīng)實(shí)現(xiàn)架構(gòu)統(tǒng)一,并形成了一定數(shù)量的重用代碼,使得采用嵌入式無(wú)操作系統(tǒng)平臺(tái)的流程控制軟件在開(kāi)發(fā)效率、可靠性、后期維護(hù)性等方面得到了較大提高,同時(shí)也大大減少了軟件調(diào)試和試驗(yàn)的時(shí)間,降低了研制成本。而采用嵌入式實(shí)時(shí)操作系統(tǒng)平臺(tái)實(shí)現(xiàn)的流程控制軟件數(shù)量少,可重用代碼相應(yīng)也少。

      采用有限狀態(tài)機(jī)架構(gòu)方式實(shí)現(xiàn)的流程控制模塊與采用多線程架構(gòu)方式實(shí)現(xiàn)的流程控制模塊一般無(wú)法實(shí)現(xiàn)通用,這給軟件重用帶來(lái)困難,增加了流程控制軟件研制投入,降低了流程控制軟件的可靠性。同時(shí),流程控制軟件中需要流程急停及流程急停繼續(xù)、流程急停退出操作,采用有限狀態(tài)機(jī)的架構(gòu)方式實(shí)現(xiàn)時(shí)已經(jīng)將各個(gè)工作任務(wù)進(jìn)行了一定粒度的劃分,只要控制狀態(tài)跳轉(zhuǎn)即可;而采用多線程的架構(gòu)方式實(shí)現(xiàn)流程急停操作時(shí)需要采用線程掛起的方式,流程急停繼續(xù)操作需要采用線程恢復(fù)的方式,流程急停退出操作需要采用線程重啟的方式。這種在軟件正常工作中對(duì)線程掛起、恢復(fù)及重啟操作屬于非常規(guī)的使用方式,有可能對(duì)軟件系統(tǒng)造成不可預(yù)知的影響。

      本文在對(duì)有限狀態(tài)機(jī)架構(gòu)方式及多線程架構(gòu)方式的流程控制軟件分析的基礎(chǔ)上,提出了一種有限狀態(tài)機(jī)和實(shí)時(shí)操作系統(tǒng)相結(jié)合的流程控制軟件實(shí)現(xiàn)技術(shù)。

      1 有限狀態(tài)機(jī)架構(gòu)方式的流程控制軟件分析

      嵌入式無(wú)操作系統(tǒng)平臺(tái)的有限狀態(tài)機(jī)方式的流程控制軟件采用主循環(huán)和一到多個(gè)中斷組成的前后臺(tái)系統(tǒng),主循環(huán)和中斷之間通過(guò)共享資源實(shí)現(xiàn)通信。嵌入式無(wú)操作系統(tǒng)平臺(tái)應(yīng)用層結(jié)構(gòu)示意如圖1所示。

      中斷用于實(shí)現(xiàn)硬件處理、定時(shí)處理等工作,其他流程控制模塊(或配置查詢功能模塊、故障處理功能模塊)、通信處理功能模塊、數(shù)據(jù)處理功能模塊、硬件處理功能模塊、網(wǎng)關(guān)處理功能模塊的并行處理工作采用有限狀態(tài)機(jī)的方式實(shí)現(xiàn),由主循環(huán)負(fù)責(zé)調(diào)度。

      采用有限狀態(tài)機(jī)架構(gòu)方式實(shí)現(xiàn)的流程控制軟件是將各功能模塊的功能進(jìn)行一定粒度的劃分,即劃分出來(lái)的工作片段占用毫秒級(jí)及以下(不超過(guò)1 ms)的處理時(shí)間,多個(gè)工作片段共同完成該功能,并且每個(gè)工作片段完成后能夠回到主循環(huán),不影響其他功能模塊工作的實(shí)時(shí)性。有限狀態(tài)機(jī)以“事件驅(qū)動(dòng)”方式工作[1,2],在確定轉(zhuǎn)移條件發(fā)生時(shí),做出相應(yīng)動(dòng)作,變更工作狀態(tài)。以流程控制為例的狀態(tài)轉(zhuǎn)移如圖2所示。流程控制共分為8個(gè)狀態(tài)。軟件上電后首先進(jìn)入初始狀態(tài),接收到啟動(dòng)流程指令后轉(zhuǎn)入流程進(jìn)行處理狀態(tài),如果流程正常執(zhí)行結(jié)束則轉(zhuǎn)入流程正常結(jié)束狀態(tài);如果流程中產(chǎn)生故障則轉(zhuǎn)入流程急停處理狀態(tài),在流程急停處理完成后進(jìn)入流程暫停狀態(tài),在流程暫停狀態(tài)接收到急停退出指令則轉(zhuǎn)入流程退出處理狀態(tài),處理完成進(jìn)入流程非正常結(jié)束狀態(tài);在流程暫停狀態(tài)接收到忽略故障指令則轉(zhuǎn)入流程繼續(xù)處理狀態(tài),處理完成進(jìn)入流程進(jìn)行處理狀態(tài),流程結(jié)束轉(zhuǎn)入流程正常結(jié)束狀態(tài);在流程正常結(jié)束狀態(tài)或流出非正常結(jié)束狀態(tài)接收到啟動(dòng)流程指令都可繼續(xù)進(jìn)行流程控制。

      主循環(huán)的調(diào)度方式如圖 3所示。主循環(huán)負(fù)責(zé)循環(huán) 調(diào)用所有外部模塊和軟件自身的功能模塊。

      采用有限狀態(tài)機(jī)的方式實(shí)現(xiàn)的流程控制軟件通過(guò)有限狀態(tài)機(jī)來(lái)代替操作系統(tǒng)對(duì)多個(gè)并行工作進(jìn)行調(diào)度,能夠滿足流程控制軟件實(shí)時(shí)性和確定性的要求。

      2 多線程架構(gòu)方式的流程控制軟件分析

      嵌入式實(shí)時(shí)操作系統(tǒng)平臺(tái)應(yīng)用層軟件采用多線程的架構(gòu)方式實(shí)現(xiàn),線程間采用消息隊(duì)列、信號(hào)量、共享資源等實(shí)現(xiàn)通信[3]。嵌入式實(shí)時(shí)操作系統(tǒng)平臺(tái)應(yīng)用層結(jié)構(gòu)示意如圖4所示。

      流程控制功能模塊、配置查詢功能模塊、故障處理功能模塊、通信處理功能模塊、數(shù)據(jù)處理功能模塊、硬件處理功能模塊、網(wǎng)關(guān)處理功能模塊等每個(gè)模塊采用一個(gè)或多個(gè)線程實(shí)現(xiàn)。以某流程控制軟件為例,其通過(guò)流程處理主線程、流程處理從線程、硬急停線程、急停處理線程、故障處理線程、配置查詢線程、CAN數(shù)據(jù)處理線程、CAN數(shù)據(jù)發(fā)送線程、以太網(wǎng)接收線程、以太網(wǎng)發(fā)送線程[4~8]共同實(shí)現(xiàn),流程處理軟件啟動(dòng)及線程工作方式如圖5所示。

      線程之間通過(guò)信號(hào)量、消息隊(duì)列及共享資源實(shí)現(xiàn)信息交換。其中流程處理主線程實(shí)現(xiàn)流程控制的主任務(wù),流程處理從線程實(shí)現(xiàn)與流程控制主任務(wù)并行的任務(wù),如果有多于2個(gè)并行的流程控制任務(wù)還要增加更多的流程處理線程。當(dāng)硬急停線程采集到急停命令后掛起流程處理主線程、從線程,并執(zhí)行相應(yīng)的急停處理工作。當(dāng)急停處理線程通過(guò)CAN總線數(shù)據(jù)處理線程接收到流程急停轉(zhuǎn)移指令后恢復(fù)流程處理主、從線程,接收到流程急停退出指令后重啟流程處理主、從線程。嵌入式實(shí)時(shí)操作系統(tǒng)平臺(tái)流程控制軟件實(shí)現(xiàn)如圖6所示。

      采用上述架構(gòu)實(shí)現(xiàn)的流程控制軟件,一個(gè)線程負(fù)責(zé)連續(xù)完成一個(gè)工作,不完成一個(gè)固定工作相關(guān)函數(shù)不退出。因此,在嵌入式無(wú)操作系統(tǒng)平臺(tái)上實(shí)現(xiàn)的流程控制軟件無(wú)法完全應(yīng)用在多線程架構(gòu)下的流程控制軟件;同樣,采用這種方式實(shí)現(xiàn)的流程控制軟件也無(wú)法應(yīng)用在嵌入式無(wú)操作系統(tǒng)平臺(tái)上。如果能將在嵌入式無(wú)操作系統(tǒng)平臺(tái)上采用的有限狀態(tài)機(jī)架構(gòu)方式實(shí)現(xiàn)的流程控制軟件的方法也應(yīng)用在實(shí)時(shí)操作系統(tǒng)平臺(tái)上,則能解決軟件重用的問(wèn)題,并能夠避免采用線程掛起、線程恢復(fù)及線程重啟等操作,確保軟件運(yùn)行的可靠性。

      3 應(yīng)用有限狀態(tài)機(jī)的實(shí)時(shí)操作系統(tǒng)平臺(tái)流程控制軟件實(shí)現(xiàn)及應(yīng)用驗(yàn)證

      3.1 控制軟件實(shí)現(xiàn)

      將原有的嵌入式實(shí)時(shí)操作系統(tǒng)平臺(tái)流程控制軟件直接與外設(shè)交互的工作采用單獨(dú)的線程實(shí)現(xiàn),其他流程處理主線程、流程處理從線程、急停處理線程、故障處理線程、配置查詢線程合并為一個(gè)工作處理線程,如圖7、圖8所示。工作處理線程采用有限狀態(tài)機(jī)的方式工作,按嵌入式無(wú)操作系統(tǒng)平臺(tái)方式實(shí)現(xiàn)流程控制、配置查詢、故障處理、數(shù)據(jù)處理等工作。工作處理線程工作方式與嵌入式無(wú)操作系統(tǒng)平臺(tái)的工作方式相同,如圖8所示。

      3.2 控制軟件驗(yàn)證

      某型號(hào)的流程控制軟件需要運(yùn)行在龍芯+VxWorks操作系統(tǒng)平臺(tái)(嵌入式實(shí)時(shí)操作系統(tǒng)平臺(tái)),其實(shí)現(xiàn)的流程控制、配置查詢等功能與另外一個(gè)型號(hào)運(yùn)行在XC164處理器平臺(tái)(嵌入式無(wú)操作系統(tǒng)平臺(tái))的流程控制軟件基本一致。

      因此,該軟件研制時(shí)通過(guò)采用有限狀態(tài)機(jī)的嵌入式實(shí)時(shí)操作系統(tǒng)平臺(tái)架構(gòu)方式,將另外一個(gè)型號(hào)的嵌入式無(wú)操作系統(tǒng)平臺(tái)流程控制軟件移植到嵌入式實(shí)時(shí)操作系統(tǒng)平臺(tái),其研制周期由原來(lái)的3~4個(gè)月縮短為1.5個(gè)月。代碼重用情況如表1所示。除網(wǎng)關(guān)處理功能模塊原有的軟件不涉及,硬件處理功能模塊由于運(yùn)行平臺(tái)不同而導(dǎo)致與硬件處理部分差異較大外,其他功能模塊重用率平均達(dá)到89.2%。

      表1 代碼重用情況統(tǒng)計(jì)

      采用有限狀態(tài)機(jī)的嵌入式實(shí)時(shí)操作系統(tǒng)平臺(tái)架構(gòu)方式加重用嵌入式無(wú)操作系統(tǒng)平臺(tái)流程控制軟件實(shí)現(xiàn)的流程控制軟件,經(jīng)過(guò)了各項(xiàng)試驗(yàn)考核,軟件運(yùn)行可靠。

      4 結(jié) 論

      本文提出的應(yīng)用有限狀態(tài)機(jī)的實(shí)時(shí)操作系統(tǒng)平臺(tái)流程控制軟件架構(gòu)通過(guò)應(yīng)用具體型號(hào)流程控制軟件研制,證明此種架構(gòu)的可行性。采用此種架構(gòu)實(shí)現(xiàn)的流程控制軟件提高了軟件的可重用程度及開(kāi)發(fā)效率,降低了研制成本,提高了軟件的可驗(yàn)證程度。同時(shí),采用此種架構(gòu)實(shí)現(xiàn)的流程控制軟件規(guī)避了線程掛起、線程恢復(fù)及線程重啟等對(duì)操作系統(tǒng)線程的非常規(guī)操作,進(jìn)一步提高了軟件的可靠性。

      [1] 單茂華. 基于有限狀態(tài)機(jī)的絕緣在線監(jiān)測(cè)裝置軟件模型與實(shí)現(xiàn)[J]. 測(cè)控技術(shù), 2007, 26(9): 79-81.

      [2] 魏丙楠. 有限狀態(tài)機(jī)在嵌入式軟件中的應(yīng)用[J]. 計(jì)算機(jī)與信息技術(shù), 2005(10): 59-60.

      [3] 王金剛. VxWorks程序員指南[M]. 北京: 清華大學(xué)出版社, 2003.

      [4] 孫健. VxWorks下幾種任務(wù)設(shè)計(jì)模型的分析與實(shí)現(xiàn)[J]. 數(shù)字技術(shù)與應(yīng)用2015(1): 2-3.

      [5] 李勇華. 嵌入式操作系統(tǒng) VxWorks的實(shí)時(shí)性能測(cè)試分析[J]. 電子技術(shù)與軟件工程, 2014(2): 1-2.

      [6] 饒冬. 基于 Linux的航天地面站測(cè)控軟件架構(gòu)設(shè)計(jì)[J]. 遙測(cè)遙控, 2015(4): 31-36.

      [7] 吳慧婷. 一種高可靠性嵌入式軟件架構(gòu)設(shè)計(jì)[J]. 軟件導(dǎo)刊, 2015(10): 1-2.

      [8] 劉玉寶. 基于嵌入式軟件架構(gòu)的可靠性分析方法. 科技資訊, 2014 (8):1-2.

      Software Realization of Flow-control Software on RTOS Base on FSM

      Li Xiang-yang,Liu Xian-qin,Zhang Xiang-wen
      (Beijing Institue of Space Lauch Technology, Beijing, 100076)

      Software code can not reuse because difference of software architecture between embendded RTOS and embendded without OS. This article presents a software architecture of RTOS base on Finite State Machine(FSM). This method resolves problem of code reuse, practical application proves this architecture.

      Real-time operating system; Finite state machine; Software architecture; Code reuse

      TP311.1

      A

      1004-7182(2017)02-0080-07

      10.7654/j.issn.1004-7182.20170218

      2016-07-31;

      2016-11-03

      李向陽(yáng)(1977-),男,高級(jí)工程師,主要研究方向?yàn)殡娨合到y(tǒng)控制

      猜你喜歡
      狀態(tài)機(jī)功能模塊線程
      基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
      淺談linux多線程協(xié)作
      基于ASP.NET標(biāo)準(zhǔn)的采購(gòu)管理系統(tǒng)研究
      輸電線路附著物測(cè)算系統(tǒng)測(cè)算功能模塊的研究
      M市石油裝備公服平臺(tái)網(wǎng)站主要功能模塊設(shè)計(jì)與實(shí)現(xiàn)
      功能模塊的設(shè)計(jì)與應(yīng)用研究
      Linux線程實(shí)現(xiàn)技術(shù)研究
      FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
      基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計(jì)
      么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
      澄城县| 钦州市| 东方市| 兴义市| 南涧| 肥西县| 海安县| 抚远县| 绍兴市| 玉门市| 湛江市| 湘阴县| 区。| 莱州市| 富平县| 黄骅市| 云霄县| 兖州市| 玉溪市| 苗栗市| 朝阳区| 板桥市| 丰宁| 班戈县| 井研县| 图木舒克市| 北辰区| 牟定县| 广宗县| 仁化县| 敦化市| 嘉义市| 宜黄县| 壶关县| 西林县| 德惠市| 会同县| 乌兰浩特市| 海淀区| 桐乡市| 罗平县|