一种以应用协议数据单元访问与非门闪存存储器的方法

文档序号:6464643阅读:151来源:国知局
专利名称:一种以应用协议数据单元访问与非门闪存存储器的方法
技术领域
本发明涉及涉及智能卡应用技术领域,特别是以符合ISO/IEC 7816规范(ISO/IEC 7816: Identification Cards-Integrated Circuit(s) Cards with Contacts, ISO/IEC 7816: 识別卡一带触 点的集成电路卡)的应用协议数据单元APDU(Application Protocol Data Unit)访问与非门闪存NAND Flash存储器的方法。
背景技术
智能卡在电信、交通、金融等领域获得了大量应用,用户对卡性 能尤其是卡片用户存储空间提出了越来越高的要求。在传统智能卡控 制器基础上增加NAND Flash及其控制器形成的大容量智卡已开始走 向市场。
现有技术中,符合ISO/IEC 7816规范的APDU在访问诸如 EEPROM(电可擦除可编程只读存储器)、NOR Flash(或非门闪存)时, 用参数P1及P2传递所需访问的存储空间的起始地址或起始地址的偏 移地址(基址由单独的APDU设定),参数P3传递访问长度(读时小于 256字节(含),写时小于255字节(含))。而NAND Flash在访问时必 须指定行及列地址,行、列地址的跨度均已超过了 256(0xl00)许多。 所以,靠单字节参数PI及P2来传递访问NAND Flash时的地址参数 显然不可取。同时,NAND Flash —个基本访问单位一页(page)的长
6度也多大于256(0x100)字节,当访问长度大于256字节时,单字节 参数P3也不能一次将其传递。即使访问NAND Flash的APDU为ISO / IEC 7816规范定义的扩展型APDU,参数P3在第二种情形(Case 2) 时可以为3字节长度,但仍然不能在同一条APDU中将NAND Flash的 行、列地址以及读取长度传递给智能卡。直接利用ISO/IEC 7816规 范定义的APDU写NAND Flash时,也有与读类似的问题。

