单串口多cpu的控制方法、系统及设备的制作方法

文档序号:6571983阅读:208来源:国知局
专利名称:单串口多cpu的控制方法、系统及设备的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种单串口多CPU的控制方法、系统及设备。
背景技术
随着电子技术的发展,单板硬件设计复杂度越来越高,一块单板上可能有多个中央处理单元(Center Process Unit,CPU),尤其是在高级电信计算平台(Advanced Telecom Computing Architecture,ATCA)架构产品的单板中实现了业务与管理平面的分离,这样在一块单板中除了业务CPU的调试串口外,还有底板管理控制器(Baseboard Management Controller,BMC)的CPU的调试串口,因此需要在单板设计多路串口电路,增加了设计的复杂性,同时多个串口插座会占用很多印刷电路板(Printed Circuit Board,PCB)和面板空间,增加了电路布局和结构设计的难度。
针对上述问题,如图1所示,现有技术是将单板上各路CPU分别通过的通用异步串口101,亦称为通用异步收/发信器(Universal AsynchronousReceiver/Transmitter,UART),与单板复杂可编程逻辑器件102(ComplexProgrammable Logic Device,CPLD)连接,在面板上设置一个串口插座106,通过与之相匹配的串口插头105与控制终端107连接,并通过RS232接口104与串口电平切换电路103连接,其中RS232(Recommended Standard 232)是电信工业联合会/美国电子工业协会(TIA/EIA)制定的推荐232标准,是数据终端设备和数据电路终接设备之间二进制串行数据交换接口。在CPLD的输出端,串口电平切换电路103通过一个UART与CPLD连接。然后,在单板上设置一跳线或拨码开关108用于控制CPLD进行串口切换。然而在实施该技术的过程中,跳线或拨码开关仍然需要人工控制,无法实现远程维护。

发明内容
本发明实施例所要解决的技术问题在于,提供一种单串口多CPU的控制方法、系统及设备,可以实现单串口在多个CPU之间自动切换。
一种单串口多CPU的控制方法,包括源CPU接收控制终端发送的串口切换命令;所述源CPU根据所述串口切换命令变更其发送给串口管理模块的状态信息;所述串口管理模块根据变更后的状态信息将串口从源CPU切换到另一个CPU。
一种单串口多CPU控制系统,包括至少两个CPU、串口插座及其相匹配的串口插头,其中,该系统还包括一串口管理模块,其与多个CPU连接,并通过串口插座及串口插头与一控制终端连接,用于根据所述CPU发送的状态信息进行串口切换。
一种CPU,其中,该CPU还包括串口切换命令接收单元,用于接收控制终端发送的串口切换命令;串口切换命令响应单元,用于接收到所述串口切换命令后变更其发送给串口管理模块的状态信息;状态信息发送单元,用于向所述串口管理模块发送所述状态信息。
一种串口管理模块,该串口管理模块包括状态信息接收单元,用于接收所述CPU发送的状态信息;状态信息分析单元,用于根据所述状态信息接收单元接收到的状态信息判断是否发生串口切换,并将判断结果输出;串口切换执行单元,用于接收所述状态信息分析单元输出的判断结果,当判断为发生串口切换,则根据所述判断结果将串口从源CPU切换到另一个CPU。
上述单串口多CPU的控制方法、系统及设备是通过发送串口切换命令到CPU,通过CPU更改其发送给串口管理模块的状态信息实现了一个串口在多个CPU之间自动切换,从而无需人工控制,并可以实现远程维护。


