一种基于发送中断的通信接口实现正常工作的方法

文档序号:6443956阅读:109来源:国知局
专利名称:一种基于发送中断的通信接口实现正常工作的方法
技术领域
本发明涉及电子设备,具体涉及一种基于发送中断的通信接口实现正常工作的方法。
背景技术
目前,通信领域的各单板一般都会用到通信处理器,单板的通信处理器使用其自带的通信接口与其他单板或外设等进行数据传输,如单板通过通信处理器自带的通信接口进行调试打印输出等。
当通信处理器的通信接口采用发送中断触发方式发送数据时,如果该通信接口出现发送中断丢失的情况,会使单板的通信接口处于死锁状态,从而使单板进入死机状态。
下面以打印通信接口为例,对通信接口发生死锁状态的过程进行描述。
一条打印语句的执行过程主要包括两个部分,第一部分是使用打印函数将需要打印的信息存放到打印缓冲存储区中;第二部分是通信接口将打印缓冲存储区中存储的打印信息一一输出到超级终端上。
目前,第一部分采用阻塞方式将打印函数中需要打印的信息存放到打印缓冲存储区中,即如果打印缓冲存储区处于满的状态,打印函数将被阻塞,一直等到打印缓冲存储区能够放下需要打印的信息才会退出。第二部分则主要采用发送中断触发方式。
在通信接口采用发送中断触发方式输出打印信息时,如果通信接口在输出打印信息过程中丢失一个发送中断,通信接口处于非工作状态,而打印缓冲存储区则一直处于满的状态,打印函数将被阻塞,从而导致通信接口处于死锁状态,单板进入死机状态。
在通信接口处于死锁状态时,只能通过手工断电的方式使通讯接口恢复正常的工作状态,系统可用性差。

发明内容
本发明提供一种基于发送中断的通信接口实现正常工作的方法,使通信接口在处于死锁状态时能够自动恢复正常的工作状态,实现了提高系统可用性的目的。
为达到上述目的,本发明提供的一种基于发送中断的通信接口实现正常工作的方法,包括a、确定单板通信接口的工作状态;b、确定所述单板发送缓存的存储状态;c、在所述通信接口的工作状态为非工作状态且所述发送缓存的存储状态为非空时,确定所述通信接口处于非正常工作状态,并初始化所述通信接口。
所述单板包括基于发送中断的打印输出单板。
所述通信接口包括串行通信接口、并行通信接口。
所述方法之前还包括设置单板通信接口的工作状态标志;所述工作状态标志为工作状态或非工作状态;所述工作状态标志在通信接口触发发送中断时为工作状态。
所述步骤a进一步包括a1、根据预定时间间隔定时检测所述单板通信接口的工作状态标志;a2、判断所述工作状态标志为工作状态还是非工作状态;如果所述工作状态标志为工作状态,将所述工作状态标志设置为非工作状态,并返回所述步骤a1;
如果所述工作状态标志为非工作状态,到所述步骤b。
所述方法还包括设置所述通信接口处于非正常工作状态的预定故障次数;且所述步骤a2中将所述工作状态标志设置为非工作状态的步骤还包括复位所述预定故障次数的记次值。
所述步骤c进一步包括判断所述发送缓存的存储状态为空状态还是为非空状态;如果所述发送缓存的存储状态为空状态,复位预定故障次数的记次值;如果所述发送缓存的存储状态为非空状态,为所述预定故障次数记次,并在所述记次值达到所述预定故障次数时,确定所述通信接口处于非正常工作状态,并初始化所述通信接口。
通过上述技术方案的描述可明显得知,本发明通过为通信接口设置工作状态标识,能够简单方便的确定通信接口的工作状态、非工作状态;通过单板通信接口的非工作状态及发送缓存的存储状态,能够快速定位单板通信接口的非正常工作状态,即死锁状态;通过设置预定时间间隔、预定故障次数,使本发明能够对单板通信接口的非正常工作状态进行及时、准确定位;本发明在确定通信接口处于非正常工作状态时,通过初始化通信接口,使通信接口能够自动恢复为正常的工作状态;从而通过本发明提供的技术方案实现了提高系统可用性的目的。


