新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于μC/OS-II+NiosII的電力諧波分析儀的研究

基于μC/OS-II+NiosII的電力諧波分析儀的研究

作者: 時間:2017-06-05 來源:網(wǎng)絡 收藏

近年來,隨著電力電子技術的快速發(fā)展,各種電力電子裝置在電力系統(tǒng)、工業(yè)、交通及家庭中的應用日益廣泛,加之隨著高壓直流輸電技術的應用和整流器、變頻調速器等大量非線性負載的使用,使電網(wǎng)中產(chǎn)生了大量的高次諧波,造成了電壓電流波形發(fā)生嚴重的畸變。當電網(wǎng)中存在的諧波成分超過限制標準時,將嚴重影響電力系統(tǒng)和用電設備運行的安全性、可靠性、穩(wěn)定性和經(jīng)濟性,同時也嚴重污染了周圍的電氣環(huán)境。而關于諧波的問題涉及許多方面,其中諧波檢測是諧波問題的一個重要分支,也是解決其他諧波問題的重要前提[1]。因此,對于諧波分析裝置的研究對諧波污染的治理具有重要的意義。

目前,在對電網(wǎng)的諧波進行在線檢測和分析時,常采用采樣數(shù)字式分析裝置,在其系統(tǒng)軟件設計中,多采用單任務無順序機制。這種機制使系統(tǒng)的安全性得不到完全保證,常常出現(xiàn)安全性差的問題[2]。而這個問題對于穩(wěn)定性、實時性、準確性、快速性要求很高的諧波分析裝置來說是不允許的。因此,在系統(tǒng)設計中,引入具有強實時性和搶占式多任務的嵌入式操作系統(tǒng)μC/OS-II作為操作平臺,可以使系統(tǒng)的穩(wěn)定性有很大的改善,使應用程序模塊化,從而提高代碼的可讀性、可擴展性和可移植性,加快了程序開發(fā)的速度[3]。
本文分析了電力系統(tǒng)諧波測量要求以及μC/OS-II在上的移植來實現(xiàn)精確的諧波檢測。

1 系統(tǒng)設計

1.1 μC/OS-II實時操作系統(tǒng)簡介

μC/OS-II是基于優(yōu)先級的搶占式實時多任務內核,優(yōu)先級算法效率高,任務切換速度快,其性能與其他商業(yè)內核類似,其特點與優(yōu)勢可以概括為以下幾個方面[4]:

(1)公開源代碼:源代碼清晰易讀且結構協(xié)調,注解詳盡,組織有序。

(2)可移植性:μC/OS-II源碼絕大部分是用移植性很強的ANSI C編寫的,而與微處理器硬件相關部分則采用匯編語言編寫,并且壓到了最低限度。只要該處理器有堆棧指針,有CPU內部寄存器入棧出棧指令就可以移植μC/OS-II。

(3)可裁剪:可以只使用μC/OS-II中應用程序需要的那些系統(tǒng)服務。這種可裁剪性是靠條件編譯實現(xiàn)的。

(4)占先式:μC/OS-II完全是占先式實時內核,即總是運行就緒條件下優(yōu)先級最高的任務。

(5)多任務:可以管理64個任務,但系統(tǒng)保留了8個任務,應用程序最多可以有56個任務。賦予每個任務的優(yōu)先級必須是不相同的。

(6)可確定性:全部μC/OS-II的函數(shù)調用和服務的執(zhí)行時間具有可確定性,即它們的執(zhí)行時間是可知的,也就是說,μC/OS-II系統(tǒng)服務的執(zhí)行時間不依賴于應用程序任務的多少。

(7)任務棧:每個任務有自己單獨的棧,μC/OS-II允許每個任務有不同的棧空間。

(8)系統(tǒng)服務:μC/OS-II提供多種系統(tǒng)服務,如郵箱、消息隊列、信號量、塊大小固定的內存的申請與釋放、時間相關函數(shù)等。

(9)中斷管理:中斷可使正在執(zhí)行的任務暫時掛起,中斷嵌套層數(shù)可達255層。

