数据串传送方法、系统及其控制器的制作方法

文档序号:6480963阅读:193来源:国知局
专利名称:数据串传送方法、系统及其控制器的制作方法
技术领域
本发明是有关于一种数据串传送方法、系统及其控制器,且特别是有关于一种适
用于从主机传递数据至具有芯片的外围装置的数据串传送方法、系统及其控制器。
背景技术
数字相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对储 存媒体的需求也急速增加。由于闪存(Flash Memory)具有数据非易失性、省电、体积小,以 及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
另一方面,随着使用者逐渐接受使用电子钱包及预付储值,使得智能卡的使用日 益普及。智能卡(Smart Card)是具有例如微处理器、卡操作系统、安全模块及存储器的组 件的集成电路芯片(IC芯片),以允许持有者执行预定操作。智能卡提供计算、加密、双向 通信及安全功能,使得这张卡片除了储存数据的功能外还能达到对其所储存的数据加以 保护的功能。使用全球移动通信系统(GSM)机制的蜂巢式电话中所使用的用户识别模块 (Subscriber Identification Module, SM)卡为智能卡的其中一个应用范例。然而,智能 卡本身受限于储存容量,因此近年来开始与大量储存装置的存储卡作结合,以扩增智能卡 的储存容量。 在现有技术中,结合闪存与智能卡的应用是透过特殊命令来区别传送给智能卡或 闪存的数据,此特殊命令可能会造成硬件装置或驱动程序无法支持的问题。此外,在现有 技术中是比对此特殊命令中关于所传送数据串的型态信息来判断此数据串是否为智能卡 的命令格式。然而,此方法往往会造成一般文件数据与属于智能卡的命令格式碰撞的问题 (即将一般文件数据误判为智能卡的数据串)。 另外,在一些具有高速缓冲存储器(Cache)的电子产品的应用中,因这些电子产 品本身的限制,智能卡与电子产品之间数据串的传递并无法绕过高速缓冲存储器,而使得 智能卡所产生的响应讯息并无法被无误地回传至所依附的电子产品,进而限制智能卡在这 类具有高速缓冲存储器的电子产品上的应用。举例来说,在一个Java系统的移动电话中, 因Java系统并不支持诸如NO Cache等不须透过高速缓冲存储器而直接地对高速缓冲存储 器进行存取的指令,故很难将智能卡和闪存以整合为存储卡的形式应用在这类Java系统 的移动电话中。请参考图1,图1为现有搭配存储卡12的主机10的功能方块图。主机10 为一种电子产品(如Java系统的移动电话),并具有高速缓冲存储器14,而存储卡12具 有闪存16和智能卡芯片18。主机10与存储卡12之间的数据传递路径都会经过高速缓冲 存储器14。然而,因为高速缓冲存储器14会暂存最近主机10与存储卡12之间所传递的数 据的缘故,当主机IO欲从智能卡芯片18获得数据时,若高速缓冲存储器14内已经存有与 读取指令相符的数据时,则高速缓冲存储器14就会将相符的数据传送至主机10。然而,在 这样的架构下,智能卡芯片18的响应讯息往往会被高速缓冲存储器14已有的数据所取代, 而使得智能卡芯片18的加密及安全通信的功能大受影响。 基此,有需要发展一套能够在智能卡的相关应用中无误地传递智能卡的响应讯息的系统和方法。

发明内容
本发明提供一种数据串传送系统及其控制器,能够无误地传递智能卡的响应讯 息。 本发明提供一种数据串传送方法,能够无误地传递智能卡的响应讯息。 本发明所提供的数据串传送方法、系统及其控制器,除了可应用在结合闪存与智
能卡的应用中,还另可应用在其它芯片与闪存的结合应用中,以无误地传递芯片的响应讯
息,而上述芯片可以是射频识别芯片、无线传输芯片(如蓝牙芯片)或多媒体控制芯片
(如数字录音芯片)。 本发明提出一种数据串传送方法,其适用于从主机传递数据串至具有的外围装 置。此数据串传送方法包括产生一写入符记,并将该写入符记藏于一第一数据串中;传 送一第一写入指令至该外围装置,该第一写入指令被设定为写入该第一数据串至该外围装 置;传送该第一数据串的至少一部份至该芯片,并记录该第一数据串中的该写入符记;以 及依序地传送多个读取指令至该外围装置,直到该主机自该外围装置接收到一第一响应讯 息为止,其中该第一响应讯息的一预设数据区内的数据为该芯片因接收到该第一数据串的 至少一部份而产生,且该第一响应讯息含有该写入符记,而该多个读取指令被设定为读取 多个逻辑区块地址上的数据。 本发明提出一种数据串传送系统,其适用于在主机和具有芯片的外围装置之间的 数据串传送。此数据串传送系统包括应用程序以及控制器。应用程序安装于主机上并且 用以操作外围装置。控制器设置于外围装置中,并且电性连接至芯片。其中该控制器会产 生一写入符记,并将该写入符记藏于一第一数据串中。主机会执行应用程序会以送一写入 指令至控制器,写入指令被设定为写入第一数据串至外围装置。控制器会传送第一数据串 的至少一部份至该芯片,并记录该第一数据串中的写入符记。当主机执行该应用程序时,该 主机会依序地传送多个读取指令至该外围装置,直到从该控制器接收到一第一响应讯息为 止,其中该第一响应讯息的一预设数据区内的数据为该芯片因接收到该第一数据串的至少 一部份而产生,且该第一响应讯息含有该写入符记,而该多个读取指令被设定为读取多个 逻辑区块地址上的数据。 本发明提出 一种控制器,其适用于具有芯片的外围装置。此控制器包括一微处理
单元以及一缓冲存储器。上述微处理单元用以控制控制器的整体运作,而上述缓冲存储器
用以暂时地储存数据。其中微处理单元会将来自于一主机的第一数据串的至少一部份传送
至该芯片,并记录该第一数据串中的一写入符记。在该第一数据串的至少一部份被传送至
该芯片之后,以及在该微处理单元传送一第一响应讯息至该主机之前,该微处理单元会依
序地传送一第二响应讯息至该主机,以响应来自该主机的多个读取指令。其中该第一响应
讯息的一预设数据区内的数据为该芯片因接收到该第一数据串的至少一部份而产生。当该
微处理单元自该芯片接收到该第一响应讯息的该预设数据区内的数据之后,该微处理单元
会将该第一响应讯息传送至该主机,而该第一响应讯息含有该写入符记。 本发明提出一种应用程序,其安装在一主机中。其中该主机会通过执行该应用程
序,以进行上述的数据串传送方法,进而控制该主机和具有芯片的外围装置之间的数据串传送。 本发明提出一种控制器,安装在一主机中。该控制器包括一微处理器单元、一缓冲 存储器以及一数据串传送模块。该缓冲存储器耦接至该微处理器单元,而该数据串传送模 块耦接至该微处理器单元。该数据串传送模块具有可由该微处理器单元执行的多个机器 指令,以对该主机和一具有芯片的外围装置间的数据串传送进行多个数据串传送步骤。该 些数据串传送步骤包括产生一写入符记,并将该写入符记藏于一第一数据串中;传送一 第一写入指令至该外围装置,该第一写入指令被设定为写入该第一数据串至该外围装置; 传送该第一数据串的至少一部份至该芯片,并记录该第一数据串中的该写入符记;以及依 序地传送多个读取指令至该外围装置,直到该主机自该外围装置接收到一第一响应讯息为 止,其中该第一响应讯息的一预设数据区内的数据为该芯片因接收到该第一数据串的至少 一部份而产生,且该第一响应讯息含有该写入符记,而该多个读取指令被设定为读取多个 逻辑区块地址上的数据。 在本发明的一实施例中,上述数据串传送方法更包括判断该主机传送至该外围
装置的任一数据串中是否含有一特定标记;以及倘若该主机传送至该外围装置的数据串中
含有该特定标记,则含有该特定标记的数据串的至少一部份会被传送至该芯片。 在本发明的一实施例中,上述外围装置更包括一非易失性存储器,而上述数据串
传送方法更包括倘若该主机传送至该外围装置的数据串中未含有该特定标记,则将未含
有该特定标记的该数据串写入至该非易失性存储器。 在本发明的一实施例中,上述外围装置更包括一非易失性存储器,而上述数据串 传送方法更包括判断任一个从该主机传送至该外围装置的读取指令是否被设定为读取该 多个逻辑区块地址上的数据;以及对任一读取指令而言,倘若该读取指令并非被设定为读 取该多个逻辑区块地址上的数据,则依据该读取指令所指派的地址从该非易失性存储器中 读取对应的数据。 在本发明的一实施例中,上述数据串传送方法更包括当产生该写入符记后,记录 该写入符记于该主机;以及比对该外围装置回传至该主机的响应讯息中的写入符记是否与 记录于该主机的该写入符记一致。 在本发明的一实施例中,上述数据串传送方法更包括倘若该外围装置回传至该 主机的响应讯息中的写入符记与记录于该主机的该写入符记并不一致,则继续传送读取指 令至该外围装置,直到接收到该第一响应讯息为止。 在本发明的一实施例中,上述数据串传送方法更包括当产生该写入符记后,记录 该写入符记于该主机;以及在该主机传送一第二写入指令至该外围装置以将数据传送至该 芯片之前,更新该主机所记录的该写入符记,并将更新后的该写入符记随着该第二写入指 令传送至该外围装置。 在本发明的一实施例中,上述数据串传送方法更包括响应该多个读取指令,而将 对应的读取符记加入至回传给该主机的响应讯息中;以及判断该主机所接收到的响应讯息 中的读取符记是否与一系统设定值一致。 在本发明的一实施例中,上述数据串传送方法更包括当该外围装置回传至该主 机的响应讯息中的写入符记与记录于该主机的写入符记一致,且该主机所接收到的响应讯 息中的该读取符记与该系统设定值一致时,判断该主机所连续接收到的至少三个响应讯息中的读取符记之间的差值是否为一定值。 在本发明的一实施例中,其中该至少三个响应讯息所对应的多个读取指令被设定
成读取该多个逻辑区块地址中多个彼此不相邻的逻辑区块地址上的数据。 在本发明的一实施例中,上述主机每传送该多个读取指令当中的任一个读取指令
至该外围装置后,该主机会执行一第三写入指令,以将数据写入至该外围装置的一暂存盘。 在本发明的一实施例中,当上述主机传送该第一写入指令至该外围装置后,该主
机执行该第三写入指令,以将数据写入至该暂存盘。 在本发明的一实施例中,当上述暂存盘的大小超过一预设数据量时,该控制器会 清除该暂存盘。 在本发明的一实施例中,上述任两个接续地回传给该主机的响应讯息中的读取符 记,皆相差一默认值。 在本发明的一实施例中,上述写入符记为依据一系统时间产生。
在本发明的一实施例中,上述写入符记为一随机数值。 在本发明的一实施例中,上述多个逻辑区块地址上的数据属于单一特定文件。
在本发明的一实施例中,上述外围装置更包括一非易失性存储器,而上述数据串 传送方法更包括判断该单一特定文件是否存在于该非易失性存储器内;以及倘若该单一 特定文件尚未存在于该非易失性存储器内,则在该非易失性存储器内建立该单一特定文 件。 在本发明的一实施例中,上述多个逻辑区块地址上的数据属于多个特定文件。
在本发明的一实施例中,上述外围装置更包括一非易失性存储器,而上述数据串 传送方法更包括判断该多个特定文件是否存在于该非易失性存储器内;以及倘若该多个 特定文件的任何一个特定文件尚未存在于该非易失性存储器内,则在该非易失性存储器内 建立还尚未建立的特定文件。 在本发明的一实施例中,上述主机包括一高速缓冲存储器,该主机与该外围装置 之间所有指令与数据的传递皆会通过该高速缓冲存储器。 在本发明的一实施例中,上述多个逻辑区块地址上的数据的总和大于或等于该高 速缓冲存储器的容量。 在本发明的一实施例中,上述外围装置实际上并不储存数据于该多个逻辑区块地 址。 在本发明的一实施例中,上述数据串传送方法更包括每当该外围装置接收到该 多个读取指令的其中一个读取指令之后,倘若该主机尚未接收到该第一响应讯息,则从该 外围装置传送一第二响应讯息至该主机。 在本发明的一实施例中,上述第二响应讯息的一预设数据区内的每个位所记录的为零。 在本发明的一实施例中,上述第一响应讯息的该预设数据区内的每个位所记录的 数据不全为零。 在本发明的一实施例中,上述芯片为智能卡芯片、射频识别芯片、无线传输芯片或 多媒体控制芯片。 在本发明的一实施例中,上述外围装置为SD存储卡或匪C存储卡。
在本发明的一实施例中,上述芯片兼容于ISO 7816标准或ISO 14443标准。
在本发明的一实施例中,上述非易失性存储器为单层记忆单元(Single LevelCell, SLC)反及(NAND)闪存或多层记忆单元(Multi Level Cell,MLC)反及(NAND) 闪存。 在本发明的一实施例中,上述第一数据串的至少一部份为一指令-应用程序协议
数据单元(Command-Application Protocol Data Unit, C-APDU),而第一响应讯息为一响
应-应用程序协议数据单元(Response-Application Protocol DataUnit, R-APDU)。 基于上述,本发明通过在不同的写入指令中嵌入写入符记,并使响应讯息中包含
有对应的写入符记,可避免在主机具有高速缓冲存储器的情况下,因关闭应用程序而产生
的数据误判的情况,而更一步地确保数据的正确性。此外,周边装置的控制器亦可将对应的
读取符记加到要回传至主机的数据串中,以进一步地确保当主机前后两次所产生的写入符
记发生碰撞时,主机仍可正确地判断是否接收到智能卡所产生的响应讯息。 为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,
作详细说明如下。


