技术领域
[0001] 本实用新型涉及铁路交通领域,尤其涉及一种安全双机切换控制器。
相关背景技术
[0002] 铁路计算机化调度指挥系统(CTC、TDCS、CCS等)中,处于关键部位的计算机软硬件必须为调度员及其他使用者提供7×24小时不间断的应用服务。为保证关键系统的安全运行,在技术上通常采用双套计算机互为主备的“双机热备”形式,即有两套相同配置的计算机同时运行,实现相同的功能,其中一套为主用机,另一套为备用机(这双套计算机以下简称“双机”)。当主用机出现故障而不能正常运行时,要求备用机在一定时间内自动转为主用机,替代原主用机继续运行。在主备转换的时候,要同时切换操作端设备(显示器、鼠标、键盘等),使用户可以通过它们对新的主用机进行操作。
[0003] 双机切换控制器(以下简称“双控器”)是双机热备系统中的关键单元,这类设备一方面对双机系统的运行状态进行监测,完成主备机的裁决,并通过向双机发送命令控制主备机的切换;另一方面,完成键盘、视频、鼠标等外部设备使用权的切换。
[0004] 双控器是系统中非常重要的组成部分。如果双控器本身的可靠性,安全性不高,不能及时准确的完成主备机的裁决和切换操作,会使得整个系统的可靠性,安全性下降。所以提高双控器的可靠性与安全性显得尤为重要。
[0005] 传统双控器以单片机组成的简单逻辑电路作为核心部件。这种简单的逻辑电路难以抑制双控器系统自身运行过程中出现的各种干扰信号,对系统运行过程中可能出现的潜在问题考虑欠缺,采取的应对措施不足。在干扰信号真正袭来的时候,系统可能输出错误甚至危险信息。其根本原因是单片机为非安全器件,不具备“故障—安全”特性。当单片机受到外界干扰或程序缺陷而输出错误信息时,自身无法及时发现并进行有效处理,导致了新的故障点。
[0006] 此外,传统双控器输出的控制命令中包含双控器裁决出来的本机的主备状态信息,双机根据该状态信息,将本机设定为主用机或备用机。在此过程中,由于双机之间不直接进行通信,不了解对方的工作状态,因而无法对控制命令内容的正确性与合理性进行验证。
[0007] 以上可以看出,目前的双控器在应用方面有以下不足:
[0008] 1)双机热备系统的双机之间没有获取对方状态的途径,无法验证双控器控制命令的正确性。
[0009] 2)双控器的设计及结构不符合“故障-安全”原则,对运行过程中产生的错误无法及时发现并处理,将导致整个系统的可靠性与安全性降低。实用新型内容
[0010] 本实用新型的目的是提供一种安全双机切换控制器,提高了系统的安全性与可靠性。
[0011] 本实用新型的目的是通过如下技术方案实现的:
[0012] 一种安全双机切换控制器,该控制器包括:多计算机切换KVM电路(11)、逻辑电路(12)与控制显示面板(13);所述逻辑电路(12)分别与KVM电路(11)及控制显示面板(13)相连,所述控制显示面板(13)与所述KVM电路(11)相连;其中,所述逻辑电路(12)包括:CPU核心电路(121);所述CPU核心电路(121)中包括:通过双口随机存储器RAM(1213)相连的第一中央处理器CPU(1211)与第二CPU(1212)。
[0013] 前述的所述逻辑电路(12)还包括:分别与所述CPU核心电路(121)相连的第一串口(122)、第二串口(123)、按键接口(124)、显示接口(125)以及KVM接口(126)。
[0014] 前述的逻辑电路(12)通过第一串口(122)与第二串口(123),与对应的第一计算机以及第二计算机相连;通过按键接口(124)及显示接口(125)与所述控制显示面板(13)相连;通过KVM接口(126)与所述KVM电路(11)相连。
[0015] 前述的KVM电路(11)的控制信号输入端分别与第一计算机及第二计算机的键盘、视频及鼠标接口相连。
[0016] 由上述本实用新型提供的技术方案可以看出,采用二取二结构的CPU核心电路,使双机切换控制器的逻辑电路具有“故障—安全”特性,具有错误自检测功能;另一方面,双机切换控制器具有转发双机工作状态的功能,使双机能够获知对方具体的工作状态;从而提高了系统的安全性与可靠性。
具体实施方式
[0023] 下面结合本实用新型实施例中的附图,对本实用新型实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本实用新型一部分实施例,而不是全部的实施例。基于本实用新型的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本实用新型的保护范围。
[0024] 图1-3为本实用新型实施例提供的一种安全双机切换控制器及该切换控制器内部器件的示意图。如图1-3所示,该双机切换控制器主要包括:
[0025] 多计算机切换KVM电路11、逻辑电路12与控制显示面板13;所述逻辑电路12分别与KVM电路11及控制显示面板13相连,所述控制显示面板13与所述KVM电路11相连;其中,所述逻辑电路12包括:CPU核心电路121;所述CPU核心电路121中包括:通过双口随机存储器RAM1213相连的第一CPU1211与第二CPU1212。
[0026] 前述的所述逻辑电路12还包括:分别与所述CPU核心电路121相连的第一串口122、第二串口123、按键接口124、显示接口125以及KVM接口126。
[0027] 前述的逻辑电路12通过第一串口122与第二串口123,与对应的第一计算机以及第二计算机相连;通过按键接口124及显示接口125与所述控制显示面板13相连;通过KVM接口126与所述KVM电路11相连。
[0028] 前述的KVM电路11的控制信号输入端分别与第一计算机及第二计算机的键盘、视频及鼠标接口相连。
[0029] 以上为本实施例的双机切换控制器以下简称双控器主要组成及连接关系。下面对其工作原理进行详细的介绍。
[0030] 如图1所示,双控器主要包括三部分:KVM电路(Keyboard、Video、Mouse的缩写),正式的名称为多计算机切换电路11、逻辑电路12与控制显示面板13。
[0031] 其中,所述逻辑电路12的主要功能包括:接收第一与第二计算机的心跳信息,进行逻辑运算,裁决第一与第二计算机的主备用状态;以及向第一与第二计算机输出控制命令。
[0032] 所述控制显示面板13的主要功能包括:1)向用户显示逻辑电路的状态:第一与第二计算机工作状态、双控器冷热备状态、当前主用机等;2)将用户的按键命令传递给逻辑电路;其中,按键命令包括:“第一/第二计算机主用”按键——可以在满足条件的情况下,由人工指定哪台计算机主用;“冷热备”按键——用于设置双机工作在热备还是冷备状态。
[0033] 所述KVM(K-键盘,V-视频,M-鼠标)电路11相当于一个“二选一”切换器;其控制信号输入端分别与第一计算机及第二计算机的键盘、视频及鼠标接口相连;通常情况下,选择两路输入信号中的一路输出;具体的:逻辑电路12将主备裁决的结果送给KVM电路11,KVM电路11采集该信号获得第一与第二计算机的主备用状态,与KVM电路11当前的输出状态进行比较决定是否进行键盘、视频、鼠标输出的切换。另外,KVM电路11还提供手动切换按键,可手动选择是将KVM切换至第一计算机还是第二计算机,以增加KVM电路11的灵活性。
[0034] 进一步的,如图2所示,本实施例中的逻辑电路12主要包括:CPU核心电路121,以及分别与该CPU核心电路121相连的第一串口122、第二串口123、按键接口124、显示接口125以及KVM接口126;所述逻辑电路12通过第一串口122与第二串口123,与对应的第一计算机以及第二计算机相连;通过按键接口124及显示接口125与所述控制显示面板13相连;通过KVM接口126与所述KVM电路11相连。
[0035] 基于逻辑电路12的上述结构,本实施例的双控器可以通过第一与第二串口与双机第一与第二计算机进行通信,接收双机的心跳并输出控制命令。CPU核心电路121根据从双机接收到的心跳信息,进行逻辑运算,做出主备裁决,产生控制命令,并通过两个串口向双机输出。控制显示面板13的按键与面板指示灯通过按键接口124和显示接口125接入到逻辑电路12,KVM电路11通过KVM接口126采集逻辑电路的主备状态信息。进一步的,为提高双控器的抗干扰能力,CPU核心电路与外界不能有直接的电气联系,因此双控器所有的对外接口都经过了光电隔离处理。
[0036] 进一步的,如图3所示,本实施例中的CPU核心电路121采用了二取二结构,其主要包括:第一CPU中央处理器1211、第二CPU1212以及双口RAM(随机存储器)1213。
[0037] 其中,二取二结构的原理为:该类结构包含两个功能相同的工作模块,因此认为这两个模块(例如CPU),同时发生相同故障的概率为0。在正常情况下,两者同步运行,同时采集相同的数据并对数据执行相同的处理。两个模块之间会按照一定的规则交换数据,并与自身计算的数据进行比较。当两个模块的数据不一致时,经过比较可以发现,即可以断定有一个模块发生了故障。只有在比较一致的情况下,才认为数据有效。与单模块的结构相比,二取二结构通过资源的冗余克服故障的影响,消除错误,从而达到输出的高可靠性和高安全性。
[0038] 基于上述原理,本实施例中的CPU核心电路121中包含两个CPU和一片双口RAM芯片。其中,双口RAM为一种共享式多端口存储器,在一个SRAM(静态随机存储器)上具有两套完全独立的数据线、地址线和读写控制线,允许两个独立的CPU同时对其进行随机访问,通过对存储器的共享实现两个CPU之间的通信。
[0039] 本实施例的CPU核心电路121中两个CPU运行的程序是完全相同的:两个CPU定时将收到的数据以及各种计算所得输出信息写入双口RAM,并发送中断给对方,通知对方对数据进行读取和比较;CPU响应该中断,读取另一CPU写入的数据后,与自己的数据、计算结果进行比较;如果比较一致,则正常输出控制命令,不一致则进行相应的处理或停发;从而实现CPU之间的同步及比较。
[0040] 为了便于理解本实施例中CPU核心电路121的工作流程,下面结合图4详细介绍第一CPU1211与第二CPU1212同步以及比较的工作流程。
[0041] 如图4所示,第一CPU1211的工作流程,包括如下步骤:
[0042] 步骤401、第一CPU1211接收外部信息并进行校验;
[0043] 步骤402、若通过校验,则第一CPU1211进行逻辑运算,否则抛弃该包数据并执行步骤401;
[0044] 步骤403、第一CPU1211将逻辑运算结果数据写入双口RAM中;
[0045] 步骤404、第一CPU1211送出中断,通知第二CPU1212读取数据;
[0046] 步骤405、第一CPU1211等待接收对方的中断,并设定一定时间的延时;若延时到达前未接收到第二CPU1212的中断,则异常处理,并执行步骤401;否则执行步骤406;
[0047] 步骤406、第一CPU1211读取双口RAM中第二CPU1212的数据;
[0048] 步骤407、第一CPU1211进行第1次比较,比较本机数据和接收到的第二CPU1212的数据,产生比较结果;
[0049] 步骤408、第一CPU1211重复步骤403-406,并将第1次比较结果写入双口RAM;
[0050] 步骤409第一CPU1211进行第2次比较,比较本机第1次的比较结果和第二CPU1212第1次的比较结果;
[0051] 步骤410、如果第一CPU1211两次比较都一致,则正常输出信息,并执行步骤401;否则,进行异常处理,并执行步骤401。
[0052] 如图4所示,第二CPU1212的处理流程与第一CPU1211类似,主要包括如下步骤:
[0053] 步骤401*、第二CPU1212接收外部信息并进行校验;
[0054] 步骤402*、若通过校验,则第二CPU1212进行逻辑运算,否则抛弃该包数据并执行*步骤401 ;
[0055] 步骤403*、第二CPU1212将逻辑运算结果数据写入双口RAM中;
[0056] 步骤404*、第二CPU1212送出中断,通知第一CPU1211读取数据;
[0057] 步骤405*、第二CPU1212等待接收对方的中断,并设定一定时间的延时;若延时到* *达前未接收到第一CPU1211的中断,则执行步骤401 ;否则执行步骤406 ;
[0058] 步骤406*、第二CPU1212读取双口RAM中第一CPU1211的数据;
[0059] 步骤407*、第二CPU1212进行第1次比较,比较本机数据和接收到的第一CPU1211的数据,产生比较结果;
[0060] 步骤408*、第二CPU1212重复步骤403*-406*,并将第1次比较结果写入双口RAM;
[0061] 步骤409*、第二CPU1212进行第2次比较,比较本机第1次的比较结果和第一CPU1211第一次的比较结果。
[0062] 步骤410*、本周期结束,执行步骤401*。
[0063] 进一步的,本实施例中的双控器还具有转发双机心跳信息的功能,以使双机能够获知对方具体的工作状态。其中,心跳转发功能原理为:在正常情况下,双机中的每套计算机都通过对应的串口向双控器发送心跳信息。在双控器生成将要发给某一计算机的控制命令时,也将对方计算机的心跳信息编码在同一数据中并发送出去。该计算机在接收到该数据后,通过分析数据中的内容,不仅能确定自己的工作状态(主用机状态或备用机状态),还可以获知对方的工作状态。
[0064] 本实施例中的双控器发送数据的数据格式如表1所示:
[0065]
[0066] 表1双控器发送数据格式
[0067] 其中,对方心跳为双控器当前收到的对方的心跳,控制命令为双控器此次产生的控制命令。双控器与双机间的通信是基于逻辑电路12中第一串口122与第二串口123实现的,双机通过对应的第一串口122与第二串口123定时向双控器发送串口心跳。双控器根据接收到心跳的时间间隔及包含的信息,在双机中裁决出主用机和备用机,并生成控制命令,同时将对方的心跳编入发送数据中,并通过串口分别发送给对应的机器。
[0068] 如图5所示,为本实施例中心跳转发的示意图,第一与第二计算机分别将包含本机状态的信息以心跳的形式发送给双控器。双控器发送给第一与第二计算机的数据中包含本机的控制命令和对方的状态信息两部分。正常情况下,双控器接收第一与第二计算机的心跳,在输出数据时对第一与第二计算机的心跳进行转发。示例性的,若双控器未收到第一计算机的心跳,则认为第一计算机故障,双控器停止发送数据给第一计算机,在发送给第二计算机的数据中会将“对方心跳”的内容置为空,通过定义的数据格式保证第二计算机接收到数据后可以获取双控器未收到第一计算机心跳的信息。
[0069] 本实用新型实施例通过采用二取二结构的CPU核心电路,使双机切换控制器的逻辑电路具有“故障—安全”特性,具有错误自检测功能;另一方面,双机切换控制器具有转发双机工作状态的功能,使双机能够获知对方具体的工作状态;从而提高了系统的安全性与可靠性。
[0070] 以上所述,仅为本实用新型较佳的具体实施方式,但本实用新型的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本实用新型披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本实用新型的保护范围之内。因此,本实用新型的保护范围应该以权利要求书的保护范围为准。