摘 要:提出一種基于雙CPU架構(gòu)的微機(jī)保護(hù)裝置的設(shè)計方法與實現(xiàn)過程。以LPC2468和TMS320F2812為硬件核心,,以前后臺系統(tǒng)和嵌入式操作系統(tǒng)為軟件平臺進(jìn)行微機(jī)保護(hù)裝置的設(shè)計,,具體介紹了系統(tǒng)的硬件功能以及軟件流程圖。具體闡述了一種基于CPLD的雙CPU通信的軟硬件實現(xiàn)過程,,解決了傳統(tǒng)單CPU處理速度慢,、功能單一的缺點,使保護(hù)裝置運行更加可靠,、靈敏,。
關(guān)鍵詞: ARM微處理器; DSP微處理器,; μC/OS-II,; 微機(jī)保護(hù)
微機(jī)保護(hù)裝置對電力系統(tǒng)的安全穩(wěn)定運行起著至關(guān)重要的作用。隨著電力網(wǎng)絡(luò)的日趨龐大,,尤其是算法的日趨復(fù)雜,,一般的微型計算機(jī)很難滿足速度上的要求,,此外隨著電力系統(tǒng)自動化水平的提高,,網(wǎng)絡(luò)的通信和前沿的監(jiān)測都需要保護(hù)裝置來承擔(dān),從而對保護(hù)裝置的CPU要求越來越高,。本文介紹一種基于DSP和ARM的雙CPU架構(gòu)的微機(jī)保護(hù)平臺,。將DSP強(qiáng)大的數(shù)據(jù)處理能力和ARM出色的控制能力結(jié)合起來,并且通過CPLD實現(xiàn)兩CPU間的數(shù)據(jù)交換,,以此保證繼電保護(hù)裝置的可靠運行,。
1 硬件設(shè)計
本裝置適用于35 kV變電站及其以下電壓等級的廠站系統(tǒng),實現(xiàn)保護(hù),、測量,、控制、通信監(jiān)控,、故障記憶,、自診斷、人機(jī)交互等功能。裝置內(nèi)部采用插件結(jié)構(gòu),,各插件之間實現(xiàn)電氣聯(lián)系,,裝置內(nèi)部包含五塊插件:顯示插件、CPU插件,、模擬量采集插件,、開入量與電源插件,以及開出量插件,。系統(tǒng)框圖如圖1所示[1-2],。
該硬件平臺采用雙CPU結(jié)構(gòu),且CPU間不分主從各自獨立運行,每個CPU有單獨的電源供電,,各模塊系統(tǒng)相關(guān)性少,,工作運行獨立。其中ARM主要用來實現(xiàn)人機(jī)界面,、電能計量,、時鐘較準(zhǔn)以及通信等功能。DSP利用其自身運算速度快,、擅長數(shù)字處理的特點,,主要實現(xiàn)模擬量的采集、濾波,、繼電保護(hù)算法以及出口控制等功能,。
模擬量采集模塊共采樣12路模擬量,從現(xiàn)場互感器的二次側(cè)將電信號引入裝置內(nèi)部互感器,,經(jīng)過調(diào)理濾波,、多路轉(zhuǎn)換開關(guān)CD4053和模數(shù)轉(zhuǎn)換器AD7656轉(zhuǎn)換成數(shù)字信號,然后實現(xiàn)FFT運算和各種保護(hù)算法,。測量信號通過調(diào)理電路直接輸入ADE7758,。
開關(guān)量及電源模塊。接口電路一律采用光耦隔離,避免外界干擾進(jìn)入CPU模塊,。電源模塊采用兩級供電的方式,,首先經(jīng)一層AC/DC將220 V電壓轉(zhuǎn)換成直流5 V、7.5 V,、24 V的電壓,,然后再經(jīng)過一層DC/DC,將電壓轉(zhuǎn)換成+3.3 V和+1.8 V供器件使用,。
看門狗電路以及存儲器模塊,。本裝置采用雙CPU單獨復(fù)位??撮T狗采用CAT1161,,因其無上電復(fù)位功能,,所以在復(fù)位端應(yīng)另加RC復(fù)位電路。此外給DSP和ARM分別外擴(kuò)了一片512 K的RAM和一片256 K的鐵定存儲器FM31256,。其中鐵定存儲器為I2C接口,,因其非易失性用來存儲一些設(shè)定值和故障錄播數(shù)據(jù),F(xiàn)M31256內(nèi)部具有時鐘伴侶功能同時為系統(tǒng)提供實時時鐘,。
通信模塊,,裝置包括兩個以太網(wǎng)接口,一路485和一路CAN接口,。一路以太網(wǎng)實現(xiàn)與站控層連接,,另外一路可以單獨組網(wǎng)構(gòu)成故障信息傳輸專網(wǎng)。在一些網(wǎng)絡(luò)環(huán)境較差,,距離較短的場合下可直接使用485,,CAN總線實現(xiàn)與變電站的通信。此外為了減少時間誤差,,確保裝置的可靠性,,不同場站的各臺裝置都裝設(shè)GPS對時接口。
裝置除以上各模塊以外還有人機(jī)交互模塊和電能計量模塊,,人機(jī)界面采用320×240大屏幕彩色LCD顯示器,,配有3×2的按鍵。同時還有6個LED顯示燈來反應(yīng)裝置的運行情況,。電能模塊采用ADE7758,,采用SPI接口,通過校準(zhǔn)可直接讀出有功,、無功和視在功率,。
2軟件設(shè)計
2.1 ARM部分軟件設(shè)計
ARM部分采用嵌入式操作系統(tǒng)μC/OS-II作為軟件平臺,μC/OS-II是一種源碼公開的實時操作系統(tǒng),,具有易移植,、可靠穩(wěn)定等特點。圖2為ARM部分軟件框圖[3],。
μC/OS-II的移植非常簡單,,只需修改下面3個文件[4]:
OS_CPU.H文件:定義數(shù)據(jù)類型和堆棧增長方向,,這一部分與所使用的編譯器有關(guān),。
OS_CPU_C.C文件:該文件定義在堆棧增長方向上寄存器保存的位置,該文件還需要實現(xiàn)幾個操作系統(tǒng)所規(guī)定的hook函數(shù),。通常都設(shè)計為空函數(shù),。
OS_CPU A.S文件:該文件由匯編語言實現(xiàn),主要負(fù)責(zé)任務(wù)切換,、臨界區(qū)指令定義以及時鐘中斷函數(shù)的處理,。
一個任務(wù)與其他任務(wù)或者中斷服務(wù)程序之間信息的交換有兩種途徑,,一是通過全局變量另一個是采用消息隊列或者消息郵箱。用全局變量時,,必須保證每個任務(wù)或者中斷服務(wù)子程序獨享該變量,。中斷服務(wù)中保證獨享的唯一辦法就是關(guān)中斷。如果兩個任務(wù)共享某變量,,各任務(wù)實現(xiàn)獨享的方法可以是先關(guān)中斷再開中斷或者是使用信號量,。任務(wù)只能通過全局變量與中斷服務(wù)程序之間通信,而任務(wù)并不知道何時全局變量被中斷,,服務(wù)程序修改了,,除非中斷服務(wù)程序以信號量方式向任務(wù)發(fā)信號,或者該任務(wù)不斷地周期性地查詢該變量,。為避免這種情況,,可考慮使用郵箱和消息隊列。任務(wù)或中斷服務(wù)程序通過內(nèi)核服務(wù),,把一則消息(一個指針)放到郵箱里,,一個或多個任務(wù)可以接收到該消息(指針指向的內(nèi)容就是該消息)。消息隊列實際上是郵箱陣列,,遵循先進(jìn)先出原則,,當(dāng)任務(wù)等待某個消息一定時限后,該任務(wù)自動進(jìn)入就緒態(tài)并開始運行,,同時返回錯誤代碼,。
各任務(wù)的切換通過內(nèi)核來調(diào)度,內(nèi)核的調(diào)度一般是基于優(yōu)先級的,,CPU總是讓處于就緒態(tài)且任務(wù)優(yōu)先級最高的任務(wù)運行,。任務(wù)的優(yōu)先級一般根據(jù)各任務(wù)間的關(guān)聯(lián)性、任務(wù)的關(guān)鍵性以及任務(wù)執(zhí)行頻繁性來選定,。在系統(tǒng)運行的過程中可能發(fā)生任務(wù)調(diào)度的時機(jī)有:
(1)對任務(wù)操作時,,包括創(chuàng)建或刪除任務(wù)、掛起或恢復(fù)任務(wù),,改變?nèi)蝿?wù)的優(yōu)先級,。
(2)任務(wù)主動使用OSTimeDly函數(shù)延時時。
(3)發(fā)送(或等待)信號量,、郵箱,、消息時。
(4)中斷函數(shù)返回時,,優(yōu)先級最高的任務(wù)進(jìn)入運行狀態(tài),。
本系統(tǒng)總共有5個任務(wù),各任務(wù)之間的關(guān)系如圖2所示,,任務(wù)功能如表1所示,,系統(tǒng)通過定時中斷服務(wù)程序釋放信號量定時掃描顯示任務(wù)和電度采樣任務(wù),。因為LCD顯示的是BCD碼,所以定值設(shè)定好以后系統(tǒng)通過消息隊列通知數(shù)據(jù)處理任務(wù)將BCD碼轉(zhuǎn)換成二進(jìn)制數(shù)傳送給DSP,,ARM接收到DSP傳送的信息以及ADE7758所測的電度值和上位機(jī)下發(fā)的數(shù)據(jù)包后也要通過數(shù)據(jù)處理任務(wù)解包并轉(zhuǎn)換成BCD碼顯示,。當(dāng)系統(tǒng)發(fā)生故障時,DSP發(fā)送故障信息,,ARM接收到故障信息以后通過信號量,,主動進(jìn)行錄播、上傳以及顯示故障信息,。運行人員可通過鍵盤輸入利用全局變量來設(shè)置通信端口的IP地址,、MAC地址、波特率以及裝置地址等,。
2.2 DSP部分軟件設(shè)計[5]
DSP部分因任務(wù)較少采用前后臺程序,,運行速度快。圖3為DSP部分軟件框圖,。本套裝置充分利用了DSP強(qiáng)大的中斷功能和高效的數(shù)據(jù)處理能力,。在程序開始時,DSP向ARM請求定值和時間,。設(shè)置采樣周期,,每個周期采樣32點,以工頻50 Hz為例,,采樣周期為0.625 ms,。一個周期內(nèi)必須完成模擬量的采集、fft運算,、算法判斷,、開關(guān)量的讀入以及與ARM的通信等功能。
2.3雙CPU通信部分軟件設(shè)計[6]
雙CPU間的通信是本系統(tǒng)實現(xiàn)的關(guān)鍵,,兩CPU雖然獨立運行,,但運行時需要大量的數(shù)據(jù)進(jìn)行交換。因為兩CPU的運行速度不一致,,而數(shù)據(jù)在傳輸過程中必須要保持同步,,兩CPU間數(shù)據(jù)交換和通信是影響整個系統(tǒng)正常工作的重要環(huán)節(jié)。
CPU間的通信大致可分為:并行通信和串行通信,。本裝置對實時性要求較高且數(shù)據(jù)傳輸量較大,,所以采用的是一種基于CPLD的并行通信。如圖4所示,在CPLD內(nèi)部實現(xiàn)一對D觸發(fā)器(74HC74),,其中DSP_H1端接DSP的GPIO口,,ARM_H2接ARM的一個中斷引腳,。系統(tǒng)在初始化或者復(fù)位后,,DSP和ARM各空讀一次,,使得DSP_H2(DSP的輸入緩沖器滿信號,圖中未畫出)和ARM_H2無效(低電平),。當(dāng)DSP開始寫時,,寫選通經(jīng)過反相器后形成一個上升沿觸發(fā)D觸發(fā)器,引起ARM_H2狀態(tài)改變通知ARM寫操作完成,可以開始讀數(shù)據(jù),,同時在寫完時使DSP_H1變低,,為下一次寫操作做準(zhǔn)備。ARM開始讀,,當(dāng)ARM將一次數(shù)據(jù)讀走后,,ARM的讀選通端形成一個上升沿,觸發(fā)D觸發(fā)器,,使DSP_H1狀態(tài)改變(變?yōu)楦唠娖剑┩ㄖ狣SP讀操作完成,,同時將ARM_H2變低為下一次讀操作做準(zhǔn)備。ARM向DSP傳輸數(shù)據(jù)時的握手信號原理同上,。
接收數(shù)據(jù)通過中斷來實現(xiàn)如圖5所示,。當(dāng)進(jìn)入中斷服務(wù)程序后,CPU應(yīng)先關(guān)中斷將外部中斷引腳設(shè)置成GPIO口,,通過查詢方式接收數(shù)據(jù)以避免因多次中斷造成的系統(tǒng)崩潰,。數(shù)據(jù)接收完后,再將GPIO口設(shè)置為中斷引腳,,開放中斷,。如果CRC校驗碼驗證錯誤,接收方重新發(fā)送請求命令,。發(fā)送數(shù)據(jù)是通過查詢輸出緩沖器狀態(tài)來發(fā)送數(shù)據(jù),,發(fā)送數(shù)據(jù)時如果發(fā)送方輸出緩沖器在20個指令周期內(nèi)無效,則退出發(fā)送程序,。
CPU間數(shù)據(jù)傳輸時,,先發(fā)送命令字,高字節(jié)為數(shù)據(jù)類型如表2所示,,低字節(jié)為數(shù)據(jù)長度,,數(shù)據(jù)發(fā)送完后,發(fā)一個字的CRC校驗碼,。如圖6所示,。
無論數(shù)據(jù)接收方還是發(fā)送方均采用循環(huán)隊列作為緩沖區(qū),這樣可以避免CPU在處理數(shù)據(jù)時被新的數(shù)據(jù)沖掉,,使數(shù)據(jù)交換更加可靠,,其數(shù)據(jù)結(jié)構(gòu)如下:
struct CPU_IN_OUT
{
struct CPU_IN_OUT *next;
uint16 com_len;//命令字
uint16 data[120]; //數(shù)據(jù)區(qū)
uint16 CRC; //CRC校驗碼
};
上述方法在軟硬件上均已實現(xiàn),各種試驗表明本文所介紹的雙CPU間的通信方法,,傳輸數(shù)據(jù)穩(wěn)定可靠,。從現(xiàn)場運行的狀況來看各種功能基本實現(xiàn),,動作可靠、靈敏度高,、抗干擾能力強(qiáng),具有極好的推廣價值,。
參考文獻(xiàn)
[1] 蔡月明,梅軍,曹曉華.CPLD在繼電保護(hù)中的應(yīng)用[J].計算機(jī)應(yīng)用,2001,27(4):4-6.
[2] 姚國強(qiáng),,溫陽東.電動機(jī)微機(jī)保護(hù)及其智能監(jiān)控系統(tǒng)的研究[J]. 合肥工業(yè)大學(xué)學(xué)報(自然科學(xué)版),2000,23(4):550-554.
[3] 周立功. ARM嵌入式系統(tǒng)軟件開發(fā)實例[M].北京:北京航空航天大學(xué)出版社,,2004:436,452.
[4] LABROSSE J J. MicroC/OS-II the real-time kernel second edition[M].北京:北京航空航天大學(xué)出版社,2007:72-142.
[5] 萬山明.TMS320f281x DSP原理及應(yīng)用實例[M]. 北京:北京航空航天大學(xué)出版社,2007:114,,180.
[6] 黃正謹(jǐn),徐堅.CPLD系統(tǒng)設(shè)計技術(shù)與入門應(yīng)用[M].北京:電子工業(yè)出版設(shè),,2001:10,20.