CN1766912A - 一种初始化存储卡的方法 - Google Patents
一种初始化存储卡的方法 Download PDFInfo
- Publication number
- CN1766912A CN1766912A CN 200510102842 CN200510102842A CN1766912A CN 1766912 A CN1766912 A CN 1766912A CN 200510102842 CN200510102842 CN 200510102842 CN 200510102842 A CN200510102842 A CN 200510102842A CN 1766912 A CN1766912 A CN 1766912A
- Authority
- CN
- China
- Prior art keywords
- storage card
- card
- information
- storage
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000005540 biological transmission Effects 0.000 claims description 15
- 238000013475 authorization Methods 0.000 claims description 3
- 101100232371 Hordeum vulgare IAT3 gene Proteins 0.000 description 4
- 101000711846 Homo sapiens Transcription factor SOX-9 Proteins 0.000 description 3
- 102100034204 Transcription factor SOX-9 Human genes 0.000 description 3
- 238000001514 detection method Methods 0.000 description 1
Images
Landscapes
- Power Sources (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种初始化存储卡的方法,该方法首先根据存储卡设置时钟频率,并设置延时周期,该方法进一步包括以下步骤:a.根据所选择的存储卡工作模式驱动相应的管脚,之后向存储卡发送初始化命令;b.获取存储卡的工作电压,并判断该工作电压是否满足标准,如果满足标准,则确定该存储卡所属的类别,之后获取该存储卡的身份信息及地址信息;c.将该存储卡设置在传输状态,之后获取该存储卡的状态信息,并根据该状态信息确定存储卡的具体类型。本发明方案提供了更为完整的初始化方案,不但可以确定存储卡所属的类别,而且可以确定存储卡的具体类型,并通过判断存储卡是否处于忙状态进一步保证了初始化的准确性。
Description
技术领域
本发明涉及存储卡技术领域,更确切地说是涉及一种初始化存储卡的方法。
背景技术
目前,用于手机、数码相机等电子设备的存储卡的品种越来越多,比较常见的是安全数字卡(SD Card)和多媒体卡(MMC),其中,SD Card包括标准SD卡和SDIO卡等。
不管是哪种存储卡,在工作之前都要进行初始化。对存储卡的初始化通常是由读卡器完成。读卡器对存储卡进行初始化时,首先需要根据存储卡的工作电压确定卡的类别,之后再获取存储卡的CID信息,如果存储卡返回了CID信息,则读卡器控制存储卡进入身份验证状态,即通过命令获取卡的地址信息(RCA),之后使卡进入stand by状态。
该初始化过程对于SD Card来说,读卡器需要发送命令CMD55及ACMD41来确定卡的工作电压范围,如果电压匹配,则读卡器可以确定该卡的类型为SD,并且读卡器与卡间的数据通路会被激活,否则,SD Card进入未激活状态。数据通路被激活后,读卡器会发送CMD2命令来获取SDCard的CID信息,SD Card返回了CID信息后,即进入身份验证状态,这时读卡器可以通过CMD3命令来获取卡的RCA,之后该SD Card即进入了stand by状态。其中,CMD55命令用于提示存储卡下一个命令是ACMD请求命令;ACMD41命令用于请求存储卡返回该卡的操作条件登记内容,且主要针对工作电压信息;CMD2命令用于请求存储卡返回CID信息;CMD3命令用于请求存储卡公布新的RCA信息。
对于MMC卡来说,虽然读卡器在其与MMC卡间的数据通路激活后,也是通过CMD2及CMD3命令来实现后续的初始化工作,但需要通过CMD1命令来实现最初的电压匹配处理。其中,CMD1命令与ACMD41命令类似,也用于获取操作条件登记内容,且主要是用于获取工作电压信息。
现有的上述初始化方案不够全面,虽然可以确定存储卡是SD卡或MMC卡,但却无法确定该卡具体是哪种类型的卡,比如,虽然可以确定为SD卡,但却无法确定是标准SD卡,还是SDIO卡或其它类型的SD卡。
另外,上述初始化方案只通过获取存储卡的RCA使存储卡处于stand by状态,而没有使存储卡处于进一步的状态,比如进入准备状态或数据传输状态,因此上述初始化处理后的存储卡可能无法直接进行数据传输。
发明内容
有鉴于此,本发明所要解决的主要问题在于提供一种初始化存储卡的方法,以完成对各种存储卡的初始化。
为解决以上问题,本发明提供了以下技术方案:
一种初始化存储卡的方法,根据存储卡设置时钟频率,并设置延时周期,该方法进一步包括以下步骤:
a.根据所选择的存储卡工作模式驱动相应的管脚,之后向存储卡发送初始化命令;
b.获取存储卡的工作电压,并判断该工作电压是否满足标准,如果满足标准,则确定该存储卡所属的类别,之后获取该存储卡的身份信息及地址信息;
c.将该存储卡设置在传输状态,之后获取该存储卡的状态信息,并根据该状态信息确定存储卡的具体类型。
所述根据存储卡设置时钟频率为:根据所支持的各种存储卡设置时钟频率。
所述设置延时周期为:设置74个时钟周期或以上,且不超过1毫秒。
所述步骤b中,在获取存储卡的身份信息及地址信息之前,进一步包括:判断该存储卡是否处于忙状态,如果是,则继续向存储卡发送获取存储卡工作电压的命令,直至卡的状态变为空闲状态;否则,执行获取身份信息及地址信息的步骤。
所述步骤c之后进一步包括:获取存储卡的专门的数字信息寄存器信息CSD和/或验证信息CID的步骤。
所述获取存储卡的CSD信息和/或CID信息的步骤为:通过向存储卡发送命令使存储卡处于准备状态;之后通过向存储卡发送命令获取存储卡的CSD信息,和/或获取存储卡的CID信息;然后通过向存储卡发送命令使存储卡回到传输状态。
所述步骤b中确定存储卡所属的类别为安全数字卡,该方法进一步包括:通过向存储卡发送命令选择用于传输数据的位宽。
该方法进一步包括:通过向存储卡发送命令关掉存储卡中用于检测的上拉电阻。
所述步骤a中,所述工作模式为:SD卡的SD模式或SPI模式,或者是MMC卡的MMC模式或SPI模式。
所述步骤b中,所述获取存储卡的工作电压为:通过向存储卡发送命令获取安全数字卡的电压信息,或获取多媒体卡的电压信息。
本发明方案通过将该存储卡设置为传输状态,并获取该存储卡的状态信息,根据该状态信息确定存储卡的具体类型,进一步完善了初始化处理,并通过设置时钟频率及延时周期,保证了存储卡初始化的准确性。
本发明方案通过在获取存储卡的身份信息及地址信息之前,判断存储卡是否处于忙状态,进一步保证了对存储卡初始化的准确性。
本发明方案还进一步提供了获取CSD信息和/或CID信息的步骤,进一步完善了初始化流程。
本发明方案还进一步提供了关闭存储卡中用于检测的上拉电阻的步骤,进一步完善了初始化流程,并且降低了数据传输的功耗。
附图说明
图1为本发明方案的实现流程图;
图2为本发明具体实施例中针对SD Card的完整实现流程图;
图3为本发明具体实施例中针对MMC卡的完整实现流程图。
具体实施方式
下面结合附图及具体实施例对本发明方案做进一步详细的说明。
本发明方案的实现流程如图1所示,对应以下步骤:
步骤101、根据存储卡设置时钟频率,并设置延时周期。
为兼容不同种类的存储卡,需要根据这些存储卡设置时钟频率。比如,为兼容SD Card和MMC卡,可以将时钟频率设置为400kHz。
在与卡通信之前,需要延迟一些周期以满足存储卡在初始化前其内部状态寄存器的初始化。比如,可以延迟74个时钟周期,当然,也可以根据需要延迟74个时钟周期以上。并且所设置的时钟周期不能超过1毫秒。
步骤102、根据所选择的存储卡工作模式驱动相应的管脚,之后向存储卡发送初始化命令。
如果用户使用的是MMC卡,则有MMC和SPI两种工作模式;如果用户使用的是SD Card,则该卡有SD和SPI两种工作模式。以SD Card为例,如果用户选择的工作模式是SPI模式,则需要驱动存储卡的CS片选管脚为低;如果用户选择的工作模式是SD模式,则需要驱动存储卡的检测管脚1,具体是将检测管脚1的上拉电阻寄存器置为高。
在向存储卡发送了初始化命令之后,该存储卡就会一直保持所选择的工作模式。该初始化命令可以使用CMD0。
步骤103、获取存储卡的工作电压,以验证该存储卡的工作电压是否满足标准,如果满足标准,则确定该存储卡所属的类别;如果不满足标准,则确认初始化失败,并结束本处理流程。
本步骤在获取存储卡的工作电压时,通常是向存储卡发送针对某种类型存储卡的电压获取命令,如果存储卡没有反馈信息,则可以认为该存储卡不是该类型的存储卡,可以再发送其它类型存储卡的电压获取命令。而如果该存储卡返回了电压信息,则可以根据所发送的电压获取命令的类型确定该存储卡的类型。
比如,由于SD Card与MMC卡较为常见,因此,可以先发送针对SD Card的电压获取命令,以获取该存储卡的工作电压。其中,针对SD Card的电压获取命令可以使用CMD55和ACMD41。如果没有收到存储卡的回应,则说明该存储卡为其它类型的卡,可以考虑该卡是否为MMC卡,所以向存储卡发送针对MMC的电压获取命令,其中,针对MMC卡的电压获取命令可以使用CMD1。当然,该存储卡还可能是其它类型,因此,如果存储卡不是这两种卡,则还可以发送与其它卡对应的命令,以获取存储卡的工作电压。
步骤104、获取该存储卡的身份信息及地址信息。
以SD Card和MMC卡为例,可以通过命令获取存储卡的身份信息及地址信息。其中,所获取的地址信息是可以改变的,并且该地址信息不为零。具体可以通过CMD2命令获取存储卡的身份信息,通过CMD3命令获取存储卡的地址信息。
步骤105、将该存储卡设置在传输状态。
具体可以通过CMD7命令将存储卡设置在传输状态。
步骤106、获取存储卡的状态信息,并根据该状态信息确定存储卡的具体类型。
上述步骤103虽然确定了存储卡的类别,但由于一类存储卡可能有多个具体类型,为便于传输,还需要确定具体类型。
以SD Card为例,本步骤中,可以通过CMD55和ACMD13命令得到存储卡的状态信息,之后可以根据存储卡的状态信息中的类型值SD_CARD_TYPE确定存储卡的具体类型。比如,如果存储卡的类型值SD_CARD_TYPE为0,则可以确定为标准的SD Card,否则,应为其它的SD Card,还需进行检测。
通过上述步骤实现了对存储卡的初始化。
实际上,上述处理过程中还可以进一步增加一些处理。
比如,虽然已设置了延迟周期以满足存储卡内部状态寄存器的初始化,但还有可能出现状态寄存器没有初始化完成的问题。因此,在上述步骤103确定存储卡所属的类别之后,并在执行步骤104之前,还可以进一步增加判断存储卡中状态寄存器是否初始化完毕的步骤。以SD Card为例,可以先判断状态寄存器的BUSY位是否为1,如果是,则说明卡处于忙状态,因此需要重发CMD55和ACMD41命令,直到存储卡的状态寄存器的BUSY位被清零。
还有,在通过步骤106确定了存储卡的具体类别之后,还可以进一步得到存储卡的专门的数据信息寄存器信息(CSD,Card Specific Data register)、验证信息(CID,Card Identification register)。比如,可以向存储卡发送命令,使存储卡处于准备状态,该命令具体可以是CMD7命令,再向存储卡发送命令得到CSD信息和CID信息,其中,获取CSD信息的命令具体可以是CMD9命令,获取CID信息的命令可以是CMD10命令,之后再通过命令将存储卡设置到传输状态,该命令具体可以是CMD7。其中,CMD7命令为选择/重选命令,CMD9命令为标准的CSD信息获取命令,CMD10命令为标准的CID信息获取命令。
为降低存储卡的功耗,还可以在初始化完成后,关掉存储卡中用于检测的上拉电阻。
另外,由于SD Card支持的传输数据宽度可以是4位,也可以是1位,因此还需要确定SD Card的数据宽度。而对于MMC卡来说,由于其所支持的传输数据宽度只有1位,因此不需要确定数据宽度。
实现上述针对SD Card的所有处理流程如图2所示,针对MMC卡的所有处理流程如图3所示。
以上所述仅为本发明方案的较佳实施例,并不用以限定本发明的保护范围。
Claims (10)
1、一种初始化存储卡的方法,其特征在于,根据存储卡设置时钟频率,并设置延时周期,该方法进一步包括以下步骤:
a.根据所选择的存储卡工作模式驱动相应的管脚,之后向存储卡发送初始化命令;
b.获取存储卡的工作电压,并判断该工作电压是否满足标准,如果满足标准,则确定该存储卡所属的类别,之后获取该存储卡的身份信息及地址信息;
c.将该存储卡设置在传输状态,之后获取该存储卡的状态信息,并根据该状态信息确定存储卡的具体类型。
2、根据权利要求1所述的方法,其特征在于,所述根据存储卡设置时钟频率为:根据所支持的各种存储卡设置时钟频率。
3、根据权利要求1所述的方法,其特征在于,所述设置延时周期为:设置74个时钟周期或以上,且不超过1毫秒。
4、根据权利要求1所述的方法,其特征在于所述步骤b中,在获取存储卡的身份信息及地址信息之前,进一步包括:判断该存储卡是否处于忙状态,如果是,则继续向存储卡发送获取存储卡工作电压的命令,直至卡的状态变为空闲状态;否则,执行获取身份信息及地址信息的步骤。
5、根据权利要求1所述的方法,其特征在于,所述步骤c之后进一步包括:获取存储卡的专门的数字信息寄存器信息CSD和/或验证信息CID的步骤。
6、根据权利要求5所述的方法,其特征在于,所述获取存储卡的CSD信息和/或CID信息的步骤为:通过向存储卡发送命令使存储卡处于准备状态;之后通过向存储卡发送命令获取存储卡的CSD信息,和/或获取存储卡的CID信息;然后通过向存储卡发送命令使存储卡回到传输状态。
7、根据权利要求1所述的方法,其特征在于,所述步骤b中确定存储卡所属的类别为安全数字卡,该方法进一步包括:通过向存储卡发送命令选择用于传输数据的位宽。
8、根据权利要求1所述的方法,其特征在于,该方法进一步包括:通过向存储卡发送命令关掉存储卡中用于检测的上拉电阻。
9、根据权利要求1所述的方法,其特征在于所述步骤a中,所述工作模式为:SD卡的SD模式或SPI模式,或者是MMC卡的MMC模式或SPI模式。
10、根据权利要求1所述的方法,其特征在于所述步骤b中,所述获取存储卡的工作电压为:通过向存储卡发送命令获取安全数字卡的电压信息,或获取多媒体卡的电压信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101028429A CN100373404C (zh) | 2005-09-13 | 2005-09-13 | 一种初始化存储卡的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101028429A CN100373404C (zh) | 2005-09-13 | 2005-09-13 | 一种初始化存储卡的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1766912A true CN1766912A (zh) | 2006-05-03 |
CN100373404C CN100373404C (zh) | 2008-03-05 |
Family
ID=36742785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101028429A Expired - Fee Related CN100373404C (zh) | 2005-09-13 | 2005-09-13 | 一种初始化存储卡的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100373404C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004268A (zh) * | 2010-09-01 | 2011-04-06 | 潘艳红 | 室内环境舒适度测试记录仪 |
CN102103887A (zh) * | 2009-12-21 | 2011-06-22 | 上海华虹集成电路有限责任公司 | Sd卡发布卡片上电状态位的方法及硬件电路 |
CN103631614A (zh) * | 2012-08-24 | 2014-03-12 | 上海华虹集成电路有限责任公司 | 处理sd卡上电初始化过程的方法 |
CN104699418A (zh) * | 2014-04-02 | 2015-06-10 | 杭州海康威视数字技术股份有限公司 | 对安全数码卡进行异常恢复的方法及设备 |
CN105590075A (zh) * | 2015-12-17 | 2016-05-18 | 惠州Tcl移动通信有限公司 | 快速访问sd卡的方法以及智能终端 |
CN111428526A (zh) * | 2018-12-24 | 2020-07-17 | 华为技术有限公司 | 一种功能卡的识别方法以及移动设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6553472B2 (en) * | 2001-01-12 | 2003-04-22 | Sun Microsystems, Inc. | Method for programming clock delays, command delays, read command parameter delays, and write command parameter delays of a memory controller in a high performance microprocessor |
JP4173297B2 (ja) * | 2001-09-13 | 2008-10-29 | 株式会社ルネサステクノロジ | メモリカード |
JP2004133881A (ja) * | 2002-08-14 | 2004-04-30 | Ricoh Co Ltd | カード型メモリのインターフェイス回路、その回路を搭載したasic、およびそのasicを搭載した画像形成装置 |
US7296097B2 (en) * | 2003-03-20 | 2007-11-13 | Renesas Technology Corp. | Memory card and initialization setting method thereof to avoid initializing operation failure in a memory card |
-
2005
- 2005-09-13 CN CNB2005101028429A patent/CN100373404C/zh not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103887A (zh) * | 2009-12-21 | 2011-06-22 | 上海华虹集成电路有限责任公司 | Sd卡发布卡片上电状态位的方法及硬件电路 |
CN102103887B (zh) * | 2009-12-21 | 2014-01-01 | 上海华虹集成电路有限责任公司 | Sd卡发布卡片上电状态位的方法及硬件电路 |
CN102004268A (zh) * | 2010-09-01 | 2011-04-06 | 潘艳红 | 室内环境舒适度测试记录仪 |
CN103631614A (zh) * | 2012-08-24 | 2014-03-12 | 上海华虹集成电路有限责任公司 | 处理sd卡上电初始化过程的方法 |
CN103631614B (zh) * | 2012-08-24 | 2017-12-19 | 上海华虹集成电路有限责任公司 | 处理sd卡上电初始化过程的方法 |
CN104699418A (zh) * | 2014-04-02 | 2015-06-10 | 杭州海康威视数字技术股份有限公司 | 对安全数码卡进行异常恢复的方法及设备 |
CN104699418B (zh) * | 2014-04-02 | 2018-02-16 | 杭州海康威视数字技术股份有限公司 | 对安全数码卡进行异常恢复的方法及设备 |
CN105590075A (zh) * | 2015-12-17 | 2016-05-18 | 惠州Tcl移动通信有限公司 | 快速访问sd卡的方法以及智能终端 |
CN111428526A (zh) * | 2018-12-24 | 2020-07-17 | 华为技术有限公司 | 一种功能卡的识别方法以及移动设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100373404C (zh) | 2008-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1264100C (zh) | 基于通用串行总线的pc闪存盘的体系结构 | |
US6880024B2 (en) | Control system for memory storage device having two different interfaces | |
US8452911B2 (en) | Synchronized maintenance operations in a multi-bank storage system | |
CN1766912A (zh) | 一种初始化存储卡的方法 | |
US8892813B2 (en) | Intelligent scheduling of background operations in memory | |
CN1795437A (zh) | 用于块内页面分组的方法及设备 | |
CN1418349A (zh) | 在智能卡和主站之间通信的方法 | |
CN1512507A (zh) | 外存储装置及其控制装置和数据发送与接收装置 | |
CN1932772A (zh) | 一种隔离总线故障的方法、装置与一种单板 | |
CN1262932C (zh) | 通过对插入卡的识别来建立数据传送模式的装置和方法 | |
US20130166893A1 (en) | Auxiliary card initialization routine | |
CN1237456C (zh) | 可切换模式的个人计算机卡和个人计算机卡输入输出控制装置 | |
CN103019969A (zh) | 闪存储存装置及其不良储存区域的判定方法 | |
CN1734430A (zh) | 文件的有效数据管理的方法和设备 | |
CN1584816A (zh) | 一种具有多重接口功能的存储卡及其传输模式选择方法 | |
CN1317846C (zh) | 实现内外网络物理隔离的方法及其装置 | |
CN1503149A (zh) | 串行总线磁盘扩充器和便携式存储装置 | |
CN101060014A (zh) | 一种探测闪存物理参数的方法及装置 | |
CN102486757A (zh) | 存储器储存装置及其存储器控制器与回应主机指令的方法 | |
CN1804780A (zh) | 兼容sd和mmc标准的自适应存储卡 | |
CN1317767A (zh) | 控制方法和电子装置 | |
US8627019B2 (en) | Method and device of controlling memory area of multi-port memory device in memory link architecture | |
CN1822030A (zh) | 一种多界面的自适应rsMMC存储卡 | |
CN1549147A (zh) | 具双接口的内存存储装置控制系统 | |
CN1252546A (zh) | 电脑装置及其由省电模式进入运作模式的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080305 Termination date: 20120913 |