(10)穩(wěn)定性與可靠性:μC/OS-II是基于μC/OS的,μC/OS自1992年以來己有好幾百個商業(yè)應用。

1.2 硬件平臺簡介

在本系統(tǒng)中,其中包括嵌入式微處理器(嵌入式軟核處理器)、FFT運算單元和對采集數(shù)據(jù)進行處理的信號處理電路,該信號處理電路包括信號獲取電路、調理電路和采樣轉換電路,其中:信號獲取電路包括精密電壓互感器和精密電流互感器,精密電壓電流互感器的輸入端用于接收采集的電壓電流信號,輸出端接調理電路輸入端,如圖1所示。

從現(xiàn)場取來的電壓和電流信號,首先進入精密電壓、電流互感器組U1,電壓和電流信號經(jīng)其進行降壓限流處理后進入信號調理電路U2;信號調理電路U2可由精密電阻和電位器配合高精度集成運放AD574組成,以完成對電壓信號的電平調整;經(jīng)過精密電壓、電流互感器U1、信號調理電路U2處理后,從現(xiàn)場取來的高壓、大電流信號就轉換成適合后續(xù)電路處理的弱電信號,接著該弱電信號進入低通抗混疊濾波電路U3,低通抗混疊電路U3主要由低通抗混疊濾波器組成,用于濾除高頻信號成分,使輸入到后級電路中的AD轉換器的信號為有限帶寬信號,該電路U3是以很小的衰減讓有效的頻率信號通過,而抑制這個頻帶以外的頻率信號,從而防止信號的頻譜發(fā)生混疊及高頻干擾。在本系統(tǒng)中,低通抗混疊濾波電路U3采用低通抗混疊濾波集成電路Max293低通濾波器,再由后級電路中AD轉換器本身各通道都具有內置的抗混疊濾波器并采用∑-△以及過采樣技術,使得本系統(tǒng)具有良好的抗干擾能力和抗混疊性能,保證了FFT運算能夠得到準確的結果。

本文引用地址:http://m.butianyuan.cn/article/201706/349142.htm

1.3 μC/OS-II文件結構與硬件平臺關系

μC/OS-II的內核文件結構與硬件平臺的關系如圖2所示。可以看出,μC/OS-II內核介于硬件平臺和用戶應用程序之間,通過與CPU相關的幾個模塊與硬件平臺進行交互,為用戶應用程序提供良好的應用程序接口(API)[5]。

操作系統(tǒng)把系統(tǒng)軟件和硬件部分隔離開來,這樣就使得系統(tǒng)的設備操作程序與硬件設備無關,從而大大提高了系統(tǒng)的可移植性。而且軟硬件的測試工作都可分別基于操作系統(tǒng)來完成,使得軟硬件系統(tǒng)并行進行測試成為可能。

2 μC/OS-II內核向的移植操作

所謂移植,就是使一個實時內核在某個微處理器或微控制器上運行,為了方便移植,μC/OS-II大部分的代碼用C語言寫,但仍需要用匯編語言寫一些與處理器相關的代碼,這是因為μC/OS-II在讀寫處理器寄存器時只能通過匯編語言來實現(xiàn)。

μC/OS-II可以看作是一個多任務的調度器,在這個任務調度器上添加了和多任務操作系統(tǒng)相關的一些系統(tǒng)服務。μC/OS-II的設計分為與處理器類型無關的代碼、與處理器類型相關的代碼和與應用程序有關的配置代碼三部分。這也是μC/OS-II具有良好的可移植性的原因。移植工作主要集中在多任務切換的實現(xiàn)上。這部分代碼主要是用來保存和恢復處理器現(xiàn)場(即相關寄存器),因此不能用C語言,只能使用特定處理器的匯編語言完成。在NiosII上移植μC/OS-II只需修改三個和Nios體系結構相關的文件即可[6,7]。下面分別介紹這三個文件的移植工作。

2.1 OS_CPU.H文件

這部分的移植是和所用的編譯器相關的,本文使用的編譯器是nios-elf-gcc。需要定義的數(shù)據(jù)類型包括無符號和有符號的8 bit、16 bit和32 bit整型變量等。

