一种固件更新的方法和系统的制作方法

文档序号:7946561阅读:217来源:国知局
专利名称:一种固件更新的方法和系统的制作方法
技术领域
本发明涉及计算机通信技术,具体涉及一种固件更新的方法和系统。
背景技术
随着集成电路技术的不断发展,集成电路芯片的处理能力不断增强的同时成本却 在不断降低。在硬件技术进步的带动下,移动通信终端逐渐从传统的只有单一电话功能的 移动电话逐渐升级为具有各种应用处理能力的智能手机(Smartphone)。市面上目前存在着 种类繁多的智能手机,它们与传统的功能较为单一的手机的最大区别在于智能手机通常 硬件处理能力更强且存储空间更大,从而有能力使用更多的应用软件资源,部分产品还能 够运行操作系统;由于具有强大的硬件处理能力和丰富的软件资源,智能手机不仅能够实 现电话功能, 一般还能够进行诸如文字处理、邮件、网络应用、多媒体录制和播放等各种应 用。 传统的手机终端一般只包含用于完成电话功能应用的单个处理器芯片(相应地 包括一些外围的功能电路,与所述处理器芯片集成设置在一个电路板当中,通常称为通信 模块或Modem模块),而智能手机之所以能够实现电话功能以外的众多其他功能,是有赖于 其不同的硬件架构而得以实现的,所述智能手机的硬件架构通常如图1所示,由主要实现 电话功能的Modem模块110和主要进行附加功能(例如前文中提及的文字处理、邮件、多媒 体等应用)的应用模块120 (通常也称为Application模块)组成,Modem模块110和应用 模块120分别独立设置,为了便于描述,下面将只对与固件更新过程有关的电路单元进行 说明,本领域技术人员熟知的其它功能单元将在叙述中省略 所述Modem模块110,进一步包括第一处理器单元lll,或非存储器单元112和第 一串行通信端口 113 ;所述第一串行通信端口 113与应用模块120相连进行通信;
所述应用模块120,进一步包括第二处理器单元121,与非存储器单元122,第二串 行通信端口 123和外部串行通信端口 124 ;所述第二串行通信端口 123与Modem模块l 10相 连进行通信,而外部串行通信端口 124则用于与智能手机外部的其他设备(例如上位PC机 或其它手持设备)进行连接。 由于目前的手机生产是一个协作化程度很高的行业,所述的Modem模块110和应 用模块120通常分别由不同的集成方案解决商分别提供,再由手机开发制造商进行整合连 接而形成最终产品。由于所述两个模块一般来自不同的生产厂商,因此其各自的固件更新 工具常常是独立存在的,对它们进行固件更新时就需要分别进行。以下分别详细介绍
由于所述第一串行通信端口在与应用模块进行集成时被用作与应用模块中的第 二串行通信端口相连,因此对于Modem模块的固件更新,根据所述第一串行通信端口是否 占用分成两种方式,第一种是在所述第一串行通信端口空闲的情况下(即Modem模块尚未 与应用模块进行整合连接,此时所述第一串行通信端口空闲),将Modem模块通过该第一 串行通信端口与上位机相连进行固件更新;另一种则是在所述第一串行通信端口占用的情 况下(即Modem模块与应用模块完成整合连接,此时所述第一串行通信端口被占用),将Modem模块通过该第一串行通信端口与上位机相连进行固件更新。两种情况下的具体固件 更新流程基本相同,区别仅在于 第一种情况下所述第一串行通信端口处于空闲状态,因此可以直接与上位机(通
常为PC机)进行连接,由上位机对其进行固件更新;而第二种情况下需要预先在将Modem
模块与应用模块进行整合连接时为所述第一串行通信端口设置一个状态切换引脚,在需
要对Modem模块进行固件更新时,则将该引脚设为固件更新有效的状态,此时所述第一串
行通信端口与应用模块的连接断开,从而可以按照与第一种情况完全相同的方法对所述
Modem模块进行固件更新;而当该引脚处于固件更新无效的状态时,所述第一串行通信端
口用于与应用模块进行通信连接,此时则无法对该Modem模块进行固件更新。 所述对Modem模块进行固件更新的方法如图2所示,具体流程包括 步骤201 :Modem模块上电后,向上位机发送同步字节确认请求; 步骤202 :若Modem模块在设定时间内接收到上位机返回的确认消息,则进入固件
更新下载模式; 步骤203 :Modem模块下载预先保存在上位机上的配置代码,根据所述配置代码配 置并建立Modem模块与上位机之间的数据传输通道; 步骤204 :利用所述建立的数据传输通道从上位机上进一步下载Modem模块的固 件更新文件,将所述固件更新文件下载保存到或非存储器当中。
至此,对Modem模块的固件更新流程结束。 至于应用模块的更新流程,其与步骤201 204完全相同,区别仅在于步骤201 204中的执行主体相应地应为应用模块,以及所述应用模块与上位机的通讯是通过外部串 行通信端口进行的。 由上述说明可见,在现有技术中,无论是手机开发制造商在生产整合过程中的开 发测试、还是手机应用开发商在二次开发过程中的调试设置,每次进行固件更新时,都需要 在两个不同的固件更新工具中对两个模块分别进行上述固件更新流程,这显然并不方便。 尤其当需要进行固件更新的手机数量较多时,现有技术的这种固件更新方法必然需要花费 大量的时间,从而严重降低工作效率,使得整个固件更新的过程耗时费力。