图1为现有搭配存储卡的主机的功能方块图。
图2为根据本发明第一实施例绘示的数据串传送系统的功能方块图。 图3为根据本发明第一实施例绘示主机运作时的流程图。 图4为根据本发明第一实施例绘示外围装置运作时的流程图。 图5为根据图3和图4绘示的本发明第一实施例的数据流示意图。 图6则绘示图2中的应用程序两次与智能卡芯片联系时写入符记WT的数据流向。 图7绘示本发明一实施例中主机通过控制器传送指令或数据至智能卡芯片时所
采用的数据串的架构。 图8绘示本发明一实施例中控制器回传至主机的数据串的结构。 图9绘示本发明另一实施例中控制器回传至主机的数据串的结构。 图10绘示主机与智能卡芯片联系时写入符记与读取符记的数据流向。 图11为本发明一实施例中,主机在检验所接收到的响应讯息是否为智能卡芯片
所产生时的流程图。 图12绘示本发明第三实施例传送数据串时的数据流向。 图13为图2高速缓冲存储器的使用空间配置图。 图14为根据本发明第四实施例绘示主机运作时的流程图。 图15为根据本发明第四实施例绘示外围装置运作时的流程图。 图16为根据图14和图15绘示的本发明第四实施例的数据流示意图。
具体实施例方式
本发明提供一种数据串传送方法、系统及其控制器,其适用于在主机和具有芯片 的外围装置之间的数据串传送。上述系统包括应用程序与控制器,而应用程序与控制器是 分别地安装和设置在主机与外围装置。此外,数据串得以通过写入指令而被传送至芯片。之
11后,通过执行多个读取指令,芯片所产生的响应讯息可无误地被接收。其中,一写入符记会 被用来检验回传数据的正确性,以使主机得以区别所接收到响应讯息是暂存在高速缓冲存 储器中的前次响应讯息,亦或是本次芯片所产生的响应讯息。以下将以数个范例实施例并 配合所附图式来详细说明本发明。但必须了解的是,此些范例实施例并非限制本发明,举例 来说,本发明所提供的数据串传送方法、系统及其控制器,除了可应用在具有高速缓冲存储 器的主机与芯片之间的数据串传递,以无误地传递芯片的响应讯息,而上述芯片可以是射 频识别(RadioFrequency Identification, RFID)芯片、无线传输芯片(如:蓝牙芯片)或 多媒体控制芯片(如数字录音芯片)…等。
[第一实施例] 请参照图2,图2是根据本发明第一实施例绘示的数据串传送系统的概要方块图。 数据串传送系统包括应用程序206与控制器110。应用程序206是安装在主机200内,而控 制器110是设置在外围装置100内,用以控制外围装置100的操作,以及控制外围装置100 与主机200之间的数据传递。详细地说,应用程序可储存于主机内的一控制器中(图未示), 该控制器可具有一微处理器单元(图未示)、一缓冲存储器(图未示),及一数据串传送模 块(图未示)。其中,缓冲存储器及数据串传送模块分别耦接至微处理器单元数据传送模 块。此外,通常外围装置100会与主机200 —起使用,以使主机200可将指令和数据传送到 周边装置100。特别是,外围装置100还包括用以执行安全验证等功能的智能卡芯片140, 而控制器110以及执行应用程序206的主机200可执行根据本发明实施例的数据传送方 法,以将讯息传送至智能卡芯片140并无误地回传智能卡芯片140的响应讯息至主机200。 主机200另包括高速缓冲存储器212,用以暂存主机200最近曾使用过的数据,以提升主机 200整体的数据处理速度。 在本实施例中,外围装置100具有用以储存一般数据的非易失性存储器130,电性 连接控制器110。然而,须说明的,非易失性存储器130对本发明来说是选择性的组件,而非 必要的组件。控制器110会控制外围装置100的整体运作,例如数据串的传递、储存、读取与 抹除等。控制器110包括微处理单元110a、闪存接口 110b与缓冲存储器110c。微处理单元 110a会执行应用程序206所传送过来的指令,并协调控制器110内的各个组件以控制控制 器110的整体运作。闪存接口 110b电性连接至微处理单元110a,并且用以存取非易失性存 储器130。换言之,主机200欲写入至非易失性存储器130的数据会经由闪存接口 110b转 换为非易失性存储器130所能接受的格式。然而,须说明的,因非易失性存储器130对本发 明来说是选择性的组件,而非必要的组件。故在本发明的其它不具非易失性存储器130的 实施例当中,控制器110不必具有存储器接口 110b。缓冲存储器110c用以暂时地储存系统 数据(例如逻辑实体对映表)或者主机200所读取或写入的数据。在本实施例中,缓冲存储 器110c为静态随机存取存储器(static random access memory, SRAM)。然而,必须了解的 是,本发明不限于此,动态随机存取存储器(Dynamic RandomAccess memory,DRAM)、磁阻式 存储器(Magnetoresistive Random Access Memory, M廳)、相变化存储器(Phase Change Random Access Memory, PRAM)、同步动态随机存取存储器(Synchronous DRAM, SDRAM)或其 它适合的存储器亦可应用于本发明。 智能卡芯片140电性连接控制器110,并且用以执行计算、加密、双向通信及安全 认证等功能。在本发明实施例中,智能卡芯片140为兼容于IS0 7816标准的接触式智能卡芯片。然而,必须了解的是,本发明不限于此。例如,智能卡芯片140亦可是兼容于IS0 14443、 ISO 15408或其它安全芯片标准的接触或非接触式智能卡芯片,此外,值得说明的 是,控制器110与智能卡芯片140可各为一独立芯片,亦可合并封装为一单一芯片。
在本发明实施例中,非易失性存储器130为单层记忆单元(Single Level Cell, SLC)反及(NAND)闪存。然而,本发明不限于此,在本发明另一实施例中,非易失性存储器 130为亦可为多层记忆单元(Multi Level Cell, MLC)反及(NAND)闪存或其它适合的非 易失性存储器。此外,虽未绘示于本实施例中,但控制器110可更包括错误校正模块(ECC Module, Error Correction Code Module)与电源管理模i央等功能模块。
在本实施例中,外围装置100可为智能卡或更包含非易失性存储器而为一整合性 的安全数字(secure digital, SD)存储卡。但必须了解的是,在本发明另一实施例中外围 装置100亦可以是多媒体卡(Multi Media Card,匪C)存储卡或其它的存储装置。
本实施例中,外围装置100除了控制器110、非易失性存储器130以及智能卡芯片 140之外还包括总线连接接口 120。总线连接接口 120电性连接控制器110,并且用以与主 机200连接。在本实施例中,总线连接接口 120则为一SD接口。必须了解的是,总线连接 接口 120亦可为其它适合的接口。例如当外围装置100为匪C存储卡时,总线连接接口 120 为MMC接口 。 主机200通过执行应用程序206来操作外围装置100,以完成根据本发明实施 例的数据传送方法。此外,必须了解的是主机200亦包含其它组件,例如处理器、操作系 统...等。在本实施例中,主机200与外围装置100之间所有指令与数据的传递皆会通过 高速缓冲存储器212。此外,上述主机200可为个人计算机、移动电话、笔记本计算机、个人 数字助理机(PDA)....等。 基此,在主机200在对上述含有智能卡芯片140的外围装置IOO进行操作时,根据 本发明实施例的控制器110配合主机200所执行的应用程序206能够正确地将数据或指令 传送至智能卡芯片140,并无误地将智能卡芯片140的响应讯息传递至主机200。以下将配 合图3至图6详细说明控制器110与主机200之间所执行数据传送程序的流程。其中,图3 是根据本发明第一实施例绘示主机200运作时的流程图,图4是根据本发明第一实施例绘 示外围装置100运作时的流程图,而图5是根据图3和图4绘示的数据流示意图,而图6则 绘示主机200两次与智能卡芯片140联系时的数据流向。 请先参照图3,每当主机200要传送数据至智能卡芯片140之前,主机200会先获 得或产生一写入符记(write token)WT,并记录该写入符记WT(步骤S401)。其中,写入符 记WT可依一设定的原则产生,如依序、随机数或是依据一系统时间产生,故一般说来,在每 次主机200欲传送数据至智能卡芯片140时,主机200所获得的写入符记WT大多会彼此不 同。此外,当主机200传送写入指令至智能卡芯片140时,写入符记WT会随着写入指令被 传送到控制器110,且写入符记WT亦会被包含在回传至主机200的数据串中。主机200会 比较传送至控制器110的写入符记是否与控制器110所回传的写入符记一致,以作为在判 断回传数据是否正确时的依据。 之后,在主机200传送数据或指令至外围装置100的智能卡芯片140之前,主 机200会将所欲传送数据或指令与一特定标记及写入符记WT合并,以形成数据串(步骤 S403)。如图7所示,在本实施例中,主机200传送至控制器110的数据或指令704为一指令-应用程序协议数据单元(Command-Application ProtocolData Unit, C-APDU),而 C-APDU 704与特定标记702以及写入符记706合并后,即可形成数据串700,以作为主机 200与智能卡芯片140之间的联系之用。然而须注意的,在本发明外围装置IOO不具有非 易失性存储器130的其它实施例中,数据串700可不具有特定标记702。亦即,对这些不具 有非易失性存储器130的实施例而言,特定标记702不必包含在数据串700当中。换言之, 在这些不具有非易失性存储器130的实施例,当进行步骤S403时,只须合并C-APDU 704与 写入符记706,以形成数据串700。在本实施例中,特定标记702是位于数据串700的数个 最高有效字符(Most Significant Bit, MSB)而形成在C-APDU 704之前,写入符记706则 是位于数据串700的数个最低有效字符(Least Significant Bit, LSB)而形成在C-APDU 704之后。然而,须注意的,特定标记702和写入符记706在数据串700中的位置并不以此 为限,例如在本发明的另一个实施例中,可通过一编码器,将特定标记702和写入符记706 的各个位分散在数据串700之中,之后在通过相同的编码器从数据串700中撷取出特定标 记702和写入符记706。另外,在本发明的一实施例中,特定标记702和写入符记706位于 数据串700的同一端;在本发明的另一实施例中,特定标记702位于数据串700的右端,而 写入符记706位于数据串700的左端。 另须说明的,在本实施例中,倘若主机200存取的对象为非易失性存储器130而不 是智能卡芯片140的话,则上述的特定标记702及写入符记706并不会被并入至主机200 传送给控制器110的数据串中。在后面的说明中,将会进一步地说明控制器iio如何依据 所接收到的数据串中是否含有上述的特定标记702,来判断数据串所要传送的目的地是非 易失性存储器130亦或是智能卡芯片140。 当数据串700形成之后,主机200会通过写入指令,将数据串700传送至外围装置 100的控制器110 (步骤S405)。亦即,主机200会传送写入指令至外围装置IOO,而此一写 入指令系被设定为写入数据串700至外围装置100。 当数据串700被传送到控制器110之后,主机200会依序地传送多个读取指令至 外围装置100的控制器IIO,直到该主机自外围装置IOO接收到智能卡芯片140所产生的 响应讯息为止。其中,上述多个读取指令被设定为依序地读取多个逻辑区块地址(Logical Block Address, LBA) A工至AN上的数据。在本实施例中,上述多个逻辑区块地址A工至AN是 属于单一特定文件。请参考图3,在将多个读取指令传送到外围装置100之前,主机200会 将目前的读取地址A设定为起始逻辑区块地址& (步骤S407)。之后,主机200会传送读 取指令至外围装置100 (步骤S409),而此一读取指令被设定读取一预定长度的逻辑区块地 址,在本实施例中该逻辑区块地址为A至(A+511字节)的数据(即[A:A+511]的数据), 但并不以此为限。另须说明的,在本实施例中,当控制器110接收到主机200所输出的读取 指令之后,控制器110会先判断此读取指令是否被设定为读取上述多个逻辑区块地址A至 AN上的数据,而倘若该读取指令被设定为读取上述多个逻辑区块地址&至AN上的数据,控 制器110是由一缓冲存储器器中直接产生512位组长度且全为零的数据,以减少因读取数 据而耗费的时间。此外,在本发明的另一个实施例中,上述512位长度且且全为零的数据是 直接从上述单一特定文件读取,而上述单一特定文件可存在非易失性存储器130当中或是 被配置到控制器110所虚拟出的一存储单元当中。在本实施例中,多个逻辑区块地址A至 A,上实际所储存的数据全为零,但在另一实施例中多个逻辑区块地址A至A,上所储存的数
14据亦可为一预设样式(pattern)。 请再参考图3,当主机200传送读取指令至外围装置100后,即会等待并接收外围 装置100所回传的数据串(步骤S411),而上述回传的数据串是微处理单元110a为响应已 接收到该读取指令而产生的,且上述回传的数据串中包含有上述的写入符记WT。详言之,当 微处理单元llOa接收到包含有写入符记WT的数据串700时,会暂存其中的写入符记WT,之 后当微处理单元110a响应主机200所传送的读取指令时,会将所暂存的写入符记WT加到 要回传的数据串内。请参考图8,图8为微处理单元110a回传至主机200的数据串800之 数据结构图。数据串800包含有一预设数据区802以及一写入符记区804,其中预设数据区 802用来记载智能卡芯片140所产生的讯息或记载上述512位组长度且全为零(或上述预 设样式)的数据,而写入符记区804则是用来记载上述的写入符记WT。如图8所示,写入符 记区804位于预设数据区802之后。然而,本发明并不以此为限,例如在本发明的另一实 施例中,写入符记区804位于预设数据区802之前。 在之后的步骤S413中,主机200会判断回传的数据串800的预设数据区802内的 每个位所记录的数据是否全部为零,或是判断预设数据区802内的数据是否为上述的预设 样式。倘若数据串800的预设数据区802内的每个位所记录的数据全部为零,或预设数据 区802内的数据为上述的预设样式,则表示控制器110的微处理单元110a尚未接收到智能 卡芯片140的响应讯息,而会进行步骤S415 ;而相对的,倘若数据串800的预设数据区802 内的每个位所记录的数据不全为零,则表示控制器110的微处理单元110a可能已经接收到 智能卡芯片140的响应讯息,而会进行步骤S419。 在步骤S419中,主机200会判断微处理单元110a所回传的数据串800中的写入 符记WT是否与主机200所暂存的写入符记WT —致。倘若上述两写入符记WT彼此一致,则 进行步骤S421 ;而倘若上述两写入符记WT并不一致,则进行步骤S415。 一般说来,在不重 新激活应用程序206的情况下,微处理单元110a所回传的数据串800中的写入符记WT大 多会与主机200所暂存的写入符记WT —致。然而,因为主机200具有高速缓冲存储器212 的缘故,高速缓冲存储器212中会存有先前微处理单元110a所回传的数据串,而当应用程 序206被重新激活而使得主机200所记录的写入符记WT有所变动后,即很有可能会发生主 机200所记录的写入符记WT与回传的数据串800中的写入符记WT彼此不一致的情形。
当主机200所记录的写入符记WT与回传的数据串800中的写入符记WT并不一致 时,即使数据串800的预设数据区802内的每个位所记录的数据不全为零,或预设数据区 802内的数据为上述的预设样式,主机200仍不会将所接收到的数据串800的预设数据区 802内的数据视为智能卡芯片140的响应讯息。故就数据的正确性而言,通过步骤S419中 对于写入符记WT的比对动作,可避免主机200将高速缓冲存储器212先前所暂存的数据误 认为由智能卡芯片140所产生的响应讯息。举例来说,假设在主机200开机至关机的期间, 应用程序206先后被执行两次。在前一次应用程序206执行期间,主机200通过上述步骤 S401 S421从智能卡芯片140接收到响应讯息,而此一响应讯息在应用程序206重新被执 行后仍存于高速缓冲存储器212中。在此情况下,倘若重新激活的应用程序206在传送讯 息至智能卡芯片140并等待智能卡芯片140的响应讯息的期间并不进行步骤S419的判断 的话,则主机200即可能会将暂存在高速缓冲存储器212的前次响应讯息误认为本次的响 应讯息,而导致数据上的错误。换言之,通过步骤S419的判断动作,主机200即可区别所接收到的响应讯息是本次的响应讯息还是高速缓冲存储器212所暂存的前次响应讯息,进而 使得数据的准确性会大幅地提高。 当主机200确认所接收到的响应讯息是本次的响应讯息后,主机200即会将所 接收到的数据串800的预设数据区802内的数据视为智能卡芯片140的响应讯息(步骤 S421)。 另须注意的,在本发明的另一实施例中,上述的步骤S413和S419的先后次序对 调,亦即先执行步骤S419再执行步骤S413。在这实施例中,倘若在步骤S419中判断出两写 入符记WT并不一致,则进行步骤S415 ;反之,则进行步骤S413。此外,倘若在步骤S413中 判断出回传的数据串800的预设数据区802内的每个位所记录的数据全部为零,则进行步 骤S415 ;反之,则进行步骤S421。 在步骤S415中,主机200会判断目前的读取地址A是否等于最后一个逻辑区块地 址A『倘若目前的读取地址A等于最后一个逻辑区块地址A,,则表示主机200已经传送过 N个读取指令至外围装置100,此时主机200即会再将目前的读取地址A设定为起始逻辑区 块地址A (步骤S407),其中上述N个读取指令系被设定为从非易失性存储器130中读取多 个逻辑区块地址A至AN上的数据。然而,倘若目前的读取地址A并不等于最后一个逻辑区 块地址AN,则主机200会将目前的读取地址A加上一预设数据长度(步骤S417),而在本实 施例中,此预设数据长度为512字节。因此,在本实施例中,主机200所产生的多个读取指 令系被设定为依序地从多个逻辑区块地址A至AN读取相同长度(即512字节的数据。此 外,为了简化主机200的操作,在本发明的另一个实施例中,主机200会依据起始逻辑区块 地址A以及上述单一特定文件的大小,得到所有的逻辑区块地址A至A,,例如第二个逻辑 区块地址4即等于(A,512),最后一个逻辑区块地址Aw等于(A一512X (N-l)),而该单一特 定文件的大小系等于(512XN)。 此外,在本发明的其它实施例中,亦可利用一对照表来获得所有的逻辑区块地址 A至AN的信息,其中在一实施例中,上述对照表会列出所有属于该特定文件的逻辑区块地 址;而在另一实施例中,对照表则只列出该特定文件的头端及尾端的两个逻辑区块地址。其 中,因为逻辑区块地址通常以区段(sector)为单位,而每一区段的数据长度通常即为512 字节,故可通过上述头端及尾端的两个逻辑区块地址来求得所有的逻辑区块地址A工至AN。 如此一来,当微处理单元110a判断出读取指令中所指派的地址与该对照表所记录的逻辑 区块地址吻合时,倘若智能卡芯片140尚未产生响应讯息,微处理单元110a即回传预设数 据区802内的每个位所记录的数据皆为零的数据串至主机200。此外,在本发明的其它实 施例中,外围装置100实际上并不储存数据于上述多个逻辑区块地址^至A,,亦即上述的 特定文件可以是虚拟的,而当微处理单元110a判断出读取指令所指派的地址属于上述多 个逻辑区块地址A至AN时,微处理单元110a则直接产生响应讯息并将响应讯息传送至主 机200,而省略掉读取上述特定文件的程序。另须说明的,本发明中的预设数据长度并不以 512字节限,上述的预设数据长度可以是其它数值,,如4K字节、8K字节等。除此之外,在本 实施例中,因每个读取指令系被设定为读取预设数据长度的数据,故该预设数据长度可针 对不同的需求来调整,例如可以将该预设数据长度縮小,以使每次控制器110的微处理单 元110a为响应读取指令而回传的数据串的数据量可以降低,进而可縮短微处理单元110a 响应的时间,并增进控制器110的效能。
16
相对于图3所绘示的主机200与一智能卡芯片140运作时的流程,外围装置100与该主机200的运作流程则可参考图4。首先,当外围装置100开始运作时,控制器110的微处理单元110a会先记录上述单一特定文件的起始逻辑区块地址A以及大小(步骤S501),以作为后续比对主机200所产生的读取指令之用。然而,在本发明的另一实施例中,在记录起始逻辑区块地址A以及单一特定文件的大小之前,微处理单元110a会先判断该单一特定文件是否存在于该非易失性存储器130内,而倘若上述的单一特定文件尚未存在于非易失性存储器130内,则微处理单元110a会在非易失性存储器130内建立上述的单一特定文件,或是虚拟出的一存储单元,并将上述单一特定文件配置到所虚拟出的存储单元当中。
当起始逻辑区块地址&与单一特定文件的大小被记录之后,控制器110即可开始接收主机200所输出的写入指令(步骤S503),其中该写入指令系被设定为写入第一数据串至外围装置100,而该第一数据串可以是如图7中所示的数据串700或是其它的数据串。当控制器110接收到写入指令之后,即会判断该第一数据串是否含有如图7所示的特定标记702 (步骤S505)。倘若第一数据串不含有特定标记702,则控制器110的微处理单元110a会依据写入指令所指派的地址,将第一数据串写入至非易失性存储器130(步骤S507);相对的,倘若第一数据串含有特定标记702,则控制器110的微处理单元110a会将第一数据串中的写入符记WT(如图7中的写入符记706)记录在缓冲存储器110c,并将特定标记702与写入符记WT从第一数据串中去除,以产生第二数据串(如图7中所示的C-APDU 704),再将第二数据串传送至智能卡芯片140(步骤S509)。如此一来,通过侦测第一数据串中是否含有特定标记702,控制器110的微处理单元110a即可判断数据串应该送往非易失性存储器130或送往智能卡芯片140。须说明的,在本发明不具有非易失性存储器130的其它实施例中,因数据串700不具有特定标记702,故图4的流程中的步骤S505和S507会予以省略,且在步骤S509中即不须将特定标记702从数据串700除去,而直接将数据串700的至少一部份传送到智能卡芯片140。另须说明的,在本发明的另一个实施例中,上述的第二数据串即为上述的第一数据串。换言之,微处理单元110a不会将特定标记702或写入符记WT从第一数据串中去除,而是将第一数据串直接转送到智能卡芯片140。之后,智能卡芯片140再从所接收到的第一数据串辨识出特定标记702、 C-APDU 704和写入符记WT。此外,本实施例中,第一数据串中的写入符记WT除如上所述会记录在缓冲存储器110c之外。在本发明的另一实施例中,微处理单元110a会将第一数据串中的写入符记WT记录在非易失性存储器130。 当第二数据串被送往智能卡芯片140之后,控制器110的微处理单元110a即会等待接收主机200所传送过来的读取指令(步骤S511),其中上述的读取指令包含但不限于主机200于图3的步骤S409所传送的读取指令。之后,控制器110的微处理单元110a会判断所接收的读取指令所指派的地址是否属于上述的单一特定文件(步骤S513),亦即微处理单元110a会判断所接收的读取指令是否被设定为读取上述多个逻辑区块地址&至AN上的数据。若上述读取指令所指派的地址并非属于该单一特定文件,则微处理单元110a会依据读取指令所指派的地址读取对应的数据(步骤S515),并将数据传送至主机200 ;相对的,若上述读取指令所指派的地址属于上述的单一特定文件,则微处理单元110a会再判断使否已经接收到智能卡芯片140的响应讯息(步骤S517),而在本实施例中,此响应讯息为智能卡芯片140因接收到上述的第二数据串而产生,并且为一响应-应用程序协议数据单元(Response-Application Protocol Data Unit, R-APDU)。在步骤S517中,倘若微处理单元110a已经接收到智能卡芯片140的响应讯息,则微处理单元llOa会将智能卡芯片140所产生的响应讯息会与记录在缓冲存储器110c(或非易失性存储器130)内的写入符记WT合并成一第一响应讯息(步骤S521),再将此第一响应讯息回传至主机200 (步骤S523)。上述的第一响应讯息的数据结构与图8所示数据串800的数据结构一致,其中预设数据区802用来记载智能卡芯片140所产生的响应讯息,而写入符记区804则用来记载写入符记WT。
倘若在步骤S517中,微处理单元110a尚未接收到智能卡芯片140的响应讯息,则控制器110的微处理单元110a会回传一第二响应讯息至主机200,以响应所接收到的读取指令(步骤S519)。在本实施例中,第二响应讯息的数据结构亦与图8所示数据串800的数据结构一致,其中预设数据区802内的每个位所记录的数据皆为零,而写入符记区804则用来记载写入符记WT。须说明的,在本发明的另一实施例中,倘若在步骤S517中微处理单元110a尚未接收到智能卡芯片140的响应讯息,则在步骤S519中,微处理单元110a会回传所有位皆为零的数据串至主机200,亦即回传至主机200的第二响应讯息中并不含有写入符记WT。当进行完步骤S519之后,微处理单元110a会再继续等待主机200的下一个读取指令,直到接收到智能卡芯片140所产生的响应讯息,并回传上述的第一响应讯息至主机200为止。 综上所述,主机200和外围装置100之间的数据串传送过程大略地可区分为一传送程序以及一等待响应讯息程序,如图5所示。在进行传送程序期间,主机200会先传送写入指令至控制器IIO(相当于图3的步骤S403和S405),之后控制器110会检验所接收的数据串是否含有特定标记(相当于图4的步骤S505)。倘若所接收的数据串含有特定标记,控制器110就会记录数据串中的写入符记WT,并将数据串中的C-APDU传送至智能卡芯片140(相当于图4的步骤S509)。此外,在进行上述等待响应讯息程序的期间,倘若智能卡芯片140尚未产生响应讯息(例如R-APDU),主机200会依序地传送多个读取指令至控制器110并接收控制器110所回传的第二响应讯息(相当于图3的步骤S407至S417)。另一方面,控制器110会比较读取指令中所指配的地址是否与逻辑区块地址&至AN吻合并回传第二响应讯息至主机200(相当于图4的步骤S511至S519)。之后,当控制器110接收到智能卡芯片140所产生的响应讯息后,控制器110则会将上述的第一响应讯息传送至主机200(相当于图4的步骤S521和S523)。然后,主机200会比对所接收到的第一响应讯息中的写入符记是否与所记录的写入符记一致(相当于图3的步骤S419)。最后,当第一响应讯息中的写入符记与主机200所记录的写入符记一致时,主机200即会将所接收到的第一响应讯息的预设数据区802内的数据视为智能卡芯片140所产生的响应讯息(相当于图3的步骤S421)。 此外,如上所述,每当主机200要传送数据至智能卡芯片140之前,主机200会先获得写入符记WT,而每次主机200所获得的写入符记WT大多会彼此不同。请参考图6,每次主机200传送数据至智能卡芯片140时,主机200会将写入符记WT加入至欲传递的数据串中,之后再通过写入指令将含有写入符记WT的数据串传送到控制器110 。如图6所示,主机200前后两次传送数据串至智能卡芯片140时,其所获得的写入符记彼此不同,其中前一次获得写入符记WT1,而后一次获得写入符记WT2。当控制器110接收到来自主机200的写入数据串时,控制器110会先后地暂存数据串当中的写入符记WT1及WT2,而当控制器110接收到包含有写入符记WT2的数据串时,其原先所暂存的写入符记WT1会被后来的写入符记WT2所取代。此外,当控制器110接收到智能卡芯片140的响应讯息(例如R-APDU)时,控制器110会将所暂存的写入符记WT1或WT2加入到回传的响应讯息当中。如此一来,主机200通过比对主机200所暂存的写入符记与响应讯息中的写入符记,即可判断所接收到的响应讯息是否是智能卡芯片140针对特定的写入指令所要产生的响应讯息。
此外,在本实施例中,系将图3步骤S405的写入指令所指派的内存写入地址设定成不同于图3的步骤S409的读取指令所指派的内存读取地址。因此,当主机200传送读取指令至控制器110之后,图2的主机200并不会将先前因写入指令写入外围装置100而储存至高速缓冲存储器212的数据串视为快取数据而回传至主机200。另外,在本实施例中,上述单一特定文件的数据量大于或等于高速缓冲存储器212的容量,且因每次主机所传送的读取指令系读取不同逻辑区块地址上的数据,故在高速缓冲存储器212所储存的快取数据会逐渐地被新的快取数据所取代的情况下,高速缓冲存储器212中所储存的响应讯息会持续更新而保有最新数据,故可避免高速缓冲存储器212传送错误的响应讯息给主机200。因此,智能卡芯片140所产生的响应讯息即可无误地被回传至主机200。
[第二实施例] 在本发明的另一实施例中,控制器110会将一读取符记(read token)加入到回传至主机200的响应讯息中,用以进一步地确保当主机200产生的写入符记发生碰撞时,主机200仍可正确地判断是否接收到智能卡140所产生的响应讯息。请参考图9,图9绘示本发明另一实施例中控制器110回传至主机200的数据串900之结构。数据串900除了具有如上述数据串800的预设数据区802以及写入符记区804之外,另具有一读取符记区806。读取符记区806是用来记载控制器110的微处理单元110a所产生的读取符记RT。此外,预设数据区802和写入符记区804的作用在上述说明中已经阐述过,在此即不再赘述。虽然,图9中所绘示的读取符记区806位于写入符记区804之后,但本发明并不以此为限。例如写入符记区804和读取符记区806在数据串900上的位置可以互换,或是写入符记区804和读取符记区806可分别位于数据串900的两端或皆位于数据串900的同一端。
请参考图10,图10绘示主机200与智能卡芯片140联系时写入符记WT与读取符记RT的数据流向。与前一实施例一样,主机200亦会将所获得的写入符记WT加入至传送给控制器110的数据串中,而控制器110会将来自主机200的写入符记WT暂存起来。在本实施例中,控制器110于响应主机200所传送的读取指令时,除了会在响应讯息中加入所暂存的写入符记WT之外,亦会依据一预设规则产生一读取符记RT,并将所产生的读取符记RT加入至响应讯息中。如图10所示,当主机200与智能卡芯片140联系时,主机200会先传送一写入指令再依序地传送多个读取指令。而与前一实施例中一样,该写入指令被设定为写入数据串700至外围装置100,以将写入符记WT传送给控制器IIO,并将数据串700中的C-APDU 704传送给智能卡芯片140 ;至于多个读取指令亦是被设定为依序地读取上述单一特定文件的多个逻辑区块地址A至A,上的数据。在本实施例中,当控制器110接收到具有写入符记WT的写入数据串之后,即会重新设定读取符记RT,其中,该读取符记RT可为一特定样式,而每次读取符记RT被重新设定后,其特定样式即会改变。如此一来,主机200通过分析回传数据串当中的读取符记RT是否符合特定样式,即可判断出回传数据串是暂存于高速缓冲存储器212的旧有数据串,亦或是控制器110所产生的新数据串。详言之,倘若回传数据串当中的读取符记RT符合特定样式,且其中的写入符记WT与主机200所暂存的写入符记一致时,主机200即会将回传的数据串视为控制器110所产生的新数据串;而倘若回传数据串当中的读取符记RT不符合特定样式,或其中的写入符记WT与主机200所暂存的写入符记不一致时,主机200即会将回传的数据串视为暂存于高速缓冲存储器212的旧有数据串。 在本发明的另一实施例中,读取符记RT的设定方式可另以下述方式执行。当控制器110接收到具有特定标记702和写入符记WT的写入数据串之后,即会初始化读取符记RT的初始值。换言之,在每一次重新设定读取符记RT的初始值后,当次所重新设定的读取符记RT的初始值,会与前一次重新设定的读取符记RT的初始值不同。之后,每当控制器110接收到上述被设定为读取该特定文件的任一个读取指令时,控制器110即会依据一预设规则更新读取符记RT的值,并将更新后的读取符记RT加入到回传的数据串900中。举例来说,在本发明的一实施例中,读取符记RT的初始值会被设定为O,而每当控制器110接收到上述被设定为读取该特定文件的任一个读取指令时,读取符记RT会被累加1。如以图IO配合来说明的话,图10中第一个回传的读取符记RT1即等于1,第二个回传的读取符记RT2即等于2……依此类推。须注意的是,累加至读取符记RT的值除了 l之外,在本发明的其它实施例中,累加至读取符记RT的值可以是其它值,而使得任两个接续地回传给主机200的响应讯息中的读取符记RT皆相差一默认值。在此实施例中,倘若任两个接续地回传给主机200的响应讯息中的读取符记RT之间的差值等于上述默认值,且其中的写入符记WT与主机200所暂存的写入符记一致时,主机200会将回传的数据串视为控制器110所产生的新数据串;而倘若任两个接续地回传给主机200的响应讯息中的读取符记RT之间的差值不等于上述默认值,或其中的写入符记WT与主机200所暂存的写入符记不一致时,主机200即会将回传的数据串视为暂存于高速缓冲存储器212的旧有数据串。 在本发明的另一实施例中,为进一步地确保可正确地接收到智能卡140所产生的响应讯息,主机200除了会检验所连续地接收到的响应讯息之间的差值是否与系统所预设的差值一致之外,主机200还会判断所连续地接收到的至少一预定数目个响应讯息中的读取符记RT之间的差值是否皆为一定值。此外,当写入符记WT和读取符记RT都通过检测时,主机200传送给控制器110的下一个读取指令所要读取的逻辑区块地址,会与最近一次已传送的读取指令所要读取的逻辑区块地址,相间隔多个逻辑区块。请参考图ll,图11为本发明的另一实施例中,主机200在检验所接收到的响应讯息是否为智能卡芯片140所产生时的流程图。首先,在步骤S902中,主机200会先设定变量j、B和x,以供后续流程进行之用,其中变量j是用以记录目前写入符记WT和读取符记RT都通过检测的次数,变量x是用以设定连续通过检测的次数,而变量B是用以设定每次读取逻辑区块地址的间隔倍数。在本实施例中,变量j、B和x分别设为0、2和3,但本发明并不以此为限。设定完变量j、 B和x之后,在步骤S904中,主机200会传送读取指令至控制器110,以读取逻辑区块地址A至(A+511字节)的数据(即[A:A+511]的数据),并等待接收回传的数据串。当主机200于步骤S906接收到回传的数据串之后,主机200会判断所回传的数据串中的写入符记WT是否与主机200本身所暂存的写入符记一致。倘若所回传的数据串中的写入符记WT与主机200本身所暂存的写入符记并不一致,则变量j会归零,且目前的逻辑区块地址A会累加512字节的长度,以设定下一个所要读取的逻辑区块的地址(步骤S918);倘若所回传的数据串中的写入符记WT与主机200本身所暂存的写入符记一致,则主机200会进行步骤S910,以判断回传的数据串中的读取符记RT是否与上一个回传数据串中的读取符记相差一定值。其中,上述定值可以是任何值,而在本实施例中该定值为整数一。倘若回传的数据串中的读取符记RT与上一个回传数据串中的读取符记之间的差值并不等于上述定值,或是因回传的数据串是第一笔回传的数据串而没有上一个回传数据串的话,则主机200会进行步骤S918,以设定下一个所要读取的逻辑区块,并将变量j归零;然倘若回传的数据串中的读取符记RT与上一个回传数据串中的读取符记之间的差值等于上述定值的话,则主机会将变量j累加1 (步骤S912)。之后,主机200会判断目前变量j的值是否大于或等于变量x的值(步骤S914)。倘若变量j小于变量x,则主机会将目前的逻辑区块地址A会累加(512XB)字节的长度(步骤S920),以设定下一个所要读取的逻辑区块的地址,而因B大于1,故下一个所要读取的逻辑区块的地址会与最近一次已读取的逻辑区块地址相间隔多个逻辑区块,其中在本实施例中,每个逻辑区块的大小为512字节。然而,倘若在步骤S914中,主机200判断出变量j大于或等于变量x的话,则表示主机200所连续地接收到的至少x个(即三个)响应讯息中的读取符记RT之间的差值皆为上述的定值。之后,主机200即会将最近所接收到的j个回传数据串都视为控制器110所新产生的数据串(步骤S916)。由此可知,在本实施例中,唯有当写入符记WT和读取符记RT都通过检测的连续次数大于或等于变量x的设定值时,所回传的数据串才会被判定为是由控制器110所新产生的数据串。此外,须注意的是,倘若在步骤S920中,逻辑区块地址A累加后的地址超过最大的逻辑区块地址A,,则累加后所得到的逻辑区块地址A会再减去上述特定文件的文件大小,或直接将逻辑区块地址A设定为第一个逻辑区块地址A,而使得逻辑区块地址A会落在&至AN之间。在本实施例中,目前的逻辑区块地址A每次所累加位长度为每个逻辑区块大小(512字节)的整数倍(即一倍或B倍)。然而,须注意的,本发明中每个逻辑区块大小并不以512字节为限,每逻辑区块的大小亦可为其它值,如4K字节、8K字节等。
[第三实施例] 请参考图2。在本发明的第三实施例中,为更有效滤地排除暂存于高速缓冲存储器212的旧有数据串,且更快地接收到来自控制器110所传送过来的新数据串,主机200在每传送任一个读取指令至外围装置100以读取逻辑区块地址&至AN上的数据后,主机200会再执行另一写入指令,以将数据写入至外围装置100的暂存盘112。在本实施例中,暂存盘112配置在缓冲存储器110c当中;而在本发明的另一实施例中,暂存盘112则配置在非易失性存储器130当中。请参考图13,图13绘示本发明第三实施例传送数据串时的数据流向。在本实施例中,当主机200每传送任一个读取指令至外围装置100以读取逻辑区块地址A至AN上的数据后,主机200会再执行写入指令,以将数据写入至外围装置100的暂存盘112。此外,在本发明的另一个实施例中,在主机200通过写入指令将上述的数据串700传送到控制器110之后,主机200也会再执行写入指令,以将数据写入至暂存盘112。如图所示,当主机200通过写入指令将数据串700传送到控制器110之后,以及每当主机200传送读取指令以读取逻辑区块地址A至Ax(其中Ax属于&至AN当中的一个)上的数据后,主机200会再执行写入指令,以将数据写入至暂存盘112的逻辑区块地址Atl至At(x+1)。此外,因存在有高速缓冲存储器212的缘故,写到暂存盘112的数据也会被暂存到高速缓冲存储器212当中。如图14所示,高速缓冲存储器212的暂存数据区218即是用来暂存写到暂
21存盘112的数据。此外,控制器110因响应主机的读取指令而回传给主机200的数据串会被暂存在高速缓冲存储器212的读取数据区216中,而主机200通过写入指令而传送至控制器110的数据串则会被暂存在高速缓冲存储器212的写入数据区。因暂存数据区218所暂存的数据产生排挤效应,故当暂存盘112逐渐增大时,写入数据区214和读取数据区216所配置到的使用空间会逐渐地縮小。又因智能卡经片140所产生的响应讯息会被包含在控制器110回传到主机200的数据串中,故当读取数据区216的使用空间变小时,主机200所接收到的回传数据串可能是高速缓冲存储器212先前所暂存的旧有数据串的机率就会降低,相对地即提高主机200接收到来自控制器110新数据串的机率,进而使得主机200可更有效滤地排除暂存于高速缓冲存储器212的旧有数据串,而更快地接收到来自控制器110所传送过来的新数据串。此外,在本发明的另一实施例中,当暂存盘112的大小超过一预设数据量时,主机200会发出清除暂存盘112的指令至控制器110,以清除暂存盘112的数据。举例来说,假设高速缓冲存储器212的容量为2048K字节,未避免暂存数据区218过大而影响主机200与控制器110之间数据与指令的传递,主机200会在暂存盘112的数据量大于1920K字节时,发出清除暂存盘112的指令,而使得暂存数据区218的使用空间重新地配置。当然,上述仅是示例性的说明,高速缓冲存储器212的容量以及清除暂存盘112的时机并不以此为限。[第四实施例] 上述第一实施例中,主机200传送至外围装置100的多个读取指令系被设定为读取单一特定文件的多个逻辑区块地址A至A,上的数据。相对地,在本发明的第四实施例中,主机200传送至外围装置100的多个读取指令被设定为读取多个特定文件巳至FN的多个逻辑区块地址B工至BN上的数据,其中上述多个特定文件巳至FN储存在非易失性存储器130中。此外,在本发明的其它实施例中,外围装置100实际上并不储存数据于上述多个逻辑区块地址B工至BN,亦即上述多个特定文件巳至FN可以是虚拟的,而当微处理单元110a判断出读取指令所指派的地址属于上述多个逻辑区块地址A工至AN时,微处理单元110a则直接产生响应讯息并将响应讯息串送至主机200,而省略掉读取非易失性存储器130的程序。
请参考图15至图17,图15为根据本发明第四实施例绘示主机200运作时的流程图。图16为根据本发明第四实施例绘示外围装置100运作时的流程图。图17为根据图15和图16绘示的本发明第四实施例的数据流示意图。 图15所绘示的流程与图3所绘示的流程非常类似,其中的不同之处在于图3中的步骤S407、 S409、 S415和S417分别被图15中的步骤S407'、 S409'、 S415'和S417'所取代,至于其它的步骤S401、S403、S405、S411、S413、S419和S421则相同而不再赘述。在步骤S407'中,主机200会将目标文件Ft设置为第一个特定文件巳。之后,主机200会传送读取指令至外围装置100(步骤S409'),而此一读取指令被设定为从非易失性存储器130中读取目标文件Ft。此外,在步骤S415'中,主机200会判断目前的目标文件Ft是否为最后一个特定文件F『倘若目前的目标文件Ft为最后一个特定文件F,,则表示主机200已经传送过N个读取指令至外围装置100,此时主机200即会再将目前的目标文件Ft设定为第一个特定文件巳(步骤S407')。然而,倘若目前的目标文件Ft不是最后一个特定文件F炉则主机200会将目标文件Ft设定为一个特定文件(步骤S417'),即将变量t累加l。另附加说明的,在本发明的另一个实施例中,上述多个特定文件巳至FN的起始逻辑区块地址可分别为B工至BN(类似于第一实施例中的逻辑区块地址&至AN)。 至于图16所绘示的流程与图4所绘示的流程非常类似,其中的不同之处在于图4 中的步骤S501和S513分别被图8中的步骤S501'和S513'所取代,至于其它的步骤则相同 而不再赘述。在步骤S501'中,控制器110的微处理单元110a会先记录上述多个特定文件 ^至FN的逻辑区块地址B工至BN。在步骤S513'中,控制器110的微处理单元110a会判断 所接收的读取指令其指派的地址是否属于上述多个特定文件巳至F,,亦即微处理单元110a 会判断所接收的读取指令是否被设定为读取上述多个逻辑区块地址B工至BN上的数据。
至于图17所绘示的流程与图5所绘示的流程非常类似,不同之处在于,当进行等 待响应讯息程序的期间,主机200传送至控制器110的读取指令被设定为读取上述多个特 定档巳至FN。此外,在控制器110尚未接收到智能卡芯片140所产生的响应讯息之前,控 制器110会比较读取指令中所指配的地址是否与逻辑区块地址B工至BN吻合。
另附带说明的,在本发明的另一实施例中,在记录特定文件F工至FN的逻辑区块地 址B工至BN之前,微处理单元110a会先判断上述多个特定文件巳至FN是否存在于非易失 性存储器130内,而倘若上述多个特定文件巳至FN的任何一个特定文件尚未存在于非易失 性存储器130内,则微处理单元llOa会在非易失性存储器130内建立还尚未建立的特定文 件。 此外,本发明第二实施例中通过检验读取符记RT以确认响应讯息是否正确的技
术手段,可被套用在第四实施例中采用多个特定文件F工至F,的架构下。换言之,第二实施
例中读取指令可由原先设定成读取单一特定文件的逻辑区块地址A至A,上的数据,变更为
设定成读取上述多个特定文件巳至FN的逻辑区块地址B工至BN上的数据。 综上所述,本发明因主机将特定的标记加入至欲传递至芯片的数据串中,故控制
器可通过判别数据串中是否有该标记,来判断此数据串是否为要被送往某特定芯片的数据
串。此外,在等待该芯片的响应讯息的期间,执行读取特定逻辑区块地址上的数据的读取指
令,并回传预设的数据串(如预设数据区内所有位皆为零的数据串),而当芯片产生响应讯
息时,再回传芯片所产生的响应讯息(预设数据区内位不全为零的数据串)。其中,写入符
记会被用来检验回传数据的正确性,以使主机得以区别所接收到响应讯息是暂存在高速缓
冲存储器中的前次响应讯息,亦或是本次芯片所产生的响应讯息。如此一来,不但主机可以
将数据或指令传送给芯片,而芯片所产生的响应讯息也可无误地被主机接收。 虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所属技术
领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此
本发明的保护范围当以权利要求所界定的为准。
2权利要求
一种数据串传送方法,其适用于从主机传递数据串至具有芯片的外围装置,该数据串传送方法包括产生一写入符记,并将该写入符记藏于一第一数据串中;传送一第一写入指令至该外围装置,该第一写入指令被设定为写入该第一数据串至该外围装置;传送该第一数据串的至少一部份至该芯片,并记录该第一数据串中的该写入符记;以及依序地传送多个读取指令至该外围装置,直到该主机自该外围装置接收到一第一响应讯息为止,其中该第一响应讯息的一预设数据区内的数据为该芯片因接收到该第一数据串的至少一部份而产生,且该第一响应讯息含有该写入符记,而该多个读取指令被设定为读取多个逻辑区块地址上的数据。
2. 如权利要求1所述的数据串传送方法,其特征在于,其更包括判断该主机传送至该外围装置的任一数据串中是否含有一特定标记;以及倘若该主机传送至该外围装置的数据串中含有该特定标记,则含有该特定标记的数据串的至少一部份会被传送至该芯片。
3. 如权利要求2所述的数据串传送方法,其特征在于,该外围装置更包括一非易失性存储器,该数据串传送方法更包括倘若该主机传送至该外围装置的数据串中未含有该特定标记,则将未含有该特定标记的该数据串写入至该非易失性存储器。
4. 如权利要求1所述的数据串传送方法,其特征在于,该外围装置更包括一非易失性存储器,该数据串传送方法更包括判断任一个从该主机传送至该外围装置的读取指令是否被设定为读取该多个逻辑区块地址上的数据;以及对任一读取指令而言,倘若该读取指令并非被设定为读取该多个逻辑区块地址上的数据,则依据该读取指令所指派的地址从该非易失性存储器中读取对应的数据。
5. 如权利要求1所述的数据串传送方法,其特征在于,其更包括当产生该写入符记后,记录该写入符记于该主机;以及比对该外围装置回传至该主机的响应讯息中的写入符记是否与记录于该主机的该写入符记一致。
6. 如权利要求5所述的数据串传送方法,其特征在于,其更包括倘若该外围装置回传至该主机的响应讯息中的写入符记与记录于该主机的该写入符记并不一致,则继续传送读取指令至该外围装置,直到接收到该第一响应讯息为止。
7. 如权利要求1所述的数据串传送方法,其特征在于,其更包括当产生该写入符记后,记录该写入符记于该主机;以及在该主机传送一第二写入指令至该外围装置以将数据传送至该芯片之前,更新该主机所记录的该写入符记,并将更新后的该写入符记随着该第二写入指令传送至该外围装置。
8. 如权利要求1所述的数据串传送方法,其特征在于,其更包括响应该多个读取指令,而将对应的读取符记加入至回传给该主机的响应讯息中;以及判断该主机所接收到的响应讯息中的读取符记是否与一系统设定值一致。
9. 如权利要求8所述的数据串传送方法,其特征在于,其更包括当该外围装置回传至该主机的响应讯息中的写入符记与记录于该主机的写入符记一致,且该主机所接收到的响应讯息中的该读取符记与该系统设定值一致时,判断该主机所连续接收到的至少三个响应讯息中的读取符记之间的差值是否为一定值。
10. 如权利要求9所述的数据串传送方法,其特征在于,该至少三个响应讯息所对应的多个读取指令被设定成读取该多个逻辑区块地址中多个彼此不相邻的逻辑区块地址上的数据。
11. 如权利要求1所述的数据串传送方法,其特征在于,其更包括每传送该多个读取指令当中的任一个读取指令至该外围装置后,执行一第三写入指令,以将数据写入至该外围装置的一暂存盘。
12. 如权利要求11所述的数据串传送方法,其特征在于,其更包括当传送该第一写入指令至该外围装置后,执行该第三写入指令,以将数据写入至该暂存盘。
13. 如权利要求11所述的数据串传送方法,其特征在于,其更包括当该暂存盘的大小超过一预设数据量时,清除该暂存盘。
14. 如权利要求1所述的数据串传送方法,其特征在于,该写入符记为依据一系统时间产生。
15. 如权利要求1所述的数据串传送方法,其特征在于,该写入符记为一随机数值。
16. 如权利要求1所述的数据串传送方法,其特征在于,该多个逻辑区块地址上的数据属于单一特定文件。
17. 如权利要求16所述的数据串传送方法,其特征在于,该外围装置更包括一非易失性存储器,该数据串传送方法更包括判断该单一特定文件是否存在于该非易失性存储器内;以及倘若该单一特定文件尚未存在于该非易失性存储器内,则在该非易失性存储器内建立该单一特定文件。
18. 如权利要求1所述的数据串传送方法,其特征在于,该多个逻辑区块地址上的数据属于多个特定文件。
19. 如权利要求18所述的数据串传送方法,其特征在于,该外围装置更包括一非易失性存储器,该数据串传送方法更包括判断该多个特定文件是否存在于该非易失性存储器内;以及倘若该多个特定文件的任何一个特定文件尚未存在于该非易失性存储器内,则在该非易失性存储器内建立还尚未建立的特定文件。
20. 如权利要求1所述的数据串传送方法,其特征在于,该主机包括一高速缓冲存储器,该主机与该外围装置之间所有指令与数据的传递皆会通过该高速缓冲存储器。
21. 如权利要求20所述的数据串传送方法,其特征在于,该多个逻辑区块地址上的数据的总和大于或等于该高速缓冲存储器的容量。
22. 如权利要求1所述的数据串传送方法,其特征在于,该外围装置实际上并不储存数据于该多个逻辑区块地址。
23. 如权利要求1所述的数据串传送方法,其特征在于,其更包括每当该外围装置接收到该多个读取指令的其中一个读取指令之后,倘若该主机尚未接收到该第一响应讯息,则从该外围装置传送一第二响应讯息至该主机。
24. 如权利要求23所述的数据串传送方法,其特征在于,该第二响应讯息的一预设数据区内的每个位所记录的数据皆为零。
25. 如权利要求1所述的数据串传送方法,其特征在于,该第一响应讯息的该预设数据区内的每个位所记录的数据不全为零。
26. —种数据串传送系统,其适用于在主机和具有芯片的外围装置之间的数据串传送,该数据串传送系统包括应用程序,安装于该主机上并且用以操作该外围装置;以及控制器,设置于该外围装置中,并且电性连接至该芯片;其中该控制器会产生一写入符记,并将该写入符记藏于一第一数据串中;其中该主机会执行该应用程序以传送一写入指令至该控制器,该写入指令被设定为写入该第一数据串至该外围装置;其中该控制器会传送该第一数据串的至少一部份至该芯片,并记录该第一数据串中的该写入符记;其中当该主机执行该应用程序时,该主机会依序地传送多个读取指令至该外围装置,直到从该控制器接收到一第一响应讯息为止,其中该第一响应讯息的一预设数据区内的数据为该芯片因接收到该第一数据串的至少一部份而产生,且该第一响应讯息含有该写入符记,而该多个读取指令被设定为读取多个逻辑区块地址上的数据。
27. 如权利要求26所述的数据串传送系统,其特征在于,该控制器会判断该主机传送至该外围装置的任一数据串中是否含有一特定标记,而倘若该主机传送至该外围装置的数据串中含有该特定标记,则该控制器会将含有该特定标记的数据串的至少一部份传送至该心片。
28. 如权利要求27所述的数据串传送系统,其特征在于,该外围装置更包括一非易失性存储器,而倘若该主机传送至该外围装置的数据串中未含有该特定标记,则该控制器会将未含有该特定标记的该数据串写入至该非易失性存储器。
29. 如权利要求26所述的数据串传送系统,其特征在于,该外围装置更包括一非易失性存储器,该控制器会判断任一个从该主机传送至该外围装置的读取指令是否被设定为读取该多个逻辑区块地址上的数据,而对任一读取指令而言,倘若该读取指令并非被设定为读取该多个逻辑区块地址上的数据,则该控制器会依据该读取指令所指派的地址从该非易失性存储器中读取对应的数据。
30. 如权利要求26所述的数据串传送系统,其特征在于,当该主机执行该应用程序时,该主机会记录该写入符记,并比对该外围装置回传至该主机的响应讯息中的写入符记是否与记录于该主机的该写入符记一致。
31. —种控制器,其适用于具有芯片的外围装置,该控制器包括一微处理单元,用以控制该控制器的整体运作;以及一缓冲存储器,用以暂时地储存数据;其中该微处理单元会将来自于一主机的第一数据串的至少一部份传送至该芯片,并记录该第一数据串中的一写入符记;其中在该第一数据串的至少一部份被传送至该芯片之后,以及在该微处理单元传送一第一响应讯息至该主机之前,该微处理单元会依序地传送一第二响应讯息至该主机,以响应来自该主机的多个读取指令,其中该第一响应讯息的一预设数据区内的数据为该芯片因接收到该第一数据串的至少一部份而产生;其中当该微处理单元自该芯片接收到该第一响应讯息的该预设数据区内的数据之后,该微处理单元会将该第一响应讯息传送至该主机,而该第一响应讯息含有该写入符记。
32. 如权利要求31所述的控制器,其特征在于,该微处理单元会判断该主机传送至该外围装置的任一数据串中是否含有一特定标记,而倘若该主机传送至该外围装置的数据串中含有该特定标记,则该微处理单元会将含有该特定标记的数据串的至少一部份传送至该心片。
33. 如权利要求32所述的控制器,其特征在于,该外围装置更包括一非易失性存储器,而倘若该主机传送至该外围装置的数据串中未含有该特定标记,则该微处理单元会将未含有该特定标记的该数据串写入至该非易失性存储器。
34. 如权利要求31所述的控制器,其特征在于,该外围装置更包括一非易失性存储器,该微处理单元会判断任一个从该主机传送至该外围装置的读取指令是否被设定为读取该多个逻辑区块地址上的数据,而对任一读取指令而言,倘若该读取指令并非被设定为读取该多个逻辑区块地址上的数据,则该微处理单元会依据该读取指令所指派的地址从该非易失性存储器中读取对应的数据。
35. 如权利要求31所述的控制器,其特征在于,该写入符记会被记录于该主机,而该主机会比对该外围装置回传至该主机的响应讯息中的写入符记是否与记录于该主机的该写入符记一致。
36. —种控制器,安装在一主机中,其中该控制器包括一微处理器单元;一缓冲存储器,耦接至该微处理器单元;以及一数据串传送模块,耦接至该微处理器单元且具有可由该微处理器单元执行的多个机器指令以对该主机和一具有芯片的外围装置间的数据串传送进行多个数据串传送步骤,该些数据串传送步骤包括产生一写入符记,并将该写入符记藏于一第一数据串中;传送一第一写入指令至该外围装置,该第一写入指令被设定为写入该第一数据串至该外围装置;传送该第一数据串的至少一部份至该芯片,并记录该第一数据串中的该写入符记;以及依序地传送多个读取指令至该外围装置,直到该主机自该外围装置接收到一第一响应讯息为止,其中该第一响应讯息的一预设数据区内的数据为该芯片因接收到该第一数据串的至少一部份而产生,且该第一响应讯息含有该写入符记,而该多个读取指令被设定为读取多个逻辑区块地址上的数据。
37. 如权利要求36所述的控制器,其特征在于,该数据串传送步骤更包括判断该主机传送至该外围装置的任一数据串中是否含有一特定标记;以及倘若该主机传送至该外围装置的数据串中含有该特定标记,则含有该特定标记的数据串的至少一部份会被传送至该芯片。
38. 如权利要求37所述的控制器,其特征在于,该外围装置更包括一非易失性存储器, 该数据串传送步骤更包括倘若该主机传送至该外围装置的数据串中未含有该特定标记,则将未含有该特定标记 的该数据串写入至该非易失性存储器。
39. 如权利要求36所述的控制器,其特征在于,该外围装置更包括一非易失性存储器, 该数据串传送步骤更包括判断任一个从该主机传送至该外围装置的读取指令是否被设定为读取该多个逻辑区 块地址上的数据;以及对任一读取指令而言,倘若该读取指令并非被设定为读取该多个逻辑区块地址上的数 据,则依据该读取指令所指派的地址从该非易失性存储器中读取对应的数据。
40. 如权利要求36所述的控制器,其特征在于,该数据串传送步骤更包括 当产生该写入符记后,记录该写入符记于该主机;以及比对该外围装置回传至该主机的响应讯息中的写入符记是否与记录于该主机的该写 入符记一致。
全文摘要
本发明公开了一种数据串传送方法、系统及其控制器,其适用于在主机和具有芯片的外围装置之间的数据串传送。数据串的至少一部份会由主机传送至外围装置的芯片。之后,通过执行多个读取指令,主机可无误地接收芯片所产生的响应讯息。其中,数据串与响应讯息皆包含有对应的写入符记,而数据串的写入符记会与响应讯息的写入符记比对,以确认响应讯息的正确性。
文档编号G06F13/42GK101788970SQ20091000989
公开日2010年7月28日 申请日期2009年1月24日 优先权日2009年1月24日
发明者詹清文 申请人:群联电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1