发明内容
本发明提供一种下载用于芯片的程序文件的方法和装置,用以实现减少芯片下载程序文件的时间,提高生产效率。
本发明提供一种下载用于芯片的程序文件的方法,包括:
读取需要下载的程序文件并解析所述程序文件,形成数据阵列,其中,所述程序文件中包括代码信息、以及所述芯片中保存所述代码信息的非易失性程序存储器的地址信息,所述数据阵列为按照所述地址信息顺序排列的代码信息;
将所述数据阵列切分成预定大小的数据块;
压缩所述数据块,将压缩后的数据块发送给所述芯片。
本发明还提供一种接收用于芯片的程序文件的方法,包括:
逐块接收数据块;
对所述数据块进行解压缩,得到数据阵列,所述数据阵列为代码信息,所述代码信息按照所述芯片中保存所述代码信息的非易失性程序存储器的地址信息顺序排列;
将所述数据阵列保存到所述芯片的非易失性程序存储器。
本发明还提供一种下载用于芯片的程序文件的装置,包括:
解析模块,用于读取需要下载的程序文件并解析所述程序文件,形成数据阵列,其中,所述程序文件中包括代码信息、以及所述芯片中保存所述代码信息的非易失性程序存储器的地址信息,所述数据阵列为按照所述地址信息顺序排列的代码信息;
切分模块,用于将所述数据阵列切分成预定大小的数据块;
压缩模块,用于压缩所述数据块;
发送模块,用于将压缩后的数据块发送给所述芯片。
本发明还提供一种接收用于芯片的程序文件的装置,包括:
接收模块,用于逐块接收数据块;
解压缩模块,用于对所述数据块进行解压缩处理,得到数据阵列,所述数据阵列为代码信息,所述代码信息按照所述芯片中保存所述代码信息的非易失性程序存储器的地址信息顺序排列;
保存模块,用于将所述数据阵列保存到所述芯片的非易失性程序存储器。
本发明还提供一种下载用于芯片的程序文件的系统,包括前述的下载用于芯片的程序文件的装置和前述的接收用于芯片的程序文件的装置。
在本发明中,PC将数据块压缩后再传送给芯片,大大减少了PC传递给芯片的数据量,从而大大减少了传递次数,而压缩和解压缩耗时相对于一次传递耗时可以忽略不计,所以一次传递耗时不变,从而大大减少了芯片下载程序文件的时间,提高了生产效率。此外,在PC端将程序文件解析为按照地址信息顺序排列的代码信息,这样的话,芯片接收到程序文件后可以直接写入非易失性程序存储器中,不再需要进行解析,而在PC端进行解析的速度要大大快于在芯片端进行解析的速度,所以也在一定程度上减少了芯片下载程序文件的时间。
具体实施方式
下面结合说明书附图和具体实施方式对本发明作进一步的描述。
如图1所示,为本发明发送用于芯片的程序文件的方法实施例的流程示意图,该方法在PC端执行,该方法可以包括如下步骤:
步骤11、读取需要下载的程序文件并解析程序文件,形成数据阵列;
其中,程序文件中包括代码信息、以及芯片中保存代码信息的非易失性程序存储器的地址信息,例如:程序文件为HEX文件,数据阵列为按照地址信息顺序排列的代码信息;
步骤12、将数据阵列切分成预定大小的数据块;
步骤13、压缩数据块,将压缩后的数据块发送给芯片;
具体地,可以压缩一块发送一块,也可以将全部数据块压缩后再分别传送给芯片,其中前者的效率更高一些;另外,压缩耗时很少,与一次传递的耗时相比较,可以忽略不计,例如:在相同的条件下,一次传递128Bytes,耗时191ms,一次压缩4KBytes,耗时5ms。
该方法可以采用软件实现,也可以采用硬件电路实现。
在现有技术中,芯片的程序存储区为384Kbytes,每次传递128Bytes,需要传递384*1024/128=3072次,每次传递耗时约191ms,下载完毕大概需要10分钟。运用本实施例的技术方案后,压缩后的代码总量减少到50%以下,约为160Kbytes,需要传递160*1024/128=1280次,每次传递耗时约0.2s,下载完毕大概需要4分钟,由此可见,采用了本实施例的技术方案后,减少了芯片下载程序文件的时间,提高了生产效率。
在本实施例中,PC将数据块压缩后再传送给芯片,大大减少了PC传递给芯片的数据量,从而大大减少了传递次数,而压缩耗时相对于一次传递耗时可以忽略不计,所以一次传递耗时不变,从而大大减少了芯片下载程序文件的时间,提高了生产效率。
此外,在PC端将程序文件解析为按照地址信息顺序排列的代码信息,这样的话,芯片接收到程序文件后可以直接写入非易失性程序存储器中,不再需要进行解析,而在PC端进行解析的速度要大大快于在芯片端进行解析的速度,所以也在一定程度上减少了芯片下载程序文件的时间。
可选地,在步骤12中,切分后的数据块越大,步骤13中压缩的效果越好。优选地,数据块的预定大小根据芯片内存的可用空间的大小确定。例如:芯片内存为8K,其中4K已经被占用,这样的话,芯片内存的可用空间为4K,则数据块的预定大小可以为4K。
可选地,将数据阵列切块后,当数据块的大小小于预定大小时,可以将数据块填充至预定大小,例如:填充0或其他预定数据。
可选地,在步骤13中,可以直接将压缩后的数据块传送给芯片,也可以先将压缩后的数据块传送给中间媒质,再由中间媒质传送给芯片。例如:该中间媒质为读卡器、仿真器、编程器等等。
可选地,在本实施例中,芯片可以为各种各样需要下载程序文件的芯片,例如:智能卡芯片。
如图2所示,为本发明接收用于芯片的程序文件的方法实施例的流程示意图,该方法在芯片端执行,该方法可以包括如下步骤:
步骤21、逐块接收数据块;
步骤22、对数据块进行解压缩,得到数据阵列;
具体地数据阵列为代码信息,代码信息按照芯片中保存代码信息的非易失性程序存储器的地址信息顺序排列;解压缩的耗时相较于传递耗时可以忽略不计,例如:参考现有技术,一次传递耗时191ms,数据块的大小为4Kbytes,解压缩一个数据块耗时5ms,远小于一次传递耗时,可以忽略不计。
步骤23、将数据阵列保存到芯片的非易失性程序存储器。
可选地,该方法可以采用软件实现,也可以采用集成在芯片内部的硬件电路实现。当采用软件实现时,例如:引导加载程序(bootloader),步骤21中的接收的数据块进入芯片的内存,步骤22在芯片的内存中进行。
需要说明的是,每接收一个数据块,执行一次步骤21-23,直至接收完所有的数据块。
在本实施例中,由于芯片接收的数据块为压缩的数据块,所以PC传递给芯片的数据量,从而大大减少了传递次数,而解压缩耗时相对于一次传递耗时可以忽略不计,所以一次传递耗时不变,从而大大减少了芯片下载程序文件的时间。
可选地,在步骤23中,非易失性程序存储器可以为闪存(flash memory)或电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,以下简称:EEPROM)。
可选地,在步骤21中,可以逐块接收PC直接发送的数据块,也可以接收由PC发送给中间媒质再由中间媒质发送给芯片的数据块。
可选地,在本实施例中,芯片具体可以为各种各样需要下载程序文件的芯片,例如:智能卡芯片。
如图3所示,为本发明下载用于芯片的程序文件的装置实施例的结构示意图,该装置安装在PC端,该装置可以包括解析模块31、切分模块32、压缩模块33和发送模块34,其中,切分模块32与解析模块31连接,压缩模块33与切分模块32连接,发送模块34与压缩模块33连接。
解析模块31用于读取需要下载的程序文件并解析程序文件,形成数据阵列,其中,程序文件中包括代码信息、以及芯片中保存代码信息的非易失性程序存储器的地址信息,数据阵列为按照地址信息顺序排列的代码信息;切分模块32用于将数据阵列切分成预定大小的数据块;压缩模块33用于压缩数据块;发送模块34用于将压缩后的数据块发送给芯片。
本实施例的工作过程如下:首先,解析模块31读取需要下载的程序文件并解析程序文件,形成数据阵列,然后,切分模块32将数据阵列切分成预定大小的数据块,压缩模块33再压缩数据块,最后发送模块34将压缩后的数据块发送给芯片。
其中,压缩模块33压缩数据块的耗时很少,与一次传递的耗时相比较,可以忽略不计,例如:例如:一次传递128Bytes,耗时191ms,一次压缩4Kbytes,耗时5ms。
可选地,压缩模块33压缩一个数据块,发送模块34发送一个数据块;或者,压缩模块33将所有的数据块压缩后,再由发送模块34分别进行发送。
该装置可以采用软件程序的方式实现,也可以采用硬件电路的方式实现。
在本实施例中,由于压缩模块33对数据块进行了压缩,所以大大减少了传递给芯片的数据量,从而大大减少了传递次数,而压缩耗时相对于一次传递耗时可以忽略不计,所以一次传递耗时不变,从而大大减少了芯片下载程序文件的时间,提高了生产效率。
此外,解析模块31将程序文件解析为按照地址信息顺序排列的代码信息,这样的话,芯片接收到程序文件后可以直接写入非易失性程序存储器中,不再需要进行解析,而在PC端进行解析的速度要大大快于在芯片端进行解析的速度,所以也在一定程度上减少了芯片下载程序文件的时间。
进一步地,切分模块32切分的数据块越大,压缩模块33压缩的效果越好。优选地,数据块的预定大小根据芯片内存的可用空间的大小确定。
可选地,再参见图3所示结构示意图,该装置还可以包括填充模块35,分别与切分模块32和压缩模块33连接,用于当切分后的数据块的大小小于预定大小时,将数据块填充至预定大小,例如:填充0或其他预定数据。
可选地,发送模块34可以直接将压缩后的数据块传送给芯片,也可以先将压缩后的数据块传送给中间媒质,再由中间媒质传送给芯片。
可选地,在本实施例中,芯片可以为各种各样需要下载程序文件的芯片,例如:智能卡芯片。
如图4所示,为本发明接收用于芯片的程序文件的装置实施例的结构示意图,该装置安装在芯片端,该装置可以包括接收模块41、解压缩模块42和保存模块43,解压缩模块42与接收模块41连接,保存模块43与解压缩模块42连接。
其中,接收模块41用于逐块接收数据块;解压缩模块42用于对数据块进行解压缩处理,得到数据阵列,数据阵列为代码信息,代码信息按照芯片中保存代码信息的非易失性程序存储器的地址信息顺序排列;保存模块43用于将数据阵列保存到芯片的非易失性程序存储器。
在本实施例中,该装置可以借助软件程序来实现,例如:引导加载程序,此时,接收模块41接收数据块到芯片的内存中,解压缩模块42在芯片的内存中对数据块进行解压缩处理。可选地,该装置也可以采用硬件电路来实现,该硬件电路集成在芯片中。
本实施例的工作过程如下:首先,接收模块41逐块接收数据块到芯片的内存中,然后,解压缩模块42在芯片的内存中对数据块进行解压缩处理,得到数据阵列,最后保存模块43将数据阵列保存到芯片的非易失性程序存储器。需要说明的是,接收模块41每接收一个数据块,解压缩模块42解压缩一个数据块,保存模块43保存一个数据阵列,直至接收模块41接收完所有的数据块。
在本实施例中,由于接收模块41接收的数据块为压缩的数据块,所以PC传递给芯片的数据量,从而大大减少了传递次数,而解压缩耗时相对于一次传递耗时可以忽略不计,所以一次传递耗时不变,从而大大减少了芯片下载程序文件的时间。
可选地,在本实施例中,非易失性程序存储器具体可以为闪存或EEPROM。
可选地,接收模块41可以逐块接收个人电脑发送给芯片的数据块,也可以逐块接收由PC发送给中间媒质再由中间媒质发送给芯片的数据块。
可选地,在本实施例中,芯片具体可以为各种各样需要下载程序文件的芯片,例如:智能卡芯片。
如图5所示,为本发明一种下载用于芯片的程序文件的系统实施例的结构示意图,该系统可以包括下载用于芯片的程序文件的装置51和接收用于芯片的程序文件的装置52。下载用于芯片的程序文件的装置51设置在PC端,接收用于芯片的程序文件的装置52设置在芯片端。下载用于芯片的程序文件的装置51与接收用于芯片的程序文件的装置52可以直接进行通信,可以通过中间媒质进行间接通信。
其中,下载用于芯片的程序文件的装置51用于读取需要下载的程序文件并解析程序文件,形成数据阵列,将数据阵列切分成预定大小的数据块,压缩数据块,将压缩后的数据块发送给芯片;其中,程序文件中包括代码信息、以及芯片中保存代码信息的非易失性程序存储器的地址信息,数据阵列为按照地址信息顺序排列的代码信息。接收用于芯片的程序文件的装置52用于逐块接收数据块到芯片的内存中,在芯片的内存中,对数据块进行解压缩,得到数据阵列,将数据阵列保存到芯片的非易失性程序存储器;其中,数据阵列为代码信息,代码信息按照芯片中保存代码信息的非易失性程序存储器的地址信息顺序排列。
具体地,下载用于芯片的程序文件的装置51可以为前述实施例中的下载用于芯片的程序文件的装置,接收用于芯片的程序文件的装置52可以为前述实施例中的接收用于芯片的程序文件的装置,在此不再赘述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。