摘 要: 本文探討了用CPLD實(shí)現(xiàn)控制系統(tǒng)控制裝置控制器的熱備冗余切換和通信容錯(cuò),,并給出了具有冗余切換和通信容錯(cuò)功能的控制器結(jié)構(gòu)以及冗余切換和通信容錯(cuò)模塊的具體實(shí)現(xiàn)方法。
關(guān)鍵詞: 冗余 容錯(cuò) 可靠性 CPLD 控制器
在工業(yè)自動(dòng)化領(lǐng)域里的大型化工,、石化,、冶金、電力等企業(yè),,控制系統(tǒng)控制裝置控制器的冗余和容錯(cuò)是控制系統(tǒng)高可靠性得以實(shí)現(xiàn)的保證,。其中控制器要求具有完全在線冗余的功能,即系統(tǒng)在正常運(yùn)行時(shí),,當(dāng)前運(yùn)行的主控制器如果出現(xiàn)故障可立即切換到備用控制器,,然后從背板上取下故障控制器進(jìn)行維修,,系統(tǒng)在整個(gè)過程中的正常運(yùn)行不受任何影響。要達(dá)到這樣的要求,,在二個(gè)控制器之間的快速切換是關(guān)鍵,。
控制系統(tǒng)的控制器與I/O模塊的通信容錯(cuò)是實(shí)現(xiàn)控制系統(tǒng)高可靠性的又一種重要方法。在控制器與I/O模塊之間進(jìn)行數(shù)據(jù)通信時(shí),,發(fā)送方對(duì)待發(fā)送的數(shù)據(jù)進(jìn)行運(yùn)算,,獲得冗余校驗(yàn)位;接收方則對(duì)接收到的數(shù)據(jù)和冗余校驗(yàn)位進(jìn)行運(yùn)算,,并根據(jù)運(yùn)算結(jié)果來判斷接收到的數(shù)據(jù)的正確性,,以便對(duì)錯(cuò)誤的數(shù)據(jù)進(jìn)行自動(dòng)糾正。
本文對(duì)雙機(jī)/雙模板熱備份技術(shù)(雙模冗余技術(shù))和控制器與I/O模塊通信容錯(cuò)應(yīng)用進(jìn)行了新的探討,,在控制器與背板接口處通過使用復(fù)雜可編程邏輯器件(Complex Programmable Logic Dvice,,CPLD)芯片增加了冗余切換模塊和通信容錯(cuò)模塊,設(shè)計(jì)實(shí)現(xiàn)了控制器的在線冗余和與I/O的數(shù)據(jù)通信容錯(cuò),。控制系統(tǒng)的冗余連接如圖1所示,。
1 無中心裁決器雙模冗余容錯(cuò)控制器系統(tǒng)模型
1.1 無中心裁決器控制器雙模冗余
冗余設(shè)計(jì)的思想是在系統(tǒng)或設(shè)備完成任務(wù)起關(guān)鍵作用的地方,,增加一套以上功能完全相同的通道、單元或元件,。當(dāng)該部分出現(xiàn)故障時(shí),,使系統(tǒng)仍能正常工作[1]。以減少系統(tǒng)的故障率,,實(shí)現(xiàn)系統(tǒng)的高可靠性,。
控制器雙模冗余是指控制系統(tǒng)中存在2個(gè)相同的控制器,它們同時(shí)工作,,互為熱備份,,在任一時(shí)刻只有一個(gè)控制器(主控制器)在有效地輸出[2]。
控制器雙模冗余在具體實(shí)現(xiàn)上有中心裁決器雙模冗余和無中心裁決器雙模冗余,。有中心裁決器雙模冗余是在2個(gè)控制器之外加入比較電路,,將2個(gè)控制器的輸出進(jìn)行比較,結(jié)果相同才輸出到背板總線上,。這樣一旦比較電路出現(xiàn)故障,,整個(gè)控制系統(tǒng)將無法繼續(xù)工作,因此比較電路的加入限制了控制器的在線冗余能力,。無中心裁決器雙模冗余沒有比較電路,,是在每個(gè)控制器上增加冗余切換邏輯,一旦主控制器出現(xiàn)故障立刻切換到備用控制器,,任何一個(gè)控制器出現(xiàn)故障都不會(huì)影響到整個(gè)控制系統(tǒng)的正常運(yùn)行,,充分體現(xiàn)了控制器的在線冗余能力,。無中心裁決器雙模冗余容錯(cuò)控制器的功能結(jié)構(gòu)如圖2所示。其模塊功能說明如下,。
(1)冗余切換模塊:實(shí)現(xiàn)冗余監(jiān)控和管理,,即當(dāng)主控制器檢測(cè)出故障時(shí),冗余切換模塊給出切換信號(hào),,備用控制器的冗余切換模塊接收到切換信號(hào)后,,使備用控制器成為主用控制器。
(2)容錯(cuò)發(fā)送和接收模塊:容錯(cuò)發(fā)送模塊對(duì)控制器輸出到背板總線上的數(shù)據(jù)加上冗余校驗(yàn)位,,容錯(cuò)接收模塊則對(duì)從背板總線上接收到的含有冗余校驗(yàn)位的數(shù)據(jù)進(jìn)行檢錯(cuò)和糾錯(cuò),。
(3)信號(hào)名稱:①master_I、②switch_I,、③backup_I,、④master_O、⑤switch_O,、⑥backup_O,、⑦clk、⑧noe,、⑨t(yī)_nr,。
1.2 控制器與I/O模塊通信容錯(cuò)
控制系統(tǒng)控制裝置控制器經(jīng)常工作在電磁干擾非常強(qiáng)的工業(yè)現(xiàn)場(chǎng),控制器數(shù)據(jù)通過背板與其他模塊進(jìn)行通信時(shí),,外界的強(qiáng)干擾容易造成通信信息“0”和“1”的翻轉(zhuǎn),,導(dǎo)致接收到的數(shù)據(jù)發(fā)生錯(cuò)誤。但通過在控制器上與背板總線接口處增加錯(cuò)誤檢測(cè)與糾正(Error Detection And Correction,,EDAC)模塊,,可以減少通信過程中因?yàn)橥饨珉姶鸥蓴_而造成的“0”和“1”的翻轉(zhuǎn)情況。
錯(cuò)誤檢測(cè)和糾錯(cuò)的基本原理是基于數(shù)據(jù)通信中的糾錯(cuò)編碼,。糾錯(cuò)編碼的目的是降低誤碼率[3],,即在控制器準(zhǔn)備輸出到背板總線上的信息碼中增加一些冗余校驗(yàn)位,在接收端通過對(duì)接收到的信號(hào)(包括冗余位)進(jìn)行運(yùn)算以判斷接收到的信息的正確性,。如果發(fā)現(xiàn)數(shù)據(jù)出錯(cuò),,則立即糾正,再將正確的數(shù)據(jù)送給所控制的控制電路,。
2 冗余切換模塊
(1)冗余切換模塊信號(hào)說明
clk:時(shí)鐘,;reset:系統(tǒng)復(fù)位信號(hào)(低電位復(fù)位);bank:槽號(hào)(bank=‘0’為0號(hào)控制器,,否則為1號(hào)控制器),;test:系統(tǒng)送來的模板自檢信號(hào)(低電位模板無故障);sysgood:系統(tǒng)啟動(dòng)后由系統(tǒng)功能電路送過來系統(tǒng)完好情況信號(hào)(低電位表示系統(tǒng)完好),;selftest_req:當(dāng)控制器在工作過程中發(fā)生錯(cuò)誤時(shí),,給出請(qǐng)求模板自檢信號(hào)(此時(shí)為高電平),;switch_man:人為切換信號(hào)(高電位有效)。reset_man:人為復(fù)位當(dāng)前控制器(高電位復(fù)位),;master_I:接收冗余控制器是否主用情況,;switch_I:接收冗余控制器的切換信號(hào);backup_I:接收冗余控制器的備用信息,;master_O:當(dāng)前控制器產(chǎn)生的主用情況,;switch_O:當(dāng)前控制器產(chǎn)生的切換信號(hào);backup_O:當(dāng)前控制器產(chǎn)生的的備用信息,。
(2)控制器的冗余切換模塊驗(yàn)證
2個(gè)相同控制器的切換邏輯模塊驗(yàn)證電路圖如圖3所示,。其中雙向信號(hào)?鄢0:是0號(hào)控制器產(chǎn)生的輸出信號(hào),作為1號(hào)控制器的輸入信號(hào),;雙向信號(hào)?鄢1:是1號(hào)控制器產(chǎn)生的輸出信號(hào),,作為0號(hào)控制器的輸入信號(hào)。
仿真波形使用軟件Active HDL 6.1,,器件選擇Xilinx公司的95108PQ100和95144PQ100,,速度等級(jí)選擇-7。
圖3冗余切換模塊的驗(yàn)證仿真波形如圖4所示,。工作過程說明如下,。
①雙控制器同時(shí)上電啟動(dòng):0號(hào)控制器成為默認(rèn)的主控制器(master0=‘1’,,backup0=‘0’),1號(hào)控制器成為備用控制器(master1=‘0’,,backup1=‘1’),。
②工作過程中0號(hào)控制器發(fā)生故障,,切換到1號(hào)控制器,。為了得到此種情況的仿真波形,這里假設(shè):檢測(cè)電路檢測(cè)出故障(test_0=‘1’),,0號(hào)控制器立刻給出切換脈沖(switch0=‘1’),,要求自檢(selftest_req=‘1’),同時(shí)當(dāng)前0號(hào)控制器不再是主控制器(master0=‘0’),;1號(hào)控制器接到切換信號(hào)后成為主控制器(master1=‘1’,,backup1=‘0’)。
?、郛?dāng)0號(hào)控制器自檢通過后(test_0=‘0'),,成為備用控制器(backup0=‘1’)。
?、茉谡麄€(gè)仿真過程中,,2個(gè)控制器各自的時(shí)鐘不同步,,但頻率相同都為20MHz。
(3)冗余切換部分程序代碼
?、僦骺刂破髟诔霈F(xiàn)故障時(shí)產(chǎn)生切換信號(hào)程序
if(switch_man=′1′or reset_man=′1′orreset_switch=′1′or
sysgood=′1′)
then --如果主控制器出現(xiàn)故障,,
mos_en<=′0′;--修改變本卡的主用信息
master_en<=′0′,;
switch_cur<=′1′,;
if(backupback=′1′)then--如果備用控制器完好,則向備用控制器發(fā)送切換信號(hào)
switch<=′1′,;
else
switch<=′0′,;
end if;
else--當(dāng)前主控制器完好,,則保持該控制器的主用信息
mos_en<=′1′,;
master_en<=′1′;
switch_cur<=′0′,;
switch<=′0′,;
end if;
?、趥溆每刂破鹘邮罩骺刂破鳟a(chǎn)生的切換信號(hào)程序片斷
if(switch=′1′)then--備用控制器時(shí)刻檢測(cè)主控制器送過來的切換信號(hào),,如果有效則修改本控制器為主控制器
mos<=′1′;
master<=′1′,;
else--如果切換信號(hào)無效,,則維持本控制器的備用狀態(tài)
mos<=′0′;
master<=′0′,;
end if,;
3 容錯(cuò)模塊
本容錯(cuò)模塊針對(duì)16位的數(shù)據(jù)進(jìn)行處理,采用漢明SEC-DED碼,,增加6位校驗(yàn)位,,接收端具有自動(dòng)糾正1位錯(cuò)和檢測(cè)出2位錯(cuò)的能力。
3.1 容錯(cuò)發(fā)送模塊仿真波形
容錯(cuò)發(fā)送仿真波形如圖5所示,。其工作過程說明:待發(fā)送信息0XA9D9,,經(jīng)過容錯(cuò)發(fā)送模塊發(fā)送的信息為0X07A9D9,增加的6位二進(jìn)制校驗(yàn)位為0B000111,。
容錯(cuò)發(fā)送模塊信號(hào)功能如表1所示,。容錯(cuò)發(fā)送模塊程序略。
3.2 容錯(cuò)接收模塊仿真波形
容錯(cuò)接收模塊仿真波形如圖6所示,。其工作過程說明:接收到的信息為0X07A9D9(校驗(yàn)位為0B000111),,經(jīng)過容錯(cuò)接收模塊后送給本控制器控制電路的是去掉校驗(yàn)碼的信息0XA9D9。容錯(cuò)接收模塊信號(hào)功能如表2所示。容錯(cuò)接收模塊程序略,。
本文嘗試用CPLD器件設(shè)計(jì)了工業(yè)自動(dòng)化控制系統(tǒng)控制裝置控制器的熱備冗余切換模塊和容錯(cuò)模塊,,實(shí)現(xiàn)了控制系統(tǒng)控制裝置控制器的在線冗余和控制器與I/O模塊的數(shù)據(jù)通信容錯(cuò)。相對(duì)于現(xiàn)場(chǎng)可編程門陣列,,CPLD的開關(guān)矩陣路徑設(shè)計(jì)使得信號(hào)通過芯片的延遲時(shí)間可以確定,,因此使CPLD更適合于控制器上的電路設(shè)計(jì)[4]。
參考文獻(xiàn)
1 高社生,,張玲霞.可靠性理論與工程應(yīng)用.北京:國(guó)防工業(yè)出版社,,2002
2 尹征琦.雙模冗余系統(tǒng)及其自動(dòng)切換控制邏輯.電子技術(shù),1997,;(4)
3 張宗橙.糾錯(cuò)編碼原理和應(yīng)用.北京:電子工業(yè)出版社,,2003
4 Ziedman B著,趙宏圖譯.基于FPGA&CPLD數(shù)字IC設(shè)計(jì)方法.北京:北京航空航天大學(xué)出版社,,2004