主权项 |
一种基于无外扩存储器单片机的外设设备程序升级机制,包括一个主机设备和多个外设设备,其特征在于,其中主机设备与各个外设设备之间通过物理总线建立稳定的通讯连接,并且外设设备的程序设计均是采取BootLoader程序引导主程序启动的方式,该BootLoader程序通过端口向物理总线输出告知信号来指示系统的运行状态,并等待应答信号的输入来判断是否需要升级主程序,其步骤包括:步骤1:主机设备通过有效方式获取到某个外设设备的最新程序文件;步骤2:主机设备对该最新程序文件的有效性进行判定,若该最新程序文件有效,则执行步骤3;否则,返回执行步骤1;步骤3:主机设备将该程序文件存储至该主机设备的本机存储器内,然后通过总线控制或者通知该外设设备重启;步骤4:外设设备重启后,首先运行BootLoader程序,并发送指定协议的告知信号告知主机设备其BootLoader程序已启动;步骤5:主机设备收到该外设设备的告知信号后,判断是否需要对其程序进行升级,如果需要,则通过总线向外设设备的BootLoader程序发出相应的应答信号;如果不需要,不予应答;步骤6:外设设备如果在规定时间内收到主机设备的应答信号,则转入程序升级流程;否则,外设设备如果在规定时间内没有收到主机设备的应答信号,完成主程序加载过程,转入主程序开始正常运行; 步骤7:外设设备程序升级流程中,主机设备按照约定的流控方式,通过物理总线将该外设设备的程序文件传输给该外设设备,该外设设备接收后将其写入该外设设备的本地存储器,覆盖原程序,实现程序文件的远程升级;步骤8:外设设备程序升级完毕之后,系统重新启动,外设设备再次首先运行BootLoader程序,发送指定协议的告知信号告知主机设备;步骤9:主机设备收到该外设设备的告知信号后,判断当前是否仍处于外设设备程序升级的过程中,若是,则不予应答,执行步骤10;否则,结束本次升级流程,返回步骤3;步骤10:外设设备的BootLoader程序在规定时间内没有收到主机设备的应答信号,自动转入主程序开始正常运行,并向主机设备发送连接注册请求,执行步骤11;步骤11:主机设备在规定时间内收到外设设备的连接注册请求,则判定外设设备的程序已经成功升级完毕并正常运行,结束本次升级流程;否则,判定外设设备的程序升级失败,返回步骤3。
|