一种多单板控制台信息输出方法 【技术领域】
本发明涉及电数字数据处理,尤其涉及一种多单板控制台信息输出方法。
背景技术
电信产品的结构通常都是采用框的形式,然后在框中插有多个单板,其中一个单板为用户的主要操作平台,通过这个单板可以了解到整个设备的运行情况,为方便描述,该单板在这里我们通称为主处理单元(MPU),其他单板通称为子处理单元(SPU)。用户一般是在MPU单板进行控制台操作,通过串口打印,或通过网口远程登录(telnet)到MPU单板,然后在MPU上查看各个单板的状态、进行各种控制台操作。
除MPU外的各个单板信息的显示是通过本地串口打印出来的,用户或维护人员在单板发生故障或是需要看单板的显示情况时,通常是将相应的单板串口用电缆连接出来进行观察。这种方法使用起来不是很方便,更重要的一点是,如单板发生故障需要定位时,这时连接上串口往往是无用的,因为在这之前单板所打印出来的故障信息已经丢失,重新复现通常会花费大量的人力。
如图1所示为现有的单板控制台信息本地输出方案示意图,目前大多数产品均采用这种方案,当用户需要看除MPU单板外的其他SPU单板的控制台输出时,采用地办法是从SPU单板的串口连接一条串口电缆线到PC机的串口上。该方案的实现很简单,就是所有控制台的输出函数采用统一的串口输出函数(如Printf),再通过串口输出函数(Printf)将控制台输出的信息(如加载信息)直接打印到串口上。这种方案是以本地单板串口输出为基础的,明显存在着以下一些缺点:
1、需要连接串口线,当需要看多个SPU单板的控制台输出信息时,需要连接多条串口输出线,操作起来麻烦、复杂,而且现场常常不具备这样的条件;
2、必须在本地才能看到除MPU单板外的其他SPU单板的控制台输出信息,在远地则不能看到;
3、不能保存各SPU单板控制台输出的历史记录,不方便定位故障问题。
目前在个别的产品中,已经实现了在MPU单板上执行其他单板上的控制台命令函数,可以在MPU看到执行的结果,但存在功能不完善和局限性,主要在于该功能在控制台命令输入输出管理模块实现,如控制台任务没有起来,则此功能也就丧失,存在局限性。另外该功能仅仅是提供在MPU上显示单板命令执行结果,不能提供各个单板的控制台的动态输出,比如各个单板加载时的动态输出,正常运行时单板控制台的自动输出等,所以功能比较单一。
如图2所示为现有的单板控制台信息由MPU输出方案示意图,用户从MPU控制台执行SPU单板的控制台命令函数,即由MPU单板将单板控制台命令以消息包的形式发送到SPU单板上,在SPU单板执行命令,然后,将执行命令的结果(即单板命令输出信息)以消息包的形式发送回MPU单板控制台显示。现有的这种单板控制台信息由MPU输出方案存在以下缺点:
1、不能保存各SPU单板控制台输出的历史记录,不方便定位故障问题;
2、存在局限性,在不连接串口输出的情况下,只能输出命令执行信息,不能完整输出除MPU单板外的SPU单板的控制台输出信息;
3、在控制台任务中实现该功能,一旦SPU单板的控制台任务失败则不能通过MPU单板看到此SPU单板的控制台输出。
【发明内容】
本发明所要解决的技术问题是:克服现有的单板控制台输出的历史记录不能保存,以及不能完整输出除MPU单板外的其它单板控制台输出信息等的不足,提供一种能通过MPU单板完整输出各单板控制台信息的方法,使用户不但可以全程了解各个单板的控制台输出情况,而且可对各单板控制台输出的历史记录进行保存,方便对各种故障的分析和定位。
本发明为解决上述技术问题所采用的技术方案为:
这种多单板控制台信息输出方法,包括以下步骤:
A、各单板将各自的控制台输出信息发送到控制台操作单板;
B、所述的控制台操作单板接收本板或其它单板的控制台输出信息,并对应各单板槽号进行保存;
C、通过在控制台操作单板输入相应的命令,显示对应槽号的各单板控制台输出信息。
所述的控制台输出信息由各单板应用模块采用统一的控制台信息输出函数产生。
所述的控制台输出信息以消息包的形式发送到控制台操作单板。
所述消息包的格式采用以太网帧格式或自定义格式。
所述的控制台输出信息可在各单板的缓冲区缓存后再以消息包的形式发送到控制台操作单板。
所述的消息包放在各单板的加载任务中进行处理,或单独生成一个任务处理。
所述的步骤B中,控制台输出信息以文件格式存放在控制台操作单板硬盘上,或以数据结构的方式存放在控制台操作单板闪存(FLASH)或内存中。
在显示某槽位的控制台输出信息时,由控制台操作单板的任务取出所保存的控制台输出信息,按序进行显示,显示完后,实时显示对应槽号的控制台输出信息。
本发明的有益效果为:本发明提供了一种完整的多单板控制台信息输出方法,通过多单板控制台信息的集中输出,实现对各个单板加载全过程的监控,而且可动态监控和保存各个SPU单板的控制台输出内容,实现对所有单板控制台输出信息的保存和显示,方便故障的分析和定位,并有助于实时了解单板所处的状态。
用户可以从MPU单板上,不用连接其他单板串口电缆,就可以全程了解各个单板的控制台输出情况,看到所有单板的加载进程,方便产品的升级和加载故障的定位。用户也可以不在现场,可以从远端看到各个单板的控制台输出信息,这样节约了人力、物力资源。
【附图说明】
图1为现有的单板控制台信息本地输出方案示意图;
图2为现有的单板控制台信息由MPU输出方案示意图;
图3为本发明单板控制台信息输出方案示意图。
【具体实施方式】
下面根据附图和实施例对本发明作进一步详细说明:
如图3所示为本发明单板控制台信息输出方案示意图,各个SPU单板动态地将控制台输出信息以消息包的形式发送到MPU单板;MPU动态接收各个SPU单板的控制台输出信息,将它放到硬盘中对应槽号的文件中保存起来;所有SPU单板的控制台输出信息都通过在MPU执行相应的某槽位单板控制台显示命令显示出来,包括历史记录和当前的动态记录。
控制台输出信息由各单板上的软件应用模块采用统一的控制台信息输出函数产生,在各单板的引导程序(BOOTROM)和主机加载模块中增添对控制台输出信息消息包的处理,由于加载模块是最早启动的模块之一,因而在其他任务之前已启动单板控制台信息的输出。当然,对控制台输出信息消息包的处理不一定放在加载任务来处理,也可以单独生成一个任务或在其他模块任务如串口任务中处理。
在各个单板开辟一个缓冲区(2K左右),各个单板的控制台输出信息先进入缓冲区,然后由各单板的加载任务以消息包的形式发送到MPU单板。这样可以对引导程序处理器(BSP)启动过程的输出信息进行缓存,从而可以输出在加载任务也还没有起来时的控制台信息输出。
MPU单板的加载任务动态接收本板或SPU单板的控制台信息输出消息包,根据消息包中的槽号信息,找到硬盘上对应的文件,将控制台输出信息添加到文件的末尾,这样MPU单板保存有各个单板控制台输出的历史记录,有助于对各种故障的分析和定位。
在MPU发生故障无法从控制台输入命令或消息传输机制故障,会导致本方案无法实现,本方案实现的条件是MPU及相应的传输机制处于正常运行状态。用户在需要看某个槽位单板的控制台信息输出时,输入相应的命令(如set console槽号)就可以动态显示对应槽号的控制台输出。在显示某槽位的控制台输出信息时,由控制台操作单板的任务取出所保存的控制台输出信息,按序进行显示,显示完后,实时显示对应槽号的控制台动态输出信息。
控制台输出信息消息包的格式可以采用以太网帧格式,这样有利于减少BOOTROM程序的代码量,实现起来简单、可靠。当然消息包的帧格式不一定采用以太网帧格式,也可以采用自定义格式。对控制台信息的输出的保存也不一定是以文件的格式存放在硬盘上,可以以数据结构的方式存放在闪存(FLASH)或内存中。
本发明提供了一种能从MPU单板上动态监视、保存各个单板控制台的输出信息的方法,对于用户来说是非常方便和有效的。本领域技术人员不脱离本发明的范围和精神,可以有多种变形方案实现本发明,所附的权利要求包括这些变形。