AT90CAN128的双机热备结构继电器驱动系统设计
本文利用AVR单片机设计出一种具有高可靠性的继电器驱动系统,具有实时性强、结构简洁、成本低等特点。
本系统需要采用一定的冗余技术来保证系统的高可靠性和高安全性。目前发展较为成熟的冗余技术主要有双机热备结构和二乘二取二冗余结构。这两种结构在可靠性、可用性、安全性等方面相比单机系统有着各自的特点和优越性,在铁路、工业等领域有着广泛的应用。
但主备机模式下只有一个子系统能够控制被控对象,另一个子系统处于待命状态;互备模式为两子系统之间互相备份数据,但执行的是不同的任务,在一台故障时,另一台接收故障机的任务并继续执行;双机双工模式的两个子系统均处于活动状态,均能控制被控对象,同时进行工作并完成同样的功能,在输出前进行比较,结果一致则输出,不一致则报错,而主备机模式和互备模式时,系统在运行过程中两个单元的运行结果不进行比较。
AT90CAN128的双机热备结构继电器驱动系统设计
本系统的主要功能为利用单片机系统驱动某型号安全型继电器,可以考虑的热备工作模式为主备机模式或双机双工模式,因而需比较两种模式的可靠性。
AT90CAN128的双机热备结构继电器驱动系统设计
双机双工模式可看作两个子系统的并联,则此模式下系统的可靠性取决于两个子系统中寿命较长者,其可靠度函数和平均无故障工作时间分别为:
本系统选用Atmel公司的AT90CAN128单片机作为主控芯片,其内部已经集成了CAN控制器,因此无需使用CAN控制器SJA1000,只需选用TJA1050作为CAN高速收发器,大大简化了电路。
本系统采用3片AT90CAN128单片机作为核心控制芯片,其中MCUA和MCUB构成双机热备系统,MCUC用于监测和状态显示。单片机MCUA和MCUB互为主备关系,需要接收并处理上位机发送进来的CAN通信信息,对信息进行比较同步处理,进而通过驱动电路驱动某安全型继电器。驱动电路可包含多组,每一组控制一个继电器,电路由主MCU控制。MCUA和MCUB把相关监测信息通过串口通信传送给MCUC,MCUC监测A和B是否工作正常,并将其工作状态通过LED显示灯进行状态显示。3个CPU相互之间由串口进行通信,并通过CAN总线与上位主机进行通信。这样,整个系统就形成两套MCU控制回路构成主备关系,一套控制回路进行监测的系统架构。
AT90CAN128的双机热备结构继电器驱动系统设计
为了满足高可靠性、安全性的要求,程序中对MCU加入了CPU自检模块,因而3个CPU共同具有的模块包括设备初始化模块、通信处理模块和CPU自检模块,并通过自定义采集量完成延时去抖等。通过在主程序中设置Flag标志位来对各个模块进行调用。对于MCUA和MCUB,由于二者互为冗余,它们的软件设计结构基本一致,另外包含同步信息处理模块和驱动模块。负责监测的MCUC则包含信息存储模块、LED显示模块。