引 言
電子控制系統(tǒng)一般都是實時系統(tǒng),常需處理許多并發(fā)事件的輸入數(shù)據(jù)流這些事件的到來次序和幾率通常是不可預(yù)測的,而且還要求系統(tǒng)必須在事先設(shè)定好的時限內(nèi)做出相應(yīng)的響應(yīng)[1]
對于如何控制系統(tǒng)的復(fù)雜行為,普遍采用的是事件觸發(fā)方案,即系統(tǒng)的所有行為響應(yīng)系統(tǒng)外部事件而執(zhí)行然而,中斷丟失與事件觸發(fā)系統(tǒng)的開銷是人們經(jīng)常忽略的一個問題,文獻[2]討論了一個這樣的例子:一個包含27個任務(wù)、采用RM調(diào)度算法的事件觸發(fā)系統(tǒng),CPU的實際利用率僅為18%同時,電子控制系統(tǒng)也可以看作是一個能實時采集一組定義好的輸入值,同時在預(yù)先確定的時間間隔給出一個正確輸出的實時系統(tǒng)為了滿足安全、低成本及程序盡可能簡單等苛刻要求,電子控制系統(tǒng)的開發(fā)最終走向時間觸發(fā)結(jié)構(gòu)[1]時間觸發(fā)意味著所有的與輸入采樣、計算及輸出結(jié)果等相關(guān)的動作在預(yù)先給定的時間前執(zhí)行,因而能保證準(zhǔn)確的調(diào)度時間
1 時間觸發(fā)系統(tǒng)的任務(wù)調(diào)度器
調(diào)度器是一種用于電子控制系統(tǒng)的運行環(huán)境,也可看作是一個簡單的操作系統(tǒng)在電子控制系統(tǒng)中使用調(diào)度器可以縮短開發(fā)時間,提高軟件的模塊化程度調(diào)度器具有合作式與搶占式兩種形式如果一個被"喚醒"的高優(yōu)先級任務(wù)可以打斷其他正在運行的低優(yōu)先級任務(wù),則調(diào)度器是搶占式的;反之,則是合作式的由于其應(yīng)用背景的特殊性,電子控制系統(tǒng)運行的任務(wù)絕大多數(shù)是周期性任務(wù)(如周期性的數(shù)據(jù)采集任務(wù)、LED顯示刷新任務(wù)等),并且任務(wù)的就緒時間、開始時間、執(zhí)行時間和截止期限等信息均可預(yù)先知道因此,可以采用基于時間觸發(fā)形式的合作式調(diào)度器,即任務(wù)在特定時刻以周期性或單次方式被調(diào)度
2 時間觸發(fā)合作式調(diào)度器的機制
時間觸發(fā)合作式調(diào)度器通常通過一個硬件定時器來實現(xiàn),所有的任務(wù)都是由時間觸發(fā)的,這也意味著除了定時器中斷以外,再也沒有其他形式的中斷硬件定時器將被設(shè)置為產(chǎn)生一個周期中斷信號,這個中斷信號的頻率約為1kHz
時間觸發(fā)合作式調(diào)度器的主要功能就是喚醒在預(yù)先確定好時間執(zhí)行的任務(wù)在工作時間,調(diào)度器檢查靜態(tài)的任務(wù)鏈表,根據(jù)任務(wù)的周期判斷是否有任務(wù)需執(zhí)行,如果有則立即執(zhí)行任務(wù);任務(wù)執(zhí)行完后繼續(xù)檢查任務(wù)鏈表,重復(fù)上一個過程完成鏈表檢查后,由于節(jié)能的關(guān)系,CPU進入休眠狀態(tài),直到下一個時鐘節(jié)拍的到來其任務(wù)調(diào)度機制如圖1所示由于合作式調(diào)度器能保證在同一時刻,系統(tǒng)中只有一個任務(wù)被觸發(fā),而且在任何時刻系統(tǒng)中都可以保證有任務(wù)在執(zhí)行這樣,系統(tǒng)的使用效率得到了提高在分布式系統(tǒng)中,各個節(jié)點間存在著時間的漂移(由于每個節(jié)點所處的環(huán)境以及時鐘晶振的制作工藝等存在差異),所以必須動態(tài)地對節(jié)點時鐘進行調(diào)整,使整個系統(tǒng)的各個節(jié)點時鐘能夠同步
合作式調(diào)度器可靠而且可預(yù)測的主要原因是在任一時刻只有一個任務(wù)是活動的,這個任務(wù)運行直到完成,然后再由調(diào)度器來控制如果搶占式調(diào)度,有多個活動任務(wù),執(zhí)行"上下文切換"及"關(guān)鍵段保護"等將增加系統(tǒng)的開銷圖2[3]比較了使用合作式調(diào)度器與搶占式調(diào)度器設(shè)計巡航系統(tǒng)的情況可以看到,采用合作式調(diào)度模式可以精簡所需的代碼行數(shù),節(jié)省程序存儲器和數(shù)據(jù)存儲器空間同時,許多研究表明,相對于搶占式調(diào)度器,除任務(wù)級的響應(yīng)時間快很多外,合作式調(diào)度器還具有很多優(yōu)點例如,文獻[4]指出與搶占式替代方案相比,合作式調(diào)度有以下四個優(yōu)點:簡單,可減小系統(tǒng)開銷,容易測試以及更容易讓權(quán)威機構(gòu)接受這種形式的調(diào)度
3 應(yīng)用實例
太陽跟蹤系統(tǒng)是針對太陽能空調(diào)、高效太陽能光伏發(fā)電、高效太陽能熱水器等需要對太陽進行實時跟蹤的應(yīng)用領(lǐng)域設(shè)計的,通過使設(shè)備的某一面時刻與太陽光保持垂直,獲取最大的太陽能量
本文涉及的跟蹤系統(tǒng)采用傳感器跟蹤與天文定位跟蹤相結(jié)合的模式即通過當(dāng)?shù)氐慕?jīng)緯度與當(dāng)前日期計算日出、日落時間,然后根據(jù)日落、日出的時間差及電機的步距角,每隔一段時間輸出一個脈沖控制設(shè)備自動往西同時,根據(jù)光電傳感器輸入,每隔一段時間控制電機在東、西、南、北四個方向自動調(diào)節(jié)設(shè)備,使設(shè)備與太陽光保持垂直圖3給出了太陽跟蹤器上下文環(huán)境圖,給出了系統(tǒng)與傳感器和執(zhí)行器接口的簡單描述由圖3可知實現(xiàn)系統(tǒng)功能所需的任務(wù)、任務(wù)周期及執(zhí)行時間如表1所列
在表1所列的任務(wù)中,Task2每120 ms執(zhí)行一次鍵盤掃描,用于設(shè)置當(dāng)前時間、經(jīng)緯度及保存手動調(diào)節(jié)設(shè)備的輸入Task6根據(jù)手動調(diào)節(jié)設(shè)備輸入及光電傳感器的輸入調(diào)節(jié)設(shè)備方位Task7計算日出日落時間,每24小時執(zhí)行一次Task3、Task4、Task5與Task6,采用swith_case結(jié)構(gòu),不在運行時間范圍內(nèi),程序直接跳出,否則運行相應(yīng)的任務(wù),Task8在到達日落時間或設(shè)備觸及西方向限位器時起作用,控制電機使設(shè)備對準(zhǔn)太陽升起位置
根據(jù)合作式調(diào)度器的原理與各任務(wù)的周期,設(shè)置定時器每4 ms產(chǎn)生一個周期中斷信號因為有多個任務(wù)的執(zhí)行時間超過4 ms,Task1無法按規(guī)定的頻率執(zhí)行此外,有多個任務(wù)的 最壞執(zhí)行時間超過30 ms,使鍵盤掃描的靈敏度受到影響因此采用直接將Task1、Task2包含進定時器中斷服務(wù)子程序的方法,從而使所有任務(wù)的周期及執(zhí)行時間均能滿足系統(tǒng)任務(wù)可調(diào)度的要求
結(jié) 語
在工程中采用事件觸發(fā)模式很大程度上會增加系統(tǒng)的復(fù)雜性,導(dǎo)致龐大的代碼結(jié)構(gòu)這樣的代碼長度及復(fù)雜性不適合普通開發(fā)人員構(gòu)建,而商業(yè)實時操作系統(tǒng)往往價格昂貴,并且需要很大的操作系統(tǒng)開銷采用基于時間觸發(fā)模式開發(fā)系統(tǒng)可以滿足實時、簡單、可預(yù)測性等工程要求在應(yīng)用實例中也可以看到,對于任務(wù)周期與執(zhí)行時間相差懸殊的任務(wù),為滿足可調(diào)度性的要求,將需頻繁執(zhí)行的短任務(wù)加入定時器中斷服務(wù)子程序的方法延長了中斷處理的時間,同時削弱了系統(tǒng)實時響應(yīng)能力及可預(yù)測能力此外,也可以通過將執(zhí)行時間長的任務(wù)分解成幾個執(zhí)行時間短的任務(wù)來滿足任務(wù)可調(diào)度性相對于事件觸發(fā)模式,時間觸發(fā)模式對工程技術(shù)人員的要求更高
北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...
關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心東京2022年10月18日 /美通社/ -- NIPPON EXPRESS HOLDINGS株式會社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團公司上海通運國際物流有限公司(Nipp...
關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP要問機器人公司哪家強,波士頓動力絕對是其中的佼佼者。近來年該公司在機器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機器人會后空翻,自主爬樓梯等。這不,波士頓動力又發(fā)布了其機器人組團跳男團舞的新視頻,表演的機器人包括...
關(guān)鍵字: 機器人 BSP 工業(yè)機器人 現(xiàn)代汽車