图1是现有单串口多CPU控制系统的结构框图;图2是本发明实施例的一种单串口多CPU控制系统的结构框图;
图3是本发明实施例的一种CPU的结构框图;图4是本发明实施例的一种串口管理模块的结构框图;图5是图4中所述状态信息分析单元22的结构框图;图6是图4中所述状态信息分析单元22的结构框图;图7是本发明实施例的一种单串口多CPU控制系统的结构框图;图8是图7所述的状态检测单元501状态检测的逻辑示意图;图9是图7所述串口故障检测单元213故障检测的逻辑示意图;图10是图7所述串口切换执行单元23的逻辑状态机示意图;图11是本发明实施例的一种单串口多CPU的控制方法的主流程图;图12是本发明实施例的一种单串口多CPU的控制方法的详细流程图。
具体实施例方式
本发明实施例提供的一种单串口多CPU的控制方法及系统、设备是通过在串口插座与CPU之间设置一串口管理模块,利用控制终端向CPU发送串口切换命令,源CPU接收到所述串口切换命令后更改其发送给串口管理模块的状态信息,而串口管理模块则根据所述状态信息进行串口切换。
下面结合附图具体阐述本发明实施例的技术方案。
参考图2,是本发明实施例的一种单串口多CPU控制系统的结构框图;根据该图可知,一种单串口多CPU控制系统包括至少两个CPU(本图以三个CPU为例)、控制终端107、串口插座106及其相匹配的串口插头105,其中,在CPU与串口插座106之间设置有一串口管理模块2,用于根据所述CPU发送的状态信息进行串口切换。串口管理模块2与多个CPU连接,同时与串口插座106连接,而串口插座106通过串口插头105与控制终端107连接。
当需要将第一CPU切换到其它CPU时,控制终端107通过串口插座106和串口管理模块2向第一CPU发送串口切换命令,第一CPU接收到串口切换命令后立即变更其发送给串口管理模块2的状态信息,串口管理模块2根据所述状态信息将串口从第一CPU切换到第二CPU。
在具体实现时,如图3所示,所述图2中的每一中央处理单元(CPU)至少包括串口切换命令接收单元302,用于接收控制终端107发送的串口切换命令;
串口切换命令响应单元303,与串口切换命令接收单元302耦接,用于接收到所述串口切换命令后,变更其发送给串口管理模块2的状态信息;串口控制信息发送单元301,用于向串口管理模块2发送所述状态信息;在具体实现时,如图4所示,所述图2中的串口管理模块2至少包括状态信息接收单元21,用于接收所述CPU发送的状态信息;状态信息分析单元22,用于根据状态信息接收单元21接收到的状态信息判断是否发生串口切换,并将判断结果输出;串口切换执行单元23,用于接收状态信息分析单元22输出的判断结果,状态信息分析单元22当判断为发生串口切换时,则根据所述判断结果将串口从源CPU切换到另一个CPU。
在本具体实施例中,如图5所示,所述图4中的状态信息分析单元22至少包括一状态检测单元501,用于在设定的时间内检测到所述状态信息发生改变时,判断为发生串口切换,并判断结果输出到串口切换执行单元23。串口切换执行单元23根据所述判断结果将串口从源CPU切换到另一个CPU。
在本具体实施例中,所述图4中的状态信息分析单元22还可以有其它方式实现,如图6所示,状态信息分析单元22具体包括串口切换状态寄存器601,用于保存串口切换状态表;串口切换查询单元602,与串口控制信息接收单元601耦接,用于根据所述状态信息在串口切换状态寄存器601中查找与所述状态信息相对应的串口切换状态,并作为判断结果输出到串口切换执行单元23。
其中,串口切换状态寄存器601中存放的串口切换状态可以是表1所示的串口切换状态表。
表1、串口切换状态表

