新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 谷城县| 方城县| 大新县| 哈尔滨市| 浦北县| 榆树市| 平利县| 津南区| 康乐县| 杭锦旗| 廉江市| 广元市| 库尔勒市| 太和县| 青田县| 南昌县| 鹿邑县| 马鞍山市| 莲花县| 邯郸县| 西盟| 吉首市| 凤阳县| 沙湾县| 通海县| 孝感市| 汪清县| 璧山县| 鹰潭市| 建昌县| 海口市| 肃北| 柘荣县| 都兰县| 阿鲁科尔沁旗| 信阳市| 上林县| 思南县| 久治县| 通化县| 屏山县|