1.3.1 電源控制
三個單片機的供電電源由控制模塊控制。主控遠件需要保證足夠電流容量,可采用功率三極管或場效應管實現(xiàn)。不能采用繼電器在,以避免觸點電源跳變。
1.3.2 時鐘產(chǎn)生
晶體振蕩器輸出脈沖作為單片機時鐘,中間增加可控的緩沖級。緩沖級可以增加時鐘信號的輸出負載能力,并可被控制模塊控制。
1.3.3 復位電路
三個單片機的復位端并聯(lián)接至同一個復位端。復位信號在信號極性和脈沖寬度上滿足單片機復位要求,驅(qū)動能力滿足多單片機需要。復位電路同樣是受控于控制模塊,用以實現(xiàn)單片機同步。
1.4 報警與控制
不同狀態(tài)下核心控制模塊有不同的信號輸出,異常狀態(tài)同時也是報警信號。正常狀態(tài)輸出綠燈,出錯狀態(tài)輸出黃燈,失敗狀態(tài)輸出紅燈。黃燈輸出時系統(tǒng)可以暫時繼續(xù)工作,等到系統(tǒng)空閑或許可時進行糾錯。紅燈輸出時系統(tǒng)立即進入保護狀態(tài),輸出端呈現(xiàn)高阻狀態(tài),需要時可以馬上糾錯,恢復系統(tǒng)。
系統(tǒng)恢復需要對控制模塊進行復位,復位脈沖可以是自身的失敗狀態(tài)輸出,也可以是出錯脈沖輸出和其他信號的組合邏輯??刂颇K的復位,實際是對各單片機重新進行時序?qū)R和復位單片機程序。此處設計需結合具體使用場合考慮。
2 控制模塊的VHDL語言描述
本控制模塊主要采用VHDL語言進行描述。
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;--電源、時鐘、復位輸出
?。?/div>
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;
本文所述的時鐘對齊方法實現(xiàn)比較簡單但并不唯一。復雜一點的方法可以采用不同時鐘輸出到不同單片機,比較反饋后,調(diào)整時鐘輸出個數(shù)達到調(diào)節(jié)目標。
單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
熱敏打印機相關文章:熱敏打印機原理
技術專區(qū)
評論