单片机多机冗余设计及控制模块的VHDL语言描述
发布时间:2007/9/11 0:00:00 访问次数:559
摘要:以三个单片机组成的系统为例介绍一种单片机多机冗余容错设计。阐述设计中关键的时钟同步技术和总线仲裁方法,给出控制模块的VHDL语言描述。
关键词:单片机 冗余容错 时钟 总线 VHDL
本文提出一种表决式单片机多机冗余设计方案。该方案不同于中央系统的多机冗余设计。大规模系统冗余大多采用完善而复杂的机间通讯协议实现系统重构,不太注重系统的实时性。本方案结构简单,易于实现,具有极强的实时性,没有电子开关切换总线的咔嗒声输出。单片机价格低廉、功能灵活,也使得该设计在类似仪器仪表的小系统中的运用成为可能。
1 设计原理
设计结构如图1所示。完成整个冗余设计的电路被置于一个核心控制模块中,如果该模块以FPGA实现也就是一块芯片。图1中单片机1、2、3被假定为冗余的三个单片机,它们的输入总线并联,接收核心控制模块中输入缓冲的输出。输出总线分别接到模块的输出总线仲裁器。核心控制模块包括输入缓冲、输出总线仲裁、电源控制、时钟产生、复位电路和报警控制输出六个部分。
1.1 输入缓冲
为了消除输入端并联输入阻抗带来的影响,在输入端增加了一级缓冲器,减小外围电路的影响。采用输入缓冲,可以实现单片机和外围电路的输入隔离。
1.2 输出总线仲裁
该总线仲裁是建立在所有单片机在时钟级上同步的基础上,通常采用总线表决法。即相同输出总线上的值作为仲裁的结构输出,不同输出总线被当作出错而封止,所有的输出皆不相同同是失败状态,无表决输出。表决的实现当然不能采用软件比较,以三个单片机系统的一位为例介绍表决方法。假设位输入变量X1、X2、X3,输出Q,状态指示:正常N、X1出错E1、X2出错E2、X3出错E3。真值表如表1所示,位仲裁单元如图2所示。
表1 真值表
X1 | X2 | X3 | Q | E1 | E2 | E3 | ||||||||||||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||||||
0 | 0 | 1 | 0 | 0 | 0 | 1 | ||||||||||||||||||||||
0 | 1 | 0 |
摘要:以三个单片机组成的系统为例介绍一种单片机多机冗余容错设计。阐述设计中关键的时钟同步技术和总线仲裁方法,给出控制模块的VHDL语言描述。 关键词:单片机 冗余容错 时钟 总线 VHDL 本文提出一种表决式单片机多机冗余设计方案。该方案不同于中央系统的多机冗余设计。大规模系统冗余大多采用完善而复杂的机间通讯协议实现系统重构,不太注重系统的实时性。本方案结构简单,易于实现,具有极强的实时性,没有电子开关切换总线的咔嗒声输出。单片机价格低廉、功能灵活,也使得该设计在类似仪器仪表的小系统中的运用成为可能。 1 设计原理 设计结构如图1所示。完成整个冗余设计的电路被置于一个核心控制模块中,如果该模块以FPGA实现也就是一块芯片。图1中单片机1、2、3被假定为冗余的三个单片机,它们的输入总线并联,接收核心控制模块中输入缓冲的输出。输出总线分别接到模块的输出总线仲裁器。核心控制模块包括输入缓冲、输出总线仲裁、电源控制、时钟产生、复位电路和报警控制输出六个部分。 1.1 输入缓冲 为了消除输入端并联输入阻抗带来的影响,在输入端增加了一级缓冲器,减小外围电路的影响。采用输入缓冲,可以实现单片机和外围电路的输入隔离。 1.2 输出总线仲裁 该总线仲裁是建立在所有单片机在时钟级上同步的基础上,通常采用总线表决法。即相同输出总线上的值作为仲裁的结构输出,不同输出总线被当作出错而封止,所有的输出皆不相同同是失败状态,无表决输出。表决的实现当然不能采用软件比较,以三个单片机系统的一位为例介绍表决方法。假设位输入变量X1、X2、X3,输出Q,状态指示:正常N、X1出错E1、X2出错E2、X3出错E3。真值表如表1所示,位仲裁单元如图2所示。
|