一种嵌入式系统软件远程升级方法

文档序号:7688847阅读:130来源:国知局
专利名称:一种嵌入式系统软件远程升级方法
技术领域
本发明涉及嵌入式技术领域,具体涉及一种确保嵌入式系统软件远程 升级可靠性的解决方案。
背景技术
在嵌入式技术领域,系统软件可以采用远程升级方法。该方法凭借其 诸多的优点便于工程维护、避免设备频繁拆装、业务影响小、维护费用 较低等,在嵌入式系统的软件升级中得到了越来越广泛的应用;但是,如 何保证并提高升级的可靠性成为远程升级技术的一个关键问题。目前,在远程升级中可靠性的保证措施主要有1. 反馈检测又称回送校验法。双方在进行数据传输时,被升级方将接收到的数据 重新发回升级方,由升级方检查是否与原始数据完全相符。如不相符,则 升级方发送一个控制信息通知被升级方删去出错的数据。并重新发送该升 级数据;如相符,则发送下一个升级数据。特点原理简单、实现容易、可靠性强,但开销大,信道利用率低。2. 自动请求重发简称ARQ (Automatic Repeat reQuest), ARQ的原理是升级方将要发 送的数据附加上一定的冗余检错码一并发送,被升级方则根据检错码对数 据进行差错检测,如发现差错,则被升级方返回请求重发的信息,升级方 在收到请求重发的信息后,重新传送数据;如没有发现差错,则发送下一 个数据。其中CRC是一种典型的应用。特点简单、容易实现,信道利用率仍然偏低,是计算机网络中较常采用的差错控制方法。3. 前向纠错-简称FEC(Forward Error Correction),其原理是升级方将要发送的数 据附加上一定的冗余纠错码一并发送,被升级方则根据纠错码对数据进行 差错检测,如发现差错,由被升级方进行纠正。特点效率低且设备复杂。发明内容本发明针对现有技术的不足,对现有的ARQ方式进行了改进,提出了 一种嵌入式系统软件远程升级方法,确保升级数据的可靠性,并提高了信 道的使用效率。本发明的实现包括以下步骤-1) 升级方对升级文件计算其冗余检错码,并将冗余检错码和对应的升 级文件合并;2) 升级方将步骤l)种合并后的数据发送到被升级方;3 )被升级方接收完合并后的数据后根据冗余检错码对数据进行差错检 测,并将检测结果反馈给升级方。优选的,所述步骤1)具体为升级方采用CRC校验的多项式对升级文 件计算其冗余检错码。优选的,所述步骤2)、 3)之间还包括以下处理步骤被升级方将合 并后的数据存入本地存储器。优选的,所述步骤1)中具体为将冗余检错码合并到升级文件的首部 或者尾部。优选的,所述冗余检错码的计算过程为11) 确定CRC校验使用的多项式;12) 生成CRC校验值表;13) 对升级文件数据流进行查表并计算CRC校验和作为冗余检错码。 优选的,所述步骤11)中使用的多项式为CRC32多项式X32+X26+X23+X22+ X16+Xll+X10 +X8+X7+X5+ X4+X2+X+1 。优选的,所述步骤3)具体为被升级方采用CRC校验的多项式对合并 后的数据计算其冗余检错码,并比较生成的冗余检错码是否与步骤1)的 冗余检错码相同,并将比较结果反馈给升级方。优选的,所述步骤3)中使用的多项式为CRC32多项式 X32+X26+X23+X22+ X16+Xu+X10 +X8+X7+X5+ X4+X2+X+l 。采用本发明提出的嵌入式系统软件远程升级方法,通过对现有ARQ方式进行改进,即对升级文件进行一次冗余检错校验,而不是对每个数据包 进行冗余检错校验,实现了在提高可靠性的同时,进一步提高信道的效率。


