當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于μC/OS-II的數(shù)字化UPS設(shè)計(jì)與實(shí)現(xiàn)方案

摘 要: 針對(duì)數(shù)字化UPS,給出了系統(tǒng)總體設(shè)計(jì)框圖,為提高系統(tǒng)控制程序的實(shí)時(shí)性,提出一種基于實(shí)時(shí)操作系統(tǒng)μC/OS-II的嵌入式UPS 系統(tǒng)控制方案。通過(guò)對(duì)UPS控制系統(tǒng)結(jié)構(gòu)與功能的分析,實(shí)現(xiàn)了μC/OS-II在TMS320LF2407A上的移植,對(duì)UPS系統(tǒng)控制項(xiàng)目以任務(wù)的形式進(jìn)行設(shè)計(jì)并實(shí)現(xiàn)調(diào)度,給出了部分參數(shù)設(shè)定和主程序清單。實(shí)驗(yàn)結(jié)果證明,本文的設(shè)計(jì)有效的增強(qiáng)了系統(tǒng)控制軟件的模塊性、實(shí)時(shí)性,提高了系統(tǒng)運(yùn)行的可靠性與穩(wěn)定性。

1 引言

隨著信息技術(shù)的發(fā)展,不間斷應(yīng)急電源(UPS)向著數(shù)字化、智能化、網(wǎng)絡(luò)化、大容量多機(jī)冗余化和綠色化的方向發(fā)展。高性能專用DSP芯片為UPS的數(shù)字化提供了良好的硬件基礎(chǔ),而嵌入式實(shí)時(shí)軟件操作系統(tǒng)是數(shù)字化產(chǎn)品的核心。

針對(duì)數(shù)字化UPS,本文給出了一種基于實(shí)時(shí)多任務(wù)操作系統(tǒng)μC/OS-II 的系統(tǒng)控制設(shè)計(jì)。設(shè)計(jì)采用μC/OS-II為內(nèi)核,實(shí)現(xiàn)其在TMS320LF2407A上的移植,通過(guò)對(duì)UPS控制系統(tǒng)結(jié)構(gòu)與功能的分析,各部分控制功能劃分為不同優(yōu)先級(jí)的任務(wù)來(lái)調(diào)度實(shí)現(xiàn),給出了部分參數(shù)設(shè)定和主程序清單。實(shí)踐證明,基于μC/OS-II 的數(shù)字化UPS 系統(tǒng)提高了控制系統(tǒng)的實(shí)時(shí)性以及系統(tǒng)運(yùn)行的可靠性及穩(wěn)定性。

2 數(shù)字化UPS控制系統(tǒng)結(jié)構(gòu)

TMS320LF2407A 是TI 推出的專門針對(duì)工業(yè)控制領(lǐng)域的16 位高性能微控制器,其運(yùn)算速度高、片內(nèi)資源豐富,能夠很好的滿足數(shù)字化UPS電源控制系統(tǒng)功能的需要。數(shù)字化UPS 系統(tǒng)總體設(shè)計(jì)框圖如圖1 所示,虛線框內(nèi)為主控制模塊,按功能劃分為A/D轉(zhuǎn)換、PWM(Pulse Wide Modulate)逆變控制、鎖相控制、保護(hù)控制、鍵盤及液晶顯示、通信接口、實(shí)時(shí)時(shí)鐘等功能模塊。

4 數(shù)字化UPS任務(wù)設(shè)計(jì)及調(diào)度

控制軟件主程序流程圖如圖3 所示。通過(guò)對(duì)UPS控制系統(tǒng)結(jié)構(gòu)與功能的分析,各部分控制功能劃分為不同優(yōu)先級(jí)的任務(wù),由μC/OS-II實(shí)時(shí)內(nèi)核進(jìn)行調(diào)度,實(shí)現(xiàn)多任務(wù)并行執(zhí)行。

 

圖 3 主程序流程圖

