用于存取安全数字SD卡的方法及SD卡的控制器转让专利

申请号 : CN201811624926.2

文献号 : CN110059017B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谢兆魁

申请人 : 慧荣科技股份有限公司

摘要 :

一种用于存取安全数字SD卡的方法及SD卡的控制器。SD卡包含:用于从主机接收电压供应的电压供应引脚、至少一个接地引脚、用于从主机接收时钟信号的时钟引脚、用于从主机接收命令的命令引脚,以及用于将数据写入到SD卡中或从SD卡读取数据的四个数据引脚。用于存取安全数字SD卡的方法包含:通过命令引脚,从主机接收包含第一地址的地址扩展命令;通过命令引脚,从主机接收包含第二地址的存取命令;以及通过数据引脚,存取SD卡中由第三地址指示的至少一个记忆体位置,第三地址是第一地址和第二地址的组合。存取命令指示选自以下各项的将对SD卡执行的存取操作:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。

权利要求 :

1.一种用于存取安全数字SD卡的方法,所述SD卡包括:

用于从主机接收电压供应的电压供应引脚;

至少一个接地引脚;

用于从所述主机接收时钟信号的时钟引脚;

用于从所述主机接收命令的命令引脚;以及

用于将数据写入到所述SD卡中或从所述SD卡读取数据的四个数据引脚,

所述方法包括:

通过所述命令引脚,从所述主机接收包含第一地址的地址扩展命令;

通过所述命令引脚,从所述主机接收包含第二地址的存取命令;以及

通过所述数据引脚,存取所述SD卡中由第三地址指示的至少一个记忆体位置,所述第三地址是所述第一地址和所述第二地址的组合;

其中所述存取命令指示选自以下各项的将对所述SD卡执行的存取操作:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作;

其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD23命令和CMD18命令,那么存取所述SD卡的所述记忆体位置的步骤包含从由所述第三地址指示的所述记忆体位置开始执行所述多读取操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD18命令中包含的所述第二地址而生成的。

2.根据权利要求1所述的方法,其中所述第三地址是通过串联连接所述第一地址和所述第二地址来生成。

3.根据权利要求1所述的方法,其中所述第一地址和所述第二地址均为32位。

4.根据权利要求1所述的方法,其中所述第一地址是6位,且所述第二地址是32位。

5.根据权利要求1所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD17命令,那么存取所述SD卡的所述记忆体位置的步骤包含在由所述第三地址指示的所述记忆体位置上执行所述单读取操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD17命令中包含的所述第二地址而生成的。

6.根据权利要求1所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD24命令,那么存取所述SD卡的所述记忆体位置的步骤包含在由所述第三地址指示的所述记忆体位置上执行所述单写入操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD24命令中包含的所述第二地址而生成的。

7.根据权利要求1所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD23命令和CMD25命令,那么存取所述SD卡的所述记忆体位置的步骤包含从由所述第三地址指示的所述记忆体位置开始执行所述多写入操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD25命令中包含的所述第二地址而生成的。

8.根据权利要求1所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD32和CMD38命令,那么存取所述SD卡的所述记忆体位置的步骤包含响应于所述CMD38命令,从由所述第三地址指示的所述记忆体位置开始执行所述擦除操作,并且其中所述第三地址是根据所述CMD22命令和所述CMD32命令而生成的。

9.根据权利要求1所述的方法,其中如果所述地址扩展命令包括第一CMD22命令和第二CMD22命令,且所述存取命令包括CMD32命令、CMD33命令和CMD38命令,那么存取所述SD卡的所述记忆体位置的步骤包含响应于所述CMD38命令,在由所述第三地址指示的所述记忆体位置和由第四地址指示的另一记忆体位置之间执行所述擦除操作,并且其中所述第三地址是根据所述第一CMD22命令和所述CMD32命令而生成的,且所述第四地址是根据所述第二CMD22命令和所述CMD33命令而生成的。

10.根据权利要求1所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD44命令和CMD45命令,那么存取所述SD卡的所述记忆体位置的步骤包含执行从由所述第三地址指示的所述记忆体位置传送数据,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD45命令中包含的所述第二地址而生成的。

11.一种SD卡的控制器,其经配置以执行根据权利要求1到10中任一项所述的方法。

说明书 :

用于存取安全数字SD卡的方法及SD卡的控制器

技术领域

[0001] 本发明涉及一种用于记忆体装置的方法及相关控制器、记忆体装置和主机,且更具体地说,涉及记忆体装置的记忆体寻址方法及相关控制器、记忆体装置和主机。

背景技术

[0002] 随着用于处理视频数据和/或音乐数据的数字通信装置或电子装置的广泛使用及IA(互联网电器)产品的普及,已经研发出用于存储数字数据的各种类型的存储装置。记忆卡变成市场中的主流产品,由于它具有紧凑体积和低功耗的优点。记忆卡非常适合在各种类型的主机/装置/系统中使用,例如数码相机、数字摄像机、MP3播放器、移动电话、个人数字助理(PDA)或全球定位系统(GPS)装置。
[0003] 安全数字(security digital,SD)卡是市场中常用的记忆卡。然而,因为SD卡的命令中的地址参数或变量参数仅具有32位(目前最大存储容量),SD卡可以支持2百万兆字节(TB),这并不能满足各种应用中的容量要求。希望具有可以支持更大容量的SD卡,并且还需要提供此类SD卡的寻址或存取方法。

发明内容

[0004] 因此,本发明的一个目标是提供一种能够存取支持大于2TB的容量的SD卡的寻址方法,并提供相关SD卡、SD卡的控制器和主机。
[0005] 本发明的一个实施例揭示一种用于存取安全数字(SD)卡的方法,所述SD卡包含:用于从主机接收电压供应的电压供应引脚、至少一个接地引脚、用于从主机接收时钟信号的时钟引脚、用于从主机接收命令的命令引脚,以及用于将数据写入到SD卡中或从SD卡读取数据的四个数据引脚。方法包含:通过命令引脚,从主机接收包含第一地址的地址扩展命令;通过命令引脚,从主机接收包含第二地址的存取命令;以及通过数据引脚,存取SD卡中由第三地址指示的至少一个记忆体位置,所述第三地址是第一地址和第二地址的组合。存取命令指示选自以下各项的将对SD卡执行的存取操作:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0006] 本发明的另一实施例揭示一种SD卡的控制器,所述控制器经配置以执行上述方法。
[0007] 本发明的另一实施例揭示一种用于存取SD卡的方法,所述SD卡包含:用于从主机接收电压供应的电压供应引脚;至少一个接地引脚;用于从主机接收时钟信号的时钟引脚;用于从主机接收命令的命令引脚;以及用于将数据写入到SD卡中或从SD卡读取数据的四个数据引脚。方法包含:通过命令引脚,向SD卡传输包含第一地址的地址扩展命令;通过命令引脚,向SD卡传输包含第二地址的存取命令;以及通过数据引脚,存取SD卡中由第三地址指示的至少一个记忆体位置,所述第三地址是第一地址和第二地址的组合。存取命令指示选自以下各项的将对SD卡执行的存取操作:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0008] 本发明的另一实施例揭示一种SD卡,其包含记忆体模块、输入/输出(I/O)接口和控制器。记忆体模块包含多个记忆体位置。I/O接口包含:用于从主机接收电压供应的电压供应引脚、至少一个接地引脚、用于从主机接收时钟信号的时钟引脚、用于从主机接收命令的命令引脚,以及用于将数据写入到SD卡中或从SD卡读取数据的四个数据引脚。控制器经配置以进行以下操作:通过命令引脚,从I/O接口接收包含第一地址的地址扩展命令;通过命令引脚,从I/O接口接收包含第二地址的存取命令;以及存取由第三地址指示的多个记忆体位置中的至少一个,所述第三地址是第一地址和第二地址的组合。存取命令指示选自以下各项的将对SD卡执行的存取操作:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0009] 本发明的又一实施例揭示一种能够存取SD卡的电子装置。SD卡包含I/O接口和处理器。I/O接口包含:用于向SD卡提供电压供应的电压供应触点、至少一个接地触点、用于向SD卡提供时钟信号的时钟触点、用于向SD卡提供命令的命令触点,以及用于将数据写入到SD卡中或从SD卡读取数据的四个数据触点。处理器经配置以进行以下操作:通过命令触点,向SD卡传输包含第一地址的地址扩展命令;通过命令触点,向SD卡传输包含第二地址的存取命令;以及通过数据触点,存取SD卡中由第三地址指示的至少一个记忆体位置,所述第三地址是第一地址和第二地址的组合。存取命令指示选自以下各项的将对SD卡执行的存取操作:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0010] 毫无疑问,所属领域的一般技术人员在阅读各图和附图中示出的优选实施例的以下详细描述之后将明白本发明的目标。

