《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于CPLD的控制器冗余切換和通信容錯的研究
基于CPLD的控制器冗余切換和通信容錯的研究
王 劍1,2,,趙海燕1
1.中國科學(xué)院沈陽自動化研究所 自動控制系統(tǒng)研究室,,遼寧 沈陽110016;2.中國科學(xué)院研究生院,,
摘要: 本文探討了用CPLD實現(xiàn)控制系統(tǒng)控制裝置控制器的熱備冗余切換和通信容錯,,并給出了具有冗余切換和通信容錯功能的控制器結(jié)構(gòu)以及冗余切換和通信容錯模塊的具體實現(xiàn)方法。
關(guān)鍵詞: FPGA 冗余 容錯 可靠性 CPLD 控制器
Abstract:
Key words :

摘   要: 本文探討了用CPLD實現(xiàn)控制系統(tǒng)控制裝置控制器的熱備冗余切換和通信容錯,,并給出了具有冗余切換和通信容錯功能的控制器結(jié)構(gòu)以及冗余切換和通信容錯模塊的具體實現(xiàn)方法,。
關(guān)鍵詞: 冗余  容錯  可靠性  CPLD  控制器

  在工業(yè)自動化領(lǐng)域里的大型化工、石化,、冶金,、電力等企業(yè),控制系統(tǒng)控制裝置控制器的冗余和容錯是控制系統(tǒng)高可靠性得以實現(xiàn)的保證,。其中控制器要求具有完全在線冗余的功能,,即系統(tǒng)在正常運行時,當(dāng)前運行的主控制器如果出現(xiàn)故障可立即切換到備用控制器,,然后從背板上取下故障控制器進行維修,系統(tǒng)在整個過程中的正常運行不受任何影響,。要達到這樣的要求,,在二個控制器之間的快速切換是關(guān)鍵。
  控制系統(tǒng)的控制器與I/O模塊的通信容錯是實現(xiàn)控制系統(tǒng)高可靠性的又一種重要方法,。在控制器與I/O模塊之間進行數(shù)據(jù)通信時,,發(fā)送方對待發(fā)送的數(shù)據(jù)進行運算,獲得冗余校驗位,;接收方則對接收到的數(shù)據(jù)和冗余校驗位進行運算,,并根據(jù)運算結(jié)果來判斷接收到的數(shù)據(jù)的正確性,以便對錯誤的數(shù)據(jù)進行自動糾正,。
本文對雙機/雙模板熱備份技術(shù)(雙模冗余技術(shù))和控制器與I/O模塊通信容錯應(yīng)用進行了新的探討,,在控制器與背板接口處通過使用復(fù)雜可編程邏輯器件(Complex Programmable Logic Dvice,CPLD)芯片增加了冗余切換模塊和通信容錯模塊,,設(shè)計實現(xiàn)了控制器的在線冗余和與I/O的數(shù)據(jù)通信容錯,。控制系統(tǒng)的冗余連接如圖1所示。

