一种安全下载方法、装置及系统的制作方法

文档序号:6626419阅读:139来源:国知局
一种安全下载方法、装置及系统的制作方法
【专利摘要】本发明公开了一种安全下载方法、装置及系统,用于防止错误下载并可以在下载错误或应用层死锁时主动重新下载,避免了现场对设备进行拆卸,节省了大量时间和人力成本,该方法包括:在设备启动时,向上位机发送设备指令,设备指令中包括状态字信息,以使上位机根据状态字信息确定设备是否需要应用程序下载;在接收上位机发送的应用程序或超时未接收上位机发送的应用程序之后,读取应用程序的标识内容,根据标识内容判断应用程序是否正确,如果是,执行应用程序,如果否,将错误类型状态字写入状态字信息,复位重新启动,返回执行在设备启动时,向上位机发送设备指令;当应用程序发生复位重新启动,返回执行在设备启动时,向上位机发送设备指令。
【专利说明】—种安全下载方法、装置及系统

【技术领域】
[0001]本发明涉及嵌入式【技术领域】,具体涉及一种安全下载方法、装置及系统。

【背景技术】
[0002]在控制系统中,一般由上位机与多台设备相连,每台设备上可以运行应用程序,应用程序需要从上位机下载并更新。在现有技术中,一般由Bootloader完成设备加载启动,Bootloader可以用来引导和下载更新应用程序并运行。但是,采用传统的Bootloader下载方式,一旦在下载过程中出现错误,例如在下载过程中设备断电,或者应用程序出现死锁,设备将无法正常工作,且无法自动重新下载应用程序。此时,必须现场维护工程师对设备进行拆卸,使用下载工具重新启动下载,这样当现场设备众多时,对设备的维护会花费大量的时间以及人力成本。


【发明内容】

