基于μC/OSⅡ的備用電源自動(dòng)投入裝置設(shè)計(jì)
關(guān)鍵詞 μC/OS-II 電源投切裝置 任務(wù)劃分任務(wù)調(diào)度移植
引 言
備用電源自動(dòng)投入裝置是當(dāng)工作電源因故障斷開以后,能自動(dòng)而迅速地將備用電源投入到工作或?qū)⒂脩羟袚Q到備用電源上去,從而使用戶不至于被停電的一種自動(dòng)裝置,簡稱備自投。
備自投裝置作為電力系統(tǒng)中常用的一種安全自動(dòng)裝置,其發(fā)展與繼電保護(hù)裝置一樣經(jīng)過了電磁(整流)型、晶體管型、集成電路型和微機(jī)型四個(gè)主要階段。究其本質(zhì),各階段的主要技術(shù)區(qū)別在于對采集量(電流量、電壓量、開關(guān)量)的運(yùn)算方式和邏輯功能的實(shí)現(xiàn)方式上有所不同。目前,以微機(jī)型備用電源自投裝置為應(yīng)用主流,它將電流量、電壓量等模擬量通過VFC(壓頻變換器)元件或ADC元件轉(zhuǎn)換為數(shù)字量送到裝置的數(shù)據(jù)總線上,通過預(yù)設(shè)程序?qū)?shù)字量和開關(guān)量進(jìn)行綜合邏輯分析,并根據(jù)分析結(jié)果作用于相關(guān)斷路器,從而實(shí)現(xiàn)自動(dòng)切換功能。
DSP芯片也稱數(shù)字信號(hào)處理器,是一種特別適合于進(jìn)行數(shù)字信號(hào)處理運(yùn)算的微處理器,其主要應(yīng)用是實(shí)時(shí)快速地實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法。
本文采用μC/OS-II作為軟件平臺(tái)的操作系統(tǒng),它是一種優(yōu)先級占先式內(nèi)核,具有多任務(wù)的實(shí)時(shí)調(diào)度能力,更加適合管理DSP豐富的外設(shè)資源,從而更好地發(fā)揮其高效的運(yùn)算性能,滿足備自投裝置實(shí)時(shí)性、可靠性等要求。
1 μC/OS_Il的移植與配置
為了方便移植,大部分μC/OS_II的代碼是用C語言編寫的,但底層與處理器硬件相關(guān)的少量代碼仍使用匯編語言編寫。這是因?yàn)棣藽/OS_II在讀寫處理器寄存器時(shí),只能通過匯編語言。圖l說明了μC/OS_II的結(jié)構(gòu)以及與硬件的關(guān)系。
首先,修改與TMS320F240相關(guān)的文件OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C,再加上其公開的系統(tǒng)源代碼,將它們一起拷入指定的文件目錄,系統(tǒng)的移植就完成了。系統(tǒng)移植成功后,需要對操作系統(tǒng)進(jìn)行裁剪,把用不到的功能去掉,以最大限度地節(jié)省存儲(chǔ)空間。這項(xiàng)工作是通過OS_CFG.H中的宏定義進(jìn)行的,本文用到多任務(wù)管理、信號(hào)量、互斥量等功能。在本應(yīng)用中,μC/OS_II內(nèi)核經(jīng)過剪裁后只有2 KB左右,相對TMS320F240的16 KB內(nèi)部程序FIash只用了不到八分之一。下面是測試內(nèi)核能否正常工作的應(yīng)用程序。測試結(jié)果如圖2所示,表明移植成功。
2 新型背自投動(dòng)作邏輯的運(yùn)行背景與硬件平臺(tái)
該動(dòng)作邏輯適用的接線方式是:2條進(jìn)線、分段母線帶內(nèi)橋和2臺(tái)三圈變壓器。具體如圖3所示。
其中Ulab反映進(jìn)線1有無電壓,Il反映進(jìn)線1有無電流,U1AB、U1BC反映母線1段有無電壓,U1CA反映主變1有無電壓;U2ab反映進(jìn)線2有無電壓,12反映進(jìn)線2有無電流,U2AB、U2BC反映母線2段有無電壓,U2CA反映主變2有無電壓。
根據(jù)動(dòng)作邏輯和其自適應(yīng)性,本裝置需要采集8路開入量:斷路器1的KKJ位置和TWJ位置;斷路器2的KKJ位置和TWJ位置;斷路器3的KKJ位置和TWJ位置;主變1保護(hù)動(dòng)作信號(hào)量ACTl;主變2保護(hù)動(dòng)作信號(hào)量ACT2。同時(shí),需要5路開出量:斷路器1的跳閘命令和合閘命令;斷路器2的跳閘命令和合閘命令;斷路器3的合閘命令。
本裝置以TMS320F240 DSP和Xilinx CPLD為核心設(shè)計(jì)其硬件平臺(tái),根據(jù)備自投裝置的要求,系統(tǒng)要實(shí)現(xiàn)以下功能:鍵盤輸入、參數(shù)顯示、模擬量采集、開關(guān)量輸入輸出、看門狗單元以及通信等。
裝置采集進(jìn)線和主變的8路電壓量和2路電流量以及繼電器和主變保護(hù)的開關(guān)位置狀態(tài),并跟蹤變電站系統(tǒng)當(dāng)前的運(yùn)行方式,自動(dòng)判斷是否滿足充電、放電及動(dòng)作條件,之后發(fā)跳合閘命令,完成動(dòng)作邏輯。通過現(xiàn)場二次互感器引入各路電壓電流模擬信號(hào)量,并采集現(xiàn)場的位置開關(guān)和節(jié)點(diǎn)信號(hào)。其繼電器動(dòng)作信號(hào)輸出端與現(xiàn)場控制線路開關(guān)投切的繼電器連接。系統(tǒng)運(yùn)行過程中實(shí)時(shí)顯示電流、電壓、開關(guān)量等參數(shù),并可以通過鍵盤對控制器進(jìn)行參數(shù)在線設(shè)定。裝置結(jié)構(gòu)框圖如圖4所示。
3 任務(wù)劃分與任務(wù)調(diào)度
3.1 任務(wù)劃分
由于μC/OS-It是搶占式任務(wù)調(diào)度方式,并且要求每個(gè)任務(wù)的優(yōu)先級唯一,所以在進(jìn)行任務(wù)劃分、任務(wù)優(yōu)先級確定的時(shí)候,必須仔細(xì)衡量各任務(wù)之間對共享資源的操作要求,避免產(chǎn)生優(yōu)先級反轉(zhuǎn)或系統(tǒng)死鎖的問題。另外,正確的任務(wù)劃分和優(yōu)先級分配可以充分體現(xiàn)嵌入式操作系統(tǒng)任務(wù)調(diào)度算法的效率,從而提高整個(gè)程序的實(shí)時(shí)性能。根據(jù)任務(wù)分解規(guī)則和裝置系統(tǒng)功能的特點(diǎn),可以將裝置任務(wù)模塊分解為以下幾個(gè)任務(wù),如表1所列。
考慮到數(shù)據(jù)定時(shí)采樣和開關(guān)量輸入任務(wù)是數(shù)據(jù)處理和準(zhǔn)確動(dòng)作判斷的基礎(chǔ),實(shí)時(shí)性要求很高,所以在DSP硬件定時(shí)中斷中完成,程序具體實(shí)現(xiàn)如下:
interrut voidint2(void){/*通用定時(shí)器1啟動(dòng)A/D轉(zhuǎn)換*/
if(*EVIVRA=0x0027){
asm(″setcINTM″); /*關(guān)中斷*/
*IFR一0x0002;/*清除IFR的中斷標(biāo)志位″/
*EVIFRA=0x07ff;
/*清除定時(shí)器1的中斷標(biāo)志位,為下一次中斷做好準(zhǔn)備″/
ADConver(); /*數(shù)據(jù)采樣任務(wù)*/
asm(″clrcINTM″); /*開中斷*/
}
return;
}
3.2任務(wù)調(diào)度
μC/OS-11中,每個(gè)任務(wù)都處于休眠態(tài)、就緒態(tài)、運(yùn)行態(tài)、掛起態(tài)和中斷態(tài)5種狀態(tài)之一。如圖5所示,當(dāng)前運(yùn)行的是開關(guān)量輸出任務(wù),數(shù)據(jù)處理動(dòng)作判斷任務(wù)因?yàn)榈却龜?shù)據(jù)定時(shí)采樣任務(wù)發(fā)出的信號(hào)量seml而處于掛起態(tài)。當(dāng)數(shù)據(jù)定時(shí)采樣中斷發(fā)生時(shí),內(nèi)核進(jìn)行任務(wù)切換,就緒態(tài)任務(wù)中數(shù)據(jù)定時(shí)采樣任務(wù)優(yōu)先級最高,所以進(jìn)入運(yùn)行態(tài)。當(dāng)完成采樣時(shí),發(fā)出信號(hào)量selnl給數(shù)據(jù)處理動(dòng)作判斷任務(wù),使其就緒,并且成為就緒態(tài)任務(wù)中優(yōu)先級最高的任務(wù),轉(zhuǎn)入運(yùn)行態(tài)。此時(shí),開關(guān)量輸出任務(wù)等待信號(hào)量sem2處于掛起態(tài),當(dāng)數(shù)據(jù)處理完畢后,發(fā)信號(hào)量sem2,開關(guān)量輸出任務(wù)得到該信號(hào)量后進(jìn)入就緒態(tài)。因?yàn)楫?dāng)前運(yùn)行任務(wù)的優(yōu)先級低于開關(guān)量輸出任務(wù),所以立即運(yùn)行開關(guān)量輸出任務(wù)。
結(jié)語
本裝置投入運(yùn)行以來,一直很穩(wěn)定,取得了良好的運(yùn)行效果,顯示了高可靠性、安全性和實(shí)時(shí)牲。多任務(wù)操作系統(tǒng)思想的運(yùn)用改變了傳統(tǒng)的嵌入式開發(fā)過程,使備自投裝置具有足夠的通用性和可擴(kuò)展性。同時(shí),這種應(yīng)用嵌入式操作系統(tǒng)作為軟件平臺(tái)的設(shè)計(jì)對其他微機(jī)控制保護(hù)裝置也有一定的借鑒意義。