1  無中心裁決器雙模冗余容錯控制器系統(tǒng)模型
1.1 無中心裁決器控制器雙模冗余
  冗余設(shè)計的思想是在系統(tǒng)或設(shè)備完成任務(wù)起關(guān)鍵作用的地方,,增加一套以上功能完全相同的通道,、單元或元件。當(dāng)該部分出現(xiàn)故障時,,使系統(tǒng)仍能正常工作[1],。以減少系統(tǒng)的故障率,實現(xiàn)系統(tǒng)的高可靠性,。
  控制器雙模冗余是指控制系統(tǒng)中存在2個相同的控制器,,它們同時工作,互為熱備份,,在任一時刻只有一個控制器(主控制器)在有效地輸出[2],。
  控制器雙模冗余在具體實現(xiàn)上有中心裁決器雙模冗余和無中心裁決器雙模冗余。有中心裁決器雙模冗余是在2個控制器之外加入比較電路,,將2個控制器的輸出進行比較,,結(jié)果相同才輸出到背板總線上。這樣一旦比較電路出現(xiàn)故障,,整個控制系統(tǒng)將無法繼續(xù)工作,,因此比較電路的加入限制了控制器的在線冗余能力。無中心裁決器雙模冗余沒有比較電路,,是在每個控制器上增加冗余切換邏輯,,一旦主控制器出現(xiàn)故障立刻切換到備用控制器,任何一個控制器出現(xiàn)故障都不會影響到整個控制系統(tǒng)的正常運行,,充分體現(xiàn)了控制器的在線冗余能力,。無中心裁決器雙模冗余容錯控制器的功能結(jié)構(gòu)如圖2所示。其模塊功能說明如下,。

  (1)冗余切換模塊:實現(xiàn)冗余監(jiān)控和管理,,即當(dāng)主控制器檢測出故障時,冗余切換模塊給出切換信號,,備用控制器的冗余切換模塊接收到切換信號后,,使備用控制器成為主用控制器。
  (2)容錯發(fā)送和接收模塊:容錯發(fā)送模塊對控制器輸出到背板總線上的數(shù)據(jù)加上冗余校驗位,,容錯接收模塊則對從背板總線上接收到的含有冗余校驗位的數(shù)據(jù)進行檢錯和糾錯,。
  (3)信號名稱:①master_I、②switch_I,、③backup_I,、④master_O、⑤switch_O,、⑥backup_O,、⑦clk,、⑧noe、⑨t(yī)_nr,。
1.2 控制器與I/O模塊通信容錯
  控制系統(tǒng)控制裝置控制器經(jīng)常工作在電磁干擾非常強的工業(yè)現(xiàn)場,,控制器數(shù)據(jù)通過背板與其他模塊進行通信時,外界的強干擾容易造成通信信息“0”和“1”的翻轉(zhuǎn),,導(dǎo)致接收到的數(shù)據(jù)發(fā)生錯誤,。但通過在控制器上與背板總線接口處增加錯誤檢測與糾正(Error Detection And Correction,EDAC)模塊,,可以減少通信過程中因為外界電磁干擾而造成的“0”和“1”的翻轉(zhuǎn)情況,。
  錯誤檢測和糾錯的基本原理是基于數(shù)據(jù)通信中的糾錯編碼。糾錯編碼的目的是降低誤碼率[3],,即在控制器準(zhǔn)備輸出到背板總線上的信息碼中增加一些冗余校驗位,,在接收端通過對接收到的信號(包括冗余位)進行運算以判斷接收到的信息的正確性。如果發(fā)現(xiàn)數(shù)據(jù)出錯,,則立即糾正,,再將正確的數(shù)據(jù)送給所控制的控制電路。
