專利名稱:具有雙cpu的主控裝置的制作方法
具有雙CPU的主控裝置
技術(shù)領(lǐng)域:
本發(fā)明涉及變電站繼電保護(hù)和自動(dòng)化測控技術(shù)領(lǐng)域,特別是涉及一種測控一體化 裝置中具有雙CPU的主控裝置。
背景技術(shù):
在我國110KV及以下電網(wǎng)中,保護(hù)測控一體化裝置已得到越來越多的采用。此類 裝置打破了過去保護(hù)和測控分別安裝,接線,調(diào)試的模式,節(jié)省了大量的人力,物力資源。之 所以在過去的應(yīng)用中將保護(hù)裝置和測控裝置獨(dú)立開,主要是出于對(duì)保護(hù)動(dòng)作可靠性的考 慮,因此即使現(xiàn)在將保護(hù)和測控一體化后,仍然必須保證保護(hù)動(dòng)作的可靠性。為此很多廠家 采用了多CPU模式,其中一塊CPU(DSP)專門負(fù)責(zé)保護(hù)的交流量采樣和其動(dòng)作邏輯,而另一 塊CPU (ARM)負(fù)責(zé)傳統(tǒng)遠(yuǎn)動(dòng)測控設(shè)備的通訊功能。兩片CPU的數(shù)據(jù)交換一般采用主從和共 享內(nèi)存兩種方式主從方式和共享內(nèi)存方式。如圖1所示,主從方式從數(shù)據(jù)的角度講,通訊CPU數(shù)據(jù)庫102從保護(hù)CPU數(shù)據(jù)庫 101得到數(shù)據(jù),然后按照選定規(guī)約重新打包后送往上位機(jī)。保護(hù)CPU實(shí)際上是通訊CPU的子 設(shè)備,而通訊CPU完成的是規(guī)約轉(zhuǎn)換的作用。這樣雖然在一定程度上保證了保護(hù)部分的穩(wěn) 定性,但也有以下幾點(diǎn)問題(1)資源的浪費(fèi)和分配不合理保護(hù)CPU的通訊口全部都處于閑置狀態(tài),而通訊CPU —般最多擁有兩個(gè)通訊口,又 顯得拙襟見肘,甚至不夠用。保護(hù)CPU只能完成保護(hù)功能,而通訊CPU只能完成規(guī)約轉(zhuǎn)換功能。兩者不能根據(jù) 情況靈活分配負(fù)擔(dān)。(2)靈活的邏輯功能不能被采用保護(hù)邏輯需要靈活性,而負(fù)責(zé)遠(yuǎn)動(dòng)部分的通訊CPU也同時(shí)需要一定的邏輯計(jì)算能 力。這就需要兩片CPU都希望擁有邏輯編程功能,很明顯這是冗余的重復(fù)投資。即使雙方都擁有邏輯編程功能,也不能解決數(shù)據(jù)交叉的問題,也就是說,各自的邏 輯功能只能用本方數(shù)據(jù)庫中有的數(shù)據(jù),對(duì)方的數(shù)據(jù)不能參與邏輯運(yùn)算。從邏輯編程組態(tài)的角度也無法將一部分邏輯傳給保護(hù)CPU,另一部分傳給通訊 CPU。這樣就使邏輯編程功能失去實(shí)現(xiàn)的可能。如圖2所示,共享內(nèi)存方式是在兩片CPU201、202之間采用雙端口 RAM作為共享數(shù) 據(jù)庫203,使用共享數(shù)據(jù)庫203使得雙方都將各自的數(shù)據(jù)存入同一片內(nèi)存,由于它們所采集 的數(shù)據(jù)點(diǎn)是不同的,所以它們總是寫入不同的內(nèi)存地址空間,不存在交叉寫入的不確定問 題。在數(shù)據(jù)的讀取方面,雙方卻看到完全一致的數(shù)據(jù)內(nèi)存,即數(shù)據(jù)庫。圖中EMIF表示存儲(chǔ) 擴(kuò)展接口,AHB表示系統(tǒng)總線。這種方式是用增加硬件的方法來減少了軟件的數(shù)據(jù)交換功 能,存在的問題是(1)雙端口 RAM的成本非常高,而且大容量的不多。從產(chǎn)品的性價(jià)比考慮,不很值
3得。(2)增加了雙端口 RAM,使得制板布線陡然增加難度和密度。很可能必須增加PCB 層數(shù)。這又大大提高了成本。(3)雙端口 RAM使用并不普遍,使得采購周期延長,供貨穩(wěn)定性差。
發(fā)明內(nèi)容為解決上述問題,本發(fā)明提供了一種具有雙CPU的主控裝置,本發(fā)明能夠解決現(xiàn) 有技術(shù)中雙CPU主控裝置中的CPU通訊端口分配不合理的情況,使其中任一側(cè)CPU運(yùn)行時(shí), 其輸入和輸出對(duì)整個(gè)系統(tǒng)都是有效的。本發(fā)明的目的通過如下技術(shù)手段實(shí)現(xiàn)一種具有雙CPU的主控裝置,包含第一 CPU單元和第二 CPU單元,所述第一 CPU單 元和第二 CPU單元各自包含一個(gè)獨(dú)立數(shù)據(jù)庫,第一 CPU單元的獨(dú)立數(shù)據(jù)庫和第二 CPU單元 的獨(dú)立數(shù)據(jù)庫之間設(shè)置有一透明數(shù)據(jù)橋,第一 CPU單元的獨(dú)立數(shù)據(jù)庫與第二 CPU單元的獨(dú) 立數(shù)據(jù)庫通過所述透明數(shù)據(jù)橋保持?jǐn)?shù)據(jù)同步。所述第一 CPU單元為保護(hù)CPU單元,第二 CPU單元為通訊CPU單元。第一 CPU單元的獨(dú)立數(shù)據(jù)庫和第二 CPU單元的獨(dú)立數(shù)據(jù)庫的內(nèi)存空間大小相等。所述第一 CPU單元和第二 CPU單元中各自包含同步程序和同步棧,同步程序在各 自的CPU單元中運(yùn)行,監(jiān)視同步棧中待同步的數(shù)據(jù)并完成同步。每個(gè)獨(dú)立數(shù)據(jù)庫中包含有若干存放主控裝置數(shù)據(jù)信息的子庫。所述字庫中的信息包含遙信、遙測、電度、遙控隊(duì)列、遙調(diào)隊(duì)列以及事件隊(duì)列。其中,所述同步程序完成同步的步驟為第一 CPU單元通過交流采樣得到數(shù)據(jù)后放入第一 CPU單元的獨(dú)立數(shù)據(jù)庫,同時(shí)為 本次數(shù)據(jù)更新信息設(shè)置一待同步標(biāo)志;主控裝置中的第一掃描程序掃描該待同步標(biāo)志,將數(shù)據(jù)更新信息壓入同步棧;第一 CPU單元中的第二掃描程序以查詢的方式掃描同步棧信息,如果發(fā)現(xiàn)更新, 則通過串行同步總線將更新信息發(fā)給第二 CPU單元。所述第一掃描程序與第二掃描程序每間隔一定時(shí)間運(yùn)行一次,該時(shí)間間隔保證前 一次的信息傳送已完成。本發(fā)明的有益效果在于,在一個(gè)CPU單元的端口不夠用時(shí),可以使用另一個(gè)CPU單 元上的端口 ;當(dāng)一個(gè)CPU單元的主站端過多,使其負(fù)擔(dān)過重時(shí),可以選擇較為穩(wěn)定的應(yīng)用功 能由另一個(gè)CPU單元來完成。主控裝置運(yùn)行時(shí),只須在一個(gè)CPU單元運(yùn)行邏輯功能,其輸入 和輸出都是對(duì)整個(gè)系統(tǒng)有效的。本發(fā)明采用軟共享,免去了昂貴的雙端口內(nèi)存,卻能達(dá)到同 樣的效果。
圖1為現(xiàn)有技術(shù)中主從方式下雙CPU數(shù)據(jù)庫示意圖;圖2為現(xiàn)有技術(shù)中采用硬件雙端口內(nèi)存的雙CPU數(shù)據(jù)庫示意圖;圖3為本發(fā)明中具有數(shù)據(jù)橋的雙CPU主控裝置的效果示意圖;圖4為本發(fā)明中為透明數(shù)據(jù)橋的連接方式示意圖5為本發(fā)明中數(shù)據(jù)橋?qū)崿F(xiàn)原理示意圖。
具體實(shí)施方式下面結(jié)合實(shí)施例并參照附圖對(duì)本發(fā)明作進(jìn)一步描述。一種具有雙CPU的主控裝置,包含第一 CPU單元和第二 CPU單元,所述第一 CPU單 元和第二 CPU單元各自包含一個(gè)獨(dú)立數(shù)據(jù)庫,第一 CPU單元的獨(dú)立數(shù)據(jù)庫和第二 CPU單元 的獨(dú)立數(shù)據(jù)庫之間設(shè)置有一透明數(shù)據(jù)橋,第一 CPU單元的獨(dú)立數(shù)據(jù)庫與第二 CPU單元的獨(dú) 立數(shù)據(jù)庫通過所述透明數(shù)據(jù)橋保持?jǐn)?shù)據(jù)同步。其中,第一 CPU單元為保護(hù)CPU單元,第二 CPU單元為通訊CPU單元。保護(hù)CPU單元的獨(dú)立數(shù)據(jù)庫和通訊CPU單元的獨(dú)立數(shù)據(jù)庫的內(nèi)存空間大小相等。所述保護(hù)CPU單元和通訊CPU單元中各自包含同步程序和同步棧,同步程序在各 自的CPU單元中運(yùn)行,監(jiān)視同步棧中待同步的數(shù)據(jù)并完成同步。最終的結(jié)果是,兩個(gè)本來互為獨(dú)立的數(shù)據(jù)庫,或互為主從的數(shù)據(jù)庫,成為等同的一 個(gè)數(shù)據(jù)庫,分別存在于兩片CPU各自內(nèi)存中。對(duì)應(yīng)用程序看來,數(shù)據(jù)橋是透明的,應(yīng)用程序 完全不參與同步過程,但他們所能訪問的卻是所有的數(shù)據(jù)點(diǎn)。如圖3所示,為本發(fā)明中具有 數(shù)據(jù)橋的雙CPU主控裝置的效果示意圖,保護(hù)CPU側(cè)1和通訊CPU側(cè)2相當(dāng)于共有一個(gè)數(shù) 據(jù)庫3。如圖4所示,為透明數(shù)據(jù)橋的連接方式,保護(hù)CPU單元10與通訊CPU單元20之間 為高速串行總線30。 無論是保護(hù)CPU,還是通訊CPU,他們都有各自的軟件。在本發(fā)明中,兩者的軟件結(jié) 構(gòu)是一樣的。各CPU系統(tǒng)的軟件都由數(shù)據(jù)庫和應(yīng)用程序組成,以數(shù)據(jù)庫為中心,每個(gè)應(yīng)用程 序只同數(shù)據(jù)庫交換數(shù)據(jù),由數(shù)據(jù)庫完成應(yīng)用程序之間的數(shù)據(jù)交換。實(shí)時(shí)數(shù)據(jù)庫存放著系統(tǒng)所有的數(shù)據(jù)信息,它包括若干獨(dú)立的子庫,如遙信(DIGITALINPUT)遙測(ANALOGINPUT)電度(ACCMULATE PULSE COUNTER)遙控隊(duì)列(DIGITALOUTPUT QUEUE)遙調(diào)隊(duì)列(ANALOGOUTPUT QUEUE)事件隊(duì)列(EVENTQUEUE)應(yīng)用程序通過與數(shù)據(jù)庫交換數(shù)據(jù)來完成各種不同的功能,我們也把這些應(yīng)用程序 簡稱作應(yīng)用(APPLICATION)。這些應(yīng)用根據(jù)其與數(shù)據(jù)庫的關(guān)系被分成3類DCA (DATA COLLECTION APPLICATION),或稱作 CLIENT。它將采集接收到的數(shù)據(jù)存 入數(shù)據(jù)庫;同時(shí)它還從數(shù)據(jù)庫接收遙控遙調(diào)命令,處理執(zhí)行。 DPA (DATA PROCESS APPLICATION),或稱作SEVER。它從數(shù)據(jù)庫取得各類數(shù)據(jù),按通 訊規(guī)約要求的格式發(fā)向主站;同時(shí)將接收到的主站的遙控遙調(diào)命令發(fā)給數(shù)據(jù)庫。數(shù)據(jù)庫能 自動(dòng)將這些命令轉(zhuǎn)給DCA去執(zhí)行。DTA (DATA TRANSFER APPLICATION),此類應(yīng)用既是 DPA 又是 DCA,作為 DPA 它從數(shù) 據(jù)庫得到數(shù)據(jù),進(jìn)行處理轉(zhuǎn)換,然后作為DCA將轉(zhuǎn)換后的數(shù)據(jù)存成數(shù)據(jù)庫中另外的點(diǎn)。數(shù)據(jù)庫被封裝后,提供一組讀、寫函數(shù),供應(yīng)用程序調(diào)用。這些接口函數(shù)片段如下
PutDin(int point, int value);GetDin(int point);PutDout(int point, int value);GetDout(int氺point, int氺value);兩個(gè)CPU以同樣的方式運(yùn)行著各自的程序。對(duì)于保護(hù)CPU,它的應(yīng)用程序“交流采 樣和計(jì)算”,通過接在它外圍接口上的AD采樣電路;采集電壓電流等信號(hào),并經(jīng)過計(jì)算,將 電網(wǎng)某線路的電流,電壓,有功,無功的數(shù)據(jù)存入其數(shù)據(jù)庫。保護(hù)CPU上的“邏輯計(jì)算判斷” 應(yīng)用程序可根據(jù)特定的邏輯得到一些過電流,低電壓等狀態(tài)標(biāo)志,也存放入其數(shù)據(jù)庫。對(duì)于通訊CPU,它用通訊的方式從子設(shè)備得到數(shù)據(jù),并存入它的數(shù)據(jù)庫。到此,兩塊CPU各自采集,數(shù)據(jù)還是互為獨(dú)立的。本發(fā)明能使保護(hù)CPU的數(shù)據(jù)同時(shí)被通訊CPU得到,反之亦然。或者說兩片CPU的 數(shù)據(jù)庫永遠(yuǎn)是同步和同等的。也就是將雙方的數(shù)據(jù)庫橋接起來,使得各應(yīng)用程序能訪問到 整個(gè)系統(tǒng)的數(shù)據(jù)庫,至于這個(gè)數(shù)據(jù)是由保護(hù)CPU采集還是通訊CPU采集,對(duì)應(yīng)用程序來講是 完全透明的,其效果如圖3所示。雙CPU數(shù)據(jù)橋的硬件連接如圖4所示,保護(hù)CPU10和通訊CPU20用如圖4的高速 串行總線30相互連接。這一總線有4根連接線M0SI——通訊CPU發(fā)往保護(hù)CPU的數(shù)據(jù)線;MIS0——保護(hù)CPU發(fā)往通訊CPU的數(shù)據(jù)線;M0SI和MIS0構(gòu)成了雙向的數(shù)據(jù)收發(fā)線,保證了全雙功的通訊方式,CLK——由通訊CPU發(fā)出的通訊節(jié)拍信號(hào),數(shù)據(jù)線上的數(shù)據(jù)就是按照這一節(jié)拍完成 數(shù)據(jù)傳送過程;STE——啟動(dòng)發(fā)送信號(hào)線。傳送的實(shí)際速度取決于CLK的快慢,最高可達(dá)到5M BIT每秒。參見圖5,同步過程如下假設(shè)某一 CPU正在運(yùn)行,其數(shù)據(jù)庫處于工作狀態(tài)。某應(yīng)用程序負(fù)責(zé)采集遙信庫第m點(diǎn)的狀態(tài),當(dāng)其試圖將采到的狀態(tài)值存放入數(shù)據(jù) 庫時(shí),調(diào)用PutDin (int point, int value)函數(shù),該函數(shù)除了將其值寫入本地?cái)?shù)據(jù)庫外,置 待同步標(biāo)志,待掃描程序1壓入同步棧。同步棧為一個(gè)數(shù)組隊(duì)列,共可存20項(xiàng)信息(保證所有的變化都能被及時(shí)傳送的大 小),每一信息20字節(jié)。每一信息可能包括信息類型數(shù)據(jù)點(diǎn)類型(也用于優(yōu)先級(jí)判斷)數(shù)據(jù)點(diǎn)號(hào)數(shù)據(jù)當(dāng)前值數(shù)據(jù)狀態(tài)標(biāo)志壓入時(shí)間壓棧的方式并不采用先到先出,順序的FIFO方式,而采用查找空項(xiàng)GETEMPTY ITEM方式,這種設(shè)計(jì)使同步過程具有優(yōu)先傳送重要數(shù)據(jù)的能力。“掃描程序1”作為系統(tǒng)中的任務(wù),他掃描待同步標(biāo)志,如果找到,則到同步棧找到
6空項(xiàng),如果沒有,則替換優(yōu)先級(jí)最低的那個(gè)信息,在所有最低優(yōu)先級(jí)的信息中先替換最早送 入的。然后把信息寫入同步棧中該項(xiàng)位置。對(duì)于被擠掉的信息,由于其待同步標(biāo)志未被清,所以信息不會(huì)被漏掉。系統(tǒng)中有一“掃描程序2”不停地監(jiān)視同步棧的狀態(tài),一旦有待同步的數(shù)據(jù),就通過 高速串行總線發(fā)向?qū)?cè)。對(duì)側(cè)在接收到同步數(shù)據(jù)后,寫入本地?cái)?shù)據(jù)庫,并將其確認(rèn)幀壓入同步棧,等待本方 “掃描程序2”發(fā)送。發(fā)送方在收到對(duì)側(cè)的確認(rèn)后,將原發(fā)送數(shù)據(jù)從同步棧中清除,同時(shí)清除待同步標(biāo)
o同步棧所占內(nèi)存總是有限的,在極端情況下,變化數(shù)據(jù)特別多,使得需同步的數(shù)據(jù) 很多,這時(shí),我們將優(yōu)先發(fā)送遙信變位,優(yōu)先發(fā)送新數(shù)據(jù)。除遙信外的其他數(shù)據(jù)作為低優(yōu)先 級(jí)。也就是說,在企圖壓入遙信變位時(shí),如果發(fā)現(xiàn)同步棧已滿,則將最舊的低優(yōu)先級(jí)數(shù)據(jù)替 代;新數(shù)據(jù)壓棧時(shí)也同樣處理。與PutDin(int point, int value)類似的處理函數(shù)涉及所有子庫,他們包括PutAin(int point, int value);PutDout(int point, int value);PutAout(int point, int value);PutSOE(int point, int value, struct time);運(yùn)行效果對(duì)于1MBit速率的SPI,能傳送約100K Bytes每秒,如果以傳送變化遙 測為例,可以送出多達(dá)10K個(gè)點(diǎn)。遠(yuǎn)遠(yuǎn)滿足實(shí)際需求。而且SPI可以更快。所有的傳送都是以后臺(tái)中斷形式處理的,所以不影響其他應(yīng)用程序的正常運(yùn)行。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人 員,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為 本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
一種具有雙CPU的主控裝置,包含第一CPU單元和第二CPU單元,所述第一CPU單元和第二CPU單元各自包含一個(gè)獨(dú)立數(shù)據(jù)庫,其特征在于,所述第一CPU單元的獨(dú)立數(shù)據(jù)庫和第二CPU單元的獨(dú)立數(shù)據(jù)庫之間設(shè)置有一透明數(shù)據(jù)橋,第一CPU單元的獨(dú)立數(shù)據(jù)庫與第二CPU單元的獨(dú)立數(shù)據(jù)庫通過所述透明數(shù)據(jù)橋保持?jǐn)?shù)據(jù)同步。
2.根據(jù)權(quán)利要求1所述的具有雙CPU的主控裝置,其特征在于,所述第一CPU單元為保 護(hù)CPU單元,第二 CPU單元為通訊CPU單元。
3.根據(jù)權(quán)利要求1所述的具有雙CPU的主控裝置,其特征在于,第一CPU單元的獨(dú)立數(shù) 據(jù)庫和第二 CPU單元的獨(dú)立數(shù)據(jù)庫的內(nèi)存空間大小相等。
4.根據(jù)權(quán)利要求1所述的具有雙CPU的主控裝置,其特征在于,所述第一CPU單元和第 二 CPU單元中各自包含同步程序和同步棧,同步程序在各自的CPU單元中運(yùn)行,監(jiān)視同步棧 中待同步的數(shù)據(jù)并完成同步。
5.根據(jù)權(quán)利要求1所述的具有雙CPU的主控裝置,其特征在于,每個(gè)獨(dú)立數(shù)據(jù)庫中包含 有若干存放主控裝置數(shù)據(jù)信息的子庫。
6.根據(jù)權(quán)利要求5所述的具有雙CPU的主控系統(tǒng),其特征在于,所述字庫中的信息包 含遙信、遙測、電度、遙控隊(duì)列、遙調(diào)隊(duì)列以及事件隊(duì)列。
7.根據(jù)權(quán)利要求4所述的具有雙CPU的主控裝置,其特征在于,所述同步程序完成同步 的步驟為第一 CPU單元通過交流采樣得到數(shù)據(jù)后放入第一 CPU單元的獨(dú)立數(shù)據(jù)庫,同時(shí)為本次 數(shù)據(jù)更新信息設(shè)置一待同步標(biāo)志;主控裝置中的第一掃描程序掃描該待同步標(biāo)志,將數(shù)據(jù)更新信息壓入同步棧;第一 CPU單元中的第二掃描程序以查詢的方式掃描同步棧信息,如果發(fā)現(xiàn)更新,則通 過串行同步總線將更新信息發(fā)給第二 CPU單元。
8.根據(jù)權(quán)利要求7所述的具有雙CPU的主控裝置,其特征在于,所述第一掃描程序與第 二掃描程序每間隔一定時(shí)間運(yùn)行一次,該時(shí)間間隔保證前一次的信息傳送已完成。
全文摘要
本發(fā)明提供了一種具有雙CPU的主控裝置,包含第一CPU單元和第二CPU單元,所述第一CPU單元和第二CPU單元各自包含一個(gè)獨(dú)立數(shù)據(jù)庫,第一CPU單元的獨(dú)立數(shù)據(jù)庫和第二CPU單元的獨(dú)立數(shù)據(jù)庫之間設(shè)置有一透明數(shù)據(jù)橋,第一CPU單元的獨(dú)立數(shù)據(jù)庫與第二CPU單元的獨(dú)立數(shù)據(jù)庫通過所述透明數(shù)據(jù)橋保持?jǐn)?shù)據(jù)同步。本發(fā)明有效地解決了現(xiàn)有技術(shù)中雙CPU主控裝置中的CPU通訊端口分配不合理的情況,當(dāng)其中任一側(cè)CPU運(yùn)行時(shí),其輸入和輸出對(duì)整個(gè)系統(tǒng)都是有效的。
文檔編號(hào)G05B15/02GK101854049SQ20091004861
公開日2010年10月6日 申請日期2009年3月31日 優(yōu)先權(quán)日2009年3月31日
發(fā)明者崔大勇, 張志成, 范志杰, 邱錫為, 邵東, 陳漫紅, 高軍 申請人:上海致達(dá)智利達(dá)系統(tǒng)控制有限責(zé)任公司;上海理工大學(xué)