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