• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機多機冗余設計及控制模塊的VHDL語言描述

    單片機多機冗余設計及控制模塊的VHDL語言描述

    作者: 時間:2012-11-26 來源:網絡 收藏

    1.3.1 電源

    三個的供電電源由。主控遠件需要保證足夠電流容量,可采用功率三極管或場效應管實現。不能采用繼電器在,以避免觸點電源跳變。

    1.3.2 時鐘產生

    晶體振蕩器輸出脈沖作為時鐘,中間增加可控的緩沖級。緩沖級可以增加時鐘信號的輸出負載能力,并可被控制控制。

    1.3.3 復位電路

    三個的復位端并聯接至同一個復位端。復位信號在信號極性和脈沖寬度上滿足單片機復位要求,驅動能力滿足多單片機需要。復位電路同樣是受控于控制,用以實現單片機同步。

    1.4 報警與控制

    不同狀態下核心控制模塊有不同的信號輸出,異常狀態同時也是報警信號。正常狀態輸出綠燈,出錯狀態輸出黃燈,失敗狀態輸出紅燈。黃燈輸出時系統可以暫時繼續工作,等到系統空閑或許可時進行糾錯。紅燈輸出時系統立即進入保護狀態,輸出端呈現高阻狀態,需要時可以馬上糾錯,恢復系統。

    系統恢復需要對控制模塊進行復位,復位脈沖可以是自身的失敗狀態輸出,也可以是出錯脈沖輸出和其他信號的組合邏輯。控制模塊的復位,實際是對各單片機重新進行時序對齊和復位單片機程序。此處需結合具體使用場合考慮。

    2 控制模塊的

    本控制模塊主要采用進行

    library ieee;

      use ieee.std_1164.all;
      use ieee.std_logic_unsigned.all;
      Entity redu_control is
      Port (a_bus,b_bus,c_bus:in std_logic_vector(7-三輸入總線,--本定為8位)
      o_bus: out std_logic_vector(7 downto 0);--8位輸出總線
      error_out,fail_out:out std_logic;--出錯、失敗輸出
      reset_in,clock_in: in std_logic;--復位、時鐘輸入
      power,clock,reset:out std_logic;--電源、時鐘、復位輸出
      )
      end;
      architecture control_pro of redu_control_is
      signal int: std_logic;
      begin
      bus_pro:process(a_bus,b_bus,c_bus) -總線控制過程
      begin
      if a_bus=b_bus then
      o+bus=a_bus;
      if a_bus=c_bus then - 正常輸出
      error_out='0';
      fail_out='0';
      else
      error_out='1'; --給出出錯信號
      fail_out='0';
      end if
      elsif a_bus=c_bus then
      o_bus=a_bus;
      error_out='1'; --給出出錯信號
      fail_out='0'; 
      elsif b_bus=c_bus then -不同的出錯情況
      o_bus=b_bus;
      error_out='1';
      fail_out='0';
      else --失敗輸出
      o_bus=(others=>'z');
      fail_out='1';
      end if
      end process bus_pro; --總線過程結束
      start_pro process -啟動過程
      begin
      wait until reset_in='1'; --等待外部復位啟動
      power='0';
      clock='0';
      reset='0'; --停止電源、時鐘、復位輸出
      power='1' after 3 s; --3s后輸出電源信號
      clock=clock_in after 6 s; --6s后輸出時鐘信號
      reset='1' after 9 s;--9s后輸出復位信號
      reset='0'after 10 s;--復位信號回到高電平
      end process start_pro;--啟動過程結束
      end;

    本文所述的時鐘對齊方法實現比較簡單但并不唯一。復雜一點的方法可以采用不同時鐘輸出到不同單片機,比較反饋后,調整時鐘輸出個數達到調節目標。

    單片機相關文章:單片機教程


    單片機相關文章:單片機視頻教程


    單片機相關文章:單片機工作原理


    熱敏打印機相關文章:熱敏打印機原理

    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 中江县| 罗定市| 临江市| 得荣县| 枞阳县| 茌平县| 房山区| 达日县| 周至县| 阳城县| 石首市| 井研县| 青冈县| 濮阳县| 蛟河市| 远安县| 双城市| 玛多县| 荃湾区| 夏津县| 大足县| 莎车县| 岚皋县| 攀枝花市| 武义县| 渝中区| 钟祥市| 芦溪县| 皮山县| 三台县| 武平县| 三门峡市| 峡江县| 呼玛县| 光泽县| 讷河市| 双鸭山市| 色达县| 武安市| 安塞县| 泰顺县|