导航系统软件罐装接口软件设计    导航计算机组装进导航系统之后,系统软件有存在升级的需求。此时系统程序更新已不采用在做实验时通过JTAG对单板程序进行更新的方式,而是通过异步串行通信接口对导航系统进行软件更新,这样就避免了将系统拆卸后通过对单板进行程序更新的繁琐问题,同时通过异步串行口进行软件更新可克服传统JTAG调试线缆长度较短的弊端。
    导航计算机的程序升级接口包括:DSP程序升级接口、CPLD程序升级接口。这两个程序更新升级接口均采用RS422通信接口。在需要进行系统软件更新时,上位机需要读取DSP程序数据文件、CPLD程序数据文件,然后和导航计算机进行连接,连接成功之后便将新的程序数据文件按照一定的协议通过软件升级接口发给导航计算机。DSP和CPLD的软件更行操作可以分开操作。跪求求思路。。

解决方案 »

  1.   

    首先升级是使用pc机与下位机进行数据通信,传输升级的程序文件。
    下位机升级主要包括:擦出flash,写程序数据。
    下位机同时还要有接收上位机发来的程序数据,并进行校验。上位机相对比较简单,就不说了。思路:
       1. 首先定义通信协议
       2. 下位机分成两个部分:一部分是管理升级的程序(boot程序),一部分是实际的程序(app)。两个部分使用不同的数据保存区。管理升级程序主要负责对实际程序的Flash擦除和升级校验。
          下位机在启动的时候判断标志位(自行定义某个区域为标志保存地方),来判断当前是否以及有可运行的程序。如果没有就进入升级程序等待升级。如果存在就进入实际的程序执行。
        3. 升级程序时,可以使用两个方法。
            1) 在boot程序,跳转到主程序(app)时。暂停几秒钟判断串口是否有数据(用于判断是否需要升级)
            2)主程序(app),接收到升级指令。修改标志,并重启总结: 使用boot程序,管理升级。在平时的时候,boot启动后跳转到主程序执行。需要升级时可根据标志等,来进入boot进行升级操作