1.前 言
嵌入式系統(tǒng)是指以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟、硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、體積、成本、可靠性、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)是面向應(yīng)用的,系統(tǒng)的硬件選型和軟件開發(fā)模式都必須根據(jù)具體的應(yīng)用確定。
永磁無刷直流電動(dòng)機(jī)是電機(jī)控制研究領(lǐng)域的熱點(diǎn)之一,這與其自身固有的技術(shù)優(yōu)勢(shì)密切相關(guān):以電子換相取代了有刷直流電動(dòng)機(jī)的機(jī)械換相。從根本上革除了普通有刷直流電動(dòng)機(jī)由于電刷換相帶來的火花、噪音、高故障率等一系列問題,同時(shí)又使系統(tǒng)的性能能夠與普通有刷直流電動(dòng)機(jī)相媲美,因此得到了廣泛的應(yīng)用。永磁無刷直流電動(dòng)機(jī)的電子換相離不開電機(jī)的轉(zhuǎn)子位置信號(hào),傳統(tǒng)的方法是采用霍爾器件或其他位置傳感器檢測(cè)位置信號(hào),這使得系統(tǒng)的維護(hù)和制造都不方便,并且由于傳感器的工作特性不穩(wěn)定,給系統(tǒng)的安全運(yùn)行帶來了一些隱患。因此,無位置傳感器方案引起了人們的極大興趣。
本文結(jié)合無位置傳感器永磁無刷直流電動(dòng)機(jī)控制系統(tǒng)的開發(fā),以 MICroChip 公司的 PIC18F452 單片機(jī) 為主控器件,并采用嵌入式實(shí)時(shí)操作系統(tǒng)μ C/OS-II 作為軟件開發(fā)平臺(tái),詳細(xì)討論了嵌入式系統(tǒng)的開發(fā)模式與流程。
2. 系統(tǒng)硬件平臺(tái)設(shè)計(jì)
嵌入式系統(tǒng)設(shè)計(jì)的第一步是結(jié)合具體的應(yīng)用,綜合考慮系統(tǒng)對(duì)成本、性能、可擴(kuò)展性、開發(fā)周期等各個(gè)方面的要求,確定系統(tǒng)的主控器件,并以之為核心搭建系統(tǒng)硬件平臺(tái)。
無位置傳感器永磁無刷直流電動(dòng)機(jī)控制系統(tǒng)的關(guān)鍵問題是位置檢測(cè)。目前已經(jīng)有了很多位置檢測(cè)方案,其中,反電勢(shì)法由于簡單實(shí)用而得以廣泛采用。反電勢(shì)法的原理是:基于電機(jī)的三相端電壓,通過硬件檢測(cè)電路或軟件算法得到三相反電勢(shì)過零信號(hào),然后用軟件移相得到換相時(shí)刻,并在換相時(shí)刻按換相邏輯完成換相,觸發(fā)逆變橋以合適的導(dǎo)通時(shí)序工作,從而保證了電機(jī)的正常運(yùn)行。
反電勢(shì)法的永磁無刷直流電動(dòng)機(jī)無位置傳感器控制對(duì)系統(tǒng)硬件提出了更高的要求:
① 三個(gè)外部中斷輸入引腳,便于捕捉三相反電勢(shì)過零信號(hào);
② 至少一個(gè) PWM模塊,實(shí)現(xiàn)電機(jī)的斬波調(diào)速;
③ 豐富的定時(shí)器資源,完成軟件移相、測(cè)速等功能;
④ 多通道的 AD轉(zhuǎn)換模塊,能夠采樣速度給定及主電路的電流、電壓信號(hào);
⑤ 硬件乘法器,保證速度、電流調(diào)節(jié)器的快速性;
⑥ 足夠的程序和數(shù)據(jù)存儲(chǔ)器,便于系統(tǒng)擴(kuò)展;
⑦ 高速的系統(tǒng)工作頻率,保證系統(tǒng)的強(qiáng)實(shí)時(shí)性;
⑧ 豐富的通信模塊,便于系統(tǒng)與其他嵌入式系統(tǒng)的互連。
對(duì)于無位置傳感器永磁無刷直流電動(dòng)機(jī)控制系統(tǒng)的設(shè)計(jì),有很多專用芯片可供選用,但為了進(jìn)一步提高系統(tǒng)性能,增強(qiáng)設(shè)計(jì)的靈活性,多采用 DSP 或?qū)S?單片機(jī) 等智能器件。但是,這樣在提高系統(tǒng)性能的同時(shí)卻增加了系統(tǒng)開發(fā)成本。為了設(shè)計(jì)一個(gè)高性能、低成本的開發(fā)平臺(tái),針對(duì)應(yīng)用對(duì)系統(tǒng)硬件的要求,考慮到 PIC18F452 單片機(jī)的高性價(jià)比,選用其作為主控器件。
PIC18F452 是 Microchip 公司推出的一款增強(qiáng)型8位單片機(jī) ,采用精簡指令集( RISC )的設(shè)計(jì),有兩級(jí)流水線,最高運(yùn)行頻率可達(dá)到 10MIPS ,能夠滿足系統(tǒng)對(duì)實(shí)時(shí)性的要求;指令總線 16 位寬,數(shù)據(jù)總線 8 位寬;單片機(jī)內(nèi)部有 32K 字節(jié)的 FLASH 程序存儲(chǔ)器, 1.5K 字節(jié)的數(shù)據(jù)存儲(chǔ)器和 256 字節(jié)的 EEPROM ,便于系統(tǒng)的擴(kuò)展;自帶 8 × 8 硬件乘法器;中斷資源豐富,提供 18 個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí),并且中斷優(yōu)先級(jí)可配置。 PIC18F452 單片機(jī)配備了豐富的外圍模塊,極大地簡化了單片機(jī)外圍電路的設(shè)計(jì)。同時(shí), Microchip 公司為 PIC18F 系列單片機(jī)提供了功能強(qiáng)大的指令集,共 77 條指令,絕大部分指令為單字( 2 個(gè)字節(jié))存儲(chǔ),單周期執(zhí)行,應(yīng)用代碼的存儲(chǔ)壓縮率高,指令執(zhí)行效率高。
以 PIC18F452 為主控器件構(gòu)成的系統(tǒng)硬件框圖如圖 1所示。
值得說明的是:
① 系統(tǒng)中的換相邏輯由可編程邏輯器件完成,主要是為了提高系統(tǒng)的可靠性,從功能上講,完全可由 單片機(jī) 實(shí)現(xiàn);
② 電機(jī)的速度檢測(cè),可根據(jù)位置信號(hào)利用軟件計(jì)算得來,故省略了速度傳感器;
③ 模擬輸入為電機(jī)的速度給定信號(hào)。
3. 嵌入式系統(tǒng)軟件開發(fā)模式
對(duì)于簡單的應(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ì)過程簡單,但系統(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è)任務(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ā),簡化了系統(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 所示。
結(jié)合本文的具體應(yīng)用,綜合考慮系統(tǒng)硬件資源及上述幾種實(shí)時(shí)操作系統(tǒng)的特點(diǎn),最終選用基于操作系統(tǒng)的軟件開發(fā)模式,并選擇μ C/OS-II 作為系統(tǒng)軟件平臺(tái)。
4. 基于μ C/OS-II 的應(yīng)用軟件開發(fā)
μ C/OS-II 是一個(gè)可移植、可固化、可裁剪及可剝奪型的多任務(wù)實(shí)時(shí)內(nèi)核,應(yīng)用開發(fā)時(shí)首先必須完成其在特定硬件上的移植。μ C/OS-II 在編寫的過程中就充分考慮到了可移植性,它的絕大部分代碼都由 ANSI C 寫成,與處理器相關(guān)的代碼集中在 OS_CPU.H 、 OS_CPU_A.ASM 、 OS_CPU_C.C 這三個(gè)文件中,因此只要針對(duì)具體的硬件改寫這些文件,就可以完成移植工作。
表 1 適用于 PIC18F 系列 單片機(jī) 的幾種嵌入式實(shí)時(shí)操作系統(tǒng)
來源:廣電電器
MCU開發(fā)加油站
關(guān)注MCU開發(fā)最新資訊及相關(guān)技術(shù)應(yīng)用,交流MCU創(chuàng)新設(shè)計(jì)心得、與MCU開發(fā)達(dá)人結(jié)網(wǎng)同行!
-
單片機(jī)
+關(guān)注
關(guān)注
6036文章
44555瀏覽量
634909 -
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3589瀏覽量
129456 -
PIC18F452
+關(guān)注
關(guān)注
0文章
3瀏覽量
8480
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論