发明内容
本发明提供一种固件更新的方法和系统,能够整合应用模块和Modem模块的更新 流程,提高固件更新的速度和效率。 为达到上述目的,本发明的技术方案具体是这样实现的
—种固件更新的方法,该方法包括 在对应用模块进行固件更新的过程中,将通信模块的固件更新文件、预先设置的 应用程序连同应用模块的固件更新文件下载到应用模块并保存; 通信模块获取所述应用程序,利用所述应用程序建立与应用模块的数据传输通 道,再通过所述数据传输通道从应用模块下载通信模块的固件更新文件,并保存到通信模 块自身的存储器当中,完成通信模块的固件更新。 所述通信模块获取所述应用程序,利用所述应用程序建立与应用模块的数据传输 通道的方法包括
7
应用模块按照所述应用程序的指示给通信模块上电,接收到通信模块返回的同步
字节确认请求后,再按照所述应用程序的指示向通信模块返回确认消息; 若通信模块在设定时间内接收到所述确认消息,则通信模块下载所述应用程序中
包含的配置代码,根据所述配置代码配置并建立通信模块与应用模块间的数据传输通道。 所述将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新
文件下载到应用模块并保存的方法包括 将所述通信模块的固件更新文件、预先设置的应用程序包含在应用模块的固件更 新文件当中,同时下载到应用模块的随机存取内存RAM后,再将RAM中的所述内容写入应用 模块的存储器当中。 所述将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新 文件下载到应用模块并保存的方法包括 将预先设置的应用程序连同应用模块的固件更新文件一起,在对应用模块进行固 件更新的过程中共同下载到应用模块的RAM后,再将RAM中的所述内容写入应用模块的存 储器当中; 应用模块运行所述应用程序,下载通信模块的固件更新文件到应用模块的RAM 后,再将RAM中的内容写入应用模块的存储器当中。 利用所述数据传输通道从应用模块下载通信模块的固件更新文件,并保存到通信 模块自身的存储器当中,完成通信模块的固件更新的方法包括 利用所述建立的数据传输通道从应用模块的存储器中下载通信模块的固件更新 文件,将所述固件更新文件下载保存到通信模块的存储器当中。 所述将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新 文件下载到应用模块并保存的方法包括 将预先设置的应用程序连同应用模块的固件更新文件一起,在对应用模块进行固 件更新的过程中共同下载到应用模块的RAM后,再将RAM中的所述内容写入应用模块的存 储器当中; 应用模块运行所述应用程序,下载通信模块的固件更新文件并保存到应用模块的 RAM当中。 利用所述数据传输通道从应用模块下载通信模块的固件更新文件并保存到通信 模块的存储器当中,完成通信模块的固件更新的方法包括 利用所述建立的数据传输通道从应用模块的RAM中下载通信模块的固件更新文 件,将所述固件更新文件下载保存到通信模块的存储器当中。
—种固件更新的系统,该系统包括应用模块和通信模块; 应用模块,用于从外部将通信模块的固件更新文件、预先设置的应用程序连同应 用模块的固件更新文件下载到应用模块并保存;还用于向通信模块发送所述应用程序,以 及利用通信模块建立的数据传输通道将所述通信模块的固件更新文件发送给通信模块;
通信模块,用于从应用模块获取所述应用程序,利用所述应用程序建立与应用模 块的数据传输通道,利用所述数据传输通道从应用模块下载通信模块的固件更新文件,并 保存到通信模块自身的存储器当中,完成通信模块的固件更新。 所述应用模块进一步包括第二处理器单元、第二存储器单元、第二串行通信端口和外部串行通信端口; 所述第二处理器单元,通过第二串行通信端口与通信模块相连,用于通过外部串
行通信端口从外部下载包含有通信模块的固件更新文件和预先设置的应用程序的应用模
块的固件更新文件,并发送到所述第二存储器单元;还用于按照所述应用程序的指示给通
信模块上电,通过第二串行通信端口接收所述通信模块发送的同步字节确认请求并通过第
二串行通信端口向其返回确认消息;之后将第二存储器单元中保存的应用程序中包含的配
置代码通过第二串行通信端口发送给通信模块,利用根据所述配置代码建立的数据传输通
道,通过第二串行通信端口将通信模块的固件更新文件传输给通信模块; 所述第二串行通信端口,用于连接第二处理器单元和通信模块,并转发所有第二
处理器单元和通信模块之间的通讯消息; 所述外部串行通信端口,用于将应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序转发给第二处理器单元; 所述第二存储器单元,用于保存第二处理器单元发来的应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序,并接收第二处理器单元的读取调用,将所述应用程序中包含的配置代码返回给第二处理器单元,还将所述通信模块的固件更新文件返回给第二处理器单元。 所述应用模块进一步包括第二处理器单元、第二存储器单元、第二串行通信端口和外部串行通信端口; 所述第二处理器单元,通过第二串行通信端口与通信模块相连,用于通过外部串行通信端口从外部下载应用模块的固件更新文件和预先设置的应用程序,并发送到所述第二存储器单元,运行所述应用程序,通过外部串行通信端口从外部下载通信模块的固件更新文件并发送到所述第二存储器单元;还用于按照所述应用程序的指示给通信模块上电,通过第二串行通信端口接收所述通信模块发送的同步字节确认请求并通过第二串行通信端口向其返回确认消息;之后将第二存储器单元中保存的应用程序中包含的配置代码通过第二串行通信端口发送给通信模块,利用根据所述配置代码建立的数据传输通道,通过第二串行通信端口将通信模块的固件更新文件传输给通信模块; 所述第二串行通信端口,用于连接第二处理器单元和通信模块,并转发所有第二处理器单元和通信模块之间的通讯消息; 所述外部串行通信端口,用于将应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序转发给第二处理器单元; 所述第二存储器单元,用于保存第二处理器单元发来的应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序,并接收第二处理器单元的读取调用,将所述应用程序中包含的配置代码返回给第二处理器单元,还将所述通信模块的固件更新文件返回给第二处理器单元。 所述通信模块进一步包括第一处理器单元、第一存储器单元和第一串行通信端□; 所述第一处理器单元,通过第一串行通信端口与应用模块相连,用于在上电后通过第一串行通信端口向应用模块发送同步确认请求,当在设定时间内通过第一串行通信端口接收到所述应用模块返回的确认消息后,通过第一串行通信端口从所述应用模块下载所
9述应用程序中包含的配置代码,根据所述配置代码配置并建立通信模块与应用模块间的数据传输通道,利用所述通道并通过第一串行通信端口从应用模块的第二存储器单元下载通信模块的固件更新文件并发送给第一存储器单元; 所述第一存储器单元,用于接收第一处理器单元发送的通信模块的固件更新文件并保存; 所述第一串行通信端口,用于连接第一处理器单元和应用模块,并转发所有应用模块和第一处理器单元之间的通讯消息。 所述应用模块进一步包括第二处理器单元、第二存储器单元、第二串行通信端口和外部串行通信端口; 所述第二处理器单元,通过第二串行通信端口与通信模块相连,用于通过外部串行通信端口从外部下载应用模块的固件更新文件和预先设置的应用程序,并发送到所述第二存储器单元;运行所述应用程序,通过外部串行通信端口从外部下载通信模块的固件更新文件并保存在第二处理器单元自身的内存缓冲区内;还用于按照所述应用程序的指示给通信模块上电,通过第二串行通信端口接收所述通信模块发送的同步字节确认请求并通过第二串行通信端口向其返回确认消息;之后将第二存储器单元中保存的应用程序中包含的配置代码通过第二串行通信端口发送给通信模块,利用根据所述配置代码建立的数据传输通道,通过第二串行通信端口将所述内存缓冲区内的通信模块的固件更新文件传输给通信模块; 所述第二串行通信端口,用于连接第二处理器单元和通信模块,并转发所有第二处理器单元和通信模块之间的通讯消息; 所述外部串行通信端口,用于将应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序转发给第二处理器单元; 所述第二存储器单元,用于保存第二处理器单元发来的应用模块的固件更新文件和预先设置的应用程序,并接收第二处理器单元的读取调用,将所述应用程序中包含的配置代码返回给第二处理器单元。 所述通信模块进一步包括第一处理器单元、第一存储器单元和第一串行通信端□; 所述第一处理器单元,通过第一串行通信端口与应用模块相连,用于在上电后通过第一串行通信端口向应用模块发送同步确认请求,当在设定时间内通过第一串行通信端口接收到所述应用模块返回的确认消息后,通过第一串行通信端口从所述应用模块下载所述应用程序中包含的配置代码,根据所述配置代码配置并建立通信模块与应用模块间的数据传输通道;利用所述通道并通过第一串行通信端口从应用模块下载通信模块的固件更新文件并发送给第一存储器单元; 所述第一存储器单元,用于接收第一处理器单元发送的通信模块的固件更新文件并保存; 所述第一串行通信端口,用于连接第一处理器单元和应用模块,并转发所有应用模块和第一处理器单元之间的通讯消息。 所述通信模块中的第一存储器单元及应用模块中的第二存储器单元,均为任意类型的非易失性存储器。
由上述的技术方案可见,本发明提供的这种固件更新的方法和系统,通过预先设 置应用程序并在对应用模块进行固件更新的过程中,连同Modem模块的固件更新文件一并 下载到应用模块当中,使得应用模块运行所述应用程序之后,能够在应用模块上模拟上位 机的功能,从而Modem模块能够将所述Modem模块的固件更新文件进一步下载到自身的存 储器当中,从而同时实现了对应用模块和Modem模块的固件更新;本发明将现有技术中需 要分别独立进行的应用模块固件更新和Modem模块固件更新整合为一个流程,且不需要根 据Modem模块的第一串行通信端口是否占用而采用不同的固件更新方式,不仅操作更加便 利,还大大提高了智能手机进行固件更新的速度和效率。


