CN108089886A - 一种智能卡芯片下载程序的实现方法 - Google Patents
一种智能卡芯片下载程序的实现方法 Download PDFInfo
- Publication number
- CN108089886A CN108089886A CN201611017095.3A CN201611017095A CN108089886A CN 108089886 A CN108089886 A CN 108089886A CN 201611017095 A CN201611017095 A CN 201611017095A CN 108089886 A CN108089886 A CN 108089886A
- Authority
- CN
- China
- Prior art keywords
- cos
- program
- download
- interrupt
- order
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Abstract
本发明公开了一种智能卡芯片下载程序的实现方法。该智能卡芯片下载程序实现方法通过一条固定的APDU命令,实现COS与下载程序进行切换运行,不去擦写首页的中断向量表,而是采用COS中断向量表备份以及标记的方法,通过下载程序的中断服务程序通过读取标记来判断是否已经下载了COS,该标记在下载完COS后写入NVM的空白区,并且,无需用户提供任何恢复下载程序的接口和命令。这种智能卡芯片下载程序实现方法减少用户程序开发过程中的使用芯片的难度,提供了无需用户添加特殊接口来恢复BL的方法,同时避免了首页修改错误导致“死卡”的现象。
Description
技术领域
本发明涉及集成电路设计技术领域, 尤其涉及智能卡芯片的程序下载技术。
背景技术
智能卡芯片的下载程序(Bootloader,下文简称BL)是初始驻留在芯片内部的一段启动程序,用于在用户开发程序(下文简称COS)的过程中,将COS下载到芯片中。BL通过应用协议命令(下文简称APDU)将用户程序写入到相应的非易失存储区(下文简称NVM)。当芯片再次运行时,将不再执行BL,而是执行COS。实践开发调试过程中,COS会不断修改,往往有多次下载的需求,这也要求具备恢复BL运行的功能,以便重复下载。
智能卡芯片程序结构是由中断向量表和中断服务程序组成的,其执行过程就是由中断事件驱动,根据中断的类型通过中断向量表运行相应的中断服务程序。中断向量表是非常关键的,位于芯片存储器的初始地址,即首页,当芯片有中断事件到来时,CPU的程序指针首先会根据中断编号直接查找中断向量表,然后跳转到相应的中断服务程序执行。如图1所示,为现有的智能卡芯片程序执行工作流程图。其中,智能卡芯片的程序执行(10)是通过RESET中断跳转至主函数执行(11),主函数执行过程中会有其它中断事件产生,比如射频通讯接口(RF),定时器0中断(T0)等,根据不同的中断程序指针就会跳转至相应的中断服务程序(12、13)中运行。
用户需要通过BL将COS下载到芯片中,重新启动后执行COS而不是BL。一般的操作方式是这样的,如图2所示,为现有的智能卡芯片BL的实现流程图。上电初始,芯片在BL中运行,执行BL的中断服务程序(21),当有下载COS的任务时,先将COS中断服务程序下载到NVM中(22),然后首页的BL中断向量表擦除(23),最后在首页写入COS的中断向量表(24),替换BL的中断向量表。当智能卡重新上电后,通过COS的中断向量表(24)就可以执行COS的中断服务程序(25)。
用户在智能卡芯片应用程序的开发和调试过程中,需要多次下载用户程序。因此多数的BL设计需要用户预留恢复BL运行的接口,这种接口要求至少需要修改中断向量表。而智能卡的运行环境很复杂,容易出现掉电行为,反复进行中断向量表数据页的擦写增加了失败的风险,如果中断向量表被破坏将导致卡片不能继续正常工作,出现“死卡”现象。此外,要求用户预留恢复BL运行的接口也影响了用户开发过程中的易用性。
发明内容
针对上述现有技术中存在的不足,本发明的目的是通过一条固定的APDU命令,实现COS与BL进行切换运行,不去擦写首页的中断向量表,而是采用COS中断向量表备份以及标记的方法,并且无需用户提供任何恢复下载程序的接口和命令。
为了达到上述技术目的,本发明所采用的技术方案是:
一种智能卡芯片下载程序的实现方法,具体的实现方法如下:
(1)首先启动下载程序,下载程序从中断向量表开始执行,然后跳转至下载程序的中断服务程序;
(2)下载程序的中断服务程序通过读取标记来判断是否已经下载了COS,该标记在下载完COS后写入NVM的空白区;如果该标记存在,则说明已经下载了COS,下载程序的中断服务程序则读取COS的中断向量表,然后跳转到对应的COS中断服务程序执行COS;如果该标记不存在,则说明不存在COS,继续执行下载程序,等待下载命令;
(3)当设备发送的命令到来时,下载程序的中断服务程序通过判断命令的类型进行进一步操作;如果为恢复下载程序的命令,则清除已经标记为COS存在的标记;如果为下载COS的命令,则先下载COS中断服务程序,然后下载COS的中断向量表;
(4)下载程序完成执行后,重新上电,芯片进入(1)的流程。
本发明由于采用了上述通过一条固定的APDU命令,实现COS与下载程序进行切换运行,无需用户提供任何恢复下载程序的接口和命令,所获得的有益效果是,减少用户程序开发过程中的使用芯片的难度,提供了无需用户添加特殊接口来恢复BL的方法,同时避免了首页修改错误导致“死卡”的现象。
下面结合附图和具体实施方式对本发明做进一步说明。
附图说明
图1是为现有的智能卡芯片下载程序工作流程图。
图2是现有的智能卡芯片下载程序工作流程图。
图3是本发明的智能卡芯片下载程序工作流程图。
图4是本发明具体实施的智能卡芯片下载COS后存储空间分配示意图。
图5是本发明具体实施的智能卡芯片下载程序实现流程图。
如图3所示,为本发明的智能卡芯片下载程序工作流程图。BL设计中,在中断服务程序增加对是否跳转到COS中断服务程序的判断,这个判断是通过读取标记来实现的,标记是下载COS完成后写入NVM的空白区的。如果标记不存在,则说明不存在COS,继续执行下载程序,等待下载命令;如果标记存在,则读取COS的中断向量表,并根据COS的中断向量表的地址将程序指针跳转到COS的中断服务程序中执行;当设备发送的命令到来时,BL的中断服务程序通过判断命令的类型进行进一步操作;如果为恢复BL的命令,则清除已经标记为COS存在的标记;如果为下载COS的命令,则先下载COS中断服务程序,然后下载COS的中断向量表;BL完成执行后,重新上电,芯片进入最开始的BL启动的流程。
如图4所示,为本发明具体实施的智能卡芯片下载COS后存储空间分配示意图。本发明具体实施的BL载体是NVM,FLASH是NVM中常见的低成本形式。首先,需要将FLASH的存储进行规划, FLASH中需要构建BL中断向量表、COS中断向量表、标记S、COS中断服务程序、用户数据以及BL中断服务程序等几个功能模块。其中COS中断向量表、COS中断服务程序、用户数据属于用户COS;而BL中断向量表和BL中断服务程序属于BL;标记S用于选择执行BL还是COS;芯片程序的启动地址为0,需要在FLASH首页地址存放BL中断向量表;从FLASH第二页开始依次存放COS中断向量表、标记S、COS中断服务程序以及用户数据等,这部分内容在COS没有下载之前是不存在的,但BL的设计中需要预留出相应的空间。BL中断服务程序存放在FLASH的最高地址,一般不允许用户访问和修改。
如图5所示,为本发明具体实施的智能卡芯片下载程序实现流程图。BL需要保证在掉电情况下“不死”卡的前提下完成3个基本功能:下载COS、运行COS和恢复BL。BL下载COS的执行过程中,首先收到APDU产生接口中断,通过访问中断向量表跳转至BL中断服务程序,读取存在COS的标记S,如果不存在COS,且此APDU为下载COS的命令,执行备份COS中断向量表、下载COS中断服务程序以及写存在COS标记S。
运行COS执行过程中,首先产生上电复位中断,运行过程中产生中断会通过BL中断向量表跳转至BL中断服务程序,读取标记S判断是否存在COS,如果COS存在,判断命令是否为恢复BL的命令,如果不是,读取COS的中断向量表并跳转至COS的中断服务程序。
恢复BL执行过程中,首先收到APDU产生接口中断,通过中断向量表跳转至BL中断服务程序,如果存在COS,且收到命令为恢复BL的命令,则清除存在COS的标记S。
如图5所示,依照下载程序设计的实现流程分析,不擦除首页BL的中断向量表以及不修改BL的中断服务程序,将确保芯片下载COS中出现掉电也可以继续运行的BL中,不会“死卡”。而COS的恢复到BL的过程只需要一条特定的APDU,且此APDU无需用户程序实现和定义。
本发明并不限于上文讨论的实施方式,以上对具体实施方式的描述旨在于为了描述和说明本发明涉及的技术方案。基于本发明启示的显而易见的变换或替代也应当被认为落入本发明的保护范围;以上的具体实施方式用来揭示本发明的最佳实施方法,以使得本领域的普通技术人员能够应用本发明的多种实施方式以及多种替代方式来达到本发明的目的。
Claims (1)
1.一种智能卡芯片下载程序的实现方法,其特征在于,具体实现方法如下:
(1)首先启动下载程序,下载程序从中断向量表开始执行,然后跳转至下载程序的中断服务程序;
(2)下载程序的中断服务程序通过读取标记来判断是否已经下载了COS,该标记在下载完COS后写入NVM的空白区;如果该标记存在,则说明已经下载了COS,下载程序的中断服务程序则读取COS的中断向量表,然后跳转到对应的COS中断服务程序执行COS;如果该标记不存在,则说明不存在COS,继续执行下载程序,等待下载命令;
(3)当设备发送的命令到来时,下载程序的中断服务程序通过判断命令的类型开展进一步操作;如果为恢复下载程序的命令,则清除已经标记为COS存在的标记;如果为下载COS的命令,则先下载COS中断服务程序,然后下载COS的中断向量表;
(4)下载程序完成执行后,重新上电,芯片进入(1)的流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611017095.3A CN108089886A (zh) | 2016-11-19 | 2016-11-19 | 一种智能卡芯片下载程序的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611017095.3A CN108089886A (zh) | 2016-11-19 | 2016-11-19 | 一种智能卡芯片下载程序的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108089886A true CN108089886A (zh) | 2018-05-29 |
Family
ID=62168740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611017095.3A Pending CN108089886A (zh) | 2016-11-19 | 2016-11-19 | 一种智能卡芯片下载程序的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108089886A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176700A (zh) * | 2019-12-04 | 2020-05-19 | 东信和平科技股份有限公司 | 智能卡cos后下载更新方法及系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040015952A1 (en) * | 2001-04-18 | 2004-01-22 | Domosys Corporation | Method of remotely upgrading firmware in field-deployed devices |
US6850973B1 (en) * | 1999-09-29 | 2005-02-01 | Fisher-Rosemount Systems, Inc. | Downloadable code in a distributed process control system |
US20050204226A1 (en) * | 2004-02-06 | 2005-09-15 | Whetsel Lee D. | Core circuit test architecture |
CN101782859A (zh) * | 2010-03-18 | 2010-07-21 | 上海乐毅信息科技有限公司 | 一种嵌入式系统在应用中的升级方法 |
CN101923500A (zh) * | 2010-07-14 | 2010-12-22 | 康佳集团股份有限公司 | 一种嵌入式设备中引导程序备份及更新的方法及装置 |
CN103077056A (zh) * | 2012-12-31 | 2013-05-01 | 中国电子科技集团公司第十五研究所 | 使用少量ROM资源的Bootlorder实现方法 |
CN103996412A (zh) * | 2013-02-19 | 2014-08-20 | 北京同方微电子有限公司 | 一种用于智能卡非易失性存储器的掉电保护方法 |
CN104090796A (zh) * | 2014-07-08 | 2014-10-08 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和系统 |
CN104360877A (zh) * | 2014-10-24 | 2015-02-18 | 同济大学 | 基于Bootloader自更新的ECU固件更新方法 |
CN104376283A (zh) * | 2014-11-18 | 2015-02-25 | 北京工业大学 | 智能卡cos高速下载系统 |
-
2016
- 2016-11-19 CN CN201611017095.3A patent/CN108089886A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6850973B1 (en) * | 1999-09-29 | 2005-02-01 | Fisher-Rosemount Systems, Inc. | Downloadable code in a distributed process control system |
US20040015952A1 (en) * | 2001-04-18 | 2004-01-22 | Domosys Corporation | Method of remotely upgrading firmware in field-deployed devices |
US20050204226A1 (en) * | 2004-02-06 | 2005-09-15 | Whetsel Lee D. | Core circuit test architecture |
CN101782859A (zh) * | 2010-03-18 | 2010-07-21 | 上海乐毅信息科技有限公司 | 一种嵌入式系统在应用中的升级方法 |
CN101923500A (zh) * | 2010-07-14 | 2010-12-22 | 康佳集团股份有限公司 | 一种嵌入式设备中引导程序备份及更新的方法及装置 |
CN103077056A (zh) * | 2012-12-31 | 2013-05-01 | 中国电子科技集团公司第十五研究所 | 使用少量ROM资源的Bootlorder实现方法 |
CN103996412A (zh) * | 2013-02-19 | 2014-08-20 | 北京同方微电子有限公司 | 一种用于智能卡非易失性存储器的掉电保护方法 |
CN104090796A (zh) * | 2014-07-08 | 2014-10-08 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和系统 |
CN104360877A (zh) * | 2014-10-24 | 2015-02-18 | 同济大学 | 基于Bootloader自更新的ECU固件更新方法 |
CN104376283A (zh) * | 2014-11-18 | 2015-02-25 | 北京工业大学 | 智能卡cos高速下载系统 |
Non-Patent Citations (2)
Title |
---|
AO BIAO ET AL: "Key Management System of IC Card based on information security", 《2010 INTERNATIONAL CONFERENCE ON COMPUTER APPLICATION AND SYSTEM MODELING (ICCASM 2010)》 * |
薛明策等: "智能卡COS操作系统高速下载的研究与实现", 《单片机与嵌入式应用》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176700A (zh) * | 2019-12-04 | 2020-05-19 | 东信和平科技股份有限公司 | 智能卡cos后下载更新方法及系统 |
CN111176700B (zh) * | 2019-12-04 | 2023-08-01 | 东信和平科技股份有限公司 | 智能卡cos后下载更新方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1333358C (zh) | 具有配置初始化功能的内电路配置结构 | |
CN102565671B (zh) | 一种集成电路测试仪在线编程的动态配置方法 | |
CN102236621B (zh) | 计算机接口信息配置系统及方法 | |
CN102169459B (zh) | 一种访问数据的方法、装置和智能卡 | |
JPH03240127A (ja) | プログラム制御システム | |
CN101446918B (zh) | 一种实现用户态调试器调试单个函数的方法及系统 | |
CN101339581B (zh) | 基于中断通讯的嵌入式系统的在线调试仿真方法 | |
CN103488464B (zh) | 微处理器以及微处理器操作方法 | |
CN104360877A (zh) | 基于Bootloader自更新的ECU固件更新方法 | |
CN102023908A (zh) | 一种引导程序备份方法及装置 | |
CN105930186B (zh) | 多cpu的软件加载方法及基于多cpu的软件加载装置 | |
CN103745167B (zh) | 单片机的iap方法及装置 | |
CN101154207A (zh) | 一种微控制器配置接口操作方法 | |
CN104461859B (zh) | 一种支持nvm软断点调试的仿真器和方法 | |
CN109408122A (zh) | 一种设备启动方法、电子设备和计算机存储介质 | |
CN100421099C (zh) | 集成电路及其配置方法及加载配置资料时的错误恢复方法 | |
CN102467446A (zh) | 可设置程序指针值的处理器芯片仿真器 | |
CN1333357C (zh) | 具有非易失性配置储存装置的内电路配置结构 | |
CN102622257A (zh) | 电表在线自更新方法及其装置 | |
CN102520778A (zh) | 一种适用于嵌入式Linux操作系统的系统一键还原方法 | |
CN104035757A (zh) | 基于MIPS处理器的u-boot移植的实现方法 | |
KR970066888A (ko) | 불 휘발성 메모리를 사용한 마이크로컴퓨터 | |
CN101697132A (zh) | 一种操作系统快速重启的方法、装置和网络设备 | |
CN107544804A (zh) | 嵌入式系统终端开发模式的启动方法及装置 | |
CN108089886A (zh) | 一种智能卡芯片下载程序的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100083 18 floor, West Tower, block D, Tongfang science and Technology Plaza, 1 Wang Zhuang Road, Wudaokou, Haidian District, Beijing. Applicant after: Purple light co core Microelectronics Co., Ltd. Address before: 100083 18 floor, West Tower, block D, Tongfang science and Technology Plaza, 1 Wang Zhuang Road, Wudaokou, Haidian District, Beijing. Applicant before: Beijing Tongfang Microelectronics Company |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180529 |