(1)數(shù)字化UPS 任務(wù)設(shè)計(jì):如表1 所示,采用層次化、模塊化的設(shè)計(jì)思想,根據(jù)各個(gè)任務(wù)的重要性和實(shí)時(shí)性,把用戶程序分成9 個(gè)不同優(yōu)先級(jí)的任務(wù),包括數(shù)據(jù)采集及PWM 波計(jì)算、鎖相同步、通信處理、系統(tǒng)參數(shù)計(jì)算、系統(tǒng)狀態(tài)檢測(cè)及處理、鍵盤掃描、鍵盤處理、液晶顯示、空閑任務(wù)。任務(wù)越重要,實(shí)時(shí)性越強(qiáng),任務(wù)優(yōu)先級(jí)越高。空閑任務(wù)不執(zhí)行任何功能,一直處于就緒狀態(tài),只有其他任務(wù)空閑時(shí)才執(zhí)行。

表1 數(shù)字化UPS任務(wù)功能及其描述

 

(2) μC/OS-II 任務(wù)調(diào)度:完成任務(wù)在運(yùn)行態(tài)、就緒態(tài)、掛起態(tài)、休眠態(tài)以及中斷態(tài)之間的轉(zhuǎn)換,是實(shí)時(shí)多任務(wù)操作系統(tǒng)運(yùn)作的核心功能,流程如圖4所示。μC/OS-II 的任務(wù)調(diào)度是基于優(yōu)先級(jí)的搶占式調(diào)度算法,系統(tǒng)共有9個(gè)任務(wù)和3個(gè)中斷。系統(tǒng)在任務(wù)控制塊(OS_TCB)中分配一個(gè)字(OSTCBPrio)來(lái)表示每個(gè)任務(wù)的優(yōu)先級(jí),數(shù)值越小優(yōu)先級(jí)越高。當(dāng)發(fā)生任務(wù)調(diào)度時(shí),系統(tǒng)通過(guò)任務(wù)就緒表查找到優(yōu)先級(jí)最高的任務(wù)后,調(diào)用函數(shù)OS_TASK_SW()完成任務(wù)切換。

(3) 數(shù)字化UPS 中斷:設(shè)計(jì)3 個(gè)硬件中斷,一個(gè)是AD 采樣中斷,優(yōu)先級(jí)最高,采用自適應(yīng)頻率方式每周期采樣32 個(gè)點(diǎn);另一個(gè)是系統(tǒng)時(shí)鐘節(jié)拍中斷,優(yōu)先級(jí)次之,每10ms中斷一次作為系統(tǒng)時(shí)鐘;最后是通信中斷,優(yōu)先級(jí)低,當(dāng)接收到外部數(shù)據(jù)時(shí),便發(fā)生中斷并對(duì)接收的數(shù)據(jù)進(jìn)行處理。

(4)任務(wù)間通信與同步:采用訪問(wèn)共享數(shù)據(jù)資源的方式實(shí)現(xiàn)多任務(wù)間的通信,采用信號(hào)量進(jìn)行任務(wù)間的同步。為實(shí)現(xiàn)任務(wù)間的同步,本軟件系統(tǒng)建立了3個(gè)信號(hào)量:

數(shù)據(jù)計(jì)算信號(hào)量OSPWMCntSem,用于任務(wù)1和數(shù)據(jù)采集PWM 波計(jì)算子程序通信。每完成一次中斷采樣便發(fā)出這個(gè)信號(hào)量,告訴任務(wù)1對(duì) 采集數(shù)據(jù)和PWM波進(jìn)行計(jì)算處理。

 

圖4 任務(wù)調(diào)度流程圖。

通信信號(hào)量OSComSem,用于任務(wù)3 和通信中斷子程序進(jìn)行通信。一旦接收到上位機(jī)發(fā)過(guò)來(lái)的信號(hào),中斷子程序就發(fā)出這個(gè)信號(hào)量,告訴任務(wù)4對(duì)接收數(shù)據(jù)進(jìn)行處理。