附图说明

[0011] 图1示出根据本发明的一些实施例的SD卡的命令的示意图。
[0012] 图2示出根据本发明的一些实施例的记忆体命令序列。
[0013] 图3示出根据本发明的一些实施例的记忆体命令序列。
[0014] 图4A示出根据本发明的一些实施例的记忆体命令序列。
[0015] 图4B示出根据本发明的一些实施例的记忆体命令序列。
[0016] 图5A是根据本发明的一些实施例的SD卡的示意图。
[0017] 图5B是根据本发明的一些实施例的SD卡的引脚的描述的表格。
[0018] 图6是根据本发明的一些实施例的示出SD卡和主机的组合的框图。
[0019] 图7是根据本发明的一些实施例的一种主机存取SD卡的方法的流程图。
[0020] 图8是根据本发明的一些实施例的一种主机存取SD卡的方法的流程图。
[0021] 图9是根据本发明的一些实施例的一种主机存取SD卡的方法的流程图。
[0022] 图10是根据本发明的一些实施例的由SD卡或SD卡的控制器执行的用于存取SD卡的方法的流程图。
[0023] 图11是根据本发明的一些实施例的由SD卡或SD卡的控制器执行的用于存取SD卡的方法的流程图。
[0024] 图12是根据本发明的一些实施例的示出当存取SD卡时SD卡的状态变化的状态图。

具体实施方式