图1为现有技术中智能手机的硬件架构的结构示意图。
图2为现有技术中对Modem模块进行固件更新的流程示意图。
图3为本发明实施例中固件更新的方法的流程示意图。
图4为本发明实施例中固件更新的系统的组成结构示意图。
具体实施例方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对 本发明进一步详细说明。 本发明实施例提供一种固件更新的方法,此时Modem模块与应用模块已经完成整 合连接,其流程如图3所示,具体包括 步骤301 :在对应用模块进行固件更新的过程中,将Modem模块的固件更新文件、 预先设置的应用程序MiniApp连同应用模块的固件更新文件下载到应用模块并保存;
其中,对应用模块进行固件更新的方法与现有技术相同,不再展开说明;同时容易 理解,所述步骤301中的将Modem模块的固件更新文件、预先设置的应用程序MiniApp连同 应用模块的固件更新文件下载的方法可以有多种实施方式,例如 1)同时下载所有文件——即,将所述Modem模块的固件更新文件、预先设置的应 用程序MiniApp包含在应用模块的固件更新文件当中,一并下载到应用模块。
2)分两次进行下载,此时所述步骤301为 步骤301a :将Modem模块的固件更新文件连同应用模块的固件更新文件一起,在 对应用模块进行固件更新的过程中共同下载到应用模块并保存; 步骤301b :应用模块再从上位机下载预先设置的应用程序MiniApp并进行保存。
3)分两次进行下载,此时步骤301为 步骤301c :将预先设置的应用程序MiniApp连同应用模块的固件更新文件一起, 在对应用模块进行固件更新的过程中共同下载到应用模块并保存; 步骤30Id :应用模块运行所述应用程序,再从上位机下载Modem模块的固件更新 文件并进行保存。 上述均属于本领域技术人员容易想到的替代实施方式,限于篇幅不再一一列举,
应当指出这些均为本发明可以采用的实施方式,本发明并不做严格的具体限定。 步骤302 :Modem模块获取所述应用程序,利用所述应用程序建立与应用模块的数据传输通道,通过所述数据传输通道从应用模块下载Modem模块的固件更新文件,并保存 到Modem模块自身的存储器当中,完成固件更新流程。
所述步骤302进一步包括 步骤302a :应用模块按照所述应用程序的指示给Modem模块上电; 由于Modem模块与应用模块此时已经完成整合连接,因此Modem模块通过第一串
行通信端口与应用模块相连,同时其电源的开启和关断受到智能手机内部的通用输入输出
端口 (GPI0)控制引脚的统一控制,从而应用模块可以通过对该GPIO控制引脚的操作控制
Modem模块的接通和关断。此部分虽未在前文的电路结构中示出,但由于其为本领与技术人
员的公知常识,因此不再详细说明。 步骤302b :Modem模块上电后,向应用模块发送同步字节确认请求; 需要明确的是,Modem模块与应用模块的所有控制命令和数据传输均通过所述第
一串行通信端口和第二串行通信端口的连接通信实现,此处一并说明,后文中将不再赘述。 步骤302c :应用模块接收到所述请求后,若在所述应用程序的控制下、在设定时
间(该设定时间通常为ms级, 一般为50ms)内向Modem模块返回确认消息,则Modem模块
根据该确认消息进入固件更新下载模式;若超时未返回确认消息,则Modem模块进入正常
工作模式,所述正常工作模式与本发明无关,故不再进行介绍。 步骤302d :Modem模块下载所述应用程序中包含的配置代码,根据所述配置代码 配置并建立Modem模块与应用模块间的数据传输通道; 步骤302e :利用所述建立的数据传输通道从应用模块进一步下载Modem模块的固 件更新文件并保存到Modem模块的或非存储器当中,完成对Modem模块的固件更新。
其中,步骤301在实际应用中采用1)、2)或3)的实施方式时
应用模块将文件读取到随机存取内存(Random Access Memory,RAM)后,再将RAM 中的文件写入与非存储器当中。 由于RAM的读写速度比与非存储器的读写速度更快,同时Modem模块的固件更新 文件一般体积较小不会对RAM的存储空间造成实质影响,因此,为了进一步加快所述固件 更新的速度和效率,对于步骤301的第3)种实施方式而言,所述步骤301还可以为
将预先设置的应用程序MiniApp连同应用模块的固件更新文件一起,在对应用模 块进行固件更新的过程中共同下载到应用模块并保存到与非存储器当中;
应用模块运行所述应用程序,从上位机下载Modem模块的固件更新文件,并将所 述Modem模块的固件更新文件保存在应用模块的RAM当中。 之所以对于第1)和2)的实施方式不能将所述Modem模块的固件更新文件保存在 应用模块的RAM当中,是由于当应用模块第一次运行所述应用程序时,会对应用模块的RAM 进行重新初始化,因此,对于第1)和2)的实施方式,在运行应用程序对RAM进行初始化的 过程中,会将RAM中的已有内部全部清空,因而无法将所述Modem模块的固件更新文件保存 在RAM当中。而第3)种实施方式,由于运行应用程序对RAM进行初始化以后,才开始下载 Modem模块的固件更新文件,因此不会存在RAM被清空的问题;此外,虽然步骤302a中还会 运行所述应用程序,但由于之前已经执行过所述应用程序(步骤302a不是第一次运行该应 用程序),因此同样不会导致RAM被清空的问题。 相应地,对于步骤301的1)或2)的实施方式,所述步骤302e为
利用所述建立的数据传输通道从应用模块的与非存储器中下载Modem模块的固 件更新文件,将所述固件更新文件下载保存到或非存储器当中。
而对于步骤301的3)的实施方式,所述步骤302e则为 利用所述建立的数据传输通道从应用模块的RAM中下载Modem模块的固件更新文 件,将所述固件更新文件下载保存到或非存储器当中。 需要说明的是,所述预先设置的应用程序的主要作用在于将所述配置代码先下载 到应用模块,然后所述应用程序再将该配置代码进一步发送到Modem模块,由Modem模块根 据该配置代码建立其与应用模块的数据传输通道;之后所述Modem模块再通过与所述应用 程序的交互,将Modem模块的固件更新文件通过所述数据传输通道下载到自身的存储器当 中。 最后,容易理解,前文中提及的Modem模块中的或非存储器,以及应用模块中的与
非存储器,是按照通常智能手机设备中该两个模块普遍使用的存储设备类型进行的描述,
并不表示限定,实际上所述存储器完全可以为任何类型的非易失性存储器。 本发明实施例在所述固件更新的方法的基础上,还进一步提供一种固件更新的系
统,其组成结构如图4所示,其中包括Modem模块410和应用模块420 ; 应用模块420,用于从外部将Modem模块410的固件更新文件、预先设置的应用程
序连同应用模块420的固件更新文件下载到应用模块420并保存;还用于向Modem模块410
发送所述应用程序,以及利用Modem模块410建立的数据传输通道将所述Modem模块410
的固件更新文件发送给Modem模块410 ; Modem模块410,用于从应用模块420获取所述应用程序,利用所述应用程序建立 与应用模块420的数据传输通道,利用所述数据传输通道从应用模块420下载Modem模块 410的固件更新文件,并保存到Modem模块410自身的存储器当中,完成Modem模块410的 固件更新。 与前文所述的方法中步骤301的不同实施方式相对应,所述应用模块420相应的 至少也包括三种实施方式 1)所述应用模块420进一步包括第二处理器单元421、与非存储器单元422、第 二串行通信端口 423和外部串行通信端口 424 ; 所述第二处理器单元421,通过第二串行通信端口 423与Modem模块410相连,用 于通过外部串行通信端口 424从外部下载包含有Modem模块410的固件更新文件和预先 设置的应用程序的应用模块420的固件更新文件,并发送到所述与非存储器单元422 ;还用 于按照所述应用程序的指示给Modem模块410上电,通过第二串行通信端口 423接收所述 Modem模块410发送的同步字节确认请求并通过第二串行通信端口 423向其返回确认消息; 之后将与非存储器单元422中保存的应用程序中包含的配置代码通过第二串行通信端口 423发送给Modem模块410,利用根据所述配置代码建立的数据传输通道,通过第二串行通 信端口 423将Modem模块410的固件更新文件传输给Modem模块410 ;
2)所述应用模块420则进一步包括第二处理器单元421、与非存储器单元422、 第二串行通信端口 423和外部串行通信端口 424 ; 所述第二处理器单元421,通过第二串行通信端口 423与Modem模块410相连,用 于通过外部串行通信端口 424从外部下载应用模块420的固件更新文件和预先设置的应用
13程序,并发送到所述与非存储器单元422,运行所述应用程序,通过外部串行通信端口 424 从外部下载Modem模块410的固件更新文件并发送到所述与非存储器单元422 ;还用于按 照所述应用程序的指示给Modem模块410上电,通过第二串行通信端口 423接收所述Modem 模块410发送的同步字节确认请求并通过第二串行通信端口 423向其返回确认消息;之后 将与非存储器单元422中保存的应用程序中包含的配置代码通过第二串行通信端口 423发 送给Modem模块410,利用根据所述配置代码建立的数据传输通道,通过第二串行通信端口 423将Modem模块410的固件更新文件传输给Modem模块410 ; 3)所述应用模块420进一步包括第二处理器单元421、与非存储器单元422、第 二串行通信端口 423和外部串行通信端口 424 ; 所述第二处理器单元421,通过第二串行通信端口 423与Modem模块410相连,用 于通过外部串行通信端口 424从外部下载应用模块420的固件更新文件和预先设置的应用 程序,并发送到所述与非存储器单元422 ;运行所述应用程序,通过外部串行通信端口 424 从外部下载Modem模块410的固件更新文件并保存在第二处理器单元421自身的内存缓冲 区内;还用于按照所述应用程序的指示给Modem模块410上电,通过第二串行通信端口 423 接收所述Modem模块410发送的同步字节确认请求并通过第二串行通信端口 423向其返回 确认消息;之后将与非存储器单元422中保存的应用程序中包含的配置代码通过第二串行 通信端口 423发送给Modem模块410,利用根据所述配置代码建立的数据传输通道,通过第 二串行通信端口 423将所述内存缓冲区内的Modem模块410的固件更新文件传输给Modem 模块410 ; 上述三种实施方式中,所述应用模块420中的与非存储器单元422、第二串行通信 端口 423和外部串行通信端口 424均相同,分别为 所述第二串行通信端口 423,用于连接第二处理器单元421和Modem模块410,并 转发所有第二处理器单元421和Modem模块410之间的通讯消息;所述外部串行通信端口 424,用于将应用模块420的固件更新文件、Modem模块410
的固件更新文件以及预先设置的应用程序转发给第二处理器单元421 ; 所述与非存储器单元422,用于保存第二处理器单元421发来的应用模块420的固
件更新文件和预先设置的应用程序,并接收第二处理器单元421的读取调用,将所述应用
程序中包含的配置代码返回给第二处理器单元421。 对于所述1)和2)的实施方式,对应的所述Modem模块410的第一种实施方式,此 时所述Modem模块410进一步包括第一处理器单元411、或非存储器单元412和第一串行 通信端口 413 ; 所述第一处理器单元411,通过第一串行通信端口 413与应用模块420相连,用于 在上电后通过第一串行通信端口 413向应用模块420发送同步确认请求,当在设定时间内 通过第一串行通信端口 413接收到所述应用模块420返回的确认消息后,通过第一串行通 信端口 413从所述应用模块420下载所述应用程序中包含的配置代码,根据所述配置代码 配置并建立Modem模块410与应用模块420间的数据传输通道,利用所述通道并通过第一 串行通信端口 413从应用模块420的与非存储器单元422下载Modem模块410的固件更新 文件并发送给或非存储器单元412 ; 而对于3)中的实施方式,对应的所述Modem模块410则为第二种实施方式,此时
14所述Modem模块410进一步包括第一处理器单元411、或非存储器单元412和第一串行通 信端口 413 ; 所述第一处理器单元411,通过第一串行通信端口 413与应用模块420相连,用于 在上电后通过第一串行通信端口 413向应用模块420发送同步确认请求,当在设定时间内 通过第一串行通信端口 413接收到所述应用模块420返回的确认消息后,通过第一串行通 信端口 413从所述应用模块420下载所述应用程序中包含的配置代码,根据所述配置代码 配置并建立Modem模块410与应用模块420间的数据传输通道;利用所述通道并通过第一 串行通信端口 413从应用模块420下载Modem模块410的固件更新文件并发送给或非存储 器单元412 ; Modem模块410的上述两种实施方式中,所述或非存储器单元412和第一串行通信 端口 413相同,分别为 所述或非存储器单元412,用于接收第一处理器单元411发送的Modem模块410的 固件更新文件并保存; 所述第一串行通信端口 413,用于连接第一处理器单元411和应用模块420,并转 发所有应用模块420和第一处理器单元411之间的通讯消息。 需要说明的是,所述预先设置的应用程序的主要作用在于将所述配置代码先下载 到应用模块420,然后所述应用程序再将该配置代码进一步发送到Modem模块410,由Modem 模块410根据该配置代码建立其与应用模块420的数据传输通道;之后所述Modem模块410 再通过与所述应用程序的交互,将Modem模块410的固件更新文件通过所述数据传输通道 下载到自身的存储器当中。 最后需要指出,前文中提及的Modem模块410中的第一存储器单元412,以及应用 模块420中的第二存储器单元422,可以为任何类型的非易失性存储器,本发明实施例不作 具体限定。 同时,容易理解,本发明实施例虽然是就智能手机当中的Modem模块和应用模块 的固件更新流程进行的描述和说明,但并不表示本发明只能够应用于智能手机的固件更新 流程,对于手机的生产、调试和二次开发的整个过程中,任何需要同时对Modem模块和应用 模块同时进行更新的场景下,都同样可以应用本发明进行实现;而且,对于仅需要对Modem 模块单独进行固件更新的场景中,也同样可以应用本发明进行实现。 根据上述描述可见,所述固件更新的方法和系统,通过预先设置应用程序并在对 应用模块进行固件更新的过程中一并下载到应用模块当中,使得应用模块运行所述应用程 序之后能够在应用模块上模拟上位机的功能,从而Modem模块能够将下载到应用模块中的 Modem模块的固件更新文件通过应用模块与Modem模块的相互通讯进一步下载到自身的存 储器当中,最终同时实现了对应用模块和Modem模块的固件更新;本发明将现有技术中需 要分别独立进行的应用模块固件更新和Modem模块固件更新整合为一个流程,且不需要根 据Modem模块的串行通信端口是否占用而采用不同的固件更新方式,不仅操作更加便利, 还大大提高了智能手机进行固件更新的速度和效率。
权利要求
一种固件更新的方法,其特征在于,该方法包括在对应用模块进行固件更新的过程中,将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新文件下载到应用模块并保存;通信模块获取所述应用程序,利用所述应用程序建立与应用模块的数据传输通道,再通过所述数据传输通道从应用模块下载通信模块的固件更新文件,并保存到通信模块自身的存储器当中,完成通信模块的固件更新。
2. 根据权利要求1所述的方法,其特征在于,所述通信模块获取所述应用程序,利用所 述应用程序建立与应用模块的数据传输通道的方法包括应用模块按照所述应用程序的指示给通信模块上电,接收到通信模块返回的同步字节 确认请求后,再按照所述应用程序的指示向通信模块返回确认消息;若通信模块在设定时间内接收到所述确认消息,则通信模块下载所述应用程序中包含 的配置代码,根据所述配置代码配置并建立通信模块与应用模块间的数据传输通道。
3. 根据权利要求2所述的方法,其特征在于,所述将通信模块的固件更新文件、预先设 置的应用程序连同应用模块的固件更新文件下载到应用模块并保存的方法包括将所述通信模块的固件更新文件、预先设置的应用程序包含在应用模块的固件更新文 件当中,同时下载到应用模块的随机存取内存RAM后,再将RAM中的所述内容写入应用模块 的存储器当中。
4. 根据权利要求2所述的方法,其特征在于,所述将通信模块的固件更新文件、预先设 置的应用程序连同应用模块的固件更新文件下载到应用模块并保存的方法包括将预先设置的应用程序连同应用模块的固件更新文件一起,在对应用模块进行固件更 新的过程中共同下载到应用模块的RAM后,再将RAM中的所述内容写入应用模块的存储器 当中;应用模块运行所述应用程序,下载通信模块的固件更新文件到应用模块的RAM后,再 将RAM中的内容写入应用模块的存储器当中。
5. 根据权利要求3或4所述的方法,其特征在于,利用所述数据传输通道从应用模块下 载通信模块的固件更新文件,并保存到通信模块自身的存储器当中,完成通信模块的固件 更新的方法包括利用所述建立的数据传输通道从应用模块的存储器中下载通信模块的固件更新文件, 将所述固件更新文件下载保存到通信模块的存储器当中。
6. 根据权利要求2所述的方法,其特征在于,所述将通信模块的固件更新文件、预先设 置的应用程序连同应用模块的固件更新文件下载到应用模块并保存的方法包括将预先设置的应用程序连同应用模块的固件更新文件一起,在对应用模块进行固件更 新的过程中共同下载到应用模块的RAM后,再将RAM中的所述内容写入应用模块的存储器当中;应用模块运行所述应用程序,下载通信模块的固件更新文件并保存到应用模块的RAM 当中。
7. 根据权利要求6所述的方法,其特征在于,利用所述数据传输通道从应用模块下载 通信模块的固件更新文件并保存到通信模块的存储器当中,完成通信模块的固件更新的方 法包括利用所述建立的数据传输通道从应用模块的RAM中下载通信模块的固件更新文件,将 所述固件更新文件下载保存到通信模块的存储器当中。
8. —种固件更新的系统,其特征在于,该系统包括应用模块和通信模块; 应用模块,用于从外部将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新文件下载到应用模块并保存;还用于向通信模块发送所述应用程序,以及利 用通信模块建立的数据传输通道将所述通信模块的固件更新文件发送给通信模块;通信模块,用于从应用模块获取所述应用程序,利用所述应用程序建立与应用模块的 数据传输通道,利用所述数据传输通道从应用模块下载通信模块的固件更新文件,并保存 到通信模块自身的存储器当中,完成通信模块的固件更新。
9. 根据权利要求8所述的系统,其特征在于,所述应用模块进一步包括第二处理器单 元、第二存储器单元、第二串行通信端口和外部串行通信端口 ;所述第二处理器单元,通过第二串行通信端口与通信模块相连,用于通过外部串行通 信端口从外部下载包含有通信模块的固件更新文件和预先设置的应用程序的应用模块的 固件更新文件,并发送到所述第二存储器单元;还用于按照所述应用程序的指示给通信模 块上电,通过第二串行通信端口接收所述通信模块发送的同步字节确认请求并通过第二串 行通信端口向其返回确认消息;之后将第二存储器单元中保存的应用程序中包含的配置代 码通过第二串行通信端口发送给通信模块,利用根据所述配置代码建立的数据传输通道, 通过第二串行通信端口将通信模块的固件更新文件传输给通信模块;所述第二串行通信端口,用于连接第二处理器单元和通信模块,并转发所有第二处理 器单元和通信模块之间的通讯消息;所述外部串行通信端口,用于将应用模块的固件更新文件、通信模块的固件更新文件 以及预先设置的应用程序转发给第二处理器单元;所述第二存储器单元,用于保存第二处理器单元发来的应用模块的固件更新文件、通 信模块的固件更新文件以及预先设置的应用程序,并接收第二处理器单元的读取调用,将 所述应用程序中包含的配置代码返回给第二处理器单元,还将所述通信模块的固件更新文 件返回给第二处理器单元。
10. 根据权利要求8所述的系统,其特征在于,所述应用模块进一步包括第二处理器 单元、第二存储器单元、第二串行通信端口和外部串行通信端口 ;所述第二处理器单元,通过第二串行通信端口与通信模块相连,用于通过外部串行通 信端口从外部下载应用模块的固件更新文件和预先设置的应用程序,并发送到所述第二存 储器单元,运行所述应用程序,通过外部串行通信端口从外部下载通信模块的固件更新文 件并发送到所述第二存储器单元;还用于按照所述应用程序的指示给通信模块上电,通过 第二串行通信端口接收所述通信模块发送的同步字节确认请求并通过第二串行通信端口 向其返回确认消息;之后将第二存储器单元中保存的应用程序中包含的配置代码通过第二 串行通信端口发送给通信模块,利用根据所述配置代码建立的数据传输通道,通过第二串 行通信端口将通信模块的固件更新文件传输给通信模块;所述第二串行通信端口 ,用于连接第二处理器单元和通信模块,并转发所有第二处理 器单元和通信模块之间的通讯消息;所述外部串行通信端口,用于将应用模块的固件更新文件、通信模块的固件更新文件以及预先设置的应用程序转发给第二处理器单元;所述第二存储器单元,用于保存第二处理器单元发来的应用模块的固件更新文件、通 信模块的固件更新文件以及预先设置的应用程序,并接收第二处理器单元的读取调用,将 所述应用程序中包含的配置代码返回给第二处理器单元,还将所述通信模块的固件更新文 件返回给第二处理器单元。
11. 根据权利要求9或10所述的系统,其特征在于,所述通信模块进一步包括第一处 理器单元、第一存储器单元和第一串行通信端口 ;所述第一处理器单元,通过第一串行通信端口与应用模块相连,用于在上电后通过第 一串行通信端口向应用模块发送同步确认请求,当在设定时间内通过第一串行通信端口接 收到所述应用模块返回的确认消息后,通过第一串行通信端口从所述应用模块下载所述应 用程序中包含的配置代码,根据所述配置代码配置并建立通信模块与应用模块间的数据传 输通道,利用所述通道并通过第一串行通信端口从应用模块的第二存储器单元下载通信模 块的固件更新文件并发送给第一存储器单元;所述第一存储器单元,用于接收第一处理器单元发送的通信模块的固件更新文件并保存;所述第一串行通信端口 ,用于连接第一处理器单元和应用模块,并转发所有应用模块 和第一处理器单元之间的通讯消息。
12. 根据权利要求8所述的系统,其特征在于,所述应用模块进一步包括第二处理器 单元、第二存储器单元、第二串行通信端口和外部串行通信端口 ;所述第二处理器单元,通过第二串行通信端口与通信模块相连,用于通过外部串行通 信端口从外部下载应用模块的固件更新文件和预先设置的应用程序,并发送到所述第二存 储器单元;运行所述应用程序,通过外部串行通信端口从外部下载通信模块的固件更新文 件并保存在第二处理器单元自身的内存缓冲区内;还用于按照所述应用程序的指示给通信 模块上电,通过第二串行通信端口接收所述通信模块发送的同步字节确认请求并通过第二 串行通信端口向其返回确认消息;之后将第二存储器单元中保存的应用程序中包含的配 置代码通过第二串行通信端口发送给通信模块,利用根据所述配置代码建立的数据传输通 道,通过第二串行通信端口将所述内存缓冲区内的通信模块的固件更新文件传输给通信模 块;所述第二串行通信端口,用于连接第二处理器单元和通信模块,并转发所有第二处理 器单元和通信模块之间的通讯消息;所述外部串行通信端口,用于将应用模块的固件更新文件、通信模块的固件更新文件 以及预先设置的应用程序转发给第二处理器单元;所述第二存储器单元,用于保存第二处理器单元发来的应用模块的固件更新文件和预 先设置的应用程序,并接收第二处理器单元的读取调用,将所述应用程序中包含的配置代 码返回给第二处理器单元。
13. 根据权利要求12所述的系统,其特征在于,所述通信模块进一步包括第一处理器 单元、第一存储器单元和第一串行通信端口;所述第一处理器单元,通过第一串行通信端口与应用模块相连,用于在上电后通过第 一串行通信端口向应用模块发送同步确认请求,当在设定时间内通过第一串行通信端口接收到所述应用模块返回的确认消息后,通过第一串行通信端口从所述应用模块下载所述应 用程序中包含的配置代码,根据所述配置代码配置并建立通信模块与应用模块间的数据传 输通道;利用所述通道并通过第一串行通信端口从应用模块下载通信模块的固件更新文件 并发送给第一存储器单元;所述第一存储器单元,用于接收第一处理器单元发送的通信模块的固件更新文件并保存;所述第一串行通信端口 ,用于连接第一处理器单元和应用模块,并转发所有应用模块 和第一处理器单元之间的通讯消息。
14.根据权利要求8、9、10、12或13所述的系统,所述通信模块中的第一存储器单元及 应用模块中的第二存储器单元,均为任意类型的非易失性存储器。
全文摘要
本发明公开了一种固件更新的方法,包括在对应用模块进行固件更新的过程中,将通信模块的固件更新文件、预先设置的应用程序连同应用模块的固件更新文件下载到应用模块并保存;通信模块获取所述应用程序,利用所述应用程序建立与应用模块的数据传输通道,再通过所述数据传输通道从应用模块下载通信模块的固件更新文件,并保存到通信模块自身的存储器当中,完成通信模块的固件更新。本发明还同时提供一种固件更新的系统。本发明提供的这种固件更新的方法和系统,将现有技术中需要分别独立进行的应用模块固件更新和通信模块固件更新整合为一个流程,操作更加便利,且大大提高了智能手机进行固件更新的速度和效率。
文档编号H04M1/725GK101790252SQ200910045919
公开日2010年7月28日 申请日期2009年1月22日 优先权日2009年1月22日
发明者李烨, 林嘉安, 蔡世光 申请人:英华达(上海)电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1