各路CPU的状态信息可以通过数据地址总线或通用输入输出(GPIO)来设置,如第一CPU的状态信息是低电平0、第二CPU状态信息是低电平0、第三CPU状态信息是高电平1,且当前串口接在第一CPU上。
当需要将串口从第一CPU切换到另一个CPU时,直接通过控制终端发送串口切换命令,第一CPU根据其接收到的串口切换命令将其发送给串口管理模块的状态信息由低电平0变更为高电平1,即串口控制信息接收单元201接收到三路CPU状态信息分别为101;状态信息接收单元21接收所述状态信息,并将该状态信息输出给串口切换查询单元602,串口切换查询单元602根据状态信息101到串口切换状态寄存器601中查找串口切换状态表,如表1所示,查询到三路CPU的串口切换状态从001变为了101,即第一CPU的状态信息从0变为1,则判断为发生切换,且串口切换状态101对应的串口切换方向是从第一CPU切换到第二CPU,则将判断结果送到串口切换执行单元23,串口切换执行单元23根据所述查询结果将串口从第一CPU切换到第二CPU上,完成自动切换。
在上述实施例中,所述串口管理模块还可以包括一串口故障检测单元,用于对CPU或串口进行故障检测,并输出检测结果到所述串口切换执行单元。所述串口切换执行单元还用于根据所述串口故障检测单元输出的检测结果进行串口切换。
以上阐述了本发明实施例的一种单串口多CPU控制系统及CPU、串口管理模块,为了进一步阐述本发明实施例的技术方案,下面提出了一种单串口多CPU控制系统的一个优选实施例。
参考图7,是本发明实施例的一种单串口多CPU控制系统的结构框图;根据该图,第一中央处理单元31、第二中央处理单元32及底板管理控制器33分别通过通用异步串口101与串口管理模块2的串口切换执行单元23连接,串口管理模块2通过UART(通用异步串口)与串口电平转换电路103连接,而串口电平转换电路103通过RS232接口104与一个串口插座106连接,该串口插座通过与之相匹配的串口插头105与控制终端107连接。其中,串口电平转换电路103是将RS232标准的数字电平转换为UART标准的数字电平,当串口插座103与串口管理模块2的接口是统一标准时,则可以省去该串口电平转换电路。
如图7所示,第一中央处理单元31、第二中央处理单元32以及底板管理控制器33分别向串口控制信息接收单元21发送状态信息(图示为串口心跳信号),当串口要从其中一个CPU(称该CPU为源CPU)切换到另一个CPU时,只需利用控制终端107向源CPU发送串口切换命令,该串口切换命令需要通过串口管理模块2传送到源CPU。
源CPU接收到所述串口切换命令后,立即变更其发送给串口管理模块2的串口心跳信号的状态(如高电平变为低电平或低电平变为高电平)。当串口管理模块2的状态信息接收单元21接收到所述串口心跳信号后,利用状态信息分析单元22中的状态检测单元501对所述串口心跳信号进行处理,如图8所示。
参考图8,是图7所述的状态检测单元501状态检测的逻辑示意图;根据该图,当控制终端向源CPU发送串口切换命令时,串口管理模块立即启动状态检测单元中的计数器72,当状态检测单元的跳变沿检测单元71检测到所述串口心跳信号的状态发生改变时,则发送计数清零信号给计数器72,使计数器72停止计数并输出计数结果到计数溢出判断器73。如果计数溢出,则计数溢出判断器73向串口切换执行单元23输出1,表示在计数器规定的时间内串口心跳信号的状态未发生改变;如果计数未溢出,则计数溢出判断器73向串口切换执行单元212输出0,表示在计数器规定的时间内串口心跳信号的状态发生改变。串口切换执行单元23将根据状态检测单元的计数溢出判断器73的输出结果进行串口切换。
当CPU或串口发生故障,使得系统不能正常工作时,串口管理模块2的串口故障检测单元213可以进行故障检测及维护处理,如图9所示。
参考图9,是图7所述串口故障检测单元213故障检测的逻辑示意图;根据该图,当串口故障单元的下降沿检测单元81检测到控制终端向源CPU发送串口信息时,立即启动计数器83,当上升沿检测单元82检测到源CPU反馈的串口响应信息时,立即发送计数清零信号给计数器83,将计数结果输出到计数溢出判断器84。如果计数溢出,则计数溢出判断器84向串口切换管理模块212输出0,表示计数超时,即在规定的时间内未接收到串口响应信息,说明所述CPU或所述串口出现故障;如果计数未溢出,则计数溢出判断器84向串口切换管理模块212输出1,表示所述CPU或所述串口工作正常。
串口切换执行单元接收到所述状态检测单元或串口故障检测单元的输出结果时,将根据所述输出结果进行串口切换处理,如图9所示。
参考图10,是图7所示串口切换执行单元23的逻辑状态机示意图;该图是以3路CPU为例,但不限于此,当系统上电初始化时,如果第一CPU的串口心跳信号先为高电平1,则串口接第一CPU;如果第二CPU的串口心跳信号先为高电平1,则串口接第二CPU;如果底板管理控制器的串口心跳信号先为高电平1,则串口接底板管理控制器。当需要进行串口切换时,则按照第一CPU切换到第二CPU、第二CPU切换到底板管理控制器、底板管理控制器切换到第一CPU循环处理。
当第一CPU的串口心跳信号经状态检测单元处理输出为0或串口故障检测单元处理输出为0时,则将串口从第一CPU切换到第二CPU;当第二CPU的串口心跳信号经状态检测单元处理输出为0或串口故障检测单元处理输出为0时,则将串口从第二CPU切换到底板管理控制器;当底板管理控制器的串口心跳信号经状态检测单元处理输出为0或经串口故障检测单元处理输出为0时,则将串口从底板管理控制器切换到第一CPU。
上面结合附图具体阐述了本发明实施例的一种单串口多CPU控制系统及CPU、串口管理模块,下面将结合图11、图12阐述本发明实施例的一种单串口多CPU的控制方法的技术方案。
参考图11,是本发明实施例的一种单串口多CPU的控制方法的主流程图;该方法包括步骤S101,源CPU接收控制终端发送的串口切换命令;步骤S102,所述源CPU根据所述串口切换命令变更其发送给串口管理模块的状态信息;步骤S103,所述串口管理模块根据变更后的状态信息将串口从源CPU切换到另一个CPU。
其中,步骤S103具体可以为当所述串口管理模块在设定的时间内检测到所述状态信息发生改变时,则将串口从源CPU切换到另一个CPU。
在具体实现时,步骤S103具体可以为所述串口管理模块在其串口切换状态表中查找所述变更后的状态信息对应的串口切换状态,并根据所述串口切换状态将串口从源CPU切换到另一个CPU。
较佳地,本发明实施例提供的一种单串口多CPU的控制方法,还可以包括串口管理模块检测到源CPU或该CPU对应的串口发生故障时,自动将串口从所述源CPU切换到另一个CPU的步骤。
为了进一步叙述本发明实施例的一种单串口多CPU的控制方法,下面结合图12,详细阐述该方法的技术方案。
参考图12,是本发明实施例的一种单串口多CPU的控制方法的详细流程图;根据该图可知,所述一种单串口多CPU的控制方法包括步骤S201,所有CPU向串口管理模块发送状态信息。
步骤S202,控制终端向源CPU发送包括串口切换命令的串口信息,该串口信息经过所述串口管理模块传送到所述源CPU。
步骤S103,源CPU的串口切换命令接收单元接收到所述串口切换命令后,其串口切换命令响应单元变更所述状态信息,如将状态信息从低电平变为高电平或从高电平变为低电平;同时,源CPU向控制终端发送串口响应信息;同时,串口管理模块启动其状态检测单元中的第一计数器和串口故障检测单元中的第二计数器,然后同时执行步骤S204和步骤S205。
一方面,在步骤S204中,串口管理模块的状态信息分析单元利用其状态检测单元检测所述状态信息;步骤S2041,如果状态检测单元检测到所述状态信息未发生改变时,进入步骤S204,否则,执行步骤S2042;步骤S2042,状态检测单元判断第一计数器是否溢出,如果没有溢出,则进入步骤S206。
另一方面,在步骤S205中,串口故障检测单元检测源CPU发送的串口响应信息;步骤S2051,当检测到所述第二计数器有溢出,而在步骤S2052中,串口故障检测单元未收到所述串口响应信息时,进入步骤S206。
步骤S206,串口切换执行单元根据状态检测单元或串口故障检测单元的输出结果,将串口从源CPU切换到另一个CPU。
由上述实施例可知,本发明实施例提供的一种单串口多CPU的控制方法及系统、设备中,一方面,利用控制终端向CPU发送串口切换命令,进行串口自动切换,即使单板插入了系统的机框,仍然可以对该系统进行操作,且操作方便,支持远程维护;另一方面,利用串口故障检测单元进行串口故障自动检测和恢复,避免出现串口挂死,提高了串口的可用性和可靠性;再则,本发明实施例是使用了一个串口插座,降低了单板成本,同时减少了电路布局的空间占用,提高了电路集成度。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
权利要求
1.一种单串口多CPU的控制方法,其特征在于,该方法包括源CPU接收控制终端发送的串口切换命令;所述源CPU根据所述串口切换命令变更其发送给串口管理模块的状态信息;所述串口管理模块根据变更后的状态信息将串口从源CPU切换到另一个CPU。
2.如权利要求1所述的方法,其特征在于,所述串口管理模块根据所述变更后的状态信息将串口从源CPU切换到另一个CPU的步骤具体为当所述串口管理模块在设定的时间内检测到所述状态信息发生改变时,则将串口从源CPU切换到另一个CPU。
3.如权利要求1所述的方法,其特征在于,所述串口管理模块根据所述变更后的状态信息将串口从源CPU切换到另一个CPU的步骤具体为所述串口管理模块在其串口切换状态表中查找所述变更后的状态信息对应的串口切换状态,并根据所述串口切换状态将串口从源CPU切换到另一个CPU。
4.如权利要求2或3所述的方法,其特征在于,该方法还包括串口管理模块检测到源CPU或该CPU对应的串口发生故障时,自动将串口从所述源CPU切换到另一个CPU。
5.一种单串口多CPU控制系统,包括至少两个CPU、串口插座及其相匹配的串口插头,其特征在于,该系统还包括一串口管理模块,其与多个CPU连接,并通过串口插座及串口插头与一控制终端连接,用于根据所述CPU发送的状态信息进行串口切换。
6.如权利要求5所述的系统,其特征在于,所述CPU还包括串口切换命令接收单元,用于接收控制终端发送的串口切换命令;串口切换命令响应单元,用于接收到所述串口切换命令后变更其发送给串口管理模块的状态信息;状态信息发送单元,用于向所述串口管理模块发送所述状态信息。
7.如权利要求5或6任意一项所述的系统,其特征在于,所述串口管理模块包括状态信息接收单元,用于接收所述CPU发送的状态信息;状态信息分析单元,用于根据所述状态信息接收单元接收到的状态信息判断是否发生串口切换,并将判断结果输出;串口切换执行单元,用于接收所述状态信息分析单元输出的判断结果,当判断为发生串口切换,则根据所述判断结果将串口从源CPU切换到另一个CPU。
8.如权利要求7所述的系统,其特征在于,所述状态信息分析单元包括一状态检测单元,用于在设定的时间内检测到所述状态信息发生改变时,判断为发生串口切换,并将判断结果输出到所述串口切换执行单元。
9.如权利要求7所述的系统,其特征在于,所述状态信息分析单元包括串口切换状态寄存器,用于保存串口切换状态表;串口切换查询单元,用于根据所述状态信息在串口切换状态寄存器中查找与所述状态信息相对应的串口切换状态,并作为判断结果输出到所述串口切换执行单元。
10.如权利要求8或9所述的系统,其特征在于,所述串口管理模块还包括一串口故障检测单元,用于对CPU或串口进行故障检测,并输出用于指示串口切换执行单元执行串口切换的检测结果到所述串口切换执行单元。
11.一种CPU,其特征在于,该CPU还包括串口切换命令接收单元,用于接收控制终端发送的串口切换命令;串口切换命令响应单元,用于接收到所述串口切换命令后变更其发送给串口管理模块的状态信息;状态信息发送单元,用于向所述串口管理模块发送所述状态信息。
12.一种串口管理模块,其特征在于,该串口管理模块包括状态信息接收单元,用于接收所述CPU发送的状态信息;状态信息分析单元,用于根据所述状态信息接收单元接收到的状态信息判断是否发生串口切换,并将判断结果输出;串口切换执行单元,用于接收所述状态信息分析单元输出的判断结果,当判断为发生串口切换,则根据所述判断结果将串口从源CPU切换到另一个CPU。
13.如权利要求12所述的串口管理模块,其特征在于,所述状态信息分析单元包括一状态检测单元,用于在设定的时间内检测到所述状态信息发生改变时,则判断为发生串口切换,并将判断结果输出到所述串口切换执行单元。
14.如权利要求12所述的串口管理模块,其特征在于,所述状态信息分析单元包括串口切换状态寄存器,用于保存串口切换状态表;串口切换查询单元,用于根据所述状态信息在串口切换状态寄存器中查找与所述状态信息相对应的串口切换状态,并作为判断结果输出到所述串口切换执行单元。
15.如权利要求14所述的串口管理模块,其特征在于,所述串口管理模块还包括一串口故障检测单元,用于对CPU或串口进行故障检测,并输出用于指示串口切换执行单元执行串口切换的检测结果到所述串口切换执行单元。
全文摘要
本发明实施例公开了一种单串口多CPU的控制方法,包括源CPU接收控制终端发送的串口切换命令;所述源CPU根据所述串口切换命令变更其发送给串口管理模块的状态信息;所述串口管理模块根据变更后的状态信息将串口从源CPU切换到另一个CPU。本发明实施例还公开了一种单串口多CPU的控制系统及设备,可以实现单串口在多个CPU之间自动切换,使用一个串口插座,减少了单板占用空间,提高电路集成度。
文档编号G06F13/40GK101089835SQ20071002833
公开日2007年12月19日 申请日期2007年5月30日 优先权日2007年5月30日
发明者刘华伟, 冯健, 霍红伟 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1