軟件中斷線程(SWI)優(yōu)先級次之,一般將相對于普通任務(wù)比較重要的、發(fā)生頻率比較頻繁的子功能模塊安排在軟件中斷線程(SWI)中。通過DSP/BIOS內(nèi)核的API調(diào)用來啟動軟件中斷線程,利用每個軟件中斷線程自身的郵箱有條件地啟動對應(yīng)的軟件中斷。本系統(tǒng)設(shè)置的軟件中斷包括:PWM信號生成模塊和通信模塊(發(fā)送)。
任務(wù)線程(TSK)優(yōu)先級一般。因系統(tǒng)堆棧有限,大部分線程都安排成任務(wù)線程。任務(wù)線程也具有優(yōu)先級,優(yōu)先級高的任務(wù)優(yōu)先執(zhí)行,相同優(yōu)先等級的任務(wù)按照任務(wù)請求順序執(zhí)行。每個任務(wù)創(chuàng)建后都處于4種執(zhí)行狀態(tài)即運行、就緒、暫停和終止中的一種。本系統(tǒng)將電量數(shù)據(jù)計算和系統(tǒng)保護、故障和運行數(shù)據(jù)存儲模塊、人機交互模塊放置在任務(wù)線程(TSK)中。電量數(shù)據(jù)計算主要是計算輸入輸出電壓、電流、功率有效值、輸出頻率等電量參數(shù),系統(tǒng)保護主要是根據(jù)測得的電量數(shù)據(jù)進行系統(tǒng)過載、過熱等故障判斷,當出現(xiàn)這些故障時經(jīng)過一定延時后通知主控板。故障和運行數(shù)據(jù)存儲模是將系統(tǒng)設(shè)定的額定負載量、故障歷史記錄、通信地址等需要長期保存的數(shù)據(jù)存儲到時鐘芯片存儲器中。鍵盤顯示任務(wù)線程包括鍵盤檢測任務(wù)和液晶顯示任務(wù)兩部分。鍵盤顯示任務(wù)線程每500ms運行1次,檢測是否有按鍵需要處理。當有按鍵需要處理時,液晶顯示任務(wù)根據(jù)按鍵顯示相應(yīng)數(shù)據(jù)。沒有按鍵需要處理,顯示任務(wù)根據(jù)目前所出界面更新顯示數(shù)據(jù)。
在4種線程中,后臺線程(IDL)級別最低??蓪崟r分析模塊放在其中運行,用來在應(yīng)用程序執(zhí)行期間對DSP應(yīng)用程序進行實時交互與診斷,了解DSP運行情況。據(jù)此設(shè)計的系統(tǒng)軟件參數(shù)設(shè)定和邏輯故障顯示界面見圖1。