一种远程无线编程的方法及支持远程无线编程的芯片.pdf

上传人:32 文档编号:1003346 上传时间:2018-03-24 格式:PDF 页数:18 大小:1,005.21KB
返回 下载 相关 举报
摘要
申请专利号:

CN200810222591.1

申请日:

2008.09.22

公开号:

CN101685401A

公开日:

2010.03.31

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/445申请日:20080922|||公开

IPC分类号:

G06F9/445

主分类号:

G06F9/445

申请人:

中国科学院计算技术研究所

发明人:

陆世龙; 黄 希; 崔 莉

地址:

100190北京市海淀区中关村科学院南路6号

优先权:

专利代理机构:

北京泛华伟业知识产权代理有限公司

代理人:

王 勇

PDF下载: PDF下载
内容摘要

本发明公开一种远程无线编程的方法及支持远程无线编程的芯片,包括:处理器初始化射频模块,探测无线网络发送的数据包;通过无线网络接收程序下载包,确定所述程序下载包用于本地设备,设置编程环境;处理器将所述程序下载包中的程序文件校验并由硬件编程模块缓存在缓存区中;硬件编程模块挂起处理器,将缓存后的所述程序文件写入到程序存储器中,更新程序文件。本发明支持远程无线编程,方便程序更新;可以有选择性的针对多个设备进行一对多的编程;可以实现程序存储器的整体更新。

权利要求书

1、  一种支持远程编程的芯片,包括处理器、数据存储器、程序存储器,其特征在于,所述芯片还包括硬件编程模块;
其中,所述硬件编程模块将接收的所述程序文件缓存在所述数据存储器中,控制处理器的挂起、启动和内部复位,将缓存在所述数据存储器中的完整程序文件存储在所述程序存储器中。

2、
  权利要求1的芯片,还包括:射频模块,所述射频模块与所述处理器相连接,用于无线接收程序文件。

3、
  权利要求1的芯片,还包括:第一选通器和第二选通器,所述第一选通器用于选通所述数据存储器和硬件编程模块或者和处理器的连接,所述第二选通器用于选通所述程序存储器和硬件编程模块或者和处理器的连接。

4、
  权利要求2的芯片,其中,所述处理器基于无线通信协议,确定所接收到的数据包为程序文件;根据所述程序文件中的程序更新设备号,确定该程序下载包用于本地设备,设置编程标志用于触发缓存并校验缓存的完整程序文件。

5、
  权利要求1的芯片,其中,所述处理器是根据程序存储器中的程序代码完成相应操作的逻辑器件,可选择现有的IP模块或开放源代码实现。

6、
  权利要求1的芯片,其中,所述处理器比较所述程序文件中更新程序文件和数据存储区的剩余空间,如果数据存储区中空间不足,释放已用空间,重新分配程序缓存区;如果空间足够,在数据存储区中建立程序缓存区。

7、
  权利要求6的芯片,其中,所述处理器对所述程序文件进行校验操作,以确定接收数据正确,如果不正确,发送重传请求,其中,可采用CRC校验方式。

8、
  权利要求3的芯片,其中,所述硬件编程模块通过控制选通器来选择处理器与数据存储器或者程序存储器的连接:在非编程模式以及编程模式中的程序缓存阶段,所述硬件编程模块控制所述第一选通器将处理器与数据存储器连接;在编程模式中的程序写入阶段,硬件编程模块控制所述第二选通器将数据存储器以及程序存储器与其自身连接,所述硬件编程模块从数据存储器中读取程序文件并写入程序存储器。

9、
  权利要求8的芯片,其中,所述硬件编程模块用于在处理器发送的程序文件缓存完成后,挂起处理器,切换两个选通器将数据存储器和程序存储器与所述硬件编程模块连接,将数据存储器中程序缓存区的程序文件按地址写入程序存储器中,更新相应程序文件。

10、
  权利要求1的芯片,其中,所述处理器在程序文件缓存完成后,通知所述硬件编程模块进入程序写入阶段,并根据程序文件中的更新程序地址设定需要更新的程序存储器的地址。

