基于PIC單片機(jī)的永磁無刷直流電動(dòng)機(jī)控制系統(tǒng)的開發(fā)
值得說明的是:
① 系統(tǒng)中的換相邏輯由可編程邏輯器件完成,主要是為了提高系統(tǒng)的可靠性,從功能上講,完全可由單片機(jī)實(shí)現(xiàn);
② 電機(jī)的速度檢測(cè),可根據(jù)位置信號(hào)利用軟件計(jì)算得來,故省略了速度傳感器;
③ 模擬輸入為電機(jī)的速度給定信號(hào)。
3.嵌入式系統(tǒng)軟件開發(fā)模式
對(duì)于簡(jiǎn)單的應(yīng)用系統(tǒng),系統(tǒng)的軟件開發(fā)模式通常如圖2所示,稱為前后臺(tái)系統(tǒng)(也叫無限循環(huán)系統(tǒng))。
前后臺(tái)系統(tǒng)中,應(yīng)用程序就是一個(gè)無限循環(huán)。循環(huán)中調(diào)用函數(shù)完成相應(yīng)的操作,這些操作稱為后臺(tái)任務(wù);中斷服務(wù)程序處理異步事件,這部分稱為前臺(tái)行為。因?yàn)橹袛喾?wù)程序提供的信息一直要等到后臺(tái)程序運(yùn)行到該處理這個(gè)信息時(shí)才得到處理,所以最壞情況下的任務(wù)響應(yīng)時(shí)間等于整個(gè)循環(huán)的執(zhí)行時(shí)間。因?yàn)楹笈_(tái)循環(huán)的執(zhí)行周期不是常數(shù),所以基于前后臺(tái)模式的應(yīng)用軟件開發(fā),雖然設(shè)計(jì)過程簡(jiǎn)單,但系統(tǒng)的實(shí)時(shí)性得不到保障。
為了提高系統(tǒng)的實(shí)時(shí)性,可以采用基于嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)的軟件開發(fā)模式。RTOS分為兩類:非可剝奪型內(nèi)核和可剝奪型內(nèi)核,一般商用的都是可剝奪型內(nèi)核,所以本文只討論此類RTOS,其內(nèi)核結(jié)構(gòu)如圖3所示。
RTOS將整個(gè)應(yīng)用細(xì)分為多個(gè)任務(wù),每個(gè)任務(wù)完成特定的功能,并被賦予一定的優(yōu)先級(jí),擁有自己的任務(wù)控制塊和??臻g。一般地,每個(gè)任務(wù)在程序結(jié)構(gòu)上都是一個(gè)無限循環(huán),它有多個(gè)狀態(tài)——休眠態(tài)、就緒態(tài)、運(yùn)行態(tài)、掛起態(tài)和中斷態(tài)等。系統(tǒng)內(nèi)核總是讓就緒態(tài)的高優(yōu)先級(jí)任務(wù)先運(yùn)行,中斷服務(wù)程序可搶占CPU,中斷服務(wù)程序完成時(shí),系統(tǒng)內(nèi)核讓此時(shí)就緒態(tài)中優(yōu)先級(jí)最高的任務(wù)運(yùn)行(不一定是被中斷的任務(wù))??梢?,基于RTOS的軟件開發(fā)模式使系統(tǒng)的任務(wù)響應(yīng)時(shí)間得到了最優(yōu)化。更重要的是,這種開發(fā)模式將以往面向功能的應(yīng)用開發(fā)轉(zhuǎn)化為面相任務(wù)的應(yīng)用開發(fā),簡(jiǎn)化了系統(tǒng)設(shè)計(jì)的邏輯結(jié)構(gòu);同時(shí),由于有了RTOS,屏蔽了應(yīng)用軟件對(duì)底層硬件的可見性,將以往軟件系統(tǒng)的兩層結(jié)構(gòu)轉(zhuǎn)化為三層結(jié)構(gòu)(如圖4所示),極大地方便了系統(tǒng)的軟件擴(kuò)展與硬件升級(jí)。
對(duì)于PIC18F系列單片機(jī),目前常用的嵌入式實(shí)時(shí)操作系統(tǒng)有:μC/OS-II、Salvo、CMX、PIC18OS等。它們都是可剝奪型的實(shí)時(shí)內(nèi)核,詳細(xì)的比較如表1所示。
評(píng)論