技术领域
[0001] 本
发明涉及通信技术领域,尤其涉及一种USB设备自动掉电装置及方法。
背景技术
[0002] 通信设备上电掉电的重复性测试能够充分暴漏产品设计的
稳定性问题,发现产品设计中的隐患,如电源部分的上电冲击对产品的影响、上电复位的可靠性以及系统在正常工作情况下,上电掉电后能否恢复常态等,而通常这部分的测试是靠人工方式完成,工作的重复性、时间的持续性、测试频次难保证、手动插拔容易损坏设备
接口等都是人工测试的弱点,传统测试方法和手段存在明显的局限和不足。
发明内容
[0003] 为解决
现有技术中存在的
缺陷,本发明提出了一种可以准确的控制USB设备掉电的方法和装置。
[0004] 本发明采取的技术方案是:一种实现USB设备自动掉电的方法,包括:
[0005] 步骤S1:设备接收上位机下发的指令;
[0006] 步骤S2:判断是否已设置地址,是则执行步骤S3,否则执行步骤S5;
[0007] 步骤S3:判断所述指令是否满足过滤条件,是则执行步骤S4,否则返
回执行步骤S1;
[0008] 步骤S4:对目标设备执行掉电操作,然后返回步骤S1;
[0009] 步骤S5:判断指令类型;
[0010] 当所述指令为设置过滤条件命令则执行设置过滤条件操作,并向上位机返回设置完成响应,然后返回步骤S1;
[0011] 当所述指令为设置地址命令则向上位机返回接收成功响应,并将当前设备地址设置为目标设备地址,然后返回步骤S1;
[0012] 当所述指令为其他操作指令则执行相应其他操作,并向上位机返回相应其他操作响应,然后返回步骤S1。
[0013] 步骤S2所述判断是否已设置地址具体为,判断当前设备地址是否与目标设备地址一致。或者具体为,判断是否存在地址更改标记;步骤S5所述将当前设备地址设置为目标设备地址之后包括设置地址更改标记。
[0014] 步骤S1之后包括,当所述指令的数据全部接收完成时启动第一计时器,或是当所述指令的预先约定长度的数据接收完成时启动第一计时器。相应的所述步骤S4为,判断当前计时是否达到第一预设时间,是则对目标设备执行掉电操作并将第一计时器清零,然后返回步骤S1,否则处于等待状态并重复所述步骤S4。
[0015] 步骤S3所述判断所述指令是否满足过滤条件具体为,判断所述指令的预设
指定字节是否与预设过滤字节一致;步骤S5所述执行设置过滤条件操作具体为,将指令过滤字节设置为预设过滤字节。
[0016] 或者步骤S3所述判断所述指令是否满足过滤条件为,判断所述指令的预设字节是否与预设过滤字节一致,和/或判断所述指令的当前计次是否为预设数值;步骤S5所述执行设置过滤条件操作具体为,将指令过滤字节设置为预设过滤字节,和/或将所述指令的计次值设置为预设数值。
[0017] 其中,步骤S5所述设置过滤条件操作还包括将掉电等待时间设置为第一预设时间。
[0018] 或者步骤S3所述判断所述指令是否满足过滤条件具体为,判断所述指令的预设字节的取值是否满足预设范围,是则满足过滤条件,否则不满足过滤条件;步骤S3之后步骤S4之前包括:根据所述指令的预设字节的取值在预先存储的过滤列表中查找与所述预设字节的取值对应的掉电等待时间,并将查找到的所述掉电等待时间记录为第一预设时间;步骤S5所述执行设置过滤条件操作具体为,设置过滤列表并保存,所述过滤列表由过滤字节和与所述过滤字节对应的掉电等待时间组成。
[0019] 实审步骤S3根据所述指令的长度、格式或预设字段的内容来判断所述指令是否满足过滤条件;步骤S5所述执行设置过滤条件操作为执行设置指令的长度、格式或预设字段的内容的操作。
[0020] 步骤S4所述对目标设备执行掉电操作之后包括,判断当前计时是否达到第二预设时间,是则对目标设备执行上电操作并将所述第一计时器清零,然后返回步骤S1,否则处于等待状态并重复判断当前计时是否达到第二预设时间。
[0021] 步骤S4所述对目标设备执行掉电操作并将所述第一计时器清零之后包括,启动第二计时器,判断当前计时是否达到第二预设时间,是则对目标设备执行上电操作并将所述第二计时器清零,然后返回步骤S1,否则处于等待状态并重复判断当前计时是否达到第二预设时间。
[0022] 步骤S5所述设置过滤条件操作还包括将上电等待时间设置为第二预设时间。
[0023] 步骤S4中所述对目标设备执行掉电操作之后还包括,将当前设备地址还原为设备原始地址。
[0024] 步骤S5所述将当前设备地址设置为目标设备地址之后包括,启动第三计时器,当所述第三计时器的计时达到第三预设时间时则当前设备地址自动还原为设备原始地址。
[0025] 步骤S5所述其他操作指令包括打开端口指令、获取设备状态指令、过流参数设置指令、指示灯状态显示指令。
[0026] 一种实现USB设备自动掉电的装置,包括:USB HUB芯片2、主控芯片3、设备端口控制
电路4和指示灯电路5,其中,所述装置通过USB HUB芯片2的端口与PC机1相连,通过设备端口控制电路4的端口与USB设备7相连,主控芯片3和设备端口控制电路4连接到USB HUB芯片2,设备端口控制电路4和指示灯电路5连接到主控芯片3。
[0027] 所述USB HUB芯片2,用于扩展USB通道,提供PC机1通过设备端口控制电路4与USB设备7相连的接口,用于提供PC机1与主控芯片3的数据传输通道;
[0028] 所述主控芯片3,用于接收USB HUB芯片2传输来的数据并做出相应处理,以及向USB HUB芯片2返回相应处理结果;用于控制设备端口控制电路4和指示灯电路5;
[0029] 设备端口控制电路4,与USB设备7和主控芯片3直接连接,用于控制打开或关闭USB设备端口;
[0030] 指示灯电路5,用于指示USB设备7的运行状态。
[0031] 所述主控芯片3包括:
[0032] 收发模
块301,用于接收PC机1发送来的指令,用于向PC机1发送指令响应;
[0033] 判断模块302,用于判断是否已设置了地址,当已设置地址时用于判断指令是否满足过滤条件,当未设置指令时用于判断指令类型;用于判断计时是否达到掉电等待时间,用于判断计时是否达到上电等待时间;
[0034] 设置模块303,用于当所述指令为设置过滤条件命令时设置过滤字节和设置掉电等待时间,用于设置上电等待时间;用于当所述指令为设置命令时,设置当前设备地址为目标设备地址;
[0035] 操作模块304,用于解析接收到的指令,用于当计时达到掉电等待时间时对USB设备执行掉电操作,还用于当计时达到上电等待时间时候对USB设备执行上电操作。
[0036] 所述装置还包括
电流转换电路,与所述主控芯片3和设备端口控制电路4相连,用于将流向所述USB设备7的电流值转换为
电压值。
[0037] 所述装置还包括过流报警电路,与所述主控芯片3相连,用于当所述USB设备7的端口电流超过额定电流时发出警报,用于触发指示灯提示错误。
[0038] 本发明的有益效果是:本发明提出的自动掉电装置及方法,可以提高生产测试效率和测试的有效性,还可以满足系统设备同时大批量生产测试。
附图说明
[0039] 图1是
实施例一提出的一种实现USB设备自动掉电的方法
流程图;
[0040] 图2是实施例二提供的一种实现USB设备自动掉电的装置示意图。
具体实施方式
[0041] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0042] 实施例一
[0043] 如图1所示,一种实现USB设备自动掉电的方法包括以下步骤:
[0044] 步骤101:设备等待接收上位机下发的指令;
[0045] 步骤102:设备接收到指令后首先判断是否已设置地址,是则执行步骤103,否则执行步骤110;
[0046] 本实施例中具体地,设备接收到指令后判断当前设备地址是否与目标设备地址一致,是则表示已经设置地址;或者设备接收到指令后判断是否存在地址更改标记,如果存在地址更改标记则表示已经设置地址;否则表示未设置地址。
[0047] 步骤103:判断指令是否满足过滤条件,是则执行步骤104,否则返回执行步骤101;
[0048] 本实施例中,所述判断指令是否满足过滤条件具体为:判断指令的预设字节是否与预设过滤字节一致,是则满足过滤条件,所述指令为掉电指令,执行步骤104,否则返回步骤101等待接收下一条指令。
[0049] 除此之外,还可以将所述指令的长度、格式、预定字段的内容等作为是否满足过滤条件的判断依据。
[0050] 在本实施例中,以预定的生成密钥对指令为例。该指令具体为
[0051] 00460000020400;
[0052] 如果接收到的指令的前4个字节与预定的生成密钥对指令一致,则执行步骤104。
[0053] 或者,所述判断指令是否满足过滤条件为:判断指令的当前计次是否为预设数值,是则满足过滤条件,否则不满足过滤条件。例如,当收到的指令为
修改PIN指令,则当前记录的收到修改PIN指令的次数为2时满足过滤条件,执行掉电操作。
[0054] 进一步的,判断指令是否满足过滤条件还可以为:
[0055] A1:判断指令的预设字节是否与预设过滤字节一致,是则执行下一步,否则返回步骤101;
[0056] 所述预设字节为所述指令的前两个字节。
[0057] A2:判断所述指令的当前计次是否为预设值,是则满足过滤条件,否则返回步骤101。
[0058] 所述预设值为大于等于1的整数,例如,所述预设值为3,则满足过滤条件具体为所述指令的前两个字节满足过滤字节且满足收到所述指令的次数为3。
[0059] 或者是,上述步骤103具体为:
[0060] 步骤103-1:判断指令的预设字节的取值是否满足预设范围,是则执行下一步,否则返回执行步骤101;
[0061] 步骤103-2:根据所述指令预设字节的取值查找对应的掉电等待时间,并将查找到的所述掉电等待时间记录为第一预设时间,然后执行步骤104;
[0062] 进一步的,还可以根据所述指令预设字节的取值查找对应的上电等待时间,并将查找到的所述上电等待时间记录为第二预设时间。
[0063] 步骤104:启动第一计时器;
[0064] 本实施例中具体地,可以是当所述指令的数据全部接收完成开始启动第一计时器,也可以是当接收到所述指令的一部分数据时开始启动第一计时器。
[0065] 步骤105:判断第一计时器的计时是否达到第一预设时间,是则执行下一步,否则处于等待状态;
[0066] 进一步地,在本实施例中,所述第一预设时间可根据所述掉电指令的内容进行设置。例如,在本实施例中,如果接收到的掉电指令为
[0067] 00460000020400
[0068] 则在接收到指令1.5秒后对目标设备执行掉电操作。
[0069] 如果接收到的掉电指令为
[0070] 00460000020200
[0071] 则在接收到指令0.5秒后对目标设备执行掉电操作。
[0072] 步骤106:将第一计时器清零,对目标设备执行掉电操作;
[0073] 上述步骤104-106还可以替换为以下操作:对目标设备执行掉电操作。相应的,可以是当所述指令的数据全部接收完成执行掉电,也可以是当接收到所述指令的一部分数据时执行掉电。
[0074] 例如,当接收到的指令为读二进制指令时,所述指令的前两个字节满足过滤字节,当接收完成所述指令的前2个字节数据时执行掉电操作。
[0075] 本实施例中,步骤106之后还可以包括以下步骤:
[0076] 步骤107:启动第二计时器;
[0077] 步骤108:判断第二计时器的计时是否达到第二预设时间,是则执行下一步,否则处于等待状态;
[0078] 步骤109:将第二计时器清零,对目标设备执行上电操作,返回步骤101。
[0079] 上述步骤104-步骤109还可以用以下步骤104′-步骤108′的方案替换:
[0080] 步骤104′:启动第一计时器;
[0081] 步骤105′:判断第一计时器的计时是否达到第一预设时间,是则执行下一步,否则处于等待状态;
[0082] 步骤106′:对目标设备执行掉电操作;
[0083] 步骤107′:判断第一计时器的计时是否达到第三预设时间,是则执行下一步,否则处于等待状态;
[0084] 步骤108′:将第一计时器清零,对目标设备执行上电操作,返回步骤101。
[0085] 进一步的,步骤106或步骤106′中对目标设备执行掉电操作之后还包括将当前设备地址还原的操作,具体为将当前设备地址更改回原始地址。
[0086] 或者是在步骤109或步骤108′中对目标设备执行上电操作之后执行将当前设备地址还原的操作。
[0087] 步骤110:判断指令类型,如果所述指令为设置过滤条件命令时执行步骤111-步骤114,如果所述指令为设置地址命令时执行步骤115-步骤116;如果是其他操作指令则执行步骤117-步骤118;如果是无效数据,则向上位机返回事先约定的错误码;
[0088] 本实施例中,所述判断指令类型具体为:
[0089] 根据指令的前两个字节判断指令类型,并根据指令类型判断指令是否有效,如果无效则向上位机返回事先约定的错误码;
[0090] 具体地,本实施例中判断方法为:
[0091] 步骤A:如果指令的前两个字节是预先约定的0x6801,则所述指令为设置过滤条件指令,如果指令只包含指令头和数据域,所述指令有效,否则无效,所述数据域中包括预设字节段、第一预设时间段和第二预设时间段;
[0092] 步骤B:如果指令的前两个字节是预先约定的0x6802,则所述指令为设置地址指令,如果指令只包含指令头和数据域,所述指令有效,否则无效;
[0093] 步骤C:如果指令的第一个字节是预先约定的数值,则所述指令为其他操作指令,所述其他操作指令包括打开端口指令、获取设备状态指令、过流参数设置指令、指示灯状态显示指令等。
[0094] 本实施例中具体地,当所述指令的第一个字节为0x02,则所述指令为打开端口指令,所述指令的第二个字节表示相应的端口;当所述指令的第一个字节为0x2a,则所述指令为获取设备状态指令;当所述指令的第一个字节为0x1b,则所述指令为设置过流参数指令;当所述指令的第一个字节为0x1c或0x2c或0x3c时,所述指令为指示灯状态显示指令,其中,第一个字节为0x1c的指令控制绿色指示灯亮,第一个字节为0x2c控制黄色指示灯亮,第一个字节为0x3c控制黄色指示灯亮。
[0095] 其他情况有可能是有效的其他指令,也有可能是无效数据,对这些指令的处理不在本方案范围内。
[0096] 本实施例中,步骤110之前还可以包括:
[0097] 检查所述指令是否完整,如果完整则继续步骤110,否则向上位机返回事先约定的错误码;
[0098] 检查所述指令是否完整具体为:
[0099] 步骤C1:判断指令长度是否超过两个字节,是则指令完整,否则指令不完整;
[0100] 为便于描述,将指令的前两个字节记为指令头。
[0101] 步骤C2:如果指令长度超过3个字节,则从第3字节开始获取数据长度,检查所述数据长度与指令的剩余部分是否匹配。
[0102] 在本实施例中,以指令的第3字节的值作为数据域长度的值,除此之外,还可以将第3至第5字节的值作为数据域长度的值。相应地,在这种情况下,如果第3字节的值不为0,则指令不完整;否则第4字节的值作为数据域长度值的高字节,第5字节作为低字节。
[0103] 例如,第3至第5字节的值为0x001234,则数据域长度值为0x1234。
[0104] 为便于描述,将获取数据域长度所使用的字段记为第一长度段。
[0105] 所述检查所述数据长度与指令的剩余部分是否匹配,检查如下:
[0106] 如果剩余数据的长度比所述数据长度小,则指令不完整,如果剩余数据的长度与所述数据长度相符,则指令完整,将剩余数据中第一长度段之后开始,长度与所述长度值相符的部分记为数据域;如果剩余数据的长度比所述数据长度大,则从指令中除了指令头、第一长度段和数据域之外的数据段获取长度值,为便于描述,将本次获取长度值所使用的字段记为第二长度段。如果指令除了指令头、第一长度段、数据域和第二长度段之外还有残存的数据,则指令不完整,否则指令完整。
[0107] 步骤111:将过滤字节设置为预设字节;
[0108] 步骤112:将掉电等待时间设置为第一预设时间;
[0109] 步骤113:将上电等待时间设置为第二预设时间;
[0110] 步骤114:向上位机返回设置完成响应,返回步骤101。
[0111] 上述步骤111-114还可以替换为以下操作:将过滤字节设置为预设字节,向上位机返回设置完成响应,返回步骤101;
[0112] 或者是:将接收指令的次数设置为预设数值,向上位机返回设置完成响应,返回步骤101;
[0113] 或者是:将过滤字节设置为预设字节,将掉电等待时间设置为第一预设时间,向上位机返回设置完成响应,返回步骤101。
[0114] 进一步地本实施例中,当所述指令为设置过滤条件命令时,还可以是执行以下步骤:
[0115] 步骤111′:设置过滤条件;
[0116] 具体地,所述过滤条件为,所述指令的第一字节为68,第二字节的取值满足一个预设范围。例如,所述预设范围为03-08,则当所述指令的前两个字节符合0x6803、0x6804、0x6805、0x6806、0x6807、0x6808中任意一个时所述指令满足过滤条件。
[0117] 步骤112′:将掉电等待时间设置为第一预设时间;
[0118] 步骤113′:向上位机返回设置完成响应,返回步骤101。
[0119] 或者是,执行步骤111′设置过滤条件后直接执行步骤113′。
[0120] 或者是,步骤111′中所述设置过滤条件可以为设置一张过滤列表,所述过滤列表可以由过滤字节和掉电等待时间组成,例如,过滤字节为0x6803对应的掉电等待时间为1s,过滤字节为0x6804对应的掉电等待时间为2s等等。则相应地,步骤111′之后可以省略步骤112′直接执行步骤113′。
[0121] 或者是,步骤111′中所述设置过滤条件具体为:设置所述指令的预设指定字节满足过滤字节且收到所述指令的次数为预设数值;例如:当所述指令的前两个字节满足0x6803,且收到所述指令的当前计次为1,则执行掉电操作。
[0122] 或者是,步骤111′中所述设置过滤条件具体为:设置所述指令的预设指定字节的取值大于或小于过滤字节的取值。所述预设指定字节可以从所述指令的数据头或数据域中预先指定。
[0123] 步骤115:向上位机返回成功接收响应;
[0124] 步骤116:将当前设备地址设置为目标设备地址,返回执行步骤101。
[0125] 具体地,本步骤还可以为:将当前设备地址设置为目标设备地址,设置地址更改标记,返回步骤101。
[0126] 进一步地,将当前设备地址设置为目标设备地址后可以开始启动计时,当计时达到第三预设时间时则当前设备地址自动还原为原始地址。
[0127] 步骤117:执行相应操作;
[0128] 具体地,当所述指令为打开端口指令时,执行将设备的相应端口打开的操作,例如所述指令的前两个字节为0x0280则执行将设备的端口0打开的操作,前两个字节为0x0287则执行将设备的端口7打开的操作。当所述指令为获取设备状态指令时,执行获取设备的电流值高位、电流值低位、端口状态、电流上限高位、电流上限低位等信息的操作;当所述指令为设置过流参数指令时,执行设置电流上限高位和电流上限低位的操作。
[0129] 步骤118:向上位机返回操作响应,返回执行步骤101。
[0130] 本实施例中具体地,向上位机返回的操作响应的首字节为0x5a。
[0131] 实施例二
[0132] 如图2所示一种USB设备自动掉电装置6,包括USB HUB芯片2、主控芯片3、设备端口控制电路4和指示灯电路5,其中,所述装置6通过USB HUB芯片2的端口与PC机1相连,通过设备端口控制电路4的端口与USB设备7相连,主控芯片3和设备端口控制电路4连接到USB HUB芯片2,设备端口控制电路4和指示灯电路5连接到主控芯片3。
[0133] 所述装置由电源提供5V的工作电压,5V的工作电压经过电压转换形成3.3V的电压为USB HUB芯片2供电。
[0134] USB HUB芯片2,用于扩展USB通道,提供PC机1通过设备端口控制电路4与USB设备7相连的接口,用于提供PC机1与主控芯片3的数据传输通道;
[0135] 主控芯片3,用于接收USB HUB芯片2传输来的数据并做出相应处理,以及向USB HUB芯片2返回相应处理结果;用于控制设备端口控制电路4和指示灯电路5;
[0136] 所述主控芯片3包括收发模块301、判断模块302、设置模块303、操作模块304和计时模块305,其中:
[0137] 收发模块301,用于接收PC机1发送来的指令,用于向PC机1发送指令响应;
[0138] 判断模块302,用于判断是否已设置了地址,当已设置地址时用于判断指令是否满足过滤条件,当未设置指令时用于判断指令类型;用于判断计时是否达到掉电等待时间,还可以用于判断计时是否达到上电等待时间;
[0139] 设置模块303,用于当所述指令为设置过滤条件命令时设置过滤字节和设置掉电等待时间,进一步的还可以设置上电等待时间;用于当所述指令为设置命令时,设置当前设备地址为目标设备地址;
[0140] 操作模块304,用于解析接收到的指令,用于当计时达到掉电等待时间时对USB设备执行掉电操作,进一步的还用于当计时达到上电等待时间时候对USB设备执行上电操作。
[0141] 设备端口控制电路4,与USB设备7和主控芯片3直接连接,用于控制打开或关闭USB设备端口;
[0142] 具体地,主控芯片3通过控制设备端口控制电路4中的
三极管的导通与否来控制USB设备的上电掉电操作,当三极管导通时USB设备端口打开即设备上电,当三极管不导通时USB设备端口关闭即设备掉电。
[0143] 指示灯电路5,用于指示USB设备7的运行状态,例如黄灯提示运行中、红灯提示出错,绿灯提示运行成功。
[0144] 进一步的,所述USB设备自动掉电装置6还可以包括:
[0145] 电流转换电路,与主控芯片3和设备端口控制电路4相连,用于将流向USB设备7的电流值转换为电压值;
[0146] 还可以包括过流报警电路,与主控芯片3相连,用于当USB设备7的端口电流超过额定电流时发出警报,用于触发指示灯提示错误。
[0147] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉
本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以
权利要求的保护范围为准。