图1是本发明的通信接口实现正常工作的流程图。
具体实施例方式
单板的通信接口在采用发送中断的方式将其发送缓存中的数据发送出去时,如果单板通信接口在处于非工作状态、且该单板的发送缓存的存储状态又为非空,那么,该通信接口一定是处于非正常工作状态,即死锁状态。通信接口在处于死锁状态时,通过初始化能够自动恢复为正常的工作状态。因此,本发明的核心是确定单板通信接口的工作状态,确定单板发送缓存的存储状态,在所述通信接口的工作状态为非工作状态且所述发送缓存的存储状态为非空时,确定所述通信接口处于非正常工作状态,并初始化所述通信接口。从而,本发明能够对通信接口的死锁状态快速定位,并通过初始化通信接口使通信接口能够自动恢复正常的工作状态,有效解决了现有技术中存在的系统可用性差的问题。
下面基于本发明的核心思想对本发明提供的技术方案做进一步的描述。
本发明中的通信接口包括串行通信接口和并行通信接口。
本发明首先需要确定通信接口的工作状态,确定通信接口的工作状态的方法有很多,如通过判断通信接口在预定时间间隔内是否有触发发送中断等方法。
本发明可以采用设置单板通信接口的工作状态标志的方法来确定通信接口的工作状态。本发明设置的通信接口的工作状态标志可表示通信接口的两种状态工作状态或非工作状态。
当单板通信接口触发发送中断时,通信接口的工作状态标志应设置为工作状态。
本发明可以根据预定时间间隔定时检测通信接口的工作状态标志,预定时间间隔可以根据单板的具体需求来设定。根据预定时间间隔定时检测的过程可通过循环定时器来启动。
在检测通信接口的工作状态标志时,如果检测到通信接口的工作状态标志为工作状态时,表示该通信接口能够触发发送中断,处于正常工作状态,将该工作状态标志设置为非工作状态,以便于确定通信接口是否还能够触发发送中断。如果检测到通信接口的工作状态标志为非工作状态时,需要进一步根据单板发送缓存的存储状态来确定该通信接口是否处于非正常工作状态。
在确定通信接口的工作状态标志为非工作状态时,确定单板发送缓存的存储状态,在单播发送缓存的存储状态为非空时,可确定通信接口处于死锁状态。
为进一步保证本发明确定通信接口处于死锁状态的准确性,本发明还设置通信接口处于非正常工作状态的预定故障次数,如果在根据预定时间间隔连续检测通信接口的工作状态标志及确定发送缓存的存储状态过程中,连续确定通信接口处于非工作状态、且发送缓存为非空的次数达到预定故障次数,则确定该通信接口一定处于非正常工作状态,通过初始化单板通信接口的方法解除通信接口的死锁状态,使通信接口能够继续触发发送中断,继续进行正常的数据发送过程。
下面以打印输出单板的串行通信接口为例结合附图1对本发明提供的技术方案进行详细描述。
如附图1所示,在步骤100,设置打印输出单板的串行通信接口的工作状态标志,该串行通信接口的工作状态标志在该串行通信接口触发发送中断时,为工作状态。设置串行通信接口处于非正常工作状态的预定故障次数,设置为预定故障次数记次的初始记次值,如初始记次值为零。如果为预定故障次数记次通过记数器来实现,则记数器复位。根据打印输出单板的具体需求设置检测串行通信接口的工作状态标志的预定时间间隔。
到步骤110,采用循环定时器等方法,根据预定时间间隔定时检测串行通信接口的工作状态标志。
到步骤120,判断串行通信接口的工作状态标志,如果串行通信接口的工作状态标志为工作状态,到步骤121,将串行通信接口的工作状态标志修改为非工作状态,预定故障次数的记数器复位。
到步骤110,继续根据预定时间间隔定时检测串行通信接口的工作状态标志。
在步骤120,如果串行通信接口的工作状态标志为非工作状态,到步骤130,判断打印单板的打印缓存的存储状态是否为空,如果打印缓存的存储状态为空,表示串行通信接口处于正常工作状态,到步骤131,不改变串行通信接口的工作状态,预定故障次数的记数器复位。
在步骤130,如果打印缓存的存储状态为非空,到步骤140,为预定故障次数记次的记数器的记数值增加1。
到步骤150,判断记数器的记数值是否达到预定故障次数,如果记数值未达到预定故障次数,到步骤110,继续根据预定时间间隔定时检测串行通信接口的工作状态标志。
在步骤150,如果记数值达到预定故障次数,到步骤160,确定串行通信接口处于死锁状态,初始化串行通信接口,恢复串行通信接口正常的工作状态,本次解决串行通信接口的死锁问题结束,到步骤110,继续根据预定时间间隔定时检测串行通信接口的工作状态标志,以便再次确定并解决串行通信接口的非正常工作状态。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,本发明的申请文件的权利要求包括这些变形和变化。
权利要求
1.一种基于发送中断的通信接口实现正常工作的方法,其特征在于,包括a、确定单板通信接口的工作状态;b、确定所述单板发送缓存的存储状态;c、在所述通信接口的工作状态为非工作状态且所述发送缓存的存储状态为非空时,确定所述通信接口处于非正常工作状态,并初始化所述通信接口。
2.如权利要求1所述的一种基于发送中断的通信接口实现正常工作的方法,其特征在于,所述单板包括基于发送中断的打印输出单板。
3.如权利要求1所述的一种基于发送中断的通信接口实现正常工作的方法,其特征在于,所述通信接口包括串行通信接口、并行通信接口。
4.如权利要求1、2或3所述的一种基于发送中断的通信接口实现正常工作的方法,其特征在于,所述方法之前还包括设置单板通信接口的工作状态标志;所述工作状态标志为工作状态或非工作状态;所述工作状态标志在通信接口触发发送中断时为工作状态。
5.如权利要求4所述的一种基于发送中断的通信接口实现正常工作的方法,其特征在于,所述步骤a进一步包括a1、根据预定时间间隔定时检测所述单板通信接口的工作状态标志;a2、判断所述工作状态标志为工作状态还是非工作状态;如果所述工作状态标志为工作状态,将所述工作状态标志设置为非工作状态,并返回所述步骤a1;如果所述工作状态标志为非工作状态,到所述步骤b。
6.如权利要求5所述的一种基于发送中断的通信接口实现正常工作的方法,其特征在于,所述方法还包括设置所述通信接口处于非正常工作状态的预定故障次数;且所述步骤a2中将所述工作状态标志设置为非工作状态的步骤还包括复位所述预定故障次数的记次值。
7.如权利要求6所述的一种基于发送中断的通信接口实现正常工作的方法,其特征在于,所述步骤c进一步包括判断所述发送缓存的存储状态为空状态还是为非空状态;如果所述发送缓存的存储状态为空状态,复位预定故障次数的记次值;如果所述发送缓存的存储状态为非空状态,为所述预定故障次数记次,并在所述记次值达到所述预定故障次数时,确定所述通信接口处于非正常工作状态,并初始化所述通信接口。
全文摘要
本发明提供一种基于发送中断的通信接口实现正常工作的方法,其核心为确定单板通信接口的工作状态,确定所述单板发送缓存的存储状态,在所述通信接口的工作状态为非工作状态且所述发送缓存的存储状态为非空时,确定所述通信接口处于非正常工作状态,并初始化所述通信接口。本发明能够及时、准确的定位单板通信接口的非正常工作状态,即死锁状态,并在确定通信接口处于非正常工作状态时,通过自动初始化通信接口,使通信接口能够自动恢复为正常的工作状态;从而通过本发明提供的技术方案实现了提高系统可用性的目的。
文档编号G06F3/00GK1790252SQ20041009868
公开日2006年6月21日 申请日期2004年12月16日 优先权日2004年12月16日
发明者付春林 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1