2  冗余切換模塊
      (1)冗余切換模塊信號說明
  clk:時鐘,;reset:系統(tǒng)復(fù)位信號(低電位復(fù)位),;bank:槽號(bank=‘0’為0號控制器,否則為1號控制器),;test:系統(tǒng)送來的模板自檢信號(低電位模板無故障),;sysgood:系統(tǒng)啟動后由系統(tǒng)功能電路送過來系統(tǒng)完好情況信號(低電位表示系統(tǒng)完好);selftest_req:當(dāng)控制器在工作過程中發(fā)生錯誤時,,給出請求模板自檢信號(此時為高電平),;switch_man:人為切換信號(高電位有效)。reset_man:人為復(fù)位當(dāng)前控制器(高電位復(fù)位),;master_I:接收冗余控制器是否主用情況,;switch_I:接收冗余控制器的切換信號;backup_I:接收冗余控制器的備用信息,;master_O:當(dāng)前控制器產(chǎn)生的主用情況;switch_O:當(dāng)前控制器產(chǎn)生的切換信號,;backup_O:當(dāng)前控制器產(chǎn)生的的備用信息,。
  (2)控制器的冗余切換模塊驗證
  2個相同控制器的切換邏輯模塊驗證電路圖如圖3所示。其中雙向信號?鄢0:是0號控制器產(chǎn)生的輸出信號,,作為1號控制器的輸入信號,;雙向信號?鄢1:是1號控制器產(chǎn)生的輸出信號,作為0號控制器的輸入信號,。
  仿真波形使用軟件Active HDL 6.1,,器件選擇Xilinx公司的95108PQ100和95144PQ100,,速度等級選擇-7。
  圖3冗余切換模塊的驗證仿真波形如圖4所示,。工作過程說明如下,。

  ①雙控制器同時上電啟動:0號控制器成為默認的主控制器(master0=‘1’,,backup0=‘0’),,1號控制器成為備用控制器(master1=‘0’,backup1=‘1’),。
 ?、诠ぷ鬟^程中0號控制器發(fā)生故障,切換到1號控制器,。為了得到此種情況的仿真波形,,這里假設(shè):檢測電路檢測出故障(test_0=‘1’),0號控制器立刻給出切換脈沖(switch0=‘1’),,要求自檢(selftest_req=‘1’),,同時當(dāng)前0號控制器不再是主控制器(master0=‘0’);1號控制器接到切換信號后成為主控制器(master1=‘1’,,backup1=‘0’),。
  ③當(dāng)0號控制器自檢通過后(test_0=‘0'),,成為備用控制器(backup0=‘1’),。
  ④在整個仿真過程中,,2個控制器各自的時鐘不同步,,但頻率相同都為20MHz。
  (3)冗余切換部分程序代碼
 ?、僦骺刂破髟诔霈F(xiàn)故障時產(chǎn)生切換信號程序
  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ā)送切換信號
           switch<=′1′,;
        else
           switch<=′0′,;
        end if;
  else--當(dāng)前主控制器完好,,則保持該控制器的主用信息
        mos_en<=′1′,;
        master_en<=′1′;
        switch_cur<=′0′,;
        switch<=′0′,;
  end if,;
  ②備用控制器接收主控制器產(chǎn)生的切換信號程序片斷
  if(switch=′1′)then--備用控制器時刻檢測主控制器送過來的切換信號,,如果有效則修改本控制器為主控制器

  mos<=′1′,;
     master<=′1′;
  else--如果切換信號無效,,則維持本控制器的備用狀態(tài)
         mos<=′0′,;
         master<=′0′;
  end if,;
3  容錯模塊
  本容錯模塊針對16位的數(shù)據(jù)進行處理,,采用漢明SEC-DED碼,增加6位校驗位,,接收端具有自動糾正1位錯和檢測出2位錯的能力,。
3.1 容錯發(fā)送模塊仿真波形
  容錯發(fā)送仿真波形如圖5所示。其工作過程說明:待發(fā)送信息0XA9D9,,經(jīng)過容錯發(fā)送模塊發(fā)送的信息為0X07A9D9,,增加的6位二進制校驗位為0B000111。


  容錯發(fā)送模塊信號功能如表1所示,。容錯發(fā)送模塊程序略,。

3.2 容錯接收模塊仿真波形
  容錯接收模塊仿真波形如圖6所示。其工作過程說明:接收到的信息為0X07A9D9(校驗位為0B000111),,經(jīng)過容錯接收模塊后送給本控制器控制電路的是去掉校驗碼的信息0XA9D9,。容錯接收模塊信號功能如表2所示。容錯接收模塊程序略,。

  本文嘗試用CPLD器件設(shè)計了工業(yè)自動化控制系統(tǒng)控制裝置控制器的熱備冗余切換模塊和容錯模塊,,實現(xiàn)了控制系統(tǒng)控制裝置控制器的在線冗余和控制器與I/O模塊的數(shù)據(jù)通信容錯。相對于現(xiàn)場可編程門陣列,,CPLD的開關(guān)矩陣路徑設(shè)計使得信號通過芯片的延遲時間可以確定,,因此使CPLD更適合于控制器上的電路設(shè)計[4]。
參考文獻
1   高社生,,張玲霞.可靠性理論與工程應(yīng)用.北京:國防工業(yè)出版社,,2002
2   尹征琦.雙模冗余系統(tǒng)及其自動切換控制邏輯.電子技術(shù),1997,;(4)
3   張宗橙.糾錯編碼原理和應(yīng)用.北京:電子工業(yè)出版社,,2003
4   Ziedman B著,趙宏圖譯.基于FPGA&CPLD數(shù)字IC設(shè)計方法.北京:北京航空航天大學(xué)出版社,,2004

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。