1.前 言
嵌入式系統是指以應用為中心,以計算機技術為基礎,軟、硬件可裁剪,適應應用系統對功能、體積、成本、可靠性、功耗嚴格要求的專用計算機系統。嵌入式系統是面向應用的,系統的硬件選型和軟件開發模式都必須根據具體的應用確定。
永磁無刷直流電動機是電機控制研究領域的熱點之一,這與其自身固有的技術優勢密切相關:以電子換相取代了有刷直流電動機的機械換相。從根本上革除了普通有刷直流電動機由于電刷換相帶來的火花、噪音、高故障率等一系列問題,同時又使系統的性能能夠與普通有刷直流電動機相媲美,因此得到了廣泛的應用。永磁無刷直流電動機的電子換相離不開電機的轉子位置信號,傳統的方法是采用霍爾器件或其他位置傳感器檢測位置信號,這使得系統的維護和制造都不方便,并且由于傳感器的工作特性不穩定,給系統的安全運行帶來了一些隱患。因此,無位置傳感器方案引起了人們的極大興趣。
本文結合無位置傳感器永磁無刷直流電動機控制系統的開發,以 MICroChip 公司的 PIC18F452 單片機 為主控器件,并采用嵌入式實時操作系統μ C/OS-II 作為軟件開發平臺,詳細討論了嵌入式系統的開發模式與流程。
2. 系統硬件平臺設計
嵌入式系統設計的第一步是結合具體的應用,綜合考慮系統對成本、性能、可擴展性、開發周期等各個方面的要求,確定系統的主控器件,并以之為核心搭建系統硬件平臺。
無位置傳感器永磁無刷直流電動機控制系統的關鍵問題是位置檢測。目前已經有了很多位置檢測方案,其中,反電勢法由于簡單實用而得以廣泛采用。反電勢法的原理是:基于電機的三相端電壓,通過硬件檢測電路或軟件算法得到三相反電勢過零信號,然后用軟件移相得到換相時刻,并在換相時刻按換相邏輯完成換相,觸發逆變橋以合適的導通時序工作,從而保證了電機的正常運行。
反電勢法的永磁無刷直流電動機無位置傳感器控制對系統硬件提出了更高的要求:
① 三個外部中斷輸入引腳,便于捕捉三相反電勢過零信號;
② 至少一個 PWM模塊,實現電機的斬波調速;
③ 豐富的定時器資源,完成軟件移相、測速等功能;
④ 多通道的 AD轉換模塊,能夠采樣速度給定及主電路的電流、電壓信號;
⑤ 硬件乘法器,保證速度、電流調節器的快速性;
⑥ 足夠的程序和數據存儲器,便于系統擴展;
⑦ 高速的系統工作頻率,保證系統的強實時性;
⑧ 豐富的通信模塊,便于系統與其他嵌入式系統的互連。
對于無位置傳感器永磁無刷直流電動機控制系統的設計,有很多專用芯片可供選用,但為了進一步提高系統性能,增強設計的靈活性,多采用 DSP 或專用 單片機 等智能器件。但是,這樣在提高系統性能的同時卻增加了系統開發成本。為了設計一個高性能、低成本的開發平臺,針對應用對系統硬件的要求,考慮到 PIC18F452 單片機的高性價比,選用其作為主控器件。
PIC18F452 是 Microchip 公司推出的一款增強型8位單片機 ,采用精簡指令集( RISC )的設計,有兩級流水線,最高運行頻率可達到 10MIPS ,能夠滿足系統對實時性的要求;指令總線 16 位寬,數據總線 8 位寬;單片機內部有 32K 字節的 FLASH 程序存儲器, 1.5K 字節的數據存儲器和 256 字節的 EEPROM ,便于系統的擴展;自帶 8 × 8 硬件乘法器;中斷資源豐富,提供 18 個中斷源,兩個中斷優先級,并且中斷優先級可配置。 PIC18F452 單片機配備了豐富的外圍模塊,極大地簡化了單片機外圍電路的設計。同時, Microchip 公司為 PIC18F 系列單片機提供了功能強大的指令集,共 77 條指令,絕大部分指令為單字( 2 個字節)存儲,單周期執行,應用代碼的存儲壓縮率高,指令執行效率高。
以 PIC18F452 為主控器件構成的系統硬件框圖如圖 1所示。
值得說明的是:
① 系統中的換相邏輯由可編程邏輯器件完成,主要是為了提高系統的可靠性,從功能上講,完全可由 單片機 實現;
② 電機的速度檢測,可根據位置信號利用軟件計算得來,故省略了速度傳感器;
③ 模擬輸入為電機的速度給定信號。
3. 嵌入式系統軟件開發模式
對于簡單的應用系統,系統的軟件開發模式通常如圖 2 所示,稱為前后臺系統(也叫無限循環系統)。
前后臺系統中,應用程序就是一個無限循環。循環中調用函數完成相應的操作,這些操作稱為后臺任務;中斷服務程序處理異步事件,這部分稱為前臺行為。因為中斷服務程序提供的信息一直要等到后臺程序運行到該處理這個信息時才得到處理,所以最壞情況下的任務響應時間等于整個循環的執行時間。因為后臺循環的執行周期不是常數,所以基于前后臺模式的應用軟件開發,雖然設計過程簡單,但系統的實時性得不到保障。
為了提高系統的實時性,可以采用基于嵌入式實時操作系統( RTOS )的軟件開發模式。 RTOS 分為兩類:非可剝奪型內核和可剝奪型內核,一般商用的都是可剝奪型內核,所以本文只討論此類 RTOS ,其內核結構如圖 3 所示。
RTOS 將整個應用細分為多個任務,每個任務完成特定的功能,并被賦予一定的優先級,擁有自己的任務控制塊和??臻g。一般地,每個任務在程序結構上都是一個無限循環,它有多個狀態——休眠態、就緒態、運行態、掛起態和中斷態等。系統內核總是讓就緒態的高優先級任務先運行,中斷服務程序可搶占 CPU ,中斷服務程序完成時,系統內核讓此時就緒態中優先級最高的任務運行(不一定是被中斷的任務)。可見,基于 RTOS 的軟件開發模式使系統的任務響應時間得到了最優化。更重要的是,這種開發模式將以往面向功能的應用開發轉化為面相任務的應用開發,簡化了系統設計的邏輯結構;同時,由于有了 RTOS ,屏蔽了應用軟件對底層硬件的可見性,將以往軟件系統的兩層結構轉化為三層結構(如圖 4 所示),極大地方便了系統的軟件擴展與硬件升級。
對于 PIC18F 系列 單片機 ,目前常用的嵌入式實時操作系統有:μ C/OS-II 、 Salvo 、 CMX 、 PIC18OS 等。它們都是可剝奪型的實時內核,詳細的比較如表 1 所示。
結合本文的具體應用,綜合考慮系統硬件資源及上述幾種實時操作系統的特點,最終選用基于操作系統的軟件開發模式,并選擇μ C/OS-II 作為系統軟件平臺。
4. 基于μ C/OS-II 的應用軟件開發
μ C/OS-II 是一個可移植、可固化、可裁剪及可剝奪型的多任務實時內核,應用開發時首先必須完成其在特定硬件上的移植。μ C/OS-II 在編寫的過程中就充分考慮到了可移植性,它的絕大部分代碼都由 ANSI C 寫成,與處理器相關的代碼集中在 OS_CPU.H 、 OS_CPU_A.ASM 、 OS_CPU_C.C 這三個文件中,因此只要針對具體的硬件改寫這些文件,就可以完成移植工作。
表 1 適用于 PIC18F 系列 單片機 的幾種嵌入式實時操作系統
來源:廣電電器
MCU開發加油站
關注MCU開發最新資訊及相關技術應用,交流MCU創新設計心得、與MCU開發達人結網同行!
-
單片機
+關注
關注
6044文章
44632瀏覽量
639202 -
嵌入式系統
+關注
關注
41文章
3634瀏覽量
129822 -
PIC18F452
+關注
關注
0文章
3瀏覽量
8504
發布評論請先 登錄
相關推薦
單片機與嵌入式系統的區別 單片機和嵌入式linux區別
PIC18F452錯誤長度
怎么實現基于PIC18F系列單片機的嵌入式系統設計?
基于PIC18F系列單片機的嵌入式系統設計
PIC18F452/PIC18F442中文資料 (閃存單片機
讀寫PIC18F452內部EEPROM的實例源程序
基于PIC18F452的測頻儀設計
![基于<b class='flag-5'>PIC18F452</b>的測頻儀設計](https://file1.elecfans.com//web2/M00/A6/18/wKgZomUMO7WAUPrhAAAOyDh3e14960.jpg)
什么是嵌入式單片機?嵌入式單片機詳情匯總
單片機與嵌入式系統有什么區別和聯系?
單片機和嵌入式系統linux的區別
使用PIC單片機開發需要什么東西
![使用<b class='flag-5'>PIC</b><b class='flag-5'>單片機</b><b class='flag-5'>開發</b>需要什么東西](https://file.elecfans.com/web1/M00/BF/8B/o4YBAF75iWGAcvUuAABIj0YV1iE498.jpg)
單片機和嵌入式的區別
![<b class='flag-5'>單片機</b>和<b class='flag-5'>嵌入式</b>的區別](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論