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