一种软件在线更新升级系统及方法与流程

文档序号:15517451发布日期:2018-09-25 18:42阅读:191来源:国知局
本发明涉及计算机软件
技术领域
,尤其是涉及一种软件在线更新升级系统及方法。
背景技术
:dsp(数字信号处理器)凭借其强大的数据处理能力、稳定性好、精度高等特性,已经成为工业领域控制应用的主流。但是,dsp芯片没有内置的flash(闪存,一种不挥发性的内存),其应用软件存储及更新都存在极大的困难。目前,dsp芯片的应用软件存储及加载运行有两种方式,第一种是将应用软件存储在dsp外置的flash芯片上,上电后采用装载方式将其从外置flash芯片上加载到dsp内部ram中运行。第二种是将应用软件存储在cpu(例如arm)管理的内置或者外置flash上,dsp与cpu间通过共享的双口ram通信,上电后cpu将dsp应用软件分页发送到共享的双口ram上,然后dsp分页下载到内部ram,当应用软件下载完成后加载运行。针对上述的两种dsp应用软件存储及加载运行方式,现有的应用软件更新升级方法也有两种:第一种方法是利用仿真器通过jtag(jointtestactiongroup,联合测试工作组的简称)接口将应用软件下载至dsp芯片的内部ram中,然后将ram上的数据烧写至外置的flash中存储,其更新流程如附图1所示。但是,这种程序下载更新方法可操作性不强,在现场装机后需要拆开控制器才能使用仿真器连接dsp芯片,而且整个操作过程需要专业技术人员全程参与才能完成,即使专业人员烧写也存在更新失败等异常情况,因而此方法工作效率非常低、现场可操作性非常差。第二种方法是利用ethernet将应用软件下载至cpu(例如:arm)管理的内置或外置flash中,替换原来的应用软件,再通过cpu与dsp之间共享的双口ram,将应用软件下载至dsp芯片的内部并加载运行,其更新流程如附图2所示。这种软件下载更新方法的通信速率最大为5mb/s,cpu与dsp之间通过双口ram通信,需要占用16根数据线、16根地址线、3根控制线,以及大量cpu、dsp的外部硬件资源,且cpu和dsp对双口ram的同一地址同时进行读写操作时,存在写操作失败的风险,从而导致软件下载结果不可控的后果。在工业领域,由上述问题带来的控制器故障,如:运行异常、启动失败等技术问题,都需要调试人员将控制器拆开后再取出控制板进行软件更新或者更换控制板,由于设备运行环境以及现场运行高压等情况,现有的应用软件更新下载方法耗费了大量人力、物力,导致产品的用户体验极差,并且增加了产品的故障率。技术实现要素:有鉴于此,本发明的目的在于提供一种软件在线更新升级系统及方法,以解决现有软件在线更新升级方式下载效率低、可靠性不高、现场可操作性不强的技术问题。为了实现上述发明目的,本发明具体提供了一种软件在线更新升级系统的技术实现方案,一种软件在线更新升级系统,包括:处理器模块、上位机,及作为所述处理器模块与所述上位机之间数据交互中间层的软件更新模块。所述软件更新模块进一步包括处理单元、双口ram单元和可编程逻辑单元,所述可编程逻辑单元实现与所述处理器模块之间的数据交互,所述处理单元与所述可编程逻辑单元之间通过所述双口ram单元实现数据交互,所述处理单元实现与所述上位机的网络通信。优选的,所述处理单元采用cpu,所述可编程逻辑单元采用fpga,所述软件更新模块采用基于cpu+fpga架构的soc芯片。优选的,所述双口ram单元采用soc芯片的片上ram。优选的,所述处理器模块为未内置flash的dsp芯片。优选的,所述可编程逻辑单元与所述处理器模块之间通过upp接口进行数据通信。优选的,所述处理单元通过外置网络芯片实现与所述上位机软件的网络通信。优选的,所述上位机向所述处理单元发送软件下载请求,所述处理单元在接收到软件下载请求后,将所述软件下载请求封装后通过所述双口ram单元发送至所述可编程逻辑单元,所述可编程逻辑单元再向所述处理器模块发送软件下载请求。优选的,所述处理器模块接收到软件下载请求后,向所述可编程逻辑单元发送接收到软件下载请求的反馈信号。所述可编程逻辑单元接收到所述处理器模块发送的反馈信号后,将所述反馈信号通过所述双口ram单元发送至所述处理单元。优选的,当所述处理器模块接收到软件下载请求后,挂起正在执行的应用软件,并通过boot软件对所述处理器模块的外设进行控制,然后调用软件更新功能模块进行应用软件更新下载。所述软件更新功能模块接收所述可编程逻辑单元发送的数据,然后将数据存储至所述处理器模块的应用软件存放区间,并通过修改应用软件存储空间的数据内容实现应用软件更新。优选的,所述处理单元接收到反馈信号后,将存储于所述处理单元管理的存储器上的应用软件封装后通过所述双口ram单元发送至所述可编程逻辑单元。所述可编程逻辑单元将接收到的应用软件发送至所述处理器模块,所述处理器模块将接收到应用软件存储在应用软件空间。应用软件下载完成后,所述处理器模块将用于应用软件下载的boot软件硬件资源释放,同时跳转至所述处理器模块的应用软件入口执行,由应用软件对所述处理器模块的外设进行控制。本发明还另外具体提供了一种基于上述系统的软件在线更新升级系统的技术实现方案,一种软件在线更新升级方法,包括以下步骤:s10)上位机向处理单元发送软件下载请求;s11)所述处理单元接收到软件下载请求,将所述软件下载请求封装后通过双口ram单元发送至可编程逻辑单元;s12)所述可编程逻辑单元向处理器模块发送软件下载请求,所述处理器模块接收到软件下载请求后,将应用软件挂起,跳转至boot软件执行,并向所述可编程逻辑单元发送接收到软件下载请求的反馈信号;s13)所述可编程逻辑单元接收到所述处理器模块发送的反馈信号后,将所述反馈信号通过所述双口ram单元发送至所述处理单元;s14)所述处理单元接收到反馈信号后,将存储于所述处理单元管理的存储器上的应用软件封装后通过所述双口ram单元发送至所述可编程逻辑单元;s15)所述可编程逻辑单元将接收到的应用软件发送至所述处理器模块;s16)所述处理器模块将接收到应用软件存储在应用软件空间;s17)应用软件下载完成后,所述处理器模块将用于应用软件下载的boot软件硬件资源释放,同时跳转至所述处理器模块的应用软件入口执行,由应用软件对所述处理器模块的外设进行控制。优选的,在所述步骤s15)中,所述可编程逻辑单元将接收到的应用软件通过upp协议发送至所述处理器模块的upp接收端口。通过实施上述本发明提供的软件在线更新升级系统及方法的技术方案,具有如下有益效果:(1)本发明能够提升处理器模块应用软件的下载效率和可靠性,并提高了软件在线更新升级系统的现场可操作性,使处理器模块的应用软件更新更加快速,提高了软件更新速率,降低了对处理单元硬件资源的占用,节约了开发维护成本,大幅提升了用户体验;(2)本发明通过在处理器模块上集成(集成是指的不同软件在同一器件上不同区域运行,空间上相互独立)boot软件与应用软件,能够实现应用软件运行与软件更新下载之间的无缝切换(有软件下载需求,应用软件收到软件更新指令后将从应用软件空间跳转至boot软件空间,两者之间的相互跳转不会影响双方的独立运行);(3)本发明利用upp接口实现可编程逻辑单元与处理器模块之间的通信,能够实现处理器模块应用软件的高速更新下载,大幅提升软件的更新下载效率;(4)本发明合理利用处理器模块的内部资源,避免了外置ram、flash芯片带来的处理器模块硬件资源开销和外置芯片不稳定性带来的软件更新异常,同时利用资源释放功能,在应用软件更新之后,将用于更新应用软件的资源释放,提高了资源利用率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的实施例。图1是现有技术中一种dsp软件在线更新升级系统的结构原理框图;图2是现有技术中另一种dsp软件在线更新升级系统的结构原理框图;图3是本发明软件在线更新升级系统一种具体实施例的系统结构框图;图4是本发明软件在线更新升级系统一种具体实施例的结构组成框图;图5是本发明软件在线更新升级系统一种具体实施例的工作原理框图;图6是本发明软件在线更新升级方法一种具体实施例的程序流程图;图中:1-软件更新模块,2-处理器模块,3-上位机,11-处理单元,12-双口ram单元,13-可编程逻辑单元。具体实施方式为了引用和清楚起见,将下文中使用的技术名词、简写或缩写记载如下:soc:system-on-a-chip,片上系统的简称,指一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容;cpu:centralprocessingunit,中央处理器的简称;fpga:field-programmablegatearray,现场可编程门阵列的简称;dsp:digitalsignalprocessor,数字信号处理器的简称;ram:random-accessmemory,随机存取存储器的简称;arm:advancedriscmachines,一种精简指令集微处理器;ocm:on-chipmemory,片上内存的简称;boot:系统引导文件;dma:directmemoryaccess,直接内存访问的简称;upp:universalparallelport,通用并行接口的简称;flash:闪存,是一种不挥发性的内存,在没有电流的情况下,也可以长久地保存数据,存储特性相当于硬盘。为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。如附图3至附图6所示,给出了本发明软件在线更新升级系统及方法的具体实施例,下面结合附图和具体实施例对本发明作进一步说明。实施例1如附图3所示,一种软件在线更新升级系统的具体实施例,包括:处理器模块2、上位机3,及作为处理器模块2与上位机3之间数据交互中间层的软件更新模块1。软件更新模块1进一步包括处理单元11、双口ram单元12和可编程逻辑单元13,可编程逻辑单元13实现与处理器模块2之间的数据交互,处理单元11与可编程逻辑单元13之间通过双口ram单元12实现数据交互,处理单元11实现与上位机3的网络通信。处理单元11通过外置网络芯片实现与上位机3软件的网络通信。作为本发明一种较佳的具体实施例,处理单元11进一步采用cpu,可编程逻辑单元13进一步采用fpga,软件更新模块1采用基于cpu+fpga架构的soc芯片。双口ram单元12采用soc芯片的片上ram。处理器模块2为未内置flash的dsp芯片,可编程逻辑单元13与处理器模块2之间进一步通过upp接口进行数据通信。upp接口专用于大量数据的读取与存储,其传输速率为每时钟周期1个数据字(8位或16位),或者针对双数据速率为每时钟周期2个数据字,upp时钟频率可达75mhz,使得其数据吞吐量可达150mb/s。upp接口数据接收、传输均通过dma模块来实现,数据传输不占用cpu资源,完全不影响cpu运行的实时性。以下均以处理器模块2采用dsp芯片对本发明实施例进行详细介绍,处理器模块2可以进一步扩展至所有包含upp通信接口的处理器芯片。如附图4所示,上位机3向处理单元11发送软件下载请求,处理单元11在接收到软件下载请求后,将软件下载请求封装后通过双口ram单元12发送至可编程逻辑单元13,可编程逻辑单元13再向处理器模块2发送软件下载请求。处理器模块2接收到软件下载请求后,向可编程逻辑单元13发送接收到软件下载请求的反馈信号。可编程逻辑单元13接收到处理器模块2发送的反馈信号后,将反馈信号通过双口ram单元12发送至处理单元11。如附图5所示,当处理器模块2接收到软件下载请求后,挂起正在执行的应用软件,并通过boot软件对处理器模块2的外设进行控制,然后调用软件更新功能模块进行应用软件更新下载。其中,软件更新功能模块的具体功能为:接收可编程逻辑单元13发送的数据,然后将数据存储至处理器模块2的应用软件存放区间,通过修改应用软件存储空间的数据内容实现应用软件更新的目的。当所有数据都接收完成后,跳转至应用程序的起始地址开始执行下载更新后的应用程序。处理单元11接收到反馈信号后,将存储于处理单元11管理的存储器上的应用软件封装后通过双口ram单元12发送至可编程逻辑单元13。可编程逻辑单元13将接收到的应用软件发送至处理器模块2,处理器模块2将接收到应用软件存储在应用软件空间。应用软件下载完成后,处理器模块2将用于应用软件下载的boot软件硬件资源释放,同时跳转至处理器模块2的应用软件入口执行,由应用软件对处理器模块2的外设进行控制。应用软件和boot软件是两个相互独立的软件,都存储在处理器模块(即dsp)2的内部ram中,两者的存储位置相互独立,没有联系,只有当需要更新应用软件时,dsp不再执行应用软件,而执行boot软件,利用boot软件将应用软件存储区域的内容更新,从而实现更新应用软件的目的。其中,应用软件和boot软件可以存储在外置的flash当中。本实施例提出了一种基于upp通信的dsp应用软件更新升级系统,利用dsp芯片上的upp接口,通过合理的资源分配,实现了控制器dsp应用软件的在线升级与更新,能够很好地解决现有dsp应用软件更新升级方式下载效率低、可靠性不高、现场可操作性不强、更新极不方便,需要专人指导的技术问题。实施例2如附图6所示,一种基于上述系统的软件在线更新升级方法的具体实施例,包括以下步骤:s10)当上位机软件有软件下载请求(此时,处理器模块2,即dsp正在运行应用程序)时,上位机3向处理单元(即cpu)11发送软件下载请求;s11)处理单元11接收到软件下载请求,将软件下载请求封装后通过双口ram单元(即ocm)12发送至可编程逻辑单元(即fpga)13;s12)可编程逻辑单元13将软件下载请求通过upp协议发送至处理器模块2的upp接收端口,处理器模块2接收到软件下载请求后,将应用软件挂起,跳转至boot软件(boot软件主要由初始化模块、数据接收模块、数据更新模块和程序跳转模块组成,用于实现系统引导)的入口(入口即对应于boot软件存储在dsp内ram上的一段程序起始地址)执行,并通过upp发送接口向可编程逻辑单元13发送接收到软件下载请求的反馈信号;s13)可编程逻辑单元13接收到处理器模块2发送的反馈信号后,将反馈信号通过双口ram单元12发送至处理单元11;s14)处理单元11接收到反馈信号后,将存储于处理单元11管理的存储器(这里的flash存储器可以是soc内部的,也可以是外部的)上的应用软件封装(封装的具体工作就是将应用软件的内容以二进制数据格式读取出来,然后计算出二进制数据的长度及相加总和,将长度作为首、相加总和作为尾,中间内容作为dsp的应用软件内容,具体格式如下表1所示)后通过双口ram单元12发送至可编程逻辑单元13;表1应用软件封装格式应用软件内容长度应用软件内容应用软件内容总和s15)可编程逻辑单元13将接收到的(dsp)应用软件通过upp协议发送至处理器模块2的upp接收端口;s16)处理器模块2将接收到(dsp)应用软件存储在如附图4中所示的应用软件空间(应用软件存放的ram空间与boot软件在空间上独立)中;s17)应用软件下载完成后,处理器模块2将用于应用软件下载的boot软件硬件资源(包括upp接口、定时器中断等)释放,同时跳转至处理器模块2的(dsp)应用软件入口执行,由应用软件对处理器模块2的外设进行控制。在步骤s15)中,可编程逻辑单元13将接收到的应用软件通过upp协议发送至处理器模块2的upp接收端口。通过实施本发明具体实施例描述的软件在线更新升级系统及方法的技术方案,能够产生如下技术效果:(1)本发明具体实施例描述的软件在线更新升级系统及方法能够提升处理器模块应用软件的下载效率和可靠性,并提高了软件在线更新升级系统的现场可操作性,使处理器模块的应用软件更新更加快速,提高了软件更新速率,降低了对处理单元硬件资源的占用,节约了开发维护成本,大幅提升了用户体验;(2)本发明具体实施例描述的软件在线更新升级系统及方法通过在处理器模块上集成boot软件与应用软件,能够实现应用软件运行与软件更新下载之间的无缝切换;(3)本发明具体实施例描述的软件在线更新升级系统及方法利用upp接口实现可编程逻辑单元与处理器模块之间的通信,能够实现处理器模块应用软件的高速更新下载,大幅提升软件的更新下载效率;(4)本发明具体实施例描述的软件在线更新升级系统及方法合理利用处理器模块的内部资源,避免了外置ram、flash芯片带来的处理器模块硬件资源开销和外置芯片不稳定性带来的软件更新异常,同时利用资源释放功能,在应用软件更新之后,将用于更新应用软件的资源释放,提高了资源利用率。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似部分互相参见即可。以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭示如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明的精神实质和技术方案的情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同替换、等效变化及修饰,均仍属于本发明技术方案保护的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1