11、
  权利要求1的芯片,其中,所述硬件编程模块在程序文件缓存过程中,监控到编程超时,则退出编程过程,释放缓存的程序文件,重启探测接收程序下载包。

12、
  权利要求1的芯片,其中,所述硬件编程模块提供内部复位信号控制,实现对内部复位信号的控制,外部复位信号和所述内部复位信号控制作为或门的输入,所述或门的输出端与所述处理器相连接,用于复位所述处理器和各功能模块。

13、
  一种远程编程的方法,包括:
步骤10)、接收程序下载包;
步骤20)、将所述程序下载包中的程序文件缓存并完整接收;
步骤30)、挂起处理器,将缓存后的完整的所述程序文件写入到程序存储器中,更新所述程序存储器中的程序文件。

14、
  权利要求13的方法,还包括:
步骤40)、在程序文件缓存过程中,如果编程超时,则退出编程过程,释放缓存的程序文件,重新接收程序下载包。

15、
  权利要求13的方法,其中,步骤10)包括:
步骤110)、使用射频模块无线接收数据包,基于无线通信协议,确定所接收到的数据包为程序下载包;
步骤120)、处理器根据所述程序下载包中的程序更新设备号,确定该程序下载包用于本地设备;
步骤130)、处理器设置编程模式标志,开辟程序文件缓存区,启动超时定时程序。

16、
  权利要求15的方法,其中,步骤130)还包括:当退出编程时,复位编程模式标志;比较所述程序下载包中更新程序文件和数据存储区的剩余空间,如果数据存储区中空间不足,释放已用空间重新分配程序缓存区;如果空间足够,在数据存储区中建立程序缓存区。

17、
  权利要求13的方法,其中,步骤20)包括:
步骤210)、处理器通过比较程序文件,确定所述程序文件不存在于程序缓存区中;
步骤220)、处理器对所述文件进行校验操作,以确定数据正确,如果不正确,发送重传请求,其中,可采用CRC校验方式;
步骤230)、处理器将校验正确的数据缓存在数据存储器中,直到收齐。

18、
  权利要求13的方法,其中,步骤30)还包括:
步骤310)、处理器根据所述程序下载包中的程序文件地址信息,设置程序文件更新地址;
步骤320)、硬件编程模块挂起处理器和其它功能模块,其中,所述硬件编程模块与处理器相连接;
步骤330)、硬件编程模块读取缓存的所述程序文件,将所述程序文件写入所述更新地址。

说明书

