首页 工作计划 工作总结 事迹材料 心得体会 述职报告 疫情防控 思想汇报 自查报告 党建材料 策划方案 教案设计 范文大全
  • 主题教育
  • 党课下载
  • 党史学习
  • 振兴乡镇
  • 工作汇报
  • 不忘初心
  • 规章制度
  • 谈话记录
  • 扫黑除恶
  • 共同富裕
  • 脱贫攻坚
  • 整改报告
  • 工作要点
  • 对照材料
  • 调查报告
  • 教育整顿
  • 观后感
  • 申请书
  • 讲话稿
  • 致辞稿
  • 评语
  • 口号
  • 发言稿
  • 读后感
  • 治国理政
  • 学习强国
  • 公文范文
  • 嵌入式小基站版本升级与回退机制的设计与实现

    时间:2023-05-29 16:35:07 来源:正远范文网 本文已影响 正远范文网手机站

    zoޛ)j馕oiYoy]4]5m5_tӭ4i
口号以及pub路径下临时系统是否正确,如果不正确,则串口会打印连接FTP服务器失败消息,退出升级流程;如果正确,则开始与FTP服务器建立TCP连接[6],同时检测TCP的建立是否成功。若此网络连接没有建立成功,退出本次软件升级;若网络连接建立成功,则可建立起FTP服务器的命令控制通道,之后与FTP服务器的命令传输都是通过此通道进行。紧接着微基站的软件系统要加载pub文件夹下的uImage临时系统。软件网络升级的流程图如图1所示:

    基站上电后,系统启动时按n/o进入网络启动模式,会从FTP服务器pub文件夹下自动加载uImage,进入临时系统,通过tftp将镜像文件上传到指定路径下,通过执行升级脚本./burn.sh fw_all,当出现刷写分区完成标志Done时,通过reboot重启系统,当系统正常启动后,通过命令cat/etc/fwversion可以查看软件版本,对比之前版本,若版本改变,则表示升级成功。

    在小基站升级过程中,一般将小基站与PC通过网线直连,将FTP服务器IP设置为192.168.0.36,通过用户名和密码登陆,设置pub路径,重启基站按n/o从FTP服务器启动uImage,若成功进入临时系统,则如图2所示。若网络启动失败,串口则出现如下打印,如图3所示。

    当网络启动失败时,首先检查IP设置是否正确或是否存在IP冲突,此FTP服务器IP固定为192.168.0.36。然后再确认FTP服务器加载路径是否正确,pub文件夹下是否存在uImage。如果FTP加载临时系统失败,则需重启系统,直到成功从FTP启动uImage,配置基站IP,使其和PC位于同一网段,然后通过tftp将应用软件flash上传到指定路径,再通过执行升级脚本,刷写分区完成后,重启系统,则升级成功,如图4所示。

    升级成功后,查看软件版本,如图5所示:

    2.2 Web远程升级软件流程设计

    Web远程升级:通过嵌入式GoAhead Web服务器调用标准的CGI接口将应用程序的镜像文件传输到小基站设备的flash中,然后刷写镜像分区,重启系统完成升级。为了实现Web远程软件升级,需要研究GoAheadWeb服务器端GoForms标准的通用CGI网关接口的处理过程[7]。在GoAhead中,GoForms过程主要处理用户请求的各种指令消息,首先它会解释以“/goform”形式开始的URL,紧跟着“/goform”之后的字符串websFormDefine定义了表单名字和用户请求指令的处理方法,然后通过调用CGI应用接口程序处理从Web服务器传递来的各种请求指令消息,最后GoAhead主要利用动态asp过程获取系统信息,将输出结果返回给用户,然后动态显示在Web页面上。通过GoAhead Web服务器进行软件远程升级的流程如图6所示:

    小基站软件远程升级流程:首先将编译好的应用程序打包成一个名为flash.img的镜像文件,然后在主机PC端,通过浏览器登陆IP地址访问小基站设备Web界面。在GoAhead Web服务器端,打开URL解析模块,可以解析HTTP协议,CGI应用程序始终在HTTP默认80端口等待客户端发起HTTP连接请求,当PC端向GoAhead Web Server发起一个HTTP连接请求,GoAhead Web服務器收到一个HTTP连接请求后,与客户端之间进行三次TCP连接建立,当三次握手连接建立成功后,会返回客户端一个HTTP响应,例如返回一个动态asp页面。根据客户端发起的应用请求,在服务器端会调用相应的CGI应用程序接口,实现不同的功能需求。进行Web远程升级时,在PC客户端发起版本升级请求,Web服务器端GoForms应用程序接口会调用websFormDefine函数把客户端的flash.img镜像文件传输到小基站设备的内存中,临时保存在根目录下的tmp文件夹,然后GoForms应用程序调用升级脚本burn.sh把传输过来的应用程序升级包的镜像文件解开,对镜像文件的魔数、文件长度进行检查校验,并按镜像文件定义的头部信息依次写入小基站设备的Nand Flash中,最后重启小基站设备即可启动新版本系统。

    3 版本回退的流程设计

    版本回退的设计思路是基于版本升级过程的优化,在设备升级过程中,难免会出现一些差错,一旦出现升级失败,便可以从备份flash启动。在设备上电后,首先下载镜像文件并解压缩,解析并与当前flash中版本对比,若软件版本匹配失败,则退出升级过程;若版本匹配成功,则将当前flash拷贝至备份flash中,覆盖备份flash里面的版本。将升级版本文件下载至主flash,并将版本激活,重启系统,从主flash启动。通过CPLD逻辑器件[8]设置启动超时定时器时间为10 s,同时设置启动标志位Flag,Flag为1表示从主flash启动,Flag为0表示从备份flash启动,若正常启动系统定时器超时或升级过程中出现失败,此时标志为Flag置为0,则切换到备份flash启动,更改主、备份flash设置并保存。版本回退的软件流程图如图7所示。

    4 结束语

    随着嵌入式通信设备增值业务需求的扩大,软件版本升级和版本回退成为不可或缺的重要功能。提出小基站设备软件版本升级以及回退机制,网络升级采用用户名和密码校验等加密模式[9],提高了用户权限管理系统的安全性,Web远程升级采用GoAhead Web服务器的标准CGI应用程序接口进行文件传输,响应速度快,可移植,适用于多种操作系统,使设备的工程维护方便、有效,提升了工作效率。在小基站设备软件版本升级过程中支持版本回退机制,提高了小基站软件升级的稳定性和可靠性[10],后期研究开发的重点将集中于在升级过程中增加断点重传的优化方案,提升升级效率。

    参考文献:

    [1] 赵炯,贾培源,李中山,等. 嵌入式设备远程在线升级技术[J]. 计算机工程, 2010,36(12): 262-264.

    [2] Antti Kennebunk. Non-Service Affecting Software Upgrades for Multi-Service Routers[C]//Design of Reliable Communication Networks. Naperville USA, 2005: 16-19.

    [3] 黄健,陈荣征,李代平,等. 基于ARM嵌入式系统的Boot Loader启动分析与移植[J]. 现代计算机, 2007,25(7): 85-87.

    [4] 严菊明. 基于ARM嵌入式系统的通用Bootloader的设计与实现[D]. 南京: 东南大学, 2007: 19-21.

    [5] 马丰玺,杨斌,卫洪春. 非易失存储器NANDFlash及其在嵌入式系统中的应用[J]. 计算机技术与发展, 2007,17(1): 203-205.

    [6] Ulrik Eklund, Jan Bosch. Architecture for Embedded Open Software Ecosystems[J]. Journal of Systems and Software, 2014,92(1): 128-142.

    [7] 范海燕,宋加磊,管磊. 客戶端设备远程管理的方案及实现[J]. 信息技术, 2007,33(6): 137-140.

    [8] 曹耀钦,慕晓冬,郭文普,等. 计算机网络技术及应用[M]. 北京: 机械工业出版社, 2005.

    [9] Yang Cao, Chunhua Hu, Bozhi Ma, et al. Secure Method for Software Upgrades for Implantable Medical Devices[J]. Tsinghua Science & Technology, 2010,15(5): 517-525.

    [10] 罗娟,曹阳,郑刚,等. 网络应用软件中高可用性的设计与实现[C]//通信软件技术学术年会论文集. 2003: 75-79.

    推荐访问:基站 嵌入式 机制 版本 升级