[0003]有鉴于此,本发明提供一种安全下载方法、装置及系统,以解决现有技术中在下载错误时需要对设备进行现场维护导致需要大量时间以及人力成本的技术问题。
[0004]为解决上述问题,本发明提供的技术方案如下:
[0005]—种安全下载方法,所述方法包括:
[0006]在设备启动时,向上位机发送设备指令,所述设备指令中包括状态字信息,以使所述上位机根据所述状态字信息确定所述设备是否需要应用程序下载;
[0007]在接收所述上位机发送的应用程序或超时未接收所述上位机发送的应用程序之后,读取所述应用程序的标识内容,根据所述标识内容判断所述应用程序是否正确,如果是,执行所述应用程序,如果否,将错误类型状态字写入所述状态字信息,复位重新启动,返回执行所述在设备启动时,向上位机发送设备指令;
[0008]当所述应用程序发生复位重新启动,返回执行所述在设备启动时,向上位机发送设备指令。
[0009]相应的,在接收所述上位机发送的应用程序或超时未接收所述上位机发送的应用程序之后,读取所述应用程序的标识内容之前,所述方法还包括:
[0010]判断当前是否存在应用程序,如果是,读取所述应用程序的标识内容,如果否,将无应用程序状态字写入所述状态字信息,复位重新启动,返回执行所述在设备启动时,向上位机发送设备指令。
[0011]相应的,所述在设备启动时,向上位机发送设备指令,所述设备指令中包括状态字信息,包括:
[0012]在设备启动时,判断是否为复位启动;
[0013]如果是复位启动,读取状态字寄存器中的状态字信息,如果所述状态字信息是所述错误类型状态字或所述无应用程序状态字,向上位机发送设备指令,所述设备指令中包括所述错误类型状态字或所述无应用程序状态字;
[0014]如果所述状态字信息不是所述错误类型状态字或所述无应用程序状态字,将应用层错误状态字写入所述状态字信息,向上位机发送设备指令,所述设备指令中包括所述应用层错误状态字;
[0015]如果不是复位启动,将正确标识状态字写入所述状态字信息,向上位机发送设备指令,所述设备指令中包括正确标识状态字。
[0016]相应的,所述根据所述标识内容判断所述应用程序是否正确,包括:
[0017]判断所述设备的实际控制器局域网CAN总线端口号是否属于所述标识内容中设定的CAN总线端口号范围;
[0018]判断设备实际所包含的子设备是否属于所述标识内容中设定的支持子设备;
[0019]对所述子设备进行子设备测试,判断所述子设备是否正常运行。
[0020]一种安全下载方法,所述方法包括:
[0021]接收设备发送的设备指令,所述设备指令中包括状态字信息;
[0022]根据所述状态字信息确定所述设备是否需要应用程序下载;
[0023]如果所述设备需要应用程序下载,读取所述应用程序的标识内容,根据所述标识内容判断所述应用程序是否正确,如果是,向所述设备发送所述应用程序,如果否,提示应用程序错误。
[0024]相应的,所述根据所述状态字信息确定所述设备是否需要应用程序下载,包括:
[0025]当所述状态字信息为错误类型状态字或无应用程序状态字,确定所述设备需要应用程序下载;
[0026]当所述状态字信息为应用层错误状态字,确定所述设备需要应用程序下载;
[0027]当所述状态字信息为正确标识状态字,确定所述设备不需要应用程序下载。
[0028]相应的,所述根据所述标识内容判断所述应用程序是否正确,包括:
[0029]判断所述设备支持的功能是否属于所述标识内容中设定的功能;
[0030]判断所述设备是否属于所述标识内容中设定的支持设备;
[0031]判断所述设备的控制器局域网CAN总线端口号是否属于所述标识内容中设定的CAN总线端口号范围;
[0032]判断所述设备所包含的子设备是否属于所述标识内容中设定的支持子设备。
[0033]一种安全下载装置,所述装置包括:
[0034]发送单元,用于在设备启动时,向上位机发送设备指令,所述设备指令中包括状态字信息,以使所述上位机根据所述状态字信息确定所述设备是否需要应用程序下载;
[0035]读取单元,用于在接收所述上位机发送的应用程序或超时未接收所述上位机发送的应用程序之后,读取所述应用程序的标识内容;
[0036]第一判断单元,用于根据所述标识内容判断所述应用程序是否正确,如果是,进入执行单元,如果否,进入第一写入单元;
[0037]所述执行单元,用于执行所述应用程序;
[0038]所述第一写入单元,用于将错误类型状态字写入所述状态字信息,复位重新启动,返回所述发送单元;
[0039]复位单元,用于当所述应用程序发生复位重新启动,返回所述发送单元。
[0040]一种安全下载装置,所述装置包括:
[0041]接收单元,用于接收设备发送的设备指令,所述设备指令中包括状态字信息;
[0042]确定单元,用于根据所述状态字信息确定所述设备是否需要应用程序下载;
[0043]读取单元,用于如果所述设备需要应用程序下载,读取所述应用程序的标识内容;
[0044]判断单元,用于根据所述标识内容判断所述应用程序是否正确,如果是,进入发送单元,如果否,进入提示单元;
[0045]所述发送单元,用于向所述设备发送所述应用程序;
[0046]所述提示单元,用于提示应用程序错误。
[0047]—种安全下载系统,所述系统包括:
[0048]上位机以及设备;
[0049]所述设备为所述的第一种安全下载装置;
[0050]所述上位机为所述的第二种安全下载装置。
[0051]由此可见,本发明实施例具有如下有益效果:
[0052]本发明实施例中设备在启动时可以向上位机发送带有状态字信息的设备指令,当设备判断出应用程序错误可以复位或者设备出现死锁会发生看门狗复位,均可以将错误状态写入状态字信息,上位机可以根据状态字信息确定重新下载应用程序,从而不再需要到设备现场拆机进行重新下载,节省了大量时间以及人力成本。同时,所下载的应用程序中具有标识内容,上位机在下载之前对应用程序进行检测保证了要下载程序的正确性,设备也可以通过标识内容判断应用程序是否正确,保证所下载的应用程序和设备硬件的一致性,从而避免应用程序在执行中发生错误。

【专利附图】

【附图说明】
[0053]图1为本发明实施例中提供的安全下载方法实施例的应用场景示意图;
[0054]图2为本发明实施例中提供的安全下载方法实施例一的流程图;
[0055]图3为本发明实施例中提供的安全下载方法实施例二的流程图;
[0056]图4为本发明实施例中提供的安全下载方法实施例三的流程图;
[0057]图5为本发明实施例中提供的安全下载装置实施例一的示意图;
[0058]图6为本发明实施例中提供的安全下载装置实施例二的示意图;
[0059]图7为本发明实施例中提供的安全下载装置实施例三的示意图;
[0060]图8为本发明实施例中提供的安全下载系统实施例的示意图。