一种远程无线编程的方法及支持远程无线编程的芯片
技术领域
本发明涉及芯片设计技术领域,更具体地,本发明涉及一种远程编程的方法及支持远程编程的芯片。
背景技术
在大规模系统的设计、开发和评估阶段,以及系统的实际应用过程中,通常由于应用环境的多样性及不可预料性,需要对系统的程序进行重新设置,或是更改某些算法、策略,升级系统功能,就需要对系统设备中的用户程序进行更新或者重新编程。在无人值守的应用环境中,难以进行系统设备回收及相应的有线编程,难以支持对全部或局部相关设备的批量无线程序下载,不能从根本上满足应用系统部署以后需要进行程序修改、更新、升级等相关需求。
同时在系统研发过程中,程序需要反复的修改、调试、优化,同样需要多次的编程,但反复地进行程序的单个设备逐个下载给系统开发者带来了不小的负担。
目前的嵌入式系统,大都采用有线的方式进行程序下载。其中有些系统需要通过程序下载器把程序下载到处理器的程序存储区,然后接入系统中运行,无法实现在系统运行时进行编程。此外,还存在两种编程机制:在系统编程(ISP)和在应用编程(IAP)。ISP一般是在系统启动前,通过设置相应信号线,进入编程模式,利用单片机专用的串行编程接口对单片机内部的Flash存储器进行编程。这种编程机制的实现一般需要一定的外部电路辅助实现,并且无法在系统运行时进行程序下载。IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,对另一个存储体重新编程,之后将控制从一个存储体转向另一个,可以实现在系统运行时进行部分程序下载。但这种编程机制是使用其中一块存储区的程序来更新另一块存储区中的程序,因此无法实现处理器整个程序存储器区的更新,同时由于其中的程序下载程序是固定,无法实现程序存储区的选择性更新。
此外以上编程机制都是一对一的编程方式,即每次只能对一个处理器进行程序下载,并且需要线缆连接。而目前的一些无线编程机制都是依赖于处理器对程序存储器进行操作来实现的,由于处理器的操作依赖于程序存储器中的内容,因而无法做到对整个程序存储器的更新。
发明内容
为克服现有处理器芯片在下载程序时需要专门的下载器或需要有线连接逐个进行程序更新以及无法对整个程序存储器进行更新的缺陷,本发明提出支持远程编程的芯片及一种远程编程的方法。
根据本发明的一个方面,提出了一种支持远程编程的芯片,包括处理器、数据存储器、程序存储器,其特征在于,所述芯片还包括硬件编程模块;
其中,所述硬件编程模块将接收的所述程序文件缓存在所述数据存储器中,控制处理器的挂起、启动和内部复位,将缓存在所述数据存储器中的完整程序文件存储在所述程序存储器中。
所述芯片还包括:射频模块,所述射频模块与所述处理器相连接,用于无线接收程序文件。
所述芯片还包括:第一选通器和第二选通器,所述第一选通器用于选通所述数据存储器和硬件编程模块或者和处理器的连接,所述第二选通器用于选通所述程序存储器和硬件编程模块或者和处理器的连接。
其中,所述处理器基于无线通信协议,确定所接收到的数据包为程序文件;根据所述程序文件中的程序更新设备号,确定该程序下载包用于本地设备,设置编程标志用于触发缓存并校验缓存的完整程序文件。
其中,所述处理器是根据程序存储器中的程序代码完成相应操作的逻辑器件,可选择现有的IP模块或开放源代码实现。
其中,所述处理器比较所述程序文件中更新程序文件和数据存储区的剩余空间,如果数据存储区中空间不足,释放已用空间,重新分配程序缓存区;如果空间足够,在数据存储区中建立程序缓存区。
其中,所述处理器对所述程序文件进行校验操作,以确定接收数据正确,如果不正确,发送重传请求,其中,可采用CRC校验方式。
其中,所述硬件编程模块通过控制选通器来选择处理器与数据存储器或者程序存储器的连接:在非编程模式以及编程模式中的程序缓存阶段,所述硬件编程模块控制所述第一选通器将处理器与数据存储器连接;在编程模式中的程序写入阶段,硬件编程模块控制所述第二选通器将数据存储器以及程序存储器与其自身连接,所述硬件编程模块从数据存储器中读取程序文件并写入程序存储器。
其中,所述硬件编程模块用于在处理器发送的程序文件缓存完成后,挂起处理器,切换两个选通器将数据存储器和程序存储器与所述硬件编程模块连接,将数据存储器中程序缓存区的程序文件按地址写入程序存储器中,更新相应程序文件。
其中,所述处理器在程序文件缓存完成后,通知所述硬件编程模块进入程序写入阶段,并根据程序文件中的更新程序地址设定需要更新的程序存储器的地址。
其中,所述硬件编程模块在程序文件缓存过程中,监控到编程超时,则退出编程过程,释放缓存的程序文件,重启探测接收程序下载包。
其中,所述硬件编程模块提供内部复位信号控制,实现对内部复位信号的控制,外部复位信号和所述内部复位信号控制作为或门的输入,所述或门的输出端与所述处理器相连接,用于复位所述处理器和各功能模块。
根据本发明的另一方面,提出了一种远程编程的方法,包括:
步骤10)、接收程序下载包;
步骤20)、将所述程序下载包中的程序文件缓存并完整接收;
步骤30)、挂起处理器,将缓存后的完整的所述程序文件写入到程序存储器中,更新所述程序存储器中的程序文件;
步骤40)、在程序文件缓存过程中,如果编程超时,则退出编程过程,释放缓存的程序文件,重新接收程序下载包。
其中,步骤10)包括:
步骤110)、使用射频模块无线接收数据包,基于无线通信协议,确定所接收到的数据包为程序下载包;
步骤120)、处理器根据所述程序下载包中的程序更新设备号,确定该程序下载包用于本地设备;
步骤130)、处理器设置编程模式标志,开辟程序文件缓存区,启动超时定时程序。
其中,步骤130)还包括:当退出编程时,复位编程模式标志;比较所述程序下载包中更新程序文件和数据存储区的剩余空间,如果数据存储区中空间不足,释放已用空间重新分配程序缓存区;如果空间足够,在数据存储区中建立程序缓存区。
其中,步骤20)包括:
步骤210)、处理器通过比较程序文件,确定所述程序文件不存在于程序缓存区中;
步骤220)、处理器对所述文件进行校验操作,以确定数据正确,如果不正确,发送重传请求,其中,可采用CRC校验方式;
步骤230)、处理器将校验正确的数据缓存在数据存储器中,直到收齐。
其中,步骤30)还包括:
步骤310)、处理器根据所述程序下载包中的程序文件地址信息,设置程序文件更新地址;
步骤320)、硬件编程模块挂起处理器和其它功能模块,其中,所述硬件编程模块与处理器相连接;
步骤330)、硬件编程模块读取缓存的所述程序文件,将所述程序文件写入所述更新地址。
本发明支持远程无线编程,方便程序更新;可以有选择性的针对多个设备进行一对多的编程;可以解决其无法对程序存储器整体更新的问题,实现程序存储器的整体更新或部分程序段的局部更新,并且通过硬件编程模块可以调高整体功能的效能,降低功能代价;支持按地址更新程序,比传统的整块程序文件更新的方式具有更好的灵活性和更高的工作效率;在射频模块的设计上,以及程序校验方法上,采用软硬件协同设计,具有很高的灵活性和可配置性。
附图说明
图1为支持远程无线编程功能的芯片的组成结构示意图;
图2为远程无线编程方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明提供的一种支持远程编程的芯片及远程编程的方法进行详细描述。
图1示出根据本发明一个实施例的支持远程无线编程功能的芯片,如图1所示,该芯片包括处理器1、射频模块2,硬件编程模块3、数据存储器4、程序存储器5、两个选通器6和7、或门8以及其它功能模块9。其中处理器1与硬件编程模块3通过程序下载控制线进行连接,处理器1的程序读取线和硬件编程模块3的程序下载线通过选通器7连接到程序存储器5上,处理器1和硬件编程模块3的数据读取线通过选通器6连接到数据存储器上,硬件编程模块3提供选通器6和选通器7的选通控制线,射频模块2和其他功能模块9通过总线与处理器1连接,外部复位信号线与硬件编程模块3提供的内部复位信号控制线连接到或门8的输入端,或门8的输出提供了处理器1、射频模块2以及其他功能模块2的内部复位信号,射频模块2与外部天线连接。
在进行远程无线编程时,即在远程无线编程模式下,芯片的工作运行可以分成两个阶段:程序缓存、程序写入。
处理器1是根据程序存储器中的程序代码完成相应操作的逻辑器件,可选择现有的IP模块或开放源代码实现。例如Oregano Systems的MC8051处理器源代码、ARM系列的处理器模块等。通过软件编程可以实现多种用户功能的实现,在程序缓存阶段提供对程序文件的校验及缓存功能。在芯片开始运行时,对终端操作、射频模块进行初始化操作。系统常数、系统状态、系统功能选择等进行初始化设置;对射频模块2进行初始化;初始化设置射频芯片,使其工作在正常的状态,初始化射频模块的休眠策略,包括休眠时长参数等。对系统中断处理进行初始化;初始化中断事件队列,初始化中断参数等。对系统中其他功能模块9进行初始化;按照用户的具体需求进行设置,其初始化内容与用户系统的其他模块的具体类型有关。
射频模块2提供处理器1的无线接口,用于通过无线网络接收数据。在一个实施例中,射频模块2提供对底层射频芯片的支持,可以完成对信号的调制解调功能,完成无线网络物理层的工作,然后由处理器1进行软件编程实现对网络协议的支持,如MAC协议及路由协议,从而具有一定的组网功能,实现数据的远程无线传输,并且支持多设备程序地同步更新或相关设备的单独更新。而在另一个实施例中,射频模块2可以提供对底层射频芯片的支持,完成对信号的调制解调功能,并且提供了对MAC协议及路由协议的支持,具有一定的组网功能,完成了无线网络从物理层到网络层的工作,通过此模块可以直接实现数据的无线传输。在此实施例中,处理器1对射频模块2进行配置,网络对于程序来说是完全透明的,程序只要将数据发送到射频模块2,并从射频模块2接收数据即可,不用关心数据在无线网络中是如何传输的,这在实际使用中带来很大的便利,同时在无线传感器网络中,无线发送和接收的使用频率很高,将这些网络协议硬件化,一方面提高了能效比,节省了功耗,另一方面处理器1不需要处理网络协议,能有更多资源处理其他任务,间接的提高了处理器的能力。此外,如果期望使用用户自定义的网络协议(射频模块2中不包含的网络协议),处理器1可以关闭射频模块2中的相应的协议模块,并通过软件来实现,这样做体现了芯片的灵活性和可配置性。此外通过对无线发送的数据进行加密处理,同时在射频模块2中进行解密处理,可以增加无线远程编程的安全性,以此来防止其他人员通过接收无线数据获取程序信息。
在本发明的另一优选实施例中,支持远程无线编程功能的芯片可以不包括射频模块,而是用现有的有线连接方式将本地处理器和远端服务器连接在一起,使用现有的接收方式获取远程更新数据。处理器根据现有设备使用的有线通信协议,确定所述下载包中包括下载文件。
数据存储器4是用于存储处理器数据的存储介质,一般可以采用成熟的DRAM或是SRAM等工艺实现,可以采用单端口器件也可以采用双端口器件来实现。在一个实施例中,数据存储器4采用了单端口的存储器,数据存储器4与选通器6连接,通过硬件编程模块3控制,可以切换与处理器1进行连接或是与硬件编程模块3进行连接。在程序写入阶段,数据存储器4与硬件编程模块3连接,硬件编程模块3读取其中的程序缓存文件,来下载到程序存储器5中。而在程序缓存阶段以及其他时候,数据存储器4通过总线与处理器1连接。在程序缓存阶段,处理器程序开辟数据存储器4中一段区域作为程序文件的缓存区,来缓存通过射频模块2得到的程序文件。而在非编程模式下,可以用于处理器1的数据存储区来使用。而在另一个实施例中,数据存储器4可以采用双端口期间来实现,处理器1通过总线和硬件编程模块3分别连接在双端口数据存储器4的两个端口上,可以分别对其进行数据交换操作。
程序存储器5是用于存储处理器程序的存储介质。程序存储器5一般可采用FLASH或EEPROM等成熟的工艺设计方法实现。在本实施例中,程序存储器5可划分为多个区域,如256个区域,由于目前单片机或嵌入式系统的程序地址线大都为64KByte或更多,因此每个区域将有256Byte或者更多数据。程序存储器5划分区域后,在程序下载时按区域作分区下载。每个程序下载命令包中包含所要下载的区域地址以及该区域中所有要存储的数据,当进行远程无线编程时,硬件编程模块3可以按地址把相应的程序数据写入程序存储器5的相应区域,可以灵活地实现程序存储器5内容的整体更新或具体区域更新。程序存储器5与选通器7连接,通过硬件编程模块3控制,可以切换与处理器1进行连接或是与硬件编程模块3进行连接。在程序写入阶段,程序存储器5与硬件编程模块3连接,硬件编程模块3对其进行写入操作,更新其中的程序文件。而在程序缓存阶段以及其他时候,程序存储器5与处理器1连接,由处理器1读取其中的程序内容,执行相应的操作。
硬件编程模块3实现了远程无线编程模式中程序写入阶段对程序文件更新的控制,包括在收到处理器1发送的程序文件缓存完成信号后,把处理器1挂起,同时通过选通器切换数据存储器4和程序存储器5的接口连接,读取数据存储器4中程序缓存区的程序文件,并按地址写入程序存储器5中并校验,更新整个程序存储器或进行相应程序段的更新,然后重启系统完成编程操作。
硬件编程模块3通过程序下载控制线与处理器1进行连接,通过特定的下载协议进行程序下载的控制。在本实施例中,处理器1在程序缓存阶段完成程序的缓存工作后,通过程序下载控制线接口通知硬件编程模块3进入程序写入阶段,并设定需要更新的程序区域地址。硬件编程模块3提供了内部复位信号控制线,通过或门8实现了对内部复位信号的控制,在进入程序写入阶段后,将处理器1、射频模块2以及其他功能模块9挂起。硬件编程模块3通过控制选通器6和选通器7来选择数据存储器4和程序存储器5的接口连接方式。
在非编程模式以及编程模式中的程序缓存阶段,硬件编程模块3控制数据存储器4通过总线与处理器1连接,程序存储器5通过程序读取线与处理器1连接,组成处理器1从程序存储器5读取程序,以及对数据存储器4写入或读出数据的通路。在编程模式中的程序写入阶段,硬件编程模块3控制数据存储器4以及程序存储器5与其自身连接,组成硬件编程模块3从数据存储器4中读取程序文件,并写入程序存储器5的通路。
或门8实现了复位信号逻辑,输入端与外部复位信号线以及硬件编程模块3提供的内部复位信号控制线相连接,输出连接到了处理器1、射频模块2和其他功能模块9的复位端口上,可以控制其复位工作。实现外部复位信号可以复位整个系统以及在编程模式下,对处理器1的挂起和系统的重启工作。
其他功能模块9是按功能划分的模块,如供电控制模块、传感器控制模块、输入输出模块等,都通过总线与处理器1连接,处理器1可以对其进行控制和管理。
在本发明的另一个实施例中,可以基于本发明的实施例的芯片,也可以根据本发明方法的教导实现其它芯片结构来实践本方法,例如,使用其它的用于远程无线通信的模块来代替射频模块,硬件编程模块的操作也可以集成在单个处理器中,而选通器更是可以使用不同的切换开关来实现。
图2示出远程无线编程方法的操作流程,如图2所示:
步骤1、处理器进行系统初始化操作
步骤11)、系统上电操作;
步骤12)、对系统参数进行初始化设置;包括:系统常数,系统状态,系统功能选择等进行初始化设置;
步骤13)、对射频模块2进行初始化;初始化设置射频芯片,使其工作在正常的状态,初始化射频模块的休眠策略,包括休眠时长参数等。
步骤14)、对系统中断处理进行初始化;初始化中断事件队列,初始化中断参数等。
步骤15)、对系统中其他功能模块9进行初始化;按照用户的具体需求进行设置,其初始化内容与用户系统的其他模块的具体类型有关。
步骤16)、进入休眠模式,等待事件触发;
步骤2、射频模块收到远程无线编程模式数据包,处理器进行编程环境设置,进入编程模式;
步骤21)、射频模块通过无线网络收到数据包,触发中断事件,进行中断相关处理;
步骤22)、基于无线通信协议,处理器检测此数据包是否是程序下载数据包;
步骤221)、如果是程序下载包,则继续进行步骤23);如果不是程序下载包,则继续进行步骤222)进行;
步骤222),处理器判断当前是否在编程模式中(根据模式标志位判断,当进入编程模式后对其进行置位操作,当退出编程模式时进行复位操作,因而可以通过判断是否该标志位已经置位来得到目前的模式状态),如果不在编程模式中,则进行其他用户功能处理;如果已经在编程模式中,则放弃该用户操作,进入休眠等待事件触发;
步骤23)、处理器判断是否是该设备的程序下载数据包(根据无线数据传输协议,在传输的数据包格式中,含有程序更新设备号的字段,根据判读这个字段来判断自己是否需要程序更新,如果需要则保存该数据包并用于以后的处理,如果自己不需要更新,及数据包更新设备号字段不包含自己,则忽略),如果不是则进入休眠继续等待事件触发;如果是该设备的程序下载数据包,则继续进行步骤24),因此可以灵活地进行设备的选择性更新;
步骤24)、如果已进入了编程模式,则继续进行步骤3)的操作;如果没有进入编程模式,则进行编程环境设置,并进入编程模式;包括:
步骤241)、设置进入编程模式标志;
步骤242)、判断是否有足够的数据存储区用于开辟程序文件缓存区(判断更新程序文件的大小,并且检查目前剩余数据存储区的大小,如果剩余区域比程序文件要大,因而可以直接对程序文件进行缓存,如果目前剩余存储区空间不够,则需要释放目前占用的数据存储区空间来进行程序文件缓存)。如果没有足够空间,则释放掉已用的空间,重新分配程序缓存区,并设置处理器需要重启标志;而如果有足够空间,则开辟程序缓存区;
步骤243)、设置超时参数,开启超时定时器,并继续进行步骤3);
步骤3、程序缓存阶段,处理器对通过无线网络收到的程序段进行校验、硬件编程模块缓存程序段到数据存储区;
步骤31)、判断收到的程序段是否已经存在,如果在缓存区中已经存在,则重新设置超时参数,并等待下一个事件的触发;而如果在缓存区中不存在,则进行步骤32)的操作;
步骤32)、对未存在的程序段数据进行校验处理;
步骤321)、对该程序段进行校验操作,通过校验算法,来判断数据是否正确,在本实施例中,可以采用CRC校验方式;
步骤322)、判断校验结果是否正确,如果不正确,则发送该数据段的重传请求,同时重新设置超时参数,并进入休眠等待事件的触发;如果正确,则进行步骤33)的操作;
步骤33)、对校验过的程序数据进行缓存处理,直至全部收齐;包括:
步骤331)、对校验过的程序数据进行缓存处理;
步骤332)、判断校验过的程序数据段是否已经收齐,如果没有收齐,则重新设置超时参数,并进入休眠等待事件的触发;如果收齐,则继续进行步骤4)的操作;
步骤4、程序写入阶段,把缓存后的程序文件按地址信息写入到程序存储器5中,更新程序段
步骤41)、关闭超时定时器;
步骤42)、根据程序下载包中含有的程序更新地址,设置程序更新地址(下载包中含有的地址和本地地址一一对应,即程序存储区的地址,指明了需要程序更新的区域,并且还含有程序文件大小的信息);
步骤43)、挂起处理器以及各个功能模块;(程序存储器的写入过程是独立于处理器以外的,因此在程序存储器写入过程是不需要处理器工作的,同时也正由于此时处理器不工作,因而可以对程序存储器进行整体程序更新)
步骤44)、读取缓存区中的程序文件,并按地址对程序存储器5进行写入,可选地,对写入到程序存储器中的程序文件进行校验;
步骤45)、判断程序存储器5是否写入成功(通过上述校验过程,当所有校验都通过时,表示程序成功写入),如果不成功则退出编程模式,并复位处理器1及各个功能模块,此时退出编程模式,返回程序更新失败;如果写入成功,则复位处理器1及各个功能模块,此时退出编程模式,返回程序更新成功;
步骤5、编程超时处理
步骤51)、超时定时器触发超时事件;
步骤52)、关闭超时定时器,退出编程模式,并释放程序缓存区;
步骤53)、判断是否需要重启处理器1,如果需要重启处理器1,则复位处理器1及各个功能模块;如果不需要则直接进行步骤54);
步骤54)、返回程序更新失败,进入休眠等待事件触发。
最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其他的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。

一种远程无线编程的方法及支持远程无线编程的芯片.pdf_第1页
第1页 / 共18页
一种远程无线编程的方法及支持远程无线编程的芯片.pdf_第2页
第2页 / 共18页
一种远程无线编程的方法及支持远程无线编程的芯片.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《一种远程无线编程的方法及支持远程无线编程的芯片.pdf》由会员分享,可在线阅读,更多相关《一种远程无线编程的方法及支持远程无线编程的芯片.pdf(18页珍藏版)》请在专利查询网上搜索。

本发明公开一种远程无线编程的方法及支持远程无线编程的芯片,包括:处理器初始化射频模块,探测无线网络发送的数据包;通过无线网络接收程序下载包,确定所述程序下载包用于本地设备,设置编程环境;处理器将所述程序下载包中的程序文件校验并由硬件编程模块缓存在缓存区中;硬件编程模块挂起处理器,将缓存后的所述程序文件写入到程序存储器中,更新程序文件。本发明支持远程无线编程,方便程序更新;可以有选择性的针对多个设备。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1