鍵盤信號(hào)量OSKeySem,用于任務(wù)6 和任務(wù)7 通信,一旦掃描到有鍵按下則發(fā)出該信號(hào)量告訴任務(wù)7做鍵盤處理。

 

圖 1 數(shù)字化UPS系統(tǒng)總體框圖

(1)A/D轉(zhuǎn)換:完成對(duì)市電輸入的交流電壓、電流信號(hào)、逆變輸出的交流電壓、電流信號(hào)、電池電壓和電流信號(hào)的采樣,是系統(tǒng)數(shù)字化控制實(shí)現(xiàn)以及UPS遠(yuǎn)程監(jiān)控功能的基礎(chǔ)。根據(jù)LF2407A A/D轉(zhuǎn)換電平要求,被采樣信號(hào)必須通過(guò)信號(hào)檢測(cè)模塊變換為0~3V直流電平。為提高系統(tǒng)性能,對(duì)輸入/輸出電壓、電流進(jìn)行瞬時(shí)值采樣,采樣頻率為10kHz.

(2) PWM 逆變控制:PWM 逆變控制算法是UPS系統(tǒng)控制的核心算法,它決定了UPS系統(tǒng)輸出性能。

逆變算法利用LF2407A 強(qiáng)大的數(shù)值運(yùn)算性能以及高速計(jì)算能力實(shí)時(shí)在線計(jì)算出PWM信號(hào)脈寬,然后由A事件管理模塊(EVA)的全比較單元輸出4 路帶死區(qū)控制的PWM 信號(hào)(PWM1~4),這4 路PWM 信號(hào)經(jīng)隔離驅(qū)動(dòng)模塊驅(qū)動(dòng)逆變器。

(3) 鎖相控制接口:利用LF2407A的事件捕獲端口CAP1 和CAP2,將市電輸入和逆變輸出經(jīng)降壓及波形變換后送入CAP1 和CAP2,由LF2407A 通過(guò)軟件鎖相環(huán)算法實(shí)現(xiàn)逆變輸出電壓與市電電壓的同頻同相。

(4) 通信接口:為實(shí)現(xiàn)對(duì)UPS 的實(shí)時(shí)監(jiān)控功能,主機(jī)需對(duì)UPS電源的各模擬參量采樣數(shù)據(jù)及表示工作狀態(tài)的開(kāi)關(guān)量數(shù)據(jù)進(jìn)行實(shí)時(shí)高速采集。利用LF2407A的SCI 異步通訊接口,采用RS-485 物理標(biāo)準(zhǔn)協(xié)議,實(shí)現(xiàn)UPS與主機(jī)的遠(yuǎn)程通訊,以便對(duì)UPS設(shè)備狀態(tài)、各項(xiàng)參數(shù)及故障信息進(jìn)行查詢。

(5) 鍵盤操作及液晶顯示:提供人機(jī)對(duì)話平臺(tái),用戶通過(guò)鍵盤操作可設(shè)置運(yùn)行模式、設(shè)備通信地址等信息;液晶顯示屏以圖文方式顯示工作狀態(tài)和參數(shù)信息,提供可視化菜單。[!--empirenews.page--]

(6) 實(shí)時(shí)時(shí)鐘:利用串行外設(shè)接口SPI 實(shí)現(xiàn)與LF2407A控制器的通信,為整個(gè)系統(tǒng)提供統(tǒng)一、標(biāo)準(zhǔn)的時(shí)鐘基準(zhǔn),另外,利用時(shí)鐘芯片的存儲(chǔ)器來(lái)存儲(chǔ)系統(tǒng)掉電保護(hù)參數(shù)。

3 μC/OS-II在LF2407A上的移植

μC/OS-II的硬件和軟件體系結(jié)構(gòu)如圖2所示。

 

圖2 μC/OS-II的硬件和軟件體系結(jié)構(gòu)圖