【具体实施方式】
[0061]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明实施例作进一步详细的说明。
[0062]本发明实施例提供的安全下载方法、装置及系统,是针对现有技术中采用传统的Bootloader下载方式,一旦在下载过程中出现错误,例如在下载过程中设备断电,或者应用程序出现死锁,设备将无法正常工作,且无法自动重新下载应用程序,此时,必须现场维护工程师对设备进行拆卸,使用下载工具重新启动下载,这样当现场设备众多时,对设备的维护会花费大量的时间以及人力成本的技术问题,提出设备在启动时可以向上位机发送带有状态字信息的设备指令,当设备判断出应用程序错误可以复位或者设备出现死锁会发生看门狗复位,均可以将错误状态写入状态字信息,上位机可以根据状态字信息确定重新下载应用程序,同时,所下载的应用程序中具有标识内容,上位机在下载之前对应用程序进行检测保证了要下载程序的正确性,设备也可以通过标识内容判断应用程序是否正确,保证所下载的应用程序和设备硬件的一致性,从而避免应用程序在执行中发生错误。
[0063]参见图1所示,是本发明实施例中提供的安全下载方法的应用系统框架示意图,上位机通过CAN(ControIIer Area Network,控制器局域网络)总线与多台设备相连,每台设备可以从上位机下载应用程序,以下实施例将分别从设备侧以及上位机侧对本发明实施例中提供的安全下载方法进行描述。
[0064]参见图2所示,本发明实施例中提供的安全下载方法实施例一,可以包括以下步骤:
[0065]步骤201:在设备启动时,向上位机发送设备指令,设备指令中包括状态字信息,以使上位机根据状态字信息确定设备是否需要应用程序下载。
[0066]本实施例从设备侧进行描述,设备启动包括冷启动以及热启动,热启动即为设备复位重启。在设备启动后,设备向上位机发送设备指令,在实际应用中可以利用Bootloader实现系统启动即向上位机发送设备指令。本实施例中设备指令需要包括代表设备状态的状态字信息,状态字信息可以包括正确标识状态字、错误类型状态字、无应用程序状态字或应用层错误状态字等。
[0067]由于CAN总线最多可以传递8字节内容,可以采用两字节来传递状态字,例如正确标识状态字可以为Oxffff、无应用程序状态字可以为Oxfffe、应用层错误状态字可以为0x0001、第一种错误类型状态字可以为0x0002、第二种错误类型状态字可以为0x0003等等,状态字信息的定义可以根据实际应用灵活设置,本发明对此不进行限制。
[0068]则上位机可以根据状态字信息确定设备是否需要应用程序下载,例如状态字信息为错误类型状态字、无应用程序状态字或应用层错误状态字代表设备应用程序出现错误,需要应用程序下载,状态字信息为正确标识状态字则应用程序不需要下载。
[0069]在本发明的一些实施例中,即在设备启动时,向上位机发送设备指令,设备指令中包括状态字信息的具体实现可以包括:
[0070]在设备启动时,判断是否为复位启动。
[0071]如果是复位启动即热启动,读取状态字寄存器中的状态字信息,如果状态字信息是错误类型状态字或无应用程序状态字,向上位机发送设备指令,设备指令中包括错误类型状态字或无应用程序状态字。
[0072]如果状态字信息不是错误类型状态字或无应用程序状态字,将应用层错误状态字写入状态字信息,向上位机发送设备指令,设备指令中包括应用层错误状态字。
[0073]状态字信息一般保存在状态字寄存器中,即设备启动后通过Bootloader读取状态字寄存器中的状态字信息,如果状态字信息不是错误类型状态字或无应用程序状态字,则说明本次复位为应用程序出现死锁后触发的应用程序看门狗复位,代表应用层出现错误,需要首先将应用层错误状态字(例如0x0001)写入状态字寄存器中的状态字信息,Bootloader再将状态字信息发送给上位机。
[0074]如果不是复位启动,将正确标识状态字写入状态字信息,向上位机发送设备指令,设备指令中包括正确标识状态字。
[0075]步骤202:在接收上位机发送的应用程序或超时未接收上位机发送的应用程序之后,读取应用程序的标识内容。
[0076]如果上位机确定设备需要应用程序下载则会向设备发送应用程序,设备则接收上位机发送的应用程序;如果上位机确定设备不需要应用程序下载,则设备在等待超时未接收到上位机发送的应用程序后继续执行读取应用程序的标识内容。
[0077]本发明实施例中,标识内容和原始应用程序共同组成新的应用程序,应用程序的标识内容代表当前设备中的应用程序的一些属性,例如该应用程序的功能、所支持的设备、所支持的CAN总线端口号范围或所支持的子设备等等。
[0078]在本发明的一些实施例中,在接收上位机发送的应用程序或超时未接收上位机发送的应用程序之后,读取应用程序的标识内容之前,还包括:
[0079]判断当如是否存在应用程序,如果是,读取应用程序的标识内容,如果否,将无应用程序状态字写入状态字信息,复位重新启动,返回执行在设备启动时,向上位机发送设备指令。
[0080]在首次冷启动设备时,设备默认初始具有应用程序,而如果当前没有应用程序,本发明实施例也可以实现通知上位机发送应用程序。
[0081]步骤203:根据标识内容判断应用程序是否正确,如果是,执行步骤204,如果否,执行步骤205。
[0082]步骤204:执行应用程序。
[0083]步骤205:将错误类型状态字写入状态字信息,复位重新启动,返回执行步骤202。
[0084]由于本发明实施例中应用程序具有代表应用程序属性的标识内容,这样在应用程序执行前先通过对标识内容判断所下载的应用程序是否正确,也即所下载的应用程序是否与设备相匹配,只有在确认正确的情况下才执行应用程序,很大程度避免了所下载的应用程序在执行时出现错误的情况。如果判断应用程序错误,则将错误类型状态字写入状态字信息,复位重新启动,在重新启动后可以将错误类型状态字发送给上位机,通知上位机重新下载正确的应用程序。
[0085]步骤206:当应用程序发生复位重新启动,返回执行步骤202。
[0086]应用程序在执行中也可能发生死锁情况,本发明实施例在应用程序发生看门狗复位时,设备重新启动,通过前述说明,设备可以写入应用层错误状态字,以便及时通知上位机需要重新下载应用程序,从而解决了现有技术中应用层死锁系统无法修护的技术问题。
[0087]这样,本发明实施例中设备在启动时可以向上位机发送带有状态字信息的设备指令,当设备判断出应用程序错误可以复位或者设备出现死锁会发生看门狗复位,均可以将错误状态写入状态字信息,上位机可以根据状态字信息确定重新下载应用程序,从而不再需要到设备现场拆机进行重新下载,节省了大量时间以及人力成本。同时,所下载的应用程序中具有标识内容,设备可以通过标识内容判断应用程序是否正确,保证所下载的应用程序和设备硬件的一致性,从而避免应用程序在执行中发生错误。
[0088]基于上述说明,参见图3所示,本发明实施例中提供的安全下载方法实施例二,可以包括以下步骤:
[0089]步骤301:设备启动。
[0090]步骤302:判断是否为复位启动,如果是,执行步骤305,如果否,执行步骤303。
[0091]步骤303:将正确标识状态字写入状态字信息。
[0092]步骤304:向上位机发送设备指令,设备指令中包括正确标识状态字。
[0093]当设备为冷启动,先默认设备上具有正确的应用程序,向上位机发送包括正确标识状态字的设备指令,如果后续判断无应用程序或应用程序错误还可以通过复位重启重新向上位机发送设备指令。
[0094]步骤305:读取状态字寄存器中的状态字信息。
[0095]步骤306:判断状态字信息是否是错误类型状态字或无应用程序状态字,如果是,执行步骤307,如果否,执行步骤308。
[0096]步骤307:向上位机发送设备指令,设备指令中包括错误类型状态字或无应用程序状态字。
[0097]步骤308:将应用层错误状态字写入状态字信息。
[0098]步骤309:向上位机发送设备指令,设备指令中包括应用层错误状态字。
[0099]当设备为复位启动(热启动)又可以分为两种不同的情况,当设备判断出应用程序错误或无应用程序时会写入相应的状态字并复位,设备在复位后读取错误类型状态字或无应用程序状态字并向上位机发送;另一种情况是应用程序在执行过程中由于在预设时间内看门狗器件没有接收到信号而发生看门狗复位,代表应用程序的执行过程中出现死锁情况,此时设备复位后状态字信息并不能显示相应的情况,因此,在设备复位而状态字信息又不是错误类型状态字或无应用程序状态字,则可以判断出出现了应用层执行错误,需要首先将应用层错误状态字写入状态字信息,再向上位机发送,以重新下载应用程序。
[0100]步骤310:在向上位机发送设备指令后,接收上位机发送的应用程序或等待接收上位机发送的应用程序直到超时。
[0101]步骤311:判断当前是否存在应用程序,如果是,执行步骤313,如果否,执行步骤317。
[0102]步骤313:读取应用程序的标识内容。
[0103]步骤313:根据标识内容判断应用程序是否正确,如果是,执行步骤314,如果否,执行步骤316。
[0104]步骤314:执行应用程序。
[0105]步骤315:当应用程序发生复位重新启动,返回步骤301。
[0106]步骤316:将错误类型状态字写入状态字信息,复位重新启动,返回步骤301。
[0107]步骤317:将无应用程序状态字写入状态字信息,复位重新启动,返回步骤301。
[0108]也即判断出应用程序出现任一种异常情况均可以复位重启:当根据标识内容判断出应用程序错误,可以将错误类型状态字写入状态字信息,复位重新启动;当判断出没有应用程序,可以将无应用程序状态字写入状态字信息,复位重新启动;当应用程序发生看门狗复位,也可以重新启动,返回将包括相应状态字信息的设备指令发送给上位机,以使上位机根据状态字信息确定设备是否需要应用程序下载。
[0109]基于上述两个实施例,在本发明的一些实施例中,设备根据标识内容判断应用程序是否正确的具体实现可以包括:
[0110]判断设备的实际控制器局域网CAN总线端口号是否属于标识内容中设定的CAN总线端口号范围。
[0111]判断设备实际所包含的子设备是否属于标识内容中设定的支持子设备。
[0112]对子设备进行子设备测试,判断子设备是否正常运行。
[0113]应用程序的标识内容可以设定应用程序所支持的CAN总线端口号范围、所支持的子设备等,由于设备的实际端口号、所包括的子设备可能与设备标称的不符,因此在应用程序执行之前,需要先判断设备的实际端口号、所包含的子设备是否与应用程序相匹配;其次对子设备进行子设备测试,例如当子设备为AT45和NorFlash,通过内存读写的方式进行测试,如果读出和写入的内容一致,则说明子设备正常运行,如果不一致则将错误类型写入状态字信息。或者也采用类似文件CRC校验的方法进行验证子设备的正确性,对于如何对子设备进行子设备测试本发明不进行限定。
[0114]这样,本发明实施例中设备在启动时可以向上位机发送带有状态字信息的设备指令,当设备判断出应用程序错误可以复位或者设备出现死锁会发生看门狗复位,均可以将错误状态写入状态字信息,上位机可以根据状态字信息确定重新下载应用程序,从而不再需要到设备现场拆机进行重新下载,节省了大量时间以及人力成本。同时,所下载的应用程序中具有标识内容,设备可以通过标识内容判断应用程序是否正确,保证所下载的应用程序和设备硬件的一致性,从而避免应用程序在执行中发生错误。
[0115]参见图4所示,本发明实施例中提供的安全下载方法实施例三,可以包括以下步骤:
[0116]步骤401:接收设备发送的设备指令,设备指令中包括状态字信息。
[0117]本实施例从上位机侧进行描述,上位机可以接收设备发送的设备指令,设备指令中包括状态字信息,状态字信息可以包括正确标识状态字、错误类型状态字、无应用程序状态字或应用层错误状态字等。
[0118]步骤402:根据状态字信息确定设备是否需要应用程序下载,如果是,进入步骤403。
[0119]在本发明的一些实施例中,根据状态字信息确定设备是否需要应用程序下载的具体实现可以包括:
[0120]当状态字信息为错误类型状态字或无应用程序状态字,确定设备需要应用程序下载;
[0121]当状态字信息为应用层错误状态字,确定设备需要应用程序下载;
[0122]当状态字信息为正确标识状态字,确定设备不需要应用程序下载。
[0123]也就是说,状态字信息为错误类型状态字、无应用程序状态字或应用层错误状态字可以代表设备应用程序出现错误,需要应用程序下载,状态字信息为正确标识状态字则应用程序不需要下载。
[0124]同时,上位机在应用程序需要更新时,也可以主动确定需要应用程序下载,例如,应用程序版本发生了变化,此时可以直接确定需要应用程序下载,而可以不依据设备指令中的状态字信息。
[0125]步骤403:读取应用程序的标识内容。
[0126]步骤404:根据标识内容判断应用程序是否正确,如果是,执行步骤405,如果否,执行步骤406。
[0127]在本发明的一些实施例中,根据标识内容判断应用程序是否正确的具体实现可以包括:
[0128]判断设备支持的功能是否属于标识内容中设定的功能;
[0129]判断设备是否属于标识内容中设定的支持设备;
[0130]判断设备的控制器局域网CAN总线端口号是否属于标识内容中设定的CAN总线端口号范围;
[0131]判断设备所包含的子设备是否属于标识内容中设定的支持子设备。
[0132]步骤405:向设备发送应用程序。
[0133]步骤406:提示应用程序错误。
[0134]标识内容和原始应用程序共同组成新的应用程序,应用程序的标识内容代表当前设备中的应用程序的一些属性,例如该应用程序的功能、所支持的设备、所支持的CAN总线端口号范围或所支持的子设备等等。
[0135]例如以下为应用程序标识内容的一个实例:
[0136]应用程序的功能Funct1n:MDB or DAM ;
[0137]所支持的设备Support:STM32F407ZG ;
[0138]所支持的CAN总线端口号范围CANID:Form xx to yy (其中当χχ = yy为单一设备);
[0139]所支持的子设备(设备所包含的设备)SubDevice:CAN、At45db、NorFlash)。
[0140]在上位机中可以将标识内容设置于应用程序中指定的空间,指定方法例如:定义一个const数组,const char*p = {上述标示内容};使用—at关键字,const char*p—at (0x8006000) = {上述标示内容},将上述标示内容放置于指定地址;或,使用Keil工具软件,将上述数组单独的放入一个文件,选择“Opt1n for File”,填写对话框内容。
[0141]由应用程序标识内容则上位机可以在向设备发送应用程序之前,先对待下载的应用程序是否适用于该设备进行判断,具体通过判断设备支持的功能是否属于标识内容中设定的功能;判断设备是否属于标识内容中设定的支持设备;判断设备的控制器局域网CAN总线端口号是否属于标识内容中设定的CAN总线端口号范围;判断设备所包含的子设备是否属于标识内容中设定的支持子设备来实现,可以理解的是以上各项判断的先后顺序并不限制,当判断均正确,则可以向设备发送该应用程序,如果任一项判断结果为不正确,则需要提示错误,对应用程序再进行检查。
[0142]这样,本发明实施例中设备在启动时可以向上位机发送带有状态字信息的设备指令,当设备判断出应用程序错误可以复位或者设备出现死锁会发生看门狗复位,均可以将错误状态写入状态字信息,上位机可以根据状态字信息确定重新下载应用程序,从而不再需要到设备现场拆机进行重新下载,节省了大量时间以及人力成本。同时,所下载的应用程序中具有标识内容,上位机在下载之前对应用程序进行检测保证了要下载程序的正确性,保证所下载的应用程序和设备硬件的一致性,从而避免应用程序在执行中发生错误。
[0143]参见图5所示,本发明实施例中提供的安全下载装置实施例一,可以包括:
[0144]发送单元501,用于在设备启动时,向上位机发送设备指令,设备指令中包括状态字信息,以使上位机根据状态字信息确定设备是否需要应用程序下载。
[0145]读取单元502,用于在接收上位机发送的应用程序或超时未接收上位机发送的应用程序之后,读取应用程序的标识内容。
[0146]第一判断单元503,用于根据标识内容判断应用程序是否正确,如果是,进入执行单元,如果否,进入第一写入单元。
[0147]执行单元504,用于执行应用程序。
[0148]第一写入单元505,用于将错误类型状态字写入状态字信息,复位重新启动,返回发送单元。
[0149]复位单元506,用于当应用程序发生复位重新启动,返回发送单元。
[0150]参见图6所示,本发明实施例中提供的安全下载装置实施例二,可以包括:
[0151]发送单元601可以包括:
[0152]第一判断子单元6011,用于在设备启动时,判断是否为复位启动。
[0153]读取子单元6012,用于如果第一判断子单元的判断结果为是,读取状态字寄存器中的状态字信息。
[0154]第一发送子单元6013,用于如果状态字信息是错误类型状态字或无应用程序状态字,向上位机发送设备指令,设备指令中包括错误类型状态字或无应用程序状态字。
[0155]第二发送子单元6014,用于如果状态字信息不是错误类型状态字或无应用程序状态字,将应用层错误状态字写入状态字信息,向上位机发送设备指令,设备指令中包括应用层错误状态字。
[0156]第三发送子单元6015,用于如果第一判断子单元的判断结果为否,将正确标识状态字写入状态字信息,向上位机发送设备指令,设备指令中包括正确标识状态字。
[0157]第二判断单元602,用于判断当前是否存在应用程序,如果是,进入读取单元,如果否,进入第二写入单元。
[0158]第二写入单元603,用于将无应用程序状态字写入状态字信息,复位重新启动,返回发送单元。
[0159]读取单元604,用于在接收上位机发送的应用程序或超时未接收上位机发送的应用程序之后,读取应用程序的标识内容。
[0160]第一判断单元605,用于根据标识内容判断应用程序是否正确,如果是,进入执行单元,如果否,进入第一写入单元。
[0161]执行单元606,用于执行应用程序。
[0162]第一写入单元607,用于将错误类型状态字写入状态字信息,复位重新启动,返回发送单元。
[0163]复位单元608,用于当应用程序发生复位重新启动,返回发送单元。
[0164]在本发明的一些实施例中,上述实施例中的第一判断单元可以包括:
[0165]第二判断子单元,用于判断设备的实际控制器局域网CAN总线端口号是否属于标识内容中设定的CAN总线端口号范围;
[0166]第三判断子单元,用于判断设备实际所包含的子设备是否属于标识内容中设定的支持子设备;
[0167]第四判断子单元,用于对子设备进行子设备测试,判断子设备是否正常运行。
[0168]参见图7所示,本发明实施例中提供的安全下载装置实施例三,可以包括:
[0169]接收单元701,用于接收设备发送的设备指令,设备指令中包括状态字信息。
[0170]确定单元702,用于根据状态字信息确定设备是否需要应用程序下载。
[0171]读取单元703,用于如果设备需要应用程序下载,读取应用程序的标识内容。
[0172]判断单元704,用于根据标识内容判断应用程序是否正确,如果是,进入发送单元,如果否,进入提示单元。
[0173]发送单元705,用于向设备发送应用程序。
[0174]提示单元706,用于提示应用程序错误。
[0175]在本发明的一些实施例中,确定单元可以包括:
[0176]第一确定子单元,用于当状态字信息为错误类型状态字或无应用程序状态字,确定设备需要应用程序下载;
[0177]第二确定子单元,用于当状态字信息为应用层错误状态字,确定设备需要应用程序下载;
[0178]第三确定子单元,用于当状态字信息为正确标识状态字,确定设备不需要应用程序下载。
[0179]在本发明的一些实施例中,判断单元可以包括:
[0180]第一判断子单元,用于判断设备支持的功能是否属于标识内容中设定的功能;
[0181]第二判断子单元,用于判断设备是否属于标识内容中设定的支持设备;
[0182]第三判断子单元,用于判断设备的控制器局域网CAN总线端口号是否属于标识内容中设定的CAN总线端口号范围;
[0183]第四判断子单元,用于判断设备所包含的子设备是否属于标识内容中设定的支持子设备。
[0184]参见图8所示,本发明实施例中提供的安全下载系统实施例,可以包括:
[0185]上位机801以及设备802。
[0186]其中,设备802可以为上述实施例中提供的安全下载装置实施例一或二。
[0187]上位机801可以为上述实施例中提供的安全下载装置实施例三。
[0188]相关说明请参见上述实施例,在此不再赘述。
[0189]这样,本发明实施例中设备在启动时可以向上位机发送带有状态字信息的设备指令,当设备判断出应用程序错误可以复位或者设备出现死锁会发生看门狗复位,均可以将错误状态写入状态字信息,上位机可以根据状态字信息确定重新下载应用程序,从而不再需要到设备现场拆机进行重新下载,节省了大量时间以及人力成本。同时,所下载的应用程序中具有标识内容,上位机在下载之前对应用程序进行检测保证了要下载程序的正确性,设备也可以通过标识内容判断应用程序是否正确,保证所下载的应用程序和设备硬件的一致性,从而避免应用程序在执行中发生错误。
[0190]需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0191]还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0192]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0193]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种安全下载方法,其特征在于,所述方法包括: 在设备启动时,向上位机发送设备指令,所述设备指令中包括状态字信息,以使所述上位机根据所述状态字信息确定所述设备是否需要应用程序下载; 在接收所述上位机发送的应用程序或超时未接收所述上位机发送的应用程序之后,读取所述应用程序的标识内容,根据所述标识内容判断所述应用程序是否正确,如果是,执行所述应用程序,如果否,将错误类型状态字写入所述状态字信息,复位重新启动,返回执行所述在设备启动时,向上位机发送设备指令; 当所述应用程序发生复位重新启动,返回执行所述在设备启动时,向上位机发送设备指令。
2.根据权利要求1所述的方法,其特征在于,在接收所述上位机发送的应用程序或超时未接收所述上位机发送的应用程序之后,读取所述应用程序的标识内容之前,所述方法还包括: 判断当前是否存在应用程序,如果是,读取所述应用程序的标识内容,如果否,将无应用程序状态字写入所述状态字信息,复位重新启动,返回执行所述在设备启动时,向上位机发送设备指令。
3.根据权利要求2所述的方法,其特征在于,所述在设备启动时,向上位机发送设备指令,所述设备指令中包括状态字信息,包括: 在设备启动时,判断是否为复位启动; 如果是复位启动,读取状态字寄存器中的状态字信息,如果所述状态字信息是所述错误类型状态字或所述无应用程序状态字,向上位机发送设备指令,所述设备指令中包括所述错误类型状态字或所述无应用程序状态字; 如果所述状态字信息不是所述错误类型状态字或所述无应用程序状态字,将应用层错误状态字写入所述状态字信息,向上位机发送设备指令,所述设备指令中包括所述应用层错误状态字; 如果不是复位启动,将正确标识状态字写入所述状态字信息,向上位机发送设备指令,所述设备指令中包括正确标识状态字。
4.根据权利要求1所述的方法,其特征在于,所述根据所述标识内容判断所述应用程序是否正确,包括: 判断所述设备的实际控制器局域网CAN总线端口号是否属于所述标识内容中设定的CAN总线端口号范围; 判断设备实际所包含的子设备是否属于所述标识内容中设定的支持子设备; 对所述子设备进行子设备测试,判断所述子设备是否正常运行。
5.一种安全下载方法,其特征在于,所述方法包括: 接收设备发送的设备指令,所述设备指令中包括状态字信息; 根据所述状态字信息确定所述设备是否需要应用程序下载; 如果所述设备需要应用程序下载,读取所述应用程序的标识内容,根据所述标识内容判断所述应用程序是否正确,如果是,向所述设备发送所述应用程序,如果否,提示应用程序错误。
6.根据权利要求5所述的方法,其特征在于,所述根据所述状态字信息确定所述设备是否需要应用程序下载,包括: 当所述状态字信息为错误类型状态字或无应用程序状态字,确定所述设备需要应用程序下载; 当所述状态字信息为应用层错误状态字,确定所述设备需要应用程序下载; 当所述状态字信息为正确标识状态字,确定所述设备不需要应用程序下载。
7.根据权利要求5所述的方法,其特征在于,所述根据所述标识内容判断所述应用程序是否正确,包括: 判断所述设备支持的功能是否属于所述标识内容中设定的功能; 判断所述设备是否属于所述标识内容中设定的支持设备; 判断所述设备的控制器局域网CAN总线端口号是否属于所述标识内容中设定的CAN总线端口号范围; 判断所述设备所包含的子设备是否属于所述标识内容中设定的支持子设备。
8.一种安全下载装置,其特征在于,所述装置包括: 发送单元,用于在设备启动时,向上位机发送设备指令,所述设备指令中包括状态字信息,以使所述上位机根据所述状态字信息确定所述设备是否需要应用程序下载; 读取单元,用于在接收所述上位机发送的应用程序或超时未接收所述上位机发送的应用程序之后,读取所述应用程序的标识内容; 第一判断单元,用于根据所述标识内容判断所述应用程序是否正确,如果是,进入执行单元,如果否,进入第一写入单元; 所述执行单元,用于执行所述应用程序; 所述第一写入单元,用于将错误类型状态字写入所述状态字信息,复位重新启动,返回所述发送单元; 复位单元,用于当所述应用程序发生复位重新启动,返回所述发送单元。
9.一种安全下载装置,其特征在于,所述装置包括: 接收单元,用于接收设备发送的设备指令,所述设备指令中包括状态字信息; 确定单元,用于根据所述状态字信息确定所述设备是否需要应用程序下载; 读取单元,用于如果所述设备需要应用程序下载,读取所述应用程序的标识内容; 判断单元,用于根据所述标识内容判断所述应用程序是否正确,如果是,进入发送单元,如果否,进入提示单元; 所述发送单元,用于向所述设备发送所述应用程序; 所述提示单元,用于提示应用程序错误。
10.一种安全下载系统,其特征在于,所述系统包括: 上位机以及设备; 所述设备为权利要求8所述的安全下载装置; 所述上位机为权利要求9所述的安全下载装置。
【文档编号】G06F9/445GK104298624SQ201410456596
【公开日】2015年1月21日 申请日期:2014年9月9日 优先权日:2014年9月9日
【发明者】赵玉秋, 杨龙, 贺亮, 尹柱霞, 刘权超 申请人:沈阳东软医疗系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1