CN102402448A - 智能卡软件引导系统和方法 - Google Patents
智能卡软件引导系统和方法 Download PDFInfo
- Publication number
- CN102402448A CN102402448A CN2011104438859A CN201110443885A CN102402448A CN 102402448 A CN102402448 A CN 102402448A CN 2011104438859 A CN2011104438859 A CN 2011104438859A CN 201110443885 A CN201110443885 A CN 201110443885A CN 102402448 A CN102402448 A CN 102402448A
- Authority
- CN
- China
- Prior art keywords
- data
- smart card
- volatile memories
- program
- software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种智能卡软件引导系统和方法。涉及集成电路领域;解决了现有智能卡软件引导系统效率受限的问题。该系统包括:载有该智能卡软件引导系统全部智能卡控制软件程序的非易失性存储器、RAM、CPU和7816端口,所述RAM包括程序存储器和数据存储器两部分;所述程序存储器通过程序地址总线与所述非易失性存储器相连,所述数据存储器通过数据总线接口与所述非易失性存储器相连。
Description
技术领域
本发明涉及集成电路领域,尤其涉及一种智能卡软件引导系统和方法。
背景技术
智能卡软件引导系统(即BOOTLOADER)负责智能卡软件系统的初始化(包括时钟,memory,串行口等的初始化),并在初始化完成后引导系统进入不同的模式(如程序加载模式、正常运行模式等)。由于涉及的功能较少,BOOTLOADER的大小可以控制在2kByte以内,通常固化在闪存(FLASH)或电可擦可编程只读存储器(EEPROM)起始区的空间内。
现行的技术方案是:BOOTLOADER的全部程序均在FLASH或EEPROM上运行(FLASH、EEPROM均为非易失性存储器,但这两种器件特性有区别)。当执行从7816口接收数据写到FLASH或EEPROM的动作时,由于受FLASH、EEPROM器件特性限制,无法从同一块FLASH或EEPROM既获取程序指令和数据又进行数据写入,必须先执行从7816端口接收数据的动作,然后再执行写入到FLASH或EEPROM的动作;接收数据和写FLASH或EEPROM为串行操作,限制了引导效率的进一步提升。
发明内容
本发明提供了一种智能卡软件引导系统和方法,解决了现有智能卡软件引导系统效率受限的问题。
一种智能卡软件引导系统,包括:
载有该智能卡软件引导系统全部智能卡控制软件程序的非易失性存储器、随机存取存储器(RAM)、CPU和7816端口,所述RAM包括程序存储器和数据存储器两部分;
所述程序存储器通过程序地址总线与所述非易失性存储器相连,所述数据存储器通过数据总线接口与所述非易失性存储器相连;
所述CPU,用于在智能卡软件引导系统启动运行后,将所述全部智能卡控制软件程序自所述非易失性存储拷贝到所述程序存储器中,自所述程序存储器运行所述智能卡控制软件程序,将自所述7816端口下载的数据写入所述数据存储器,并将该数据存储器上存储的数据向所述非易失性存储写入。
优选的,所述非易失性存储器具体为电可擦只读存储器或FLASH或EEPROM。
本发明还提供了一种智能卡软件引导方法,智能卡的RAM包括程序存储器和数据存储器两部分,在所述程序存储器中存储有智能卡控制软件程序,该方法包括:
智能卡芯片运行所述程序存储器上的软件程序,将自7816端口下载的数据写入所述数据存储器;
所述智能卡芯片在自所述7816端口下载数据的同时,将所述数据存储器存储的数据写入所述非易失性存储。
优选的,上述智能卡软件引导方法还包括:
存储有全部智能卡控制软件程序的所述非易失性存储在最初开始工作时,将所述全部智能卡控制软件程序拷贝至所述程序存储器。
优选的,上述智能卡软件引导方法还包括:
在将所述全部智能卡控制软件程序拷贝至所述程序存储器后,所述智能卡芯片将运行程序的指针指向所述程序存储器。
优选的,上述智能卡软件引导方法还包括:
所述非易失性存储在将所述全部智能卡控制软件程序拷贝至所述程序存储器后,擦除该非易失性存储上存储的全部智能卡控制软件。
优选的,所述智能卡芯片在自所述7816端口下载数据的同时,将所述数据存储器存储的数据写入所述非易失性存储具体包括:
将所述数据存储器存储的数据写入所述非易失性存储的缓存,启动第一页所述非易失性存储的写入过程;
在所述缓存的数据写入所述非易失性存储第一页完成后,再从所述数据存储器存储的数据中取出新的数据放入所述缓存,再次启动所述非易失性存储新的一页的写入过程,直到全部数据写结束。
本发明提供的智能卡软件引导系统和方法,将智能卡的RAM划分为程序存储器和非易失性存储器两部分,在程序存储器上存储全部的智能卡控制软件程序,在智能卡运行时,直接从程序存储器读取软件程序,智能卡芯片运行所述程序存储器上的软件程序,将自7816端口下载的数据写入所述数据存储器,并且在自所述7816端口下载数据的同时,将所述数据存储器存储的数据写入所述非易失性存储,将原有自非易失性存储读取程序和向该非易性性存储写入数据的串行操作变为并行操作,既在调用程序的同时亦可向非易失性存储写入数据,解决了现有智能卡软件引导系统效率受限的问题。
附图说明
图1为现有的智能卡软件引导方法中数据下载和数据写入串行执行的原理示意图;
图2为本发明的实施例一提供的一种智能卡软件引导系统的结构示意图;
图3为本发明的实施例二提供的一种智能卡软件引导方法的流程图;
图4为本发明的实施例二提供的一种智能卡软件引导方法中数据下载和数据写入并行执行的原理示意图。
具体实施方式
现行的技术方案是:BOOTLOADER的全部程序均在FLASH或EEPROM上运行(FLASH、EEPROM均为非易失性存储器,但这两种器件特性有区别)。当执行从7816口接收数据写到FLASH或EEPROM的动作时,由于受FLASH、EEPROM器件特性限制,无法从同一块FLASH或EEPROM即获取程序指令和数据又进行数据写入,如图1所示,必须先执行从7816端口接收数据的动作,然后再执行写入到FLASH或EEPROM的动作;接收数据和写FLASH或EEPROM为串行操作,限制了引导效率的进一步提升。
为了解决上述问题,本发明的实施例提供了一种智能卡软件引导系统和方法。下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
首先结合附图,对本发明的实施例一进行说明。
本发明实施例提供了一种智能卡软件引导系统,其结构如图2所示,包括:载有该智能卡软件引导系统全部智能卡控制软件程序的非易失性存储器201、RAM202、CPU203和7816端口204,还可以包括其他外围模块205。
所述RAM202包括程序存储器2021和数据存储器2022两部分;
所述程序存储器2021通过程序地址总线与所述非易失性存储器201相连,所述数据存储器2022通过数据总线接口与所述非易失性存储器201相连;
所述CPU203,用于在智能卡软件引导系统启动运行后,将所述全部智能卡控制软件程序自所述非易失性存储201拷贝到所述程序存储器2021中,自所述程序存储器2021运行所述智能卡控制软件程序,将自所述7816端口204下载的数据写入所述数据存储器2022,并将该数据存储器2022上存储的数据向所述非易失性存储201写入。
优选的,所述非易失性存储器201具体为电可擦只读存储器或FLASH和EEPROM。
本发明实施例中涉及的智能卡软件引导系统涉及的智能卡控制软件程序具体为BOOTLOADER,一般存放于智能卡芯片的FLASH或EEPROM上。
下面结合附图,对本发明的实施例二进行说明。
本发明实施例提供了一种智能卡软件引导方法,在设计智能卡RAM控制电路时将整块RAM划分成两部分:第一部分RAM由数据存储器变为程序存储器,数据存储器仍保持为数据存储器。
将第一部分RAM变为程序存储器后,再将CPU的程序指针指向该部分RAM,在智能卡芯片的CPU执行程序时,即从该程序存储区上执行。
使用本发明的实施例提供的智能卡软件引导方法完成数据写入的流程如图3所示,包括:
步骤301、存储有全部智能卡控制软件程序的所述非易失性存储在最初开始工作时,将所述全部智能卡控制软件程序拷贝至所述程序存储器;
本发明实施例涉及的非易失性存储具体为FLASH或EEPROM,智能卡控制软件程序具体为BOOTLOADER。本步骤中,在系统初始化时,将BOOTLOADER从FLASH或EEPROM拷贝到第一部分RAM上,ROOTLOADER主要包括将从7816接收数据以及写FLASH或EEPROM的程序代码。
步骤302、智能卡芯片运行所述程序存储器上的软件程序,将自7816端口下载的数据写入所述数据存储器;
本步骤中,智能卡芯片的CPU在执行程序时,跳到程序存储器上继续执行,智能卡芯片首先从7816端口下载数据,存入数据存储器中。
步骤303、所述智能卡芯片在自所述7816端口下载数据的同时,将所述数据存储器存储的数据写入所述非易失性存储;
本步骤中,智能卡芯片在所述从数据存储器中取出数据放入FLASH或EEPROM的缓存(BUFFER)中,启动第一页FLASH或EEPROM的写入过程。由于此时智能卡芯片的CPU由程序存储器读取程序,而并非从FLASH或EEPROM读取数据,故向FLASH或EEPROM写入数据可以不受智能卡芯片是否正在从7816端口下载的影响。即,在智能卡芯片正在从7816端口下载数据或将数据写入数据存储器的同时,亦可以将数据存储器中的数据送入FLASH或EEPROM的BUFFER中,进行向FLASH或EEPROM的第一页写入数据。
等前面第一页写好数据后,马上从数据存储器中取出新的数据,再放到FLASH或EEPROMBUFFER上,再启动FLASH或EEPROM新的一页的擦写,直到整个智能卡引导过程结束。
优选的,所述非易失性存储在将所述全部智能卡控制软件程序拷贝至所述程序存储器后,擦除该非易失性存储上存储的全部智能卡控制软件。这样,就空出了原来存储BOOTLOADER的空间。下载的数据可以写到整片FLASH或EEPROM上,甚至覆盖原来BOOTLOADER占用的空间,从而扩大应用程序数据的存储空间。
等整个过程结束,重新启动智能卡芯片工作时,RAM又回到了数据存储器地址区域。
可以看出,实际上步骤302与步骤303是并行进行的,如图4所示,在下载数据的同时可进行向非易失性存储的数据写入,对智能卡软件引导系统的外部来说,可以进行不间断的下载,这样提高了发行效率,缩短了发行的时间,同时提高了设备的利用率。
本发明的实施例提供的智能卡软件引导系统和方法,将智能卡的RAM划分为程序存储器和数据存储器两部分,在程序存储器上存储全部的智能卡控制软件程序,在智能卡运行时,直接从程序存储器读取软件程序,智能卡芯片运行所述程序存储器上的软件程序,将自7816端口下载的数据写入所述数据存储器,并且在自所述7816端口下载数据的同时,将所述数据存储器存储的数据写入所述非易失性存储,将原有自非易失性存储读取程序和向该非易性性存储写入数据的串行操作变为并行操作,即在调用程序的同时亦可向非易失性存储写入数据,解决了现有智能卡软件引导系统效率受限的问题。由于将BOOTLOADER中的7816接收数据功能和写FLASH或EEPROM的功能从串行操作改为并行操作。现有技术方案由于采用的是串行的工作方式,程序执行时间长,智能卡软件引导过程(主要是从7816端口接收数据至将数据写入到FALSH或EEPROM)无疑时间较长,影响了系统性能。而本发明方案采用了将RAM划分为两部分的方法,将智能卡软件引导过程(主要是从7816端口接收数据至将数据写入到FALSH或EEPROM)改为并行方式,大大缩短了引导过程的时间,改善了系统性能。
本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。
任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
Claims (7)
1.一种智能卡软件引导系统,包括载有该智能卡软件引导系统全部智能卡控制软件程序的非易失性存储器、随机存取存储器(RAM)、中央处理器(CPU)和7816端口,其特征在于,所述RAM包括程序存储器和数据存储器两部分;
所述程序存储器通过程序地址总线与所述非易失性存储器相连,所述数据存储器通过数据总线接口与所述非易失性存储器相连;
所述CPU,用于在智能卡软件引导系统启动运行后,将所述全部智能卡控制软件程序自所述非易失性存储拷贝到所述程序存储器中,自所述程序存储器运行所述智能卡控制软件程序,将自所述7816端口下载的数据写入所述数据存储器,并将该数据存储器上存储的数据向所述非易失性存储写入。
2.根据权利要求1所述的智能卡软件引导系统,其特征在于,所述非易失性存储器具体为电可擦只读存储器或闪存(FLASH)或电可擦可编程只读存储器(EEPROM)。
3.一种智能卡软件引导方法,其特征在于,智能卡的RAM包括程序存储器和数据存储器两部分,在所述程序存储器中存储有智能卡控制软件程序,该方法包括:
智能卡芯片运行所述程序存储器上的软件程序,将自7816端口下载的数据写入所述数据存储器;
所述智能卡芯片在自所述7816端口下载数据的同时,将所述数据存储器存储的数据写入所述非易失性存储。
4.根据权利要求3所述的智能卡软件引导方法,其特征在于,该方法还包括:
存储有全部智能卡控制软件程序的所述非易失性存储在最初开始工作时,将所述全部智能卡控制软件程序拷贝至所述程序存储器。
5.根据权利要求4所述的智能卡软件引导方法,其特征在于,该方法还包括:
在将所述全部智能卡控制软件程序拷贝至所述程序存储器后,所述智能卡芯片将运行程序的指针指向所述程序存储器。
6.根据权利要求4所述的智能卡软件引导方法,其特征在于,该方法还包括:
所述非易失性存储在将所述全部智能卡控制软件程序拷贝至所述程序存储器后,擦除该非易失性存储上存储的全部智能卡控制软件。
7.根据权利要求3所述的智能卡软件引导方法,其特征在于,所述智能卡芯片在自所述7816端口下载数据的同时,将所述数据存储器存储的数据写入所述非易失性存储具体包括:
将所述数据存储器存储的数据写入所述非易失性存储的缓存,启动所述非易失性存储第一页的写入过程;
在所述第一页的数据写入所述非易失性存储完成后,再从所述数据存储器存储的数据中取出新的数据放入所述非易失性存储的缓存,再次启动所述非易失性存储新的一页的写入过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104438859A CN102402448A (zh) | 2011-12-27 | 2011-12-27 | 智能卡软件引导系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104438859A CN102402448A (zh) | 2011-12-27 | 2011-12-27 | 智能卡软件引导系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102402448A true CN102402448A (zh) | 2012-04-04 |
Family
ID=45884681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104438859A Pending CN102402448A (zh) | 2011-12-27 | 2011-12-27 | 智能卡软件引导系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102402448A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540729A (zh) * | 2020-12-11 | 2021-03-23 | 捷德(中国)科技有限公司 | 数据下载的方法、装置、智能卡及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1172322A (zh) * | 1997-06-13 | 1998-02-04 | 清华大学 | 多功能光盘阵列及用其实现数据并行写入/读出的方法 |
US20060174100A1 (en) * | 2005-01-31 | 2006-08-03 | Samsung Electronics Co., Ltd | System and method of booting an operating system for a computer |
US20090089572A1 (en) * | 2007-10-02 | 2009-04-02 | Samsung Electronics Co., Ltd. | Booting system, image forming apparatus having the system and control method thereof |
-
2011
- 2011-12-27 CN CN2011104438859A patent/CN102402448A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1172322A (zh) * | 1997-06-13 | 1998-02-04 | 清华大学 | 多功能光盘阵列及用其实现数据并行写入/读出的方法 |
US20060174100A1 (en) * | 2005-01-31 | 2006-08-03 | Samsung Electronics Co., Ltd | System and method of booting an operating system for a computer |
US20090089572A1 (en) * | 2007-10-02 | 2009-04-02 | Samsung Electronics Co., Ltd. | Booting system, image forming apparatus having the system and control method thereof |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540729A (zh) * | 2020-12-11 | 2021-03-23 | 捷德(中国)科技有限公司 | 数据下载的方法、装置、智能卡及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5002201B2 (ja) | メモリシステム | |
CN100456272C (zh) | 利用快闪存储器引导的系统和方法 | |
US7340566B2 (en) | System and method for initializing a memory device from block oriented NAND flash | |
CN104657284B (zh) | 存储设备的扩展利用区域 | |
CN100432936C (zh) | 一种加载fpga目标程序的方法及系统 | |
KR20080052019A (ko) | 메모리 시스템 및 그것의 데이터 전송 방법 | |
CN106951289A (zh) | 一种在线升级方法、dsp控制器及升级系统 | |
US20120131263A1 (en) | Memory storage device, memory controller thereof, and method for responding host command | |
CN102637461B (zh) | 支持坏块闪存扫描的启动方法 | |
US8285920B2 (en) | Memory device with dynamic controllable physical logical mapping table loading | |
CN102799497A (zh) | Nvram数据恢复系统及方法 | |
TW200805136A (en) | System support storage and computer system | |
CN111399752A (zh) | 不同类型存储单元的控制装置及方法 | |
CN111522602B (zh) | 通信装置的启动方法 | |
CN105608013B (zh) | 一种集成mram的存储卡控制芯片及存储卡 | |
CN101105752A (zh) | 嵌入式系统利用nand闪存记忆体储存及启动的处理方法 | |
CN102622257A (zh) | 电表在线自更新方法及其装置 | |
CN104951376A (zh) | 参数优化方法及参数优化装置 | |
US9223697B2 (en) | Computer reprogramming method, data storage medium and motor vehicle computer | |
CN102033767A (zh) | 一种单板及单板在线升级的方法 | |
US20080181008A1 (en) | Flash memory system capable of improving access performance and access method thereof | |
CN101751268B (zh) | 主板、储存装置及其控制器与开机方法 | |
CN103970551A (zh) | 一种嵌入式处理器启动模式的选择方法及装置 | |
US9513912B2 (en) | Memory controllers | |
KR101620349B1 (ko) | 부팅가능한 휘발성 메모리 장치와 그를 구비한 메모리 모듈 및 프로세싱 시스템, 및 그를 이용한 프로세싱 시스템 부팅 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120404 |