因為處理器現(xiàn)場的寄存器在任務切換時都將被保存在當前運行任務的堆棧中,所以OS_STK數(shù)據(jù)類型應該與處理器的寄存器長度一致。

typedef unsigned int OS_STK;
堆棧由高地址向低地址增長,這和選擇的編譯器有關。
#define OS_STK_GROWTH 1
宏定義(包括開、關中斷的宏定義,以及進行任務切換的宏定義):
#define OS_ENTER_CRITICAL()disable_interrupt();
#define OS_EXIT_CRITICAL()enable_interrupt();
#define OS_TASK_SW()OSCtxSw

2.2 OS_CPU_C.C文件

該文件必須實現(xiàn)任務初始化時的堆棧設計,也就是在堆棧增長方向上如何定義每個需要保存的寄存器的位置。本文將堆棧空間設計為按任務堆??臻g由高至低依次保存寄存器ra、ISTATUS、r1~r31。
該文件還需要實現(xiàn)幾個操作系統(tǒng)規(guī)定的hook函數(shù),通常都實現(xiàn)為空函數(shù)。

2.3 OS_CPU A.ASM文件

(1)OSStartHighRdy()函數(shù)

此函數(shù)是在OSStart()多任務啟動后,負責從最高優(yōu)先級任務的TCB控制塊中獲得該任務的堆棧指針sp,通過sp依次將CPU現(xiàn)場恢復。這時系統(tǒng)就將控制權交給用戶創(chuàng)建的該任務進程,直到該任務被阻塞或者被其他更高優(yōu)先級的任務搶占CPU。該函數(shù)僅僅在多任務啟動時被執(zhí)行一次,用來啟動優(yōu)先級最高的任務執(zhí)行,以后多任務的調度和切換就由下面的函數(shù)來實現(xiàn)。

(2)OSCtxSw()函數(shù)

任務級的上下文切換。它是當任務因被阻塞而主動請求CPU調度時被執(zhí)行的。它的工作是先將當前任務的CPU現(xiàn)場保存到該任務堆棧中,然后獲得最高優(yōu)先級任務的堆棧指針,從該堆棧中恢復此任務的CPU現(xiàn)場,使之繼續(xù)執(zhí)行。

(3)OSIntCtxSw()函數(shù)

中斷級的任務切換,它是在ISR(中斷服務例程)中執(zhí)行任務切換。當發(fā)現(xiàn)有高優(yōu)先級任務就緒,則在中斷退出后并不返回被中斷的任務,而是直接調度就緒的最高優(yōu)先級任務執(zhí)行。這樣做的目的是能夠盡快地讓高優(yōu)先級的任務得到響應,保證系統(tǒng)的實時性。其原理基本上與任務級的切換相同,但是由于進入中斷時已經(jīng)保存過被中斷任務的CPU現(xiàn)場,因此這里就不用再保存。

(4)OSTickISR()函數(shù)

時鐘中斷處理函數(shù)。它的主要任務是負責處理時鐘中斷,調用系統(tǒng)實現(xiàn)的OSTimeTick函數(shù),如果有等待時鐘信號的高優(yōu)先級任務,則需要在中斷級別上調度其執(zhí)行。

(5)OS_ENTER_CRITICAL和OS_EXIT_CRITICAL()函數(shù)

該函數(shù)分別是進入臨界區(qū)和退出臨界區(qū)的宏指令。主要用于在進入臨界區(qū)之前關中斷,在退出臨界區(qū)的時候恢復原來的中斷狀態(tài)。

本文將實時嵌入式操作系統(tǒng)μC/OS-II作為操作平臺,實現(xiàn)在NiosII上的移植,用于在電力系統(tǒng)諧波分析中的精確檢測。該儀不但可以對電網(wǎng)進行實時在線諧波分析,而且可以對數(shù)據(jù)進行遠傳,具有精度高、運行穩(wěn)定、實時性好、抗干擾能力強、性價比高等特點,特別是它具有高穩(wěn)定性和強實時性,為解決電力諧波問題提供了一種有效的分析裝置。



評論


相關推薦

技術專區(qū)

關閉