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