一种USB通信在线维护的装置和方法 【技术领域】
本发明涉及计算机技术领域,尤其涉及的是,一种USB接口通信电路在线维护的装置和方法。
背景技术
随着计算机应用的普及,外围设备与计算机之间的通讯问题成了各种应用中关键的一个环节,在各种通讯方式中,USB因其诸多优点而备受青睐,申请号为200420038273.7的中国实用新型专利“基于USB的可重构密码协处理器的板级验证电路”公开了一种通过USB接口实现外围设备与计算机之间通讯的装置,参见图1,该装置的技术方案为,使用USB接口芯片FT245BM连接USB接口和现场可编程门阵列FPGA,实现计算机和FPGA之间的数据通信,但是该方案存在的问题是,在数据通信过程中经常出现数据掉链、USB接口挂起的故障,解决这一故障往往需要重新拔、插USB接口,使接口芯片FT245BM复位,重新建立数据连接,对于持续大流量的数据传输,这种故障排除方法显然满足不了应用要求。
因此,现有技术存在缺陷,需要改进。
【发明内容】
本发明所要解决的技术问题是针对现有技术的不足,提供一种USB通信在线维护装置和维护方法。
本发明的技术方案如下:
一种USB通信在线维护的装置,包括USB接口、USB接口电路和数据处理电路,所述USB接口电路分别与所述USB接口和所述数据处理电路相连接,用于所述USB接口和所述数据处理电路之间的数据通信,其中,所述数据处理电路还包括复位控制模块,其分别与所述USB接口电路和所述USB接口相连接,用于同时接收来自所述USB接口电路的控制信号1和来自所述USB接口的控制信号2,并根据所述控制信号1和所述控制信号2,按预设置条件向所述USB接口电路输出复位信号。
所述的装置,所述复位控制模块包括判断单元和复位输出单元,所述判断单元分别与所述USB接口电路和所述USB接口相连接,用于接收所述控制信号1和所述控制信号2,判断所述控制信号1和所述控制信号2符合所述预设置条件,向所述复位输出单元输出控制信号3,所述复位输出单元用于响应所述控制信号3,输出复位信号。
所述的装置,所述USB接口电路为芯片FT245BM。
所述的装置,所述控制信号1为FT245BM芯片管脚10的输出信号,所述控制信号2为所述USB接口的电源总线信号。
所述的装置,所述数据处理电路为现场可编程门阵列FPGA。
一种应用于如权利要求1所述装置的方法,包括如下步骤:
A1:所述数据处理电路接收来自所述USB接口电路的控制信号1和来自所述USB接口的控制信号2;
A2:判断所述控制信号1和所述控制信号2是否同时为高电平,是则执行步骤A3;
A3:检测控制信号1和控制信号2同时为高电平的持续时间,判断所述持续时间是否超过预设数值,是则执行步骤A4;
A4:向所述USB接口电路输出复位信号,返回步骤A2。
所述的方法,所述预设数值为5秒。
所述的方法,所述复位信号为持续至少5毫秒的低电平脉冲信号。
所述的方法,所述USB接口电路为FT245BM芯片。
所述的方法,所述数据处理电路为现场可编程门阵列FPGA。
所述的方法,所述控制信号1为FT245BM芯片管脚10的输出信号,所述控制信号2为所述USB接口的电源总线信号。采用上述方案,本发明通过设置复位控制模块,自动在线检测出USB通信装置的掉链故障,自动在线向USB接口芯片发出复位信号使之重新复位,不需要重新拔、插USB数据线,在线解决了通信中断的故障。
【附图说明】
图1为现有技术的示意图;
图2是本发明实施例1的示意图;
图3是本发明实施例2的结构示意图;
图4是本发明实施例3的示意图。
【具体实施方式】
以下结合附图和具体实施例,对本发明进行详细说明。
实施例1
如图2所示,本实施例提供了一种USB接口通信电路在线维护装置,包括USB接口10,USB接口电路11和数据处理电路12,本实施例中USB接口电路11采用接口芯片FT245BM实现其功能,数据处理电路12采用现场可编程门阵列FPGA实现其功能,当然,本领域技术人员根据需要也可以选择其他类似硬件,比如接口芯片还可以采用FT245BL、FT245RL等,数据处理电路12也可采用单片机或者复杂可编程门阵列CPLD等,
FT245BM与USB接口10和数据处理电路FPGA相连接,用于USB接口10和FPGA之间的数据通信,FT245BM与USB接口10和数据处理电路FPGA的连接方法已经实现有技术,在此不再赘述,以下重点描述本发明对现有技术的贡献部分。
在数据处理电路FPGA中还设置一复位控制模块121,复位控制模块121同时接收来自USB接口电路FT245BM的控制信号1——USB_PWREN,也即FT245BM芯片第10管脚的输出和来自USB接口10的控制信号2——USB_VBUS,也即USB接口的+5V端,本实施例中采用该+5V端经过电阻R1分压后的信号,复位控制模块121根据控制信号USB_PWREN和控制信号USB_VBUS的状态,决定是否向FT245BM的复位端(第4管脚)输出复位信号,具体来说,当USB_VBUS为低电平,USB_PWREN为高电平时,此时表示USB数据线没有插上,所以此时USB设备一定处于断开的状态,复位控制模块不做出任何动作;USB_VBUS为高,USB_PWREN为低,此时表示USB线已经插上,且USB通信正常,同样无需处理;USB_VBUS为高,USB_PWREN为高,此种情况表示USB线已经插上,但是USB设备处于挂起状态,这就表示USB通信出错,但是USB驱动通常能够回复设备的连接。故在这种情况出现后,需要等待一段时间后再做判断,如果过了几秒之后仍然为该状态,则表示USB连接一直在错误并且无法回复,此时就需要给FT245BM中发送一个持续时间为数毫秒的低电平的复位信号,这样就能恢复USB的连接。
这样,通过设置复位控制模块,自动在线检测出USB通信装置的掉链故障,自动在线向USB接口芯片发出复位信号使之重新复位,不需要重新拔、插USB数据线,在线解决了USB通信中断地故障。
实施例2
本实施例对实施例1中的复位控制模块121进一步做了优化设计,如图3所示,复位控制模块121包括判断单元1211和复位输出单元1212,判断单元1211接收控制信号1和控制信号2,并对控制信号1和控制信号2作出判断和检测,根据判断和检测结果输出信号到复位输出单元1212,控制其是否输出复位信号USB_RST到USB接口电路的复位端。
例如,所述复位控制模块包括判断单元和复位输出单元,判断单元包括接收模块、第一判断模块、检测模块和第二判断模块,复位输出单元包括响应模块和输出模块。接收模块接收所述控制信号1和所述控制信号2,传送到第一判断模块,由其判断所述控制信号1和所述控制信号2是否同时为高电平,若结果为否,则不作处理,若同时为高电平时,则由检测模块检测控制信号1和控制信号2同时为高电平的持续时间,传送到第二判断模块,由其判断所述持续时间是否超过预设数值,若结果为否,则不作处理,若超过预设数值时,输出控制信号3到响应模块,响应模块接收到控制信号3,则启动输出模块,由输出模块向所述USB接口电路输出复位信号。
一种实施方式是判断单元1211接收来自USB接口电路FT245BM的控制信号1——USB_PWREN,也即FT245BM芯片第10管脚的输出和来自USB接口10的控制信号2——USB_VBUS,也即USB接口的+5V端,复位输出单元1212根据控制信号USB_PWREN和控制信号USB_VBUS的状态,决定是否向FT245BM的复位端(FT245BM的第4管脚)输出复位信号,这样进一步优化设计数据处理电路结构,提高系统资源利用率。
实施例3
本实施例提供一种应用到上述任一实施例的USB通信在线维护的方法,图4为本实施例的流程图,该方法包括以下步骤:A1:数据处理电路接收控制信号1和控制信号2;A2:判断控制信号1和控制信号2是否同时为高电平,若为否,无动作;若为是,则继续执行以下步骤;A3:检测控制信号1和控制信号2同时为高电平的持续时间是否超过预设数值,若为否,无动作,若为是,继续执行以下步骤;A4:向USB接口电路输出复位信号,同时返回步骤A2。
为了详细说明上述方法,本实施例中硬件电路USB接口电路11采用接口芯片FT245BM实现其功能,数据处理电路12采用现场可编程门阵列FPGA实现其功能,当然,本领域技术人员根据需要也可以选择其他类似硬件,比如接口芯片还可以采用FT245BL、FT245RL等,数据处理电路12也可采用单片机或者复杂可编程门阵列CPLD等。
步骤A1:系统上电以后,FPGA接收控制信号1——USB_PWREN,也即FT245BM芯片第10管脚的输出和来自USB接口10的控制信号2——USB_VBUS,也即USB接口的+5V端的信号。
步骤A2:判断控制信号1和控制信号2是否同时为高电平,若为否,无动作;若为是,则继续执行步骤A3。具体来说,当USB_VBUS为低电平,USB_PWREN为高电平时,此时表示USB数据线没有插上,所以此时USB设备一定处于断开的状态,复位控制模块不做出任何动作;USB_VBUS为高,USB_PWREN为低,此时表示USB线已经插上,且USB通信正常,同样无需处理;USB_VBUS为高,USB_PWREN为高,此种情况表示USB线已经插上,但是USB设备处于挂起状态,这就表示USB通信出错,继续步骤A3。
步骤A3:检测、判断控制信号1和控制信号2同时为高电平的持续时间是否超过预设数值,若为否,无动作,若为是,继续执行以下步骤;在具体应用中,USB驱动通常能够回复设备的连接状态,故在USB_VBUS、USB_PWREN都为高的情况下,需要检测其是否持续为高电平超过了预设时间,如果过了这一时间以后仍然都为高电平状态,则表示USB连接一直在错误并且无法回复,此时继续执行步骤A4,本步骤中上述预设时间优选设置为5秒钟。
步骤A4:向USB接口电路输出复位信号,同时返回步骤A2;本步骤在上述步骤的基础上给FT245BM的复位端发送一个持续时间为数毫秒的低电平复位信号USB_RST,这样就能恢复USB的连接,优选的,复位信号USB_RST的低电平时间至少为5毫秒。
又一个例子,如图3所示,将上述方法作如下优化,数据处理电路12中设置复位控制模块121,复位控制模块121中设置判断单元1211和复位输出单元1212,判断单元1211接收控制信号1和控制信号2,并对控制信号1和控制信号2作出判断和检测,根据判断和检测结果输出信号到复位输出单元1212,控制其是否输出复位信号USB_RST到USB接口电路的复位端。具体来说,判断单元1211判断控制信号1和控制信号2是否同时为高电平,若为是,则继续检测、判断控制信号1和控制信号2同时为高电平的持续时间是否超过预设数值,若为是,则向复位输出单元1212输出控制信号3,复位输出单元1212响应于控制信号3向USB接口电路输出复位信号,之后,判断单元1211继续判断控制信号1和控制信号2是否同时为高电平,重复以上步骤,直到故障排除。
这样,通过复位控制模块对控制信号1和控制信号2综合判断,自动在线检测出USB通信装置的掉链故障,自动在线向USB接口芯片发出复位信号使之重新复位,不需要重新拔、插USB数据线,在线解决了USB通信中断的故障。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。