新闻中心

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

评论


相关推荐

技术专区

关闭