要使μC/OS-II正常運(yùn)行,LF2407A滿足以下要求:處理器的C編譯器能產(chǎn)生可重入代碼,支持可擴(kuò)展和可鏈接匯編語(yǔ)言模塊;用C語(yǔ)言就可打開(kāi)和關(guān)閉中斷;處理器支持中斷,并能產(chǎn)生定時(shí)中斷;處理器有將堆棧指針以及其他CPU寄存器的內(nèi)容讀出、并存儲(chǔ)到堆?;騼?nèi)存中去的指令。

由于μC/OS-II 是源碼公開(kāi)的操作系統(tǒng),且其結(jié)構(gòu)化設(shè)計(jì)便于把與處理器相關(guān)的部分分離出來(lái),因此μC/OS-II在LF2407A處理器上移植的主要工作是修改與處理器相關(guān)部分的代碼。由圖2 可以看出,它們主要集中在三個(gè)文件中:頭文件OS_CPU.H、C 文件OS_CPU_C.C、匯編文件OS_CPU_A.ASM.

(1) 修改OS_CPU.H:其中包含兩部分的代碼,數(shù)據(jù)類型定義代碼和與處理器相關(guān)的代碼。LF2407A的堆棧數(shù)據(jù)類型定義為:typedef unsigned intOS_STK;所有的堆棧用OS_STK 聲明,地址由高向低遞減,OS_STK_GROWTH設(shè)置為1.

OS_CPU.H 剩下部分是移植必須定義底層函數(shù)的聲明,為使低層接口函數(shù)與處理器狀態(tài)無(wú)關(guān),同時(shí)使任務(wù)調(diào)用相應(yīng)的函數(shù)不需知道函數(shù)位置,采用軟中斷指令SWI作為底層接口,使用不同的功能號(hào)來(lái)區(qū)分各函數(shù)。其定義格式如下:

__swi (0x00) void OS_TASK_SW(void);//任務(wù)切換函數(shù)

其中,swi 為軟中斷標(biāo)志,0x00 是分配的中斷號(hào),OS_TASK_SW 是函數(shù)名,兩個(gè)void 分別表示返回類型和參數(shù)類型。其它的底層函數(shù)接口定義與此相似。

(2)修改OS_CPU_C.C:初始化任務(wù)堆棧函數(shù)和軟中斷函數(shù)的實(shí)現(xiàn)。修改OSTaskStkInit()函數(shù),代碼如下:

OS_STK *OSTaskStkInit (void (*task)(void*pd), void *pdata, OS_STK *ptos, INT16U opt)

{ 模擬帶參數(shù)(pdata)的函數(shù)調(diào)用;定義任務(wù)堆棧;使用滿棧遞減方式初始化任務(wù)堆棧結(jié)構(gòu);返回堆棧結(jié)構(gòu);}

軟中斷函數(shù)的實(shí)現(xiàn):

void SWI_Exception(int SWI_Num, int *Regs)

{ /*根據(jù)不同Num 值(功能號(hào))跳轉(zhuǎn)到不同的底層服務(wù)函數(shù)地址,如:*/ case 0x00:任務(wù)切換函數(shù)OS_TASK_SW;}

(3)修改OS_CPU_A.S:包括4 個(gè)簡(jiǎn)單的匯編語(yǔ)言函數(shù):OSStartHighRdy():使就緒態(tài)任務(wù)中優(yōu)先級(jí)最高的任務(wù)開(kāi)始運(yùn)行;OSCtxSw():實(shí)現(xiàn)任務(wù)級(jí)的任務(wù)切換功能;OSIntCtxSw():在中斷級(jí)實(shí)現(xiàn)任務(wù)間的切換;OSTickISR():時(shí)鐘節(jié)拍中斷服務(wù)子程序。