发明内容
为了解决上述现有技术中存在的问题,本发明的目的时提供一种 以应用协议数据单元访与非门闪存存储器的方法。该方法能快速、准 确、方便地访问大容量智能卡中的NAND Flash存储器。
为了达到上述发明目的,本发明的技术方案以如下方式实现 一种以应用协议数据单元访问与非门闪存存储器的方法,它使用 包含与非门闪存的智能卡和包含应用协议数据单元的终端。该方法包 括
读与非门闪存识別号,该识別号标明所访问与非门闪存的身份信
息;
读与非门闪存数据,所述数据为存储于与非门闪存主存储区或冗 余区的二进制信息;
写数据到与非门闪存存储区,该存储区为主存储区或冗余区;
擦除与非门闪存块,所述的块为与非门闪存,可以擦除的最小单位。
在上述访问与非门闪存存储器的方法中,所述读与非门闪存识別协议数据单元。 该应用协议数据单元的参数P3指示需要读取的与非门闪存识別号字 节数。
在上述访问与非门闪存存储器的方法中,所述读与非门闪存数据 采用ISO/IEC 7816规范定义的第四种情形的应用协议数据单元。该 应用协议数据单元的Lc字段指示需要读的与非门闪存数据所需参数 的长度,该应用协议数据单元的数据段为需读取的与非门闪存的行地 址、列地址和读取长度。
在上述访问与非门闪存存储器的方法中,所述擦除与非门闪存块 采用ISO / IEC 7816规范定义的第一种情形的应用协议数据单元,该 应用协议数据单元的参数用于传递与非门闪存的块地址。
在上述访问与非门闪存存储器的方法中,所述读与非门闪存数据 时,所读数据长度小于或等于256字节时,智能卡在读操作成功之后 发送带读出数据长度的成功状态字给终端并由终端发出取响应应用 协议数据单元,智能卡再按读出数据长度发送读出的数据,并随后发 送两字节标示应用协议数据单元成功处理的状态字。所读数据长度大 于256字节时,智能卡在读操作成功之后发送带读出数据长度的成功 状态字给终端并由终端连续多次发出取响应应用协议数据单元,智能 卡在每次收到取响应应用协议数据单元后按每次256字节逐次将读 出的数据顺序发送至终端直至数据全部发出,智能卡在每次数据发送 后发出带剩余数据长度的成功状态字。若读出数据长度不为256的整 数倍,智能卡在最后一次收到取响应应用协议数据单元后发出的数据将小于256字节。
在上述访问与非门闪存存储器的方法中,所述带读出数据长度的 成功状态字中一部份位表示应用协议数据单元处理成功,余下位表示 本次自与非门闪存中读出数据的长度,该数据长度最大为与非门闪存 页的长度。带剩余数据长度的成功状态字中一部份位表示应用协议数 据单元处理成功,余下位表示本次数据发送后智能卡中剩余读出数据 的长度,该数据长度最小为零,最大为与非门闪存页的长度,若剩余 读出数据长度为零,则该成功状态字与标示应用协议数据单元成功的 状态字一致。
在上述访问与非门闪存存储器的方法中,所述取响应应用协议数 据单元为IS0/IEC 7816规范定义的第四种情形的应用协议数据单 元。该应用协议数据单元在终端收到带读出数据长度的成功状态字或 带剩余数据长度的成功状态字后发送。
在上述访问与非门闪存存储器的方法中,所述写数据到与非门闪 存存储区采用两类第三种情形的应用协议数据单元分別负责传参数 和传数据。传参数应用协议数据单元的数据段为需写入的与非门闪存 存储器的行地址、列地址和长度。传数据应用协议数据单元的数据段 为255字节(含)以下需写入与非门闪存的数据,传数据应用协议数据 单元的参数P1和参数P2用于表示本条应用协议数据单元在序列中的 序号,参数Pl和参数P2能明确表示本条应用协议数据单元为序列中 最后一条,智能卡以序列中的最后一条作为写与非门闪存的讯号。
在上述访问与非门闪存存储器的方法中,所述写数据到与非门闪存存储区的步骤为
① 由终端用传参数应用协议数据单元启动写数据到与非门闪存 存储区操作;
② 智能卡中的片上操作系统COS判断写入的目标页是否处于无
效块中,是则显示出错提示,否则发送状态字表示应用协议数据单元
处理成功;
③ 终端判断写入长度是否大于255字节,如果是,终端用传数据 应用协议数据单元按255 (0xFF)字节每次逐次将需写入数据传输至 智能卡,同时写入长度按255字节每次逐次递减,直至写入长度小于 或等于255字节,再返回步骤③;智能卡在每条传数据应用协议数据 单元之后,按接收数据是否成功分别返回成功状态字或出错提示;否 则,终端用传数据应用协议数据单元将255字节以下(含)需写入数 据传输至智能卡,同时在参数中以明显的位编码告诉智能卡中的片上 操作系统COS本条为传数据应用协议数据单元序列中最后一条;智能 卡在正确接收本条应用协议数据单元后,开始与非门闪存页编程,如 果成功将发送成功状态字,否则显示出错提示。
本发明由于采用了上述方法,可以使智能卡读写器在不改变其硬 件结构的前提下,仅用智能卡COS支持的APDU即可访问卡内的NAND Flash存储器。本发明同时也可增强带NAND Flash存储器的大容量 智能卡的兼容性 同现有技术相比,本发明对大容量智能卡中NAND Flash存储器的访问更加快速、准确、方便。
下面结合附图和具体实施方式
对本发明作进一步说明。