图1为本发明优选实施例升级方CRC校验的处理流程图;图2为本发明优选实施例被升级方CRC校验的处理流程图。
具体实施方式
下面结合附图,并通过具体实施例对本发明的技术方案进行详细说明。 如图l、 2所示,本优选实施例中采用CRC32校验码做为冗余检错码,在实际应用时也可以采用其它冗余检错码进行处理,以下分升级方和被升级方的处理过程进行说明。升级方的处理流程,如图1所示。101、 生成CRC32校验码1) 确定CRC校验的多项式; cnCRC—32 = 0x04C10DB7;采用CRC32二 X32+X26+X23+X22+ X"+X"+X10 +X8+X7+X5+ X4+X2+X+l2) 生成CRC校验值表; 根据CRC多项式生成32位的CRC校验值表。3 )对数据流进行査表并计算CRC校验和; 对升级文件按照字节、査表计算升级文件的CRC32。102、 将CRC32与升级文件合并 CRC32可以插入到升级文件的首部或尾部,本实施例中将4字节的CRC添 加到升级文件的尾部。103、 发送升级文件 将升级文件分成固定大小的数据包,依次发送所有数据包。104、 等待被升级方的CRC校验反馈。根据被升级方反馈的CRC校验信息,比 较CRC是否一致,并判断此次升级是否成功;被升级方的处理流程,如图2所示。201、 依次接收升级文件数据包,并将其写如flash存储器;202、 当接收到升级文件的所有数据包后,对flash区域进行CRC32校验,生成新的CRC32校验码(按照与升级方相同的方法生成CRC32校验和,即采用 相同的校验值表和生成函数)。203、 比较新旧CRC32校验码是否相同,即比较本地计算所得CRC32与从文件 中提取的CRC32是否相同。204、 将校验码的比较结果反馈给升级方。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说 明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术 领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若 干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求
1.一种嵌入式系统软件远程升级方法,其特征在于,所述方法包括以下处理过程1)升级方对升级文件计算其冗余检错码,并将冗余检错码和对应的升级文件合并;2)升级方将步骤1)种合并后的数据发送到被升级方;3)被升级方接收完合并后的数据后根据冗余检错码对数据进行差错检测,并将检测结果反馈给升级方。
2. 根据权利要求1所述的嵌入式系统软件远程升级方法,其特征在于, 所述步骤1)具体为升级方采用CRC校验的多项式对升级文件计算其冗余 检错码。
3. 根据权利要求1所述的嵌入式系统软件远程升级方法,其特征在于, 所述步骤2)、 3)之间还包括以下处理步骤被升级方将合并后的数据存 入本地存储器。
4. 根据权利要求1所述的嵌入式系统软件远程升级方法,其特征在于, 所述步骤1)中具体为将冗余检错码合并到升级文件的首部或者尾部。
5. 根据权利要求2所述的嵌入式系统软件远程升级方法,其特征在于, 所述冗余检错码的计算过程为11) 确定CRC校验使用的多项式;12) 生成CRC校验值表;13) 对升级文件数据流进行查表并计算CRC校验和作为冗余检错码。
6. 根据权利要求2所述的嵌入式系统软件远程升级方法,其特征在于, 所述步骤11)中使用的多项式为CRC32多项式X32+X26+X23+X22+ X16+Xu+X10 +X8+X7+X5+ X4+X2+X+l 。
7. 根据权利要求2所述的嵌入式系统软件远程升级方法,其特征在于, 所述步骤3)具体为被升级方采用CRC校验的多项式对合并后的数据计算 其冗余检错码,并比较生成的冗余检错码是否与步骤1)的冗余检错码相 同,并将比较结果反馈给升级方。
8. 根据权利要求7所述的嵌入式系统软件远程升级方法,其特征在于, 所述步骤3)中使用的多项式为CRC32多项式X32+X26+X23+X22+ X16+Xu+X10 +X8+X7+X5+ X4+X2+X+l 。
全文摘要
本发明公开了一种嵌入式系统软件远程升级方法,包括以下步骤1)升级方对升级文件计算其冗余检错码,并将冗余检错码和对应的升级文件合并;2)升级方将步骤1)种合并后的数据发送到被升级方;3)被升级方接收完合并后的数据后根据冗余检错码对数据进行差错检测,并将检测结果反馈给升级方。采用本发明,通过对现有ARQ方式进行改进,即对升级文件进行一次冗余检错校验,而不是对每个数据包进行冗余检错校验,实现了在提高可靠性的同时,进一步提高信道的效率。
文档编号H04L1/16GK101325475SQ20081006849
公开日2008年12月17日 申请日期2008年7月10日 优先权日2008年7月10日
发明者刘通良 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1