一種基于“輪詢式”多時(shí)間片精確調(diào)度的嵌入式控制系統(tǒng)設(shè)計(jì)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式控制系統(tǒng)技術(shù)領(lǐng)域,具體為一種基于“輪詢式”多時(shí)間片精確調(diào)度的嵌入式控制系統(tǒng)設(shè)計(jì)方法,適用于無(wú)操作系統(tǒng)的多任務(wù)嵌入式實(shí)時(shí)控制系統(tǒng)設(shè)計(jì)。
【背景技術(shù)】
[0002]嵌入式控制系統(tǒng)的設(shè)計(jì)涉及兩種平臺(tái),一種是自帶操作系統(tǒng),如VxWorks,這種方式的優(yōu)點(diǎn)是便于開發(fā)者進(jìn)行多任務(wù)管理,但因操作系統(tǒng)的存在,啟動(dòng)時(shí)間比裸機(jī)長(zhǎng),且操作系統(tǒng)采用信號(hào)量的形式進(jìn)行調(diào)度和管理,無(wú)法滿足毫秒級(jí)實(shí)時(shí)事件的響應(yīng)要求;一種是不帶操作系統(tǒng),裸機(jī)運(yùn)行,這種方式的優(yōu)點(diǎn)是啟動(dòng)快,實(shí)時(shí)性強(qiáng),但是在進(jìn)行多任務(wù)并行處理時(shí),實(shí)現(xiàn)較為困難。通常的做法是通過自定義中斷任務(wù)確保定周期實(shí)時(shí)事件的執(zhí)行,但在中斷任務(wù)頻繁且耗時(shí)較長(zhǎng)時(shí),會(huì)影響系統(tǒng)實(shí)時(shí)性和可靠性。
【發(fā)明內(nèi)容】
[0003]為解決嵌入式系統(tǒng)快速啟動(dòng)、高實(shí)時(shí)性和多任務(wù)并行處理的矛盾,本發(fā)明提出一種基于“輪詢式”多時(shí)間片精確調(diào)度的嵌入式控制系統(tǒng)設(shè)計(jì)方法,得到的嵌入式控制系統(tǒng)能夠基于裸機(jī)運(yùn)行,啟動(dòng)時(shí)間優(yōu)于操作系統(tǒng),實(shí)時(shí)性也強(qiáng),而且該系統(tǒng)基于多任務(wù)查詢模式,避免了因大量中斷服務(wù)程序運(yùn)行對(duì)實(shí)時(shí)性造成的影響;可根據(jù)不同任務(wù)設(shè)置不同的優(yōu)先級(jí)進(jìn)行分級(jí)調(diào)度,滿足多類任務(wù)處理需求。
[0004]本發(fā)明的技術(shù)方案為:
[0005]所述一種基于“輪詢式”多時(shí)間片精確調(diào)度的嵌入式控制系統(tǒng)設(shè)計(jì)方法,其特征在于:包括以下步驟:
[0006]步驟1:確定嵌入式控制系統(tǒng)所要完成的每個(gè)任務(wù)的處理時(shí)間,若某一任務(wù)的處理時(shí)間大于系統(tǒng)控制周期,則將該任務(wù)分解為若干子任務(wù),且分解后的單個(gè)子任務(wù)處理時(shí)間小于系統(tǒng)控制周期;
[0007]步驟2:將嵌入式控制系統(tǒng)所要完成的所有任務(wù)分為定時(shí)任務(wù)、實(shí)時(shí)任務(wù)和隨機(jī)任務(wù)三類,所述定時(shí)任務(wù)指在每個(gè)系統(tǒng)控制周期內(nèi)均需完成的任務(wù);所述嵌入式控制系統(tǒng)所要完成的所有任務(wù)由所有處理時(shí)間小于系統(tǒng)控制周期的任務(wù)和步驟I得到的分解后的子任務(wù)組成;
[0008]步驟3:在嵌入式控制系統(tǒng)的單個(gè)系統(tǒng)控制周期內(nèi),設(shè)計(jì)采用以下處理流程:
[0009]步驟3.1:在系統(tǒng)控制周期開始時(shí)刻,輪詢本系統(tǒng)控制周期的任務(wù)標(biāo)簽庫(kù),所述任務(wù)標(biāo)簽庫(kù)由所有定時(shí)任務(wù)標(biāo)簽、本系統(tǒng)控制周期要完成的實(shí)時(shí)任務(wù)標(biāo)簽以及在上一系統(tǒng)控制周期形成的隨機(jī)任務(wù)標(biāo)簽組成;
[0010]步驟3.2:判斷本系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù)中的所有任務(wù)的處理時(shí)間之和是否大于系統(tǒng)控制周期,若是,則將本系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù)中的某些實(shí)時(shí)任務(wù)標(biāo)簽和/或隨機(jī)任務(wù)標(biāo)簽轉(zhuǎn)移至下一系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù),確保本系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù)中所有任務(wù)的處理時(shí)間之和小于系統(tǒng)控制周期;
[0011]步驟3.3:執(zhí)行本系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù)中的所有任務(wù),當(dāng)執(zhí)行過程中出現(xiàn)新加入的隨機(jī)任務(wù),則將新加入的隨機(jī)任務(wù)標(biāo)簽放入下一系統(tǒng)控制周期的任務(wù)標(biāo)簽庫(kù)中。
[0012]有益效果
[0013]采用本發(fā)明方法設(shè)計(jì)的嵌入式控制系統(tǒng)無(wú)操作系統(tǒng),可以兼顧操作系統(tǒng)多任務(wù)并行處理的便利性,裸機(jī)系統(tǒng)的快速啟動(dòng),及對(duì)毫秒級(jí)以上事件響應(yīng)的實(shí)時(shí)性。本方法適用于實(shí)時(shí)性要求較高、啟動(dòng)時(shí)間要求苛刻的嵌入式控制系統(tǒng)設(shè)計(jì),可以達(dá)到對(duì)系統(tǒng)資源的最大化利用。
【具體實(shí)施方式】
[0014]本實(shí)施例中所要設(shè)計(jì)的嵌入式控制系統(tǒng),其要完成的任務(wù)包括系統(tǒng)航行控制任務(wù)、端口通訊任務(wù)、檢測(cè)任務(wù)、彈道執(zhí)行任務(wù)、系統(tǒng)在線監(jiān)控任務(wù)。為了快速啟動(dòng)、高實(shí)時(shí)性和多任務(wù)處理,本實(shí)施例采用基于“輪詢式”多時(shí)間片精確調(diào)度的嵌入式控制系統(tǒng)設(shè)計(jì)方法設(shè)計(jì)嵌入式控制系統(tǒng),包括以下步驟:
[0015]步驟1:確定嵌入式控制系統(tǒng)所要完成的每個(gè)任務(wù)的處理時(shí)間,若某一任務(wù)的處理時(shí)間大于系統(tǒng)控制周期,則將該任務(wù)分解為若干子任務(wù),且分解后的單個(gè)子任務(wù)處理時(shí)間小于系統(tǒng)控制周期。
[0016]步驟2 ;將嵌入式控制系統(tǒng)所要完成的所有任務(wù)分為定時(shí)任務(wù)、實(shí)時(shí)任務(wù)和隨機(jī)任務(wù)三類。所述定時(shí)任務(wù)指在每個(gè)系統(tǒng)控制周期內(nèi)均需完成的任務(wù),定時(shí)任務(wù)的執(zhí)行與系統(tǒng)控制周期相匹配。本實(shí)施例中,系統(tǒng)航行控制任務(wù)、端口通訊任務(wù)、檢測(cè)任務(wù)、彈道執(zhí)行任務(wù)、系統(tǒng)在線監(jiān)控任務(wù)的處理時(shí)間均小于系統(tǒng)控制周期,所以都不用分解,其中系統(tǒng)航行控制任務(wù)、系統(tǒng)在線監(jiān)控任務(wù)屬于定時(shí)任務(wù),需按周期執(zhí)行;端口通訊為實(shí)時(shí)任務(wù),有則執(zhí)行;檢測(cè)任務(wù)和彈道執(zhí)行任務(wù)為隨機(jī)任務(wù)。
[0017]步驟3:在嵌入式控制系統(tǒng)的單個(gè)系統(tǒng)控制周期內(nèi),設(shè)計(jì)采用以下處理流程,將所有任務(wù)按時(shí)間片進(jìn)行精確分配和調(diào)度,達(dá)到在一個(gè)系統(tǒng)控制周期內(nèi),定時(shí)任務(wù)定周期執(zhí)行,實(shí)時(shí)任務(wù)隨時(shí)響應(yīng),隨機(jī)任務(wù)擇機(jī)執(zhí)行的效果,同時(shí)也杜絕任務(wù)處理過程中跨周期問題的出現(xiàn)。
[0018]步驟3.1:在系統(tǒng)控制周期開始時(shí)刻,輪詢本系統(tǒng)控制周期的任務(wù)標(biāo)簽庫(kù),所述任務(wù)標(biāo)簽庫(kù)由所有定時(shí)任務(wù)標(biāo)簽、本系統(tǒng)控制周期要完成的實(shí)時(shí)任務(wù)標(biāo)簽以及在上一系統(tǒng)控制周期形成的隨機(jī)任務(wù)標(biāo)簽組成;
[0019]步驟3.2:判斷本系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù)中的所有任務(wù)的處理時(shí)間之和是否大于系統(tǒng)控制周期,若是,則將本系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù)中的某些實(shí)時(shí)任務(wù)標(biāo)簽和/或隨機(jī)任務(wù)標(biāo)簽轉(zhuǎn)移至下一系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù),確保本系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù)中所有任務(wù)的處理時(shí)間之和小于系統(tǒng)控制周期;
[0020]步驟3.3:執(zhí)行本系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù)中的所有任務(wù),當(dāng)執(zhí)行過程中出現(xiàn)新加入的隨機(jī)任務(wù),則將新加入的隨機(jī)任務(wù)標(biāo)簽放入下一系統(tǒng)控制周期的任務(wù)標(biāo)簽庫(kù)中。
[0021]通過上述方法設(shè)計(jì)得到的嵌入式控制系統(tǒng)基于裸機(jī)運(yùn)行,啟動(dòng)時(shí)間優(yōu)于操作系統(tǒng),實(shí)時(shí)性也強(qiáng);基于輪詢模式,避免了因大量中斷服務(wù)程序運(yùn)行對(duì)實(shí)時(shí)性造成的影響;可根據(jù)不同任務(wù)設(shè)置不同的優(yōu)先級(jí)進(jìn)行分級(jí)調(diào)度,滿足多類任務(wù)處理需求。
[0022]盡管上面已經(jīng)示出和描述了本發(fā)明的實(shí)施例,可以理解的是,上述實(shí)施例是示例性的,不能理解為對(duì)本發(fā)明的限制,本領(lǐng)域的普通技術(shù)人員在不脫離本發(fā)明的原理和宗旨的情況下在本發(fā)明的范圍內(nèi)可以對(duì)上述實(shí)施例進(jìn)行變化、修改、替換和變型。
【主權(quán)項(xiàng)】
1.一種基于“輪詢式”多時(shí)間片精確調(diào)度的嵌入式控制系統(tǒng)設(shè)計(jì)方法,其特征在于:包括以下步驟: 步驟1:確定嵌入式控制系統(tǒng)所要完成的每個(gè)任務(wù)的處理時(shí)間,若某一任務(wù)的處理時(shí)間大于系統(tǒng)控制周期,則將該任務(wù)分解為若干子任務(wù),且分解后的單個(gè)子任務(wù)處理時(shí)間小于系統(tǒng)控制周期; 步驟2:將嵌入式控制系統(tǒng)所要完成的所有任務(wù)分為定時(shí)任務(wù)、實(shí)時(shí)任務(wù)和隨機(jī)任務(wù)三類,所述定時(shí)任務(wù)指在每個(gè)系統(tǒng)控制周期內(nèi)均需完成的任務(wù);所述嵌入式控制系統(tǒng)所要完成的所有任務(wù)由所有處理時(shí)間小于系統(tǒng)控制周期的任務(wù)和步驟I得到的分解后的子任務(wù)組成; 步驟3:在嵌入式控制系統(tǒng)的單個(gè)系統(tǒng)控制周期內(nèi),設(shè)計(jì)采用以下處理流程: 步驟3.1:在系統(tǒng)控制周期開始時(shí)刻,輪詢本系統(tǒng)控制周期的任務(wù)標(biāo)簽庫(kù),所述任務(wù)標(biāo)簽庫(kù)由所有定時(shí)任務(wù)標(biāo)簽、本系統(tǒng)控制周期要完成的實(shí)時(shí)任務(wù)標(biāo)簽以及在上一系統(tǒng)控制周期形成的隨機(jī)任務(wù)標(biāo)簽組成; 步驟3.2:判斷本系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù)中的所有任務(wù)的處理時(shí)間之和是否大于系統(tǒng)控制周期,若是,則將本系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù)中的某些實(shí)時(shí)任務(wù)標(biāo)簽和/或隨機(jī)任務(wù)標(biāo)簽轉(zhuǎn)移至下一系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù),確保本系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù)中所有任務(wù)的處理時(shí)間之和小于系統(tǒng)控制周期; 步驟3.3:執(zhí)行本系統(tǒng)控制周期任務(wù)標(biāo)簽庫(kù)中的所有任務(wù),當(dāng)執(zhí)行過程中出現(xiàn)新加入的隨機(jī)任務(wù),則將新加入的隨機(jī)任務(wù)標(biāo)簽放入下一系統(tǒng)控制周期的任務(wù)標(biāo)簽庫(kù)中。
【專利摘要】本發(fā)明提出一種基于“輪詢式”多時(shí)間片精確調(diào)度的嵌入式控制系統(tǒng)設(shè)計(jì)方法,首先根據(jù)每個(gè)任務(wù)的處理時(shí)間和系統(tǒng)控制周期,判斷是否需要將任務(wù)分解,其次將所要完成的所有任務(wù)分為定時(shí)任務(wù)、實(shí)時(shí)任務(wù)和隨機(jī)任務(wù)三類,并在單個(gè)系統(tǒng)控制周期內(nèi)設(shè)計(jì)三類任務(wù)的執(zhí)行程序。本發(fā)明適用于無(wú)操作系統(tǒng)裸機(jī)模式下多任務(wù)實(shí)時(shí)嵌入式系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),可以兼顧操作系統(tǒng)多任務(wù)并行處理的便利性,裸機(jī)系統(tǒng)的快速啟動(dòng),及對(duì)毫秒級(jí)以上事件響應(yīng)的實(shí)時(shí)性,適用于實(shí)時(shí)性要求較高、啟動(dòng)時(shí)間要求苛刻的嵌入式系統(tǒng)設(shè)計(jì),還可以達(dá)到對(duì)系統(tǒng)資源的最大化利用。
【IPC分類】G06F9/44
【公開號(hào)】CN105204857
【申請(qǐng)?zhí)枴緾N201510603284
【發(fā)明人】雷茵, 程樹明, 宋喜發(fā)
【申請(qǐng)人】中國(guó)船舶重工集團(tuán)公司第七〇五研究所
【公開日】2015年12月30日
【申請(qǐng)日】2015年9月21日