(5) μC/OS-II主程序框架:調(diào)用任何服務(wù)之前,μC/OS-II 要求首先調(diào)用系統(tǒng)函數(shù)OSInit()初始化所有變量和數(shù)據(jù)結(jié)構(gòu),同時(shí)建立一個(gè)空閑任務(wù)。多任務(wù)的啟動(dòng)通過(guò)OSStart()實(shí)現(xiàn),但啟動(dòng)前至少需建立一個(gè)應(yīng)用任務(wù)。當(dāng)調(diào)用OSStart()時(shí),OSStart()從任務(wù)就緒表中找出用戶建立的優(yōu)先級(jí)最高任務(wù)的任務(wù)控制塊,然后調(diào)用任務(wù)啟動(dòng)函數(shù),接下來(lái)就完全交給實(shí)時(shí)操作系統(tǒng)來(lái)管理,實(shí)時(shí)內(nèi)核不斷地對(duì)任務(wù)進(jìn)行切換調(diào)度,管理各個(gè)應(yīng)用任務(wù)和系統(tǒng)資源。系統(tǒng)主程序清單如下:

 

 

5 實(shí)驗(yàn)結(jié)果

根據(jù)前述控制系統(tǒng)設(shè)計(jì),成功研制了一臺(tái)3.75KVAUPS 樣機(jī)。以下為該樣機(jī)實(shí)時(shí)性、可靠性、穩(wěn)定性測(cè)試運(yùn)行情況,測(cè)試設(shè)備與儀表包括:泰克TDS3043B 數(shù)字示波器、Gad-2016 失真度測(cè)試儀、FLUKE189 數(shù)字萬(wàn)用表、FLUKE36 鉗型電流表、紅外線溫度計(jì)、負(fù)載三相3KW 燈泡(約3.75KW爐絲)。

(1)市電輸入380V,負(fù)載變化:輸出相電壓穩(wěn)定度220V±1%,U 相頻率穩(wěn)定度50Hz±0.4%,波形失真度<2%,其他兩相與U 相基本相同,任何兩相相位差120°±1°。圖5 為空載與滿載逆變輸出波形。

 

(a) 空載

 

(b) 滿載

圖5 U相輸出逆變電壓波形。

(2)市電逆變互切,切換時(shí)間及可靠性測(cè)試:市電輸入384V,電池電壓490V,3.75KW額定負(fù)載運(yùn)行,市電斷電或按下"強(qiáng)起"按鈕,逆變器帶負(fù)載正常啟動(dòng),啟動(dòng)時(shí)間約60ms.市電、逆變切換時(shí)間經(jīng)多次反復(fù)試驗(yàn),均小于120ms.圖6 所示為市電到逆變的切換波形,切換時(shí)間約60ms,圖中波形經(jīng)檢測(cè)變壓器隔離降壓;市電來(lái)電,逆變器立即停止工作。

 

圖6 市電到逆變的切換波形

(3)逆變應(yīng)急長(zhǎng)時(shí)間工作,輸出電壓情況測(cè)試與系統(tǒng)穩(wěn)定性驗(yàn)證:電池513V開(kāi)始放電,帶3.75KW爐絲額定負(fù)載,運(yùn)行約80分鐘,IGBT及散熱器溫度始終低于32℃,系統(tǒng)工作正常且穩(wěn)定,測(cè)試參數(shù)如表2所示。

表2 逆變運(yùn)行溫升測(cè)試

 

6 結(jié)論

本文針對(duì)數(shù)字化UPS,給出了基于LF2407A 的系統(tǒng)總體設(shè)計(jì)結(jié)構(gòu),實(shí)現(xiàn)了實(shí)時(shí)操作系統(tǒng)μC/OS-II在LF2407A 上的移植,對(duì)UPS系統(tǒng)任務(wù)進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)調(diào)度,給出了部分參數(shù)設(shè)定和主程序清單。該設(shè)計(jì)方案已經(jīng)成功應(yīng)用于青島創(chuàng)統(tǒng)3.75KVA 數(shù)字化UPS 的設(shè)計(jì)項(xiàng)目中。實(shí)踐證明,μC/OS-II 在嵌入式UPS 控制系統(tǒng)中的應(yīng)用有效地提高了系統(tǒng)控制的實(shí)時(shí)性以及系統(tǒng)整體可靠性與穩(wěn)定性。[!--empirenews.page--]

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