[0025] 图1示出根据本发明的一些实施例的SD卡的命令的示意图。
[0026] SD卡和主机之间的通信是基于命令和数据流。命令可被视为执行特定操作的请求。通过SD卡的命令(CMD)引脚将命令从主机传输到SD卡。如图1所示,命令的总长度是48位。命令开始于或前面是起始位(“0”)且终止于或后面是停止位或结束位(“1”)。传输器位“1”表示命令从主机传输到SD卡。从SD卡到主机的响应也通过命令引脚传输。在此情况下,传输器位被设置成“0”。索引包含6位,且指示命令类型,所述命令类型确定将对SD卡执行的操作。SD卡的各种命令的定义详细描述于由SD卡协会公布的“部分1物理层规范(Part 1Physical Layer Specification)”的章节4.7.3中。地址变量参数(或地址参数)包含32位,且指示命令的地址信息。循环冗余检查(CRC)代码包含7位,且用于检测传输错误和保护命令的索引和地址中的内容。
[0027] 下文描述不同类型的命令的实例。
[0028] CMD17命令指示在SD卡中由命令中的32位地址指示的记忆体位置上执行单读取(或单个块读取)操作的命令。因为十进制数17的二进制代码是“10001”,所以CMD 17命令的索引是“10001”。CMD24命令指示具有索引“11000”且在SD卡中由命令中的32位地址指示的记忆体位置上执行单写入(或单个块写入)操作的命令。因为十进制数24的二进制代码是“11000”,所以CMD 24命令的索引是“11000”。
[0029] CMD18命令指示具有索引“10010”且从SD卡中由命令中的32位地址指示的记忆体位置开始执行多读取(或多个块读取)操作的命令。CMD23命令和CMD18命令的组合(例如,CMD23命令后跟着CMD18命令)指示从SD卡中由CMD18命令中的32位地址指示的记忆体位置开始的多读取操作,其中CMD23具有数据读取长度的信息。
[0030] CMD25命令指示具有索引“11001”且从SD卡中由命令中的32位地址指示的记忆体位置开始执行多写入(或多个块读取)操作的命令。CMD23命令和CMD25命令的组合(例如,CMD23命令后跟着CMD25命令)指示从SD卡中由CMD25命令中的32位地址指示的记忆体位置开始的多写入操作,其中CMD23具有数据写入长度的信息。
[0031] CMD38命令指示具有索引“100110”且对SD卡执行擦除操作的命令。例如,CMD32命令和CMD38命令的组合(例如,CMD32命令后跟着CMD38命令)指示从SD卡中由CMD32命令中的32位地址指示的记忆体位置开始的擦除操作。CMD32命令、CMD33命令和CMD38命令的组合(例如,CMD32命令后跟着CMD33命令,CMD33命令后跟着CMD38命令)指示从SD卡中由CMD32命令中的32位地址指示的记忆体位置到SD卡中由CMD33命令中的32位地址指示的记忆体位置的擦除操作。
[0032] CMD44命令指示具有索引“101100”且对SD卡执行数据传送操作的命令。例如,CMD44命令和CMD45命令的组合(例如,CMD44命令后跟着CMD45命令)指示起始于SD卡中由CMD45命令中的32位地址指示的记忆体位置的数据传送操作。
[0033] 通常,因为待执行操作的地址信息由对应于操作的一个命令中的32位地址指示,32 9 41
所以一个命令的寻址或存取能力限于2TB(2 (32位地址)*2 (512B块)=2 字节=2TB),从而还将SD卡可以支持的最大容量限于2TB。
[0034] 在本发明的一些实施例中,提供一种可以支持大于2TB的容量的记忆体寻址方法。利用地址扩展命令来将存取命令中的32位地址扩展到大于32位,由此可以提供大于2TB的容量。存取命令可包含上文所描述的命令CMD17、CMD18、CMD24、CMD25、CMD32、CMD33或CMD44,所述命令携载待执行的对应操作的地址信息。在一些实施例中,存取命令可为上文所描述的命令CMD17、CMD18、CMD24、CMD25、CMD32、CMD33或CMD44的组合。地址扩展命令可为选自常规SD卡应用中的保留命令池的命令,即,地址扩展命令可为CMD22、CMD31、CMD39、CMD41或CMD51。在一些实施例中,地址扩展命令可为选自保留命令池的命令的组合,例如,地址扩展命令可包含两个CMD22命令。
[0035] 具体地说,地址扩展命令可具有索引“010110”(CMD22),并在它的32位地址变量参数中携载地址,其中所述地址可考虑6位(例如,32位地址变量参数中的低位6位)、32位或32位地址变量参数中的任何其它数目个位。地址扩展命令中的地址与在地址扩展命令之后的存取命令中的地址组合以形成组合地址,所述组合地址包含大于32个位,并且可用于存取大于2TB的记忆体容量。如果地址扩展命令中的地址具有6位,那么组合地址具有38位,并且6
实现对128TB(2*2TB=128TB)记忆体空间的存取。如果地址扩展命令具有32位,那么组合
32
地址具有64位,并且实现对2 *2TB记忆体空间的存取。根据优选实施例,地址扩展命令中的地址可为组合地址的高位地址,且存取命令中的地址可为组合地址的低位地址。在另一实施例中,地址扩展命令中的地址可为组合地址的低位地址,且存取命令中的地址可为组合地址的高位地址。
[0036] 在优选实施例中,组合地址是通过串联连接地址扩展命令中包含的地址和存取命令中包含的地址来生成。例如,如果地址扩展命令中包含的地址是[X31:X0],且存取命令中包含的地址是[Y31:Y0],那么组合地址是[X31:X0,Y31:Y0](或在一些实施例中为[Y31:Y0,X31,X0])。图2示出根据本发明的一些实施例的记忆体读取命令序列的实例。地址扩展命令CMD22在单读取命令CMD17或多读取命令CMD18之前。地址扩展命令CMD22(在它的32位地址变量参数中)携载将与单读取命令CMD17或多读取命令CMD18中的地址组合以形成组合地址的地址,所述组合地址包含大于32个位,且指示执行单读取操作或多读取操作的记忆体位置。
[0037] 关于多读取操作,可以使用CMD23命令来设置操作的数据读取长度。任选地,可以使用CMD12命令来停止多读取操作,而不用通过CMD23命令设置多读取操作的数据读取长度。
[0038] 图3示出根据本发明的一些实施例的记忆体写入命令序列的实例。地址扩展命令CMD22在单写入命令CMD24或多写入命令CMD25之前。地址扩展命令CMD22(在它的32位地址变量参数中)携载将与单写入命令CMD24或多写入命令CMD25中的地址组合以形成组合地址的地址,所述组合地址包含大于32个位,且指示执行单写入操作或多写入操作的记忆体位置。
[0039] 关于多写入操作,可以使用CMD23命令来设置操作的数据写入长度。任选地,可以使用CMD12命令来停止多写入操作,而不用通过CMD23命令设置多写入操作的数据写入长度。
[0040] 图4A示出根据本发明的一些实施例的记忆体擦除命令序列的实例。一个地址扩展命令CMD22在CMD32命令之前,且(在它的32位地址变量参数中)携载将与CMD32命令中的地址组合以形成组合地址的地址,所述组合地址包含大于32个位,且指示起始擦除操作的记忆体位置。另一地址扩展命令CMD22在CMD33命令之前,且(在它的32位地址变量参数中)携载将与CMD33命令中的地址组合以形成另一组合地址的地址,所述另一组合地址包含大于32个位,且指示结束擦除操作的记忆体位置。CMD38命令发起擦除操作。
[0041] 图4B示出根据本发明的一些实施例的记忆体数据传送命令序列的实例。CMD44命令指示SD卡上的数据传送操作。地址扩展命令CMD22在CMD45命令之前,且(在它的32位地址变量参数中)携载将与CMD45命令中的地址组合以便形成组合地址的地址,所述组合地址包含大于32个位,且指示起始数据传送的记忆体位置。
[0042] 图5A是SD卡A的俯视图。如图5A中所示,SD卡A包含9个引脚,标记为A1到A9。
[0043] 图5B是图5A中示出的SD卡A的引脚A1到A9的描述或定义的表格。如表格中所示,引脚A1和A7到A9是用于将数据写入到SD卡A中或从SD卡A读取数据的数据引脚。引脚A2被称为命令引脚,其可接收从主机传输到SD卡A的命令,并且可响应于所述命令而将响应从SD卡A传输到主机。引脚A4被称为VDD引脚且用作SD卡A的电压供应引脚。引脚A4可经配置以接收在2.7到3.6伏(V)范围内的电压。引脚A5被称为时钟(CLK)引脚,且经配置以接收时钟信号。引脚A3和/或A6是接地引脚。
[0044] 图6是根据本发明的一些实施例的示出SD卡A和主机H的组合的框图。SD卡A包含闪存模块120和闪存控制器(或控制器)110,其中闪存控制器110经布置以存取闪存模块120。闪存控制器110可经配置以从主机H接收命令(例如,地址扩展命令或存取命令)并根据所述命令中的地址存取闪存模块120中的记忆体位置。闪存控制器110包括微处理器112、只读存储器(ROM)112M、控制逻辑114、缓冲记忆体116和接口逻辑118。ROM 112M经布置以存储程序代码112C,且微处理器112经布置以执行程序代码112C,以便控制对闪存模块120的存取。控制逻辑114包括编码器142和解码器144。
[0045] 在一些实施例中,闪存模块120包括多个闪存芯片,每一闪存芯片包括多个块,且闪存控制器110将“块”视作对闪存模块120执行操作的擦除单元。闪存控制器110可通过微处理器112执行程序代码112C。在一些实施例中,块可包含特定数目个页,其中闪存控制器110将“页”视作将数据写入到闪存模块120的单元。在一些实施例中,闪存模块120可包含
3DNAND型闪存。
[0046] 实际上,通过微处理器112执行程序代码112C的闪存控制器110可以使用其内元件来执行各种控制操作,例如使用控制逻辑114来控制闪存模块120的存取操作(特别是至少一个块或至少一个页上的存取操作)、使用缓冲记忆体116来执行所需缓冲过程,以及使用接口逻辑118来通过SD卡A的数据引脚与主机H通信。例如,缓冲记忆体116可为静态随机存取存储器(静态RAM(SRAM)),但是本发明不限于此。
[0047] 主机H可包含处理器132和耦合到SD卡A的输入/输出(I/O)接口134。I/O接口134可包含分别对应于SD卡A的引脚的触点(即,I/O接口可包含九个触点)。I/O接口134可包含用于提供电压供应的电压供应触点、一或多个接地触点、用于提供时钟信号的时钟触点及命令触点,所述命令触点用于电连接到SD卡A的命令引脚且用于向SD卡A提供命令。主机H的每一触点的定义可以指图5B中示出的表格。
[0048] 图7是根据本发明的一些实施例的由主机(或主机的处理器)执行的用于存取SD卡的方法700的流程图。详细步骤如下:
[0049] 步骤702:主机确定将对SD卡执行的存取操作。存取操作可选自以下各项:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0050] 步骤704:主机确定SD卡中进行存取操作的记忆体位置,其中记忆体位置可以由64位地址指示。
[0051] 步骤706:主机将64位地址分隔成32位高位地址和32位低位地址。
[0052] 步骤708:主机通过SD卡的命令引脚将包含高位地址(在地址变量参数中)的地址扩展命令从主机的I/O接口传输到SD卡。
[0053] 步骤710:主机通过SD卡的命令引脚将包含低位地址(在地址变量参数中)的存取命令和指示存取操作(在索引中)的信息传输到SD卡。
[0054] 步骤712:主机通过SD卡的数据引脚存取SD卡中由组合地址指示的记忆体位置,所述组合地址是高位地址和低位地址的组合。
[0055] 在上方描述的实施例中,高位地址和低位地址均为32位。在一些其它实施例中,在步骤704中确定的指示记忆体位置的地址可为38位,并且高位地址可为6位,低位地址为32位。根据本发明,高位地址的位的数目可以是不大于32的任何数目,因此不限于上方的实施例。此外,在一些实施例中,地址扩展命令可包含低位地址,且存取命令可包含高位地址。
[0056] 在一些实施例中,如果地址扩展命令包括CMD22命令,且存取命令包括CMD17命令,那么存取SD卡的记忆体位置的步骤(步骤712)包含在由组合地址指示的记忆体位置上执行单读取操作,所述组合地址是根据CMD22命令中包含的高位地址和CMD17命令中包含的低位地址而生成的。
[0057] 在一些实施例中,如果地址扩展命令包括CMD22命令,且存取命令包括CMD24命令,那么存取SD卡的记忆体位置的步骤(步骤712)包含在由组合地址指示的记忆体位置上执行单写入操作,所述组合地址是根据CMD22命令中包含的高位地址和CMD24命令中包含的低位地址而生成的。
[0058] 在一些实施例中,如果地址扩展命令包括CMD22命令,且存取命令包括CMD23命令和CMD18命令(如图2所示),那么存取SD卡的记忆体位置的步骤(步骤712)包含从由组合地址指示的记忆体位置开始执行多读取操作,所述组合地址是根据CMD22命令中包含的高位地址和CMD18命令中包含的低位地址而生成的。CMD23命令用于设置多读取操作的数据读取长度。
[0059] 在一些实施例中,如果地址扩展命令包括CMD22命令,且存取命令包括CMD23命令和CMD25命令(如图3中所示),那么存取SD卡的记忆体位置的步骤(步骤712)包含从由组合地址指示的记忆体位置开始执行多写入操作,所述组合地址是根据CMD22命令中包含的高位地址和CMD25命令中包含的低位地址而生成的。CMD23命令用于设置多写入操作的数据写入长度。
[0060] 在一些实施例中,如果地址扩展命令包括CMD22命令,且存取命令包括CMD32和CMD38命令,那么存取SD卡的记忆体位置的步骤(步骤712)包含响应于CMD38命令,从由组合地址指示的记忆体位置开始执行擦除操作。组合地址是根据CMD22命令中包含的高位地址和CMD32命令中包含的低位地址而生成的。
[0061] 在一些实施例中,如果地址扩展命令包括第一CMD22命令和第二CMD22命令,且存取命令包括CMD32命令、CMD33命令和CMD38命令(如图4A所示),那么存取SD卡的记忆体位置的步骤(步骤712)包含在由起始地址指示的记忆体位置和由结束地址指示的另一记忆体位置之间执行擦除操作,其中起始地址是根据第一CMD22命令中包含的高位地址和CMD32命令中包含的低位地址而生成的,且结束地址是根据第二CMD22命令中包含的高位地址和CMD33命令中包含的低位地址而生成的。擦除操作由CMD38命令发起。
[0062] 在一些实施例中,如果地址扩展命令包括CMD22命令,且存取命令包括CMD44命令和CMD45命令(如图4B所示),那么存取SD卡的记忆体位置的步骤(步骤712)包含执行从由组合地址指示的记忆体位置传送数据,所述组合地址是根据CMD22命令中包含的高位地址和CMD45命令中包含的低位地址而生成的。CMD44命令用于设置数据方向、优先任务ID和待传送块的总数。
[0063] 应注意,图7中所示的步骤的次序仅为示例性的,且这些步骤可以根据各种应用以任何其它合适的次序重新布置。例如,在一些其它实施例中,步骤704可在步骤702之前,或步骤710可在步骤708之前。
[0064] 图8是根据本发明的一些实施例的由主机执行的用于存取SD卡的方法800的流程图。详细步骤如下:
[0065] 步骤802:主机接收SD卡的容量的信息。所述信息可存储在SD卡中的卡特定数据(CSD)寄存器中。
[0066] 步骤804:主机确定SD卡的容量是否超过预定阈值,例如,可以通过32位地址呈现的容量。阈值可为2TB或小于2TB。如果结果是肯定的,那么过程转到步骤806。如果结果是否定的,那么过程转到步骤820。
[0067] 步骤806:主机确定将对SD卡执行的存取操作。存取操作可选自以下各项:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0068] 步骤808:主机确定SD卡中进行存取操作的记忆体位置,其中记忆体位置可以由64位地址指示。
[0069] 步骤810:主机将64位地址分隔成32位高位地址和32位低位地址。
[0070] 步骤812:主机通过SD卡的命令引脚将包含高位地址(在地址变量参数中)的地址扩展命令从主机的I/O接口传输到SD卡。
[0071] 步骤814:主机通过SD卡的命令引脚将包含低位地址(在地址变量参数中)的存取命令和指示存取操作(在索引中)的信息传输到SD卡。
[0072] 步骤816:主机通过SD卡的数据引脚存取SD卡中由组合地址指示的记忆体位置,所述组合地址是高位地址和低位地址的组合。
[0073] 步骤820:主机确定将对SD卡执行的存取操作。存取操作可选自以下各项:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0074] 步骤822:主机确定SD卡中进行存取操作的记忆体位置,其中记忆体位置由32位地址指示。
[0075] 步骤824:主机通过SD卡的命令引脚将包含32位地址(在地址变量参数中)的存取命令和指示存取操作(在索引中)的信息传输到SD卡。
[0076] 步骤826:主机根据步骤824中的存取操作通过SD卡的数据引脚存取SD卡中由32位地址指示的记忆体位置。
[0077] 在当前实施例中,主机H首先确定SD卡的容量。如果SD卡的容量超过阈值,例如2TB,那么过程转到步骤806;否则,它转到步骤820。步骤806到816的操作与步骤702到712的那些操作相同。换句话说,如果主机H确定SD卡的容量超过2TB,那么存取SD卡需要地址扩展命令;否则,仅存取命令对于存取SD卡来说足够。
[0078] 应注意,图8中所示的步骤的次序仅为示例性的,且这些步骤可以根据各种应用以任何其它合适的次序重新布置。例如,在一些其它实施例中,步骤806和步骤820可以组合并且可在步骤802之前,或步骤814可在步骤812之前。
[0079] 图9是根据本发明的一些实施例的由主机执行的用于存取SD卡的方法900的流程图。详细步骤如下:
[0080] 步骤901:主机确定将对SD卡执行的存取操作。存取操作可选自以下各项:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0081] 步骤902:主机接收SD卡的容量的信息。信息可存储在SD卡中的CSD寄存器中。
[0082] 步骤904:主机确定SD卡的容量是否超过预定阈值。阈值可为2TB或小于2TB。如果结果是肯定的,那么过程转到步骤906。如果结果是否定的,那么过程转到步骤922。
[0083] 步骤906:主机确定SD卡中进行在步骤901中确定的存取操作的记忆体位置,其中记忆体位置可由64位地址或32位地址指示。如果记忆体位置将由大于32位的地址指示,那么过程转到步骤908。如果记忆体位置可由32位地址指示,那么过程转到步骤922。
[0084] 步骤908:主机将64位地址分隔成32位高位地址和32位低位地址。
[0085] 步骤910:主机通过SD卡的命令引脚将包含高位地址(在地址变量参数中)的地址扩展命令从主机的I/O接口传输到SD卡。
[0086] 步骤912:主机通过SD卡的命令引脚将包含低位地址(在地址变量参数中)的存取命令和指示存取操作(在索引中)的信息传输到SD卡。
[0087] 步骤914:主机通过SD卡的数据引脚存取SD卡中由组合地址指示的记忆体位置,所述组合地址是高位地址和低位地址的组合。
[0088] 步骤922:主机确定SD卡中进行存取操作的记忆体位置,其中记忆体位置由32位地址指示。
[0089] 步骤924:主机通过SD卡的命令引脚将包含32位地址(在地址变量参数中)的存取命令和指示存取操作(在索引中)的信息传输到SD卡。
[0090] 步骤926:主机根据步骤824中的存取操作通过SD卡的数据引脚存取SD卡中由32位地址指示的记忆体位置。
[0091] 应注意,在方法900中,即使主机认识到SD卡支持大于例如2TB的容量,主机仍然可以选择可由32位地址指示的记忆体位置来执行存取操作,其中不需要传输地址扩展命令。
[0092] 图10是根据本发明的一些实施例的由SD卡或SD卡的控制器执行的用于存取SD卡的方法1000的流程图。详细步骤如下:
[0093] 步骤1002:SD卡(或SD卡的控制器)通过SD卡的命令引脚从主机的I/O接口接收包含高位地址(在地址变量参数中)的地址扩展命令。
[0094] 步骤1004:SD卡(或SD卡的控制器)通过SD卡的命令引脚接收包含低位地址(在地址变量参数中)的存取命令和指示存取操作(在索引中)的信息。存取操作可选自以下各项:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0095] 步骤1006:SD卡(或SD卡的控制器)存取SD卡中由组合地址指示的记忆体位置,所述组合地址是高位地址和低位地址的组合。
[0096] 高位地址和低位地址均可为32位。在一些其它实施例中,高位地址可为6位,且低位地址是32位。在其它情况下,高位地址可为32位且仅含有6位有意义位。根据本发明的,高位地址的位(例如,有意义位)的数目可以是不大于32的任何数目,因此不限于上方的实施例。此外,在一些实施例中,地址扩展命令可包含低位地址,且存取命令可包含高位地址。
[0097] 在一些实施例中,如果地址扩展命令包括CMD22命令,且存取命令包括CMD17命令,那么存取SD卡的记忆体位置的步骤(步骤1006)包含在由组合地址指示的记忆体位置上执行单读取操作,所述组合地址是根据CMD22命令中包含的高位地址和CMD17命令中包含的低位地址而生成的。
[0098] 在一些实施例中,如果地址扩展命令包括CMD22命令,且存取命令包括CMD24命令,那么存取SD卡的记忆体位置的步骤(步骤1006)包含在由组合地址指示的记忆体位置上执行单写入操作,所述组合地址是根据CMD22命令中包含的高位地址和CMD24命令中包含的低位地址而生成的。
[0099] 在一些实施例中,如果地址扩展命令包括CMD22命令,且存取命令包括CMD23命令和CMD18命令(如图2所示),那么存取SD卡的记忆体位置的步骤(步骤1006)包含从由组合地址指示的记忆体位置开始执行多读取操作,所述组合地址是根据CMD22命令中包含的高位地址和CMD18命令中包含的低位地址而生成的。CMD23命令用于设置多读取操作的数据读取长度。
[0100] 在一些实施例中,如果地址扩展命令包括CMD22命令,且存取命令包括CMD23命令和CMD25命令(如图3中所示),那么存取SD卡的记忆体位置的步骤(步骤1006)包含从由组合地址指示的记忆体位置开始执行多写入操作,所述组合地址是根据CMD22命令中包含的高位地址和CMD25命令中包含的低位地址而生成的。CMD23命令用于设置多写入操作的数据写入长度。
[0101] 在一些实施例中,如果地址扩展命令包括CMD22命令,且存取命令包括CMD32和CMD38命令,那么存取SD卡的记忆体位置的步骤(步骤1006)包含响应于CMD38命令,从由组合地址指示的记忆体位置开始执行擦除操作。组合地址是根据CMD22命令中包含的高位地址和CMD32命令中包含的低位地址而生成的。
[0102] 在一些实施例中,如果地址扩展命令包括第一CMD22命令和第二CMD22命令,且存取命令包括CMD32命令、CMD33命令和CMD38命令(如图4A所示),那么存取SD卡的记忆体位置的步骤(步骤1006)包含在由起始地址指示的记忆体位置和由结束地址指示的另一记忆体位置之间执行擦除操作,其中起始地址可根据第一CMD22命令中包含的高位地址和CMD32命令中包含的低位地址而生成,且结束地址可根据第二CMD22命令中包含的高位地址和CMD33命令中包含的低位地址而生成。擦除操作由CMD38命令发起。
[0103] 在一些实施例中,如果地址扩展命令包括CMD22命令,且存取命令包括CMD44命令和CMD45命令(如图4B所示),那么存取SD卡的记忆体位置的步骤(步骤1006)包含执行从由组合地址指示的记忆体位置传送数据,所述组合地址是根据CMD22命令中包含的高位地址和CMD45命令中包含的低位地址而生成的。CMD44命令用于设置数据方向、优先任务ID和待传送块的总数。
[0104] 应注意,图10中所示的步骤的次序仅为示例性的,且这些步骤可以根据各种应用以任何其它合适的次序重新布置。例如,在一些其它实施例中,步骤1004可在步骤1002之前。
[0105] 图11是根据本发明的一些实施例的由SD卡或SD卡的控制器执行的用于存取SD卡的方法1100的流程图。详细步骤如下:
[0106] 步骤1102:SD卡(或SD卡的控制器)将SD卡的容量的信息传输到主机。信息可存储在SD卡中的CSD寄存器中。
[0107] 步骤1104:SD卡确定是否接收到包含高位地址(在地址变量参数中)地址扩展命令。如果接收到地址扩展命令,那么过程转到步骤1106;否则,它转到步骤1120。
[0108] 步骤1106:SD卡(或SD卡的控制器)通过SD卡的命令引脚接收包含低位地址(在地址变量参数中)的存取命令和指示存取操作(在索引中)的信息。存取操作可选自以下各项:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0109] 步骤1108:SD卡(或SD卡的控制器)存取SD卡中由组合地址指示的记忆体位置,所述组合地址是高位地址和低位地址的组合。存取操作可选自以下各项:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0110] 步骤1120:SD卡(或SD卡的控制器)通过SD卡的命令引脚从主机的I/O接口接收包含32位地址(在地址变量参数中)的存取命令和指示存取操作(在索引中)的信息。
[0111] 步骤1122:SD卡(或SD卡的控制器)根据步骤1120中的存取操作存取SD卡中由32位地址指示的记忆体位置。
[0112] 应注意,图11中所示的步骤的次序仅为示例性的,且这些步骤可以根据各种应用以任何其它合适的次序重新布置。例如,用于接收存取命令的步骤1106和1120可以组合,并且可在步骤1104之前。
[0113] 图12是根据本发明的一些实施例的示出当存取SD卡时SD卡的状态变化的状态图。
[0114] 状态图开始于状态1200,即传送状态,在状态1200中,SD卡在特定时间段内未接收到任何存取命令。也就是说,SD卡尚未接收到任何高位地址或低位地址。
[0115] 在状态1200中,如果接收到CMD17、CMD18、CMD24或CMD25命令,那么SD卡接收到CMD17、CMD18、CMD24或CMD25命令所携载的低位地址,并且SD卡进入状态1204。SD卡随后进入状态1250。
[0116] 在状态1200中,如果接收到CMD22命令,那么SD卡接收到CMD22命令所携载的高位地址,并且SD卡进入状态1202。
[0117] 在状态1200中,如果接收到CMD23命令,那么SD卡接收到CMD23命令所携载的数据长度,并且SD卡进入状态1222,其中SD卡尚未接收到任何高位地址或低位地址。
[0118] 在状态1200中,如果接收到CMD32命令,那么SD卡接收到CMD32命令所携载的低位地址,并且SD卡进入状态1212。
[0119] 在状态1202中,如果接收到新CMD22命令,那么新CMD22命令所携载的高位地址替换在SD卡从状态1200切换到状态1202时接收到的高位地址,并且SD卡保持处于状态1202。
[0120] 在状态1202中,如果接收到CMD17、CMD18、CMD24或CMD25命令,那么SD卡接收到CMD17、CMD18、CMD24或CMD25命令所携载的低位地址,并且SD卡进入状态1204。SD卡随后进入状态1250。
[0121] 在状态1202中,如果接收到命令32,那么SD卡接收到CMD32命令所携载的低位地址,并且SD卡进入状态1212。
[0122] 在状态1222中,如果接收到新CMD23命令,那么新CMD23命令所携载的数据长度替换在SD卡从状态1200切换到状态1222时接收到的数据长度,并且SD卡保持处于状态1222。
[0123] 在状态1222中,如果接收到CMD22命令,那么SD卡接收到CMD22命令所携载的高位地址,并且SD卡进入状态1223。
[0124] 在状态1222中,如果接收到CMD18或CMD25命令,那么SD卡接收到CMD18或CMD25命令所携载的低位地址,并且SD卡进入状态1224,其中SD卡随后进入状态1250。
[0125] 在状态1223中,如果接收到新CMD22命令,那么新CMD22命令所携载的高位地址替换在SD卡从状态1222切换到状态1223时接收到的高位地址,并且SD卡保持处于状态1223。
[0126] 在状态1223中,如果接收到新CMD23命令,那么新CMD23命令所携载的数据长度替换当前数据长度,并且SD卡返回到状态1222。
[0127] 在状态1223中,如果接收到CMD18或CMD25命令,那么SD卡接收到CMD18或CMD25命令所携载的低位地址,并且SD卡进入状态1224,其中SD卡随后进入状态1250。
[0128] 在状态1212中,SD卡随后进入状态1214。
[0129] 在状态1214中,如果接收到CMD33命令,那么SD卡接收到CMD33命令所携载的低位地址,并且SD卡进入状态1216。
[0130] 在状态1214中,如果接收到CMD22命令,那么SD卡接收到CMD22命令所携载的高位地址,并且SD卡进入状态1215。
[0131] 在状态1215中,如果接收到新CMD22命令,那么新CMD22命令所携载的高位地址替换在SD卡从状态1214切换到状态1215时接收到的高位地址,并且SD卡保持处于状态1215。
[0132] 在状态1215中,如果接收到CMD33命令,那么SD卡接收到CMD33命令所携载的低位地址,并且SD卡进入状态1216。
[0133] 在状态1216中,如果接收到CMD38命令,那么向SD卡指示对应操作(例如,擦除操作),并且SD卡进入状态1218,其中SD卡随后进入状态1250。
[0134] 在状态1250中,根据由存取命令(例如CMD17、CMD18、CMD24、CMD25、CMD32和CMD33)的索引字段指示的操作,在SD卡中通过低位地址或高位地址和低位地址的组合确定的位置处存取SD卡。如果所确定的位置无法存取(例如,在只读区域内)或不存在于SD卡中(例如,超过SD卡的容量),那么将拒绝存取,并且SD卡返回到状态1200。
[0135] 应注意,在图12中示出的示例性实施例中,在状态1202、状态1222、状态1223、状态1214、状态1215和状态1216中,如果接收到非预期命令(即,除上文在相应描述中描述的命令以外的命令),那么SD卡返回到传送状态1200(如由虚线箭头指示)。
[0136] 考虑到上文,本领域中的普通技术人员可以了解,图7到11中描绘的流程图是本发明的实施例,并且可以基于图12的状态图推导出由SD卡或主机执行的其它流程图。
[0137] 可以使用以下条款进一步描述本发明:
[0138] 1.一种用于存取安全数字(SD)卡的方法,所述SD卡包括:
[0139] 用于从主机接收电压供应的电压供应引脚;
[0140] 至少一个接地引脚;
[0141] 用于从所述主机接收时钟信号的时钟引脚;
[0142] 用于从所述主机接收命令的命令引脚;以及
[0143] 用于将数据写入到所述SD卡中或从所述SD卡读取数据的四个数据引脚,[0144] 所述方法包括:
[0145] 通过所述命令引脚,从所述主机接收包含第一地址的地址扩展命令;
[0146] 通过所述命令引脚,从所述主机接收包含第二地址的存取命令;以及[0147] 通过所述数据引脚,存取所述SD卡中由第三地址指示的至少一个记忆体位置,所述第三地址是所述第一地址和所述第二地址的组合;
[0148] 其中所述存取命令指示选自以下各项的将对所述SD卡执行的存取操作:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0149] 2.根据条款1所述的方法,其中所述第三地址是通过串联连接所述第一地址和所述第二地址来生成。
[0150] 3.根据条款1所述的方法,其中所述第一地址和所述第二地址均为32位。
[0151] 4.根据条款1所述的方法,其中所述第一地址是6位,且所述第二地址是32位。
[0152] 5.根据条款1所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD17命令,那么存取所述SD卡的所述记忆体位置的步骤包含在由所述第三地址指示的所述记忆体位置上执行所述单读取操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD17命令中包含的所述第二地址而生成的。
[0153] 6.根据条款1所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD24命令,那么存取所述SD卡的所述记忆体位置的步骤包含在由所述第三地址指示的所述记忆体位置上执行所述单写入操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD24命令中包含的所述第二地址而生成的。
[0154] 7.根据条款1所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD23命令和CMD18命令,那么存取所述SD卡的所述记忆体位置的步骤包含从由所述第三地址指示的所述记忆体位置开始执行所述多读取操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD18命令中包含的所述第二地址而生成的。
[0155] 8.根据条款1所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD23命令和CMD25命令,那么存取所述SD卡的所述记忆体位置的步骤包含从由所述第三地址指示的所述记忆体位置开始执行所述多写入操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD25命令中包含的所述第二地址而生成的。
[0156] 9.根据条款1所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD32和CMD38命令,那么存取所述SD卡的所述记忆体位置的步骤包含响应于所述CMD38命令,从由所述第三地址指示的所述记忆体位置开始执行所述擦除操作,并且其中所述第三地址是根据所述CMD22命令和所述CMD32命令而生成的。
[0157] 10.根据条款1所述的方法,其中如果所述地址扩展命令包括第一CMD22命令和第二CMD22命令,且所述存取命令包括CMD32命令、CMD33命令和CMD38命令,那么存取所述SD卡的所述记忆体位置的步骤包含响应于所述CMD38命令,在由所述第三地址指示的所述记忆体位置和由第四地址指示的另一记忆体位置之间执行所述擦除操作,并且其中所述第三地址是根据所述第一CMD22命令和所述CMD32命令而生成的,且所述第四地址是根据所述第二CMD22命令和所述CMD33命令而生成的。
[0158] 11.根据条款1所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD44命令和CMD45命令,那么存取所述SD卡的所述记忆体位置的步骤包含执行从由所述第三地址指示的所述记忆体位置传送数据,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD45命令中包含的所述第二地址而生成的。
[0159] 12.根据条款1所述的方法,还包括将所述SD卡的容量的信息传输到所述主机。
[0160] 13.一种SD卡的控制器,其经配置以执行根据条款1到12中任一条款所述的方法。
[0161] 14.一种用于存取SD卡的方法,所述SD卡包括:
[0162] 用于从主机接收电压供应的电压供应引脚;
[0163] 至少一个接地引脚;
[0164] 用于从所述主机接收时钟信号的时钟引脚;
[0165] 用于从所述主机接收命令的命令引脚;以及
[0166] 用于将数据写入到所述SD卡中或从所述SD卡读取数据的四个数据引脚,[0167] 所述方法包括:
[0168] 通过所述命令引脚,向所述SD卡传输包含第一地址的地址扩展命令;
[0169] 通过所述命令引脚,向所述SD卡传输包含第二地址的存取命令;以及[0170] 通过所述数据引脚,存取所述SD卡中由第三地址指示的至少一个记忆体位置,所述第三地址是所述第一地址和所述第二地址的组合;
[0171] 其中所述存取命令指示选自以下各项的将对所述SD卡执行的存取操作:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0172] 15.根据条款14所述的方法,其中所述第三地址是通过串联连接所述第一地址和所述第二地址来生成。
[0173] 16.根据条款14所述的方法,还包括接收所述SD卡的容量的信息;其中如果所述SD卡的所述容量超过预定阈值,那么执行传输所述地址扩展命令的步骤。
[0174] 17.根据条款14所述的方法,其中所述第一地址和所述第二地址均为32位。
[0175] 18.根据条款14所述的方法,其中所述第一地址是6位,且所述第二地址是32位。
[0176] 19.根据条款14所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD17命令,那么存取所述SD卡的所述记忆体位置的步骤包含在由所述第三地址指示的所述记忆体位置上执行所述单读取操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD17命令中包含的所述第二地址而生成的。
[0177] 20.根据条款14所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD24命令,那么存取所述SD卡的所述记忆体位置的步骤包含在由所述第三地址指示的所述记忆体位置上执行所述单写入操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD24命令中包含的所述第二地址而生成的。
[0178] 21.根据条款14所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD23命令和CMD18命令,那么存取所述SD卡的所述记忆体位置的步骤包含从由所述第三地址指示的所述记忆体位置开始执行所述多读取操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD18命令中包含的所述第二地址而生成的。
[0179] 22.根据条款14所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD23命令和CMD25命令,那么存取所述SD卡的所述记忆体位置的步骤包含从由所述第三地址指示的所述记忆体位置开始执行所述多写入操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD25命令中包含的所述第二地址而生成的。
[0180] 23.根据条款14所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD32和CMD38命令,那么存取所述SD卡的所述记忆体位置的步骤包含响应于所述CMD38命令,从由所述第三地址指示的所述记忆体位置开始执行所述擦除操作,并且其中所述第三地址是根据所述CMD22命令和所述CMD32命令而生成的。
[0181] 24.根据条款14所述的方法,其中如果所述地址扩展命令包括第一CMD22命令和第二CMD22命令,且所述存取命令包括CMD32命令、CMD33命令和CMD38命令,那么存取所述SD卡的所述记忆体位置的步骤包含响应于所述CMD38命令,在由所述第三地址指示的所述记忆体位置和由第四地址指示的另一记忆体位置之间执行所述擦除操作,并且其中所述第三地址是根据所述第一CMD22命令和所述CMD32命令而生成的,且所述第四地址是根据所述第二CMD22命令和所述CMD33命令而生成的。
[0182] 25.根据条款14所述的方法,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD44命令和CMD45命令,那么存取所述SD卡的所述记忆体位置的步骤包含执行从由所述第三地址指示的所述记忆体位置传送数据,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD45命令中包含的所述第二地址而生成的。
[0183] 26.根据条款14所述的方法,还包括:
[0184] 确定存取可由第四地址指示的记忆体位置;
[0185] 通过所述命令引脚,向所述SD卡传输包含所述第四地址的另一存取命令;以及[0186] 通过所述数据引脚,存取由所述第四地址指示的所述SD卡的所述记忆体位置。
[0187] 27.一种SD卡,包括:
[0188] 记忆体模块,其包含多个记忆体位置;
[0189] 输入/输出(I/O)接口,其包括:
[0190] 用于从主机接收电压供应的电压供应引脚;
[0191] 至少一个接地引脚;
[0192] 用于从所述主机接收时钟信号的时钟引脚;
[0193] 用于从所述主机接收命令的命令引脚;以及
[0194] 用于将数据写入到所述SD卡中或从所述SD卡读取数据的四个数据引脚;以及[0195] 控制器,其经配置以进行以下操作:
[0196] 通过所述命令引脚,从所述I/O接口接收包含第一地址的地址扩展命令;
[0197] 通过所述命令引脚,从所述I/O接口接收包含第二地址的存取命令;以及[0198] 存取所述多个记忆体位置中由第三地址指示的至少一个,所述第三地址是所述第一地址和所述第二地址的组合,
[0199] 其中所述存取命令指示选自以下各项的将对所述SD卡执行的存取操作:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0200] 28.根据条款27所述的SD卡,其中所述第三地址是通过串联连接所述第一地址和所述第二地址来生成。
[0201] 29.根据条款27所述的SD卡,其中所述高位地址和所述低位地址均为32位。
[0202] 30.根据条款27所述的SD卡,其中所述高位地址是6位,且所述低位地址是32位。
[0203] 31.根据条款27所述的SD卡,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD17命令,那么所述控制器在由所述第三地址指示的所述记忆体位置上执行单读取操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD17命令中包含的所述第二地址而生成的。
[0204] 32.根据条款27所述的SD卡,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD24命令,那么所述控制器在由所述第三地址指示的所述记忆体位置上执行单写入操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD24命令中包含的所述第二地址而生成的。
[0205] 33.根据条款27所述的SD卡,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD23命令和CMD18命令,那么所述控制器从由所述第三地址指示的所述记忆体位置开始执行多读取操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD18命令中包含的所述第二地址而生成的。
[0206] 34.根据条款27所述的SD卡,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD23命令和CMD25命令,那么所述控制器从由所述第三地址指示的所述记忆体位置开始执行多写入操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD25命令中包含的所述第二地址而生成的。
[0207] 35.根据条款27所述的SD卡,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD32和CMD38命令,那么所述控制器响应于所述CMD38命令而从由所述第三地址指示的所述记忆体位置开始执行擦除操作,并且其中所述第三地址是根据所述CMD22命令和所述CMD32命令而生成的。
[0208] 36.根据条款27所述的SD卡,其中如果所述地址扩展命令包括第一CMD22命令和第二CMD22命令,且所述存取命令包括CMD32命令、CMD33命令和CMD38命令,那么所述控制器响应于所述CMD38命令而在由所述第三地址指示的所述记忆体位置和由第四地址指示的另一记忆体位置之间执行擦除操作,并且其中所述第三地址是根据所述第一CMD22命令和所述CMD32命令而生成的,且所述第四地址是根据所述第二CMD22命令和所述CMD33命令而生成的。
[0209] 37.根据条款27所述的SD卡,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD44命令和CMD45命令,那么所述控制器执行从由所述第三地址指示的所述记忆体位置传送数据,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD45命令中包含的所述第二地址而生成的。
[0210] 38.根据条款27所述的SD卡,其中所述控制器还经配置以向所述主机传输所述SD卡的容量的信息。
[0211] 39.一种能够存取SD卡的电子装置,包括:
[0212] I/O接口,其包括:
[0213] 用于向所述SD卡提供电压供应的电压供应触点;
[0214] 至少一个接地触点;
[0215] 用于向所述SD卡提供时钟信号的时钟触点;
[0216] 用于向所述SD卡提供命令的命令触点;以及
[0217] 用于将数据写入到所述SD卡中或从所述SD卡读取数据的四个数据触点;以及[0218] 处理器,其经配置以进行以下操作:
[0219] 通过所述命令触点,向所述SD卡传输包含第一地址的地址扩展命令;
[0220] 通过所述命令触点,向所述SD卡传输包含第二地址的存取命令;以及[0221] 通过所述数据触点,存取所述SD卡中由第三地址指示的至少一个记忆体位置,所述第三地址是所述第一地址和所述第二地址的组合;
[0222] 其中所述存取命令指示选自以下各项的将对所述SD卡执行的存取操作:单读取操作、单写入操作、多读取操作、多写入操作和擦除操作。
[0223] 40.根据条款39所述的电子装置,其中所述第三地址是通过串联连接所述第一地址和所述第二地址来生成。
[0224] 41.根据条款39所述的电子装置,其中所述处理器还经配置以基于从所述I/O接口接收的信息来确定所述SD卡的容量;并且其中如果所确定的所述SD卡的容量超过预定阈值,那么传输所述地址扩展命令。
[0225] 42.根据条款39所述的电子装置,其中所述第一地址和所述第二地址均为32位。
[0226] 43.根据条款39所述的电子装置,其中所述第一地址是6位,且所述第二地址是32位。
[0227] 44.根据条款39所述的电子装置,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD17命令,那么所述处理器在由所述第三地址指示的所述记忆体位置上执行单读取操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD17命令中包含的所述第二地址而生成的。
[0228] 45.根据条款39所述的电子装置,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD24命令,那么所述处理器在由所述第三地址指示的所述记忆体位置上执行单写入操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD24命令中包含的所述第二地址而生成的。
[0229] 46.根据条款39所述的电子装置,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD23命令和CMD18命令,那么所述处理器从由所述第三地址指示的所述记忆体位置开始执行多读取操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD18命令中包含的所述第二地址而生成的。
[0230] 47.根据条款39所述的电子装置,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD23命令和CMD25命令,那么所述处理器从由所述第三地址指示的所述记忆体位置开始执行多写入操作,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD25命令中包含的所述第二地址而生成的。
[0231] 48.根据条款39所述的电子装置,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD32和CMD38命令,那么所述处理器响应于所述CMD38命令而从由所述第三地址指示的所述记忆体位置开始执行擦除操作,并且其中所述第三地址是根据所述CMD22命令和所述CMD32命令而生成的。
[0232] 49.根据条款39所述的电子装置,其中如果所述地址扩展命令包括第一CMD22命令和第二CMD22命令,且所述存取命令包括CMD32命令、CMD33命令和CMD38命令,那么所述处理器响应于所述CMD38命令而在由所述第三地址指示的所述记忆体位置和由第四地址指示的另一记忆体位置之间执行擦除操作,并且其中所述第三地址是根据所述第一CMD22命令和所述CMD32命令而生成的,且所述第四地址是根据所述第二CMD22命令和所述CMD33命令而生成的。
[0233] 50.根据条款39所述的电子装置,其中如果所述地址扩展命令包括CMD22命令,且所述存取命令包括CMD44命令和CMD45命令,那么所述处理器执行从由所述第三地址指示的所述记忆体位置传送数据,并且其中所述第三地址是根据所述CMD22命令中包含的所述第一地址和所述CMD45命令中包含的所述第二地址而生成的。
[0234] 51.根据条款39所述的电子装置,其中如果所述电子装置确定存取可由第四地址指示的记忆体位置,那么所述处理器还经配置以进行以下操作:
[0235] 通过所述命令引脚,向所述SD卡传输包含所述第四地址的另一存取命令;以及[0236] 通过所述数据引脚,存取由所述第四地址指示的所述SD卡的所述记忆体位置。
[0237] 应注意,上述揭示内容是出于说明性目的,且不应被视为限制本发明。所属领域的技术人员将很容易观察到可以对装置和方法进行许多修改和更改,同时保持本发明的教示内容。因此,上述揭示内容应该被理解为仅受所附权利要求书的边界限制。
[0238] 附图翻译
[0239] 图1
[0240] Start 起始
[0241] Transmltter 传输器
[0242] Index 索引
[0243] Address 地址
[0244] Cycllc Redundancy Check
[0245] (CRC) 循环冗余检查(CRC)
[0246] End 结束
[0247] 6blts 6位
[0248] 32blts 32位
[0249] 7blts correctlon code 7位纠错码
[0250] Total length=48blts 总长度=48位
[0251] 图2
[0252] Memory Read 记忆体读取
[0253] 图3
[0254] Memory Wrlte 记忆体写入
[0255] 图4A
[0256] Start Address 起始地址
[0257] End Address 结束地址
[0258] Erase‑擦除
[0259] Erase Operstlon 擦除操作
[0260] 图4B
[0261] Data Fransfer 数据传送
[0262] 图5A
[0263] SD Memory
[0264] Card 安全数字记忆卡
[0265] 图5B
[0266] Pln# 引脚编号
[0267] SD Mode 安全数字模式
[0268] Name 名称
[0269] Type1 类型1
[0270] Description 描述
[0271] Card Detect/
[0272] Data Line[Bit 3] 卡检测/数据线[位3]
[0273] Command/Response 命令/响应
[0274] Supply voltage ground 供应电压接地
[0275] Supply voltage 供应电压
[0276] Clock 时钟
[0277] Supply voltage ground 供应电压接地
[0278] Data Llne[Blt 0] 数据线[位0]
[0279] Data Llne[Blt 1] 数据线[位1]
[0280] Data Llne[Blt 2] 数据线[位2]
[0281] 图6
[0282] H 主机
[0283] 132 处理器
[0284] 134 输入/输出接口
[0285] 110 闪存控制器
[0286] 116 缓冲记忆体
[0287] 142 编码器
[0288] 144 解码器
[0289] 118 接口逻辑
[0290] 114 控制逻辑
[0291] 112M 只读存储器
[0292] 112C 程序代码
[0293] 112 微处理器
[0294] 120 闪存模块
[0295] 图7
[0296] 702 确定存取操作
[0297] 704 确定64位地址
[0298] 706 将64位地址分隔成32位高位地址和32位低位地址
[0299] 708 传输包含高位地址的地址扩展命令
[0300] 710 传输包含低位地址的存取命令和指示存取操作的信息
[0301] 712 存取安全数字卡中由高位地址和低位地址的组合指示的记忆体位置[0302] 图8
[0303] 802 接收安全数字卡的容量的信息
[0304] 804 确定容量是否超过阈值
[0305] 806 确定存取操作
[0306] 808 确定64位地址
[0307] 810 将64位地址分隔成32位高位地址和32位低位地址
[0308] 812 传输包含高位地址的地址扩展命令
[0309] 814 传输包含低位地址的存取命令和指示存取操作的信息
[0310] 816 存取安全数字卡中由高位地址和低位地址的组合指示的记忆体位置[0311] 820 确定存取操作
[0312] 822 确定32位地址
[0313] 824 传输包含32位地址的存取命令和指示存取操作的信息
[0314] 826 存取安全数字卡中由32位地址指示的记忆体位置
[0315] Yes 是
[0316] No 否
[0317] 图9
[0318] 901 确定存取操作
[0319] 902 接收所插入的安全数字卡的容量的信息
[0320] 904 确定容量是否超过阈值
[0321] 906 确定存取的是64位地址还是32位地址
[0322] 908 将64位地址分隔成32位高位地址和32位低位地址
[0323] 910 传输包含高位地址的地址扩展命令
[0324] 912 传输包含低位地址的存取命令和指示存取操作的信息
[0325] 914 存取安全数字卡中由高位地址和低位地址的组合指示的记忆体位置[0326] 922 确定32位地址
[0327] 924 传输包含32位地址的存取命令和指示存取操作的信息
[0328] 926 存取安全数字卡中由32位地址指示的记忆体位置
[0329] Yes 是
[0330] No 否
[0331] 64‑bit| 64位
[0332] |32‑bit 32位
[0333] 图10
[0334] 1002 接收包含高位地址的地址扩展命令
[0335] 1004 接收包含低位地址的存取命令和指示存取操作的信息
[0336] 1006 存取安全数字卡中由高位地址和低位地址的组合指示的记忆体位置[0337] 图11
[0338] 1102 传输安全数字卡的容量的信息
[0339] 1104 接收到地址扩展命令?
[0340] 1106 接收包含低位地址的存取命令和指示存取操作的信息
[0341] 1108 存取安全数字卡中由高位地址和低位地址的组合指示的记忆体位置[0342] 1120 接收包含32位地址的存取命令和指示存取操作的信息
[0343] 1122 存取安全数字卡中由32位地址指示的记忆体位置
[0344] Yes 是
[0345] No 否
[0346] 图12
[0347] tran 传送
[0348] 其它
[0349] Got_Upper 高位=新 Got_Len 高位=0
[0350] 获得低位
[0351] 其它
[0352] 传送
[0353] other 其它
[0354] Got_Upper 高位=新
[0355] 传送 高位=0
[0356] 获得低位
[0357] 执行或拒绝
[0358] Got_Upper_E 高位=新
[0359] 获得Lower_S
[0360] 等待Address_E高位=0
[0361] tran 传送
[0362] 获得Lower_E
[0363] 获得操作