图1是本发明中读与非门闪存数据的流程图。
图2是本发明中写数据到与非门闪存存储区的流程图。 图3是本发明实施例中读与非门闪存数据的通讯图。 图4是本发明实施例中写数据到与非门闪存存储区的通讯图。
具体实施例方式
参看图1至图4,用含APDU的终端实现对智能卡中总容量 128MB(兆字节)、页大小为2112字节(主存储区2048字节、冗余区 64字节)、块大小为64页的NAND Flash访问的方法
1) 读NAND Flash识別号,采用ISO / IEC 7816规范定义的第二 种情形的APDU, APDU格式为00 7A 00 01 P3,其中APDU的参数P3
指定所需要读取的识別号字节数。 APDU: 00 7A 00 01 xx 卡片响应xx字节NAND Flash识別号 成功状态字9000
错误定义
参数P3错误,状态字6C00; 读NAND Flash识別号失败,状态字6504。
2) 读NAND Flash数据,采用ISO/IEC 7816规范定义的第四 种情形的APDU,该读APDU的格式为00 7A 00 02 06(Lc) +参数, 其中Lc字段指示需要读的NAND Flash数据所需参数的长度,参数定 义为NAND Flash行地址、列地址以及读取长度。读NAND Flash数据时,所读数据长度小于或等于256字节时,智能卡在读操作成功之后 发送带读出数据长度的成功状态字给终端并由终端发出取响应APDU, 智能卡再按读出数据长度发送读出的数据,并随后发送两字节标示 APDU成功处理的状态字;所读数据长度大于256字节时,智能卡在 读操作成功之后发送带读出数据长度的成功状态字给终端并由终端 连续多次发出取响应APDU,智能卡在每次收到取响应APDU后按每次 256字节逐次将读出的数据顺序发送至终端直至数据全部发出,智能 卡在每次数据发送后发出带剩余数据长度的成功状态字;若读出数据 长度不为256的整数倍,智能卡在最后一次收到取响应APDU后发出 的数据将小于256字节。带读出数据长度的成功状态字中一部份位表 示APDU处理成功,余下位表示本次自NAND Flash中读出数据的长度, 该数据长度最大为NAND Flash页的长度。带剩余数据长度的成功状 态字中一部份位表示APDU处理成功,余下位表示本次数据发送后智 能卡中剩余读出数据的长度,该数据长度最小为零,最大为NAND Flash页的长度。若剩余读出数据长度为零,则该成功状态字与标示 APDU成功的状态字一致。取响应APDU为ISO / IEC 7816规范定义的 第四种情形的APDU;该APDU在终端收到带读出数据长度的成功状态 字或带剩余数据长度的成功状态字后发送。
读数据APDU: 00 7A 00 02 06 (Lc) +参数(行地址(2字节)、列 地址(2字节)、长度(2字节))
成功状态字9xyz, xyz字节数据己经从参数指定行、列地址读 出,xyz的最大值为0x840,即整页读出错误定义
读NAND Flash数据失败,状态字6504 取响应APDU: 00 CO 00 02 00
卡片响应xyz《256时,xyz字节NAND Flash数据(同时xyz清 零);xyz>256时,256字节NAND Flash数据(同时xyz减掉256)
成功状态字xyz =0时,9000; xyz #0时,9xyz。 3) 写数据到NAND Flash存储区,采用两类第三种情形的APDU 分別负责传参数和传数据,其中传参数APDU格式为00 7C 00 00 06 (Lc) +参数,该参数定义与读NAND Flash数据APDU参数格式一致。传 数据APDU格式为00 7C 00 P2 P3 +待写数据,该APDU的P3为当 条命令传送的数据长度,其值从1至255,该APDU的P2高4位值为 Oxl表示当条命令是本次写NAND Flash操作的最后一条APDU,即写 讯号,而P2低4位则用于表示当条APDU在传数据APDU序列中的序 号,从Oxl起递增且其最大值为0x9(因单页大小为2112字节,最多 9次即可完成2112字节传输)。写数据到与非门闪存存储区的步骤为
① 由终端用传参数APDU启动写数据到NAND Flash存储区操作;
② 智能卡中的COS判断写入的目标页是否处于无效块中,是则 显示出错提示,否则发送状态字表示APDU处理成功;
③ 终端判断写入长度是否大于255字节,是进入第④步,否进 入第 步-,
终端用传数据APDU按255 (OxFF)字节每次逐次将需写入数 据传输至智能卡,同时写入长度按255字节每次逐次递减,直至写入长度小于或等于255字节,再返回步骤③;智能卡在每条传数据APDU 之后,按接收数据是否成功分别返回成功状态字或出错提示;
终端用传数据APDU将255字节以下(含)需写入数据传输至 智能卡,同时在参数中以明显的位编码告诉智能卡中的COS本条为传 数据APDU序列中最后一条;智能卡在正确接收本条APDU后,开始 NAND Flash编程,如果成功将发送成功状态字,否则显示出错提示。
传参数APDU: 00 7C 00 00 06(Lc) +参数(行地址(2字节)、 列地址(2字节)、长度(2字节))
成功状态字9000
错误定义
目标块为无效块,状态字6504
传数据APDU: 00 7C 00 P2 P3 +待写数据,长度小于255字节 (含)时,P2二0xU, 3=长度;长度大于255字节时,P2从0x01开始 递增至Oxly, y为传输所有待写数据所需的传数据APDU条数,P3 除末条传数据APDU为长度减去y乘以255外,其余均为OxFF
成功状态字9000
错误定义
写NAND Flash错误,状态字6501。
4) 擦除NAND Flash块,采用ISO / IEC 7816规范定义的第一 种情形的APDU,该APDU格式为00 2E PI P2 00,其中参数Pl*256 + P2为目标块地址,即能被0x40(64)整除的NAND Flash行地址。
APDU: 00 2E PI P2 00,其中参数P1W56 + P2为目标块地址成功状态字9000 错误定义
擦除失败(未知原因),状态字6501;
目标块为无效块,状态字6504。
权利要求
1.一种以应用协议数据单元访问与非门闪存存储器的方法,它使用包含与非门闪存的智能卡和包含应用协议数据单元的终端,该方法包括读与非门闪存识別号,该识別号标明所访问与非门闪存的身份信息;读与非门闪存数据,所述数据为存储于与非门闪存主存储区或冗余区的二进制信息;写数据到与非门闪存存储区,该存储区为主存储区或冗余区;擦除与非门闪存块,所述的块为与非门闪存,可以擦除的最小单位。
2. 根据权利要求1所述的以应用协议数据单元访问与非门闪存 存储器的方法,其特征在于,所述读与非门闪存识別号采用IS0/IEC 7816规范定义的第二种情形的应用协议数据单元;该应用协议数据 单元的参数P3指示需要读取的与非门闪存识別号字节数。
3. 根据权利要求1所述的以应用协议数据单元访问与非门闪存 存储器的方法,其特征在于,所述读与非门闪存数据采用IS0/IEC 7816规范定义的第四种情形的应用协议数据单元,该应用协议数据 单元的Lc字段指示需要读的与非门闪存数据所需参数的长度,该应 用协议数据单元的数据段为需读取的与非门闪存的行地址、列地址和 读取长度。
4. 根据权利要求1所述的以应用协议数据单元访问与非门闪存存储器的方法,其特征在于,所述擦除与非门闪存块采用IS0/IEC7816规范定义的第一种情形的应用协议数据单元,该应用协议数据单元的参数用于传递与非门闪存的块地址。
5. 根据权利要求1或3所述的以应用协议数据单元访问与非门闪存存储器的方法,其特征在于,所述读与非门闪存数据时,所读数据长度小于或等于256字节时,智能卡在读操作成功之后发送带读出数据长度的成功状态字给终端并由终端发出取响应应用协议数据单元,智能卡再按读出数据长度发送读出的数据,并随后发送两字节标示应用协议数据单元成功处理的状态字;所读数据长度大于256字节时,智能卡在读操作成功之后发送带读出数据长度的成功状态字给终端并由终端连续多次发出取响应应用协议数据单元,智能卡在每次收到取响应应用协议数据单元后按每次256字节逐次将读出的数据顺序发送至终端直至数据全部发出,智能卡在每次数据发送后发出带剩余数据长度的成功状态字;若读出数据长度不为256的整数倍,智能卡在最后一次收到取响应应用协议数据单元后发出的数据将小于256字节。
6. 根据权利要求5所述的以应用协议数据单元访问与非门闪存存储器的方法,其特征在于,所述带读出数据长度的成功状态字中一部份位表示应用协议数据单元处理成功,余下位表示本次自与非门闪存中读出数据的长度,该数据长度最大为与非门闪存页的长度;带剩余数据长度的成功状态字中一部份位表示应用协议数据单元处理成功,余下位表示本次数据发送后智能卡中剩余读出数据的长度,该数据长度最小为零,最大为与非门闪存页的长度,若剩余读出数据长度为零,则该成功状态字与标示应用协议数据单元成功的状态字一致。
7. 根据权利要求6所述的以应用协议数据单元访问与非门闪存存储器的方法,其特征在于,所述取响应应用协议数据单元为ISO/IEC 7816规范定义的第四种情形的应用协议数据单元;该应用协议数据单元在终端收到带读出数据长度的成功状态字或带剩余数据长度的成功状态字后发送。
8. 根据权利要求1所述的以应用协议数据单元访问与非门闪存存储器的方法,其特征在于,所述写数据到与非门闪存存储区采用两类第三种情形的应用协议数据单元分別负责传参数和传数据,传参数应用协议数据单元的数据段为需写入的与非门闪存存储器的行地址、列地址和长度;传数据应用协议数据单元的数据段为255字节(含)以下需写入与非门闪存的数据,传数据应用协议数据单元的参数Pl和参数P2用于表示本条应用协议数据单元在序列中的序号,参数Pl和参数P2能明确表示本条应用协议数据单元为序列中最后一条,智能卡以序列中的最后一条作为写与非门闪存的讯号。
9. 根据权利要求1或8所述的以应用协议数据单元访问与非门闪存存储器的方法,其特征在于,所述写数据到与非门闪存存储区的步骤为①由终端用传参数应用协议数据单元启动写数据到与非门闪存存储区操作;② 智能卡中的片上操作系统判断写入的目标页是否处于无效块 中,是则显示出错提示,否则发送状态字表示应用协议数据单元处理 成功;③ 终端判断写入长度是否大于255字节,如果是,由终端用传数 据应用协议数据单元按255 (0xFF)字节每次逐次将需写入数据传输 至智能卡,同时写入长度按255字节每次逐次递减,直至写入长度小 于或等于255字节,再返回步骤③;智能卡在每条传数据应用协议数 据单元之后,按接收数据是否成功分别返回成功状态字或出错提示; 否则,终端用传数据应用协议数据单元将255字节以下(含)需写入 数据传输至智能卡,同时在参数中以明显的位编码告诉智能卡中的片 上操作系统本条为传数据应用协议数据单元序列中最后一条;智能卡 在正确接收本条应用协议数据单元后,开始与非门闪存页编程,如果 成功将发送成功状态字,否则显示出错提示。
全文摘要
一种以应用协议数据单元访问与非门闪存存储器的方法,涉及涉及智能卡应用技术领域。本发明方法包括读与非门闪存识别号,该识别号标明所访问与非门闪存的身份信息;读与非门闪存数据,所述数据为存储于与非门闪存主存储区或冗余区的二进制信息;写数据到与非门闪存存储区,该存储区为主存储区或冗余区;擦除与非门闪存块,所述的块为与非门闪存,可以擦除的最小单位。同现有技术相比,本发明对大容量智能卡中NAND Flash存储器的访问更加快速、准确、方便。
文档编号G06F12/02GK101639809SQ20081011755
公开日2010年2月3日 申请日期2008年8月1日 优先权日2008年8月1日
发明者向明亮 申请人:北京同方微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1