CN100373404C - 一种初始化存储卡的方法 - Google Patents
一种初始化存储卡的方法 Download PDFInfo
- Publication number
- CN100373404C CN100373404C CNB2005101028429A CN200510102842A CN100373404C CN 100373404 C CN100373404 C CN 100373404C CN B2005101028429 A CNB2005101028429 A CN B2005101028429A CN 200510102842 A CN200510102842 A CN 200510102842A CN 100373404 C CN100373404 C CN 100373404C
- Authority
- CN
- China
- Prior art keywords
- storage card
- card
- order
- information
- storage
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000005540 biological transmission Effects 0.000 claims description 15
- 238000013475 authorization Methods 0.000 claims description 7
- 230000002093 peripheral effect Effects 0.000 claims description 5
- 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
Abstract
本发明公开了一种初始化存储卡的方法,设置可兼容所支持的各种存储卡的时钟频率,并设置不超过1毫秒的合理延时周期,并包括:a.根据所选择的存储卡工作模式驱动相应的管脚,之后向存储卡发送初始化命令;b.向存储卡发送针对特定类型存储卡的电压获取命令,根据存储卡对电压获取命令的反馈情况及电压获取命令的类型,确定该存储卡所属的类别,之后获取该存储卡的身份信息及地址信息;c.将该存储卡设置在传输状态,之后获取该存储卡的状态信息,并根据该状态信息确定存储卡的具体类型。本发明方案提供了更为完整的初始化方案,不但可确定存储卡所属类别,且可确定存储卡的具体类型,并通过判断存储卡的状态进一步保证了初始化的准确性。
Description
技术领域
本发明涉及存储卡技术领域,更确切地说是涉及一种初始化存储卡的方法。
背景技术
目前,用于手机、数码相机等电子设备的存储卡的品种越来越多,比较常见的是安全数字卡(SD Card)和多媒体卡(MMC),其中,SD卡包括标准SD卡和SDIO卡等。
不管是哪种存储卡,在工作之前都要进行初始化。对存储卡的初始化通常是由读卡器完成。读卡器对存储卡进行初始化时,首先需要根据存储卡的工作电压确定卡的类别,之后再获取存储卡的CID信息,如果存储卡返回了CID信息,则读卡器控制存储卡进入身份验证状态,即通过命令获取卡的地址信息(RCA),之后使卡进入待机(stand by)状态。
该初始化过程对于SD卡来说,读卡器需要发送命令CMD55及ACMD41来确定卡的工作电压范围,如果电压匹配,则读卡器可以确定该卡的类型为SD,并且读卡器与卡间的数据通路会被激活,否则,SD卡进入未激活状态。数据通路被激活后,读卡器会发送CMD2命令来获取SD卡的CID信息,SD卡返回了CID信息后,即进入身份验证状态,这时读卡器可以通过CMD3命令来获取卡的RCA,之后该SD卡即进入了待机状态。其中,CMD55命令用于提示存储卡下一个命令是ACMD请求命令;ACMD41命令用于请求存储卡返回该卡的操作条件登记内容,且主要针对工作电压信息;CMD2命令用于请求存储卡返回CID信息;CMD3命令用于请求存储卡公布新的RCA信息。
对于MMC卡来说,虽然读卡器在其与MMC卡间的数据通路激活后,也是通过CMD2及CMD3命令来实现后续的初始化工作,但需要通过CMD1命令来实现最初的电压匹配处理。其中,CMD1命令与ACMD41命令类似,也用于获取操作条件登记内容,且主要是用于获取工作电压信息。
现有的上述初始化方案不够全面,虽然可以确定存储卡是SD卡或MMC卡,但却无法确定该卡具体是哪种类型的卡,比如,虽然可以确定为SD卡,但却无法确定是标准SD卡,还是SDIO卡或其它类型的SD卡。
另外,上述初始化方案只通过获取存储卡的RCA使存储卡处于待机状态,而没有使存储卡处于进一步的状态,比如进入准备状态或数据传输状态,因此上述初始化处理后的存储卡可能无法直接进行数据传输。
发明内容
有鉴于此,本发明所要解决的主要问题在于提供一种初始化存储卡的方法,以完成对各种存储卡的初始化。
为解决以上问题,本发明提供了以下技术方案:
一种初始化存储卡的方法,设置可兼容所支持的各种存储卡的时钟频率,并设置不超过1毫秒的合理延时周期,该方法进一步包括以下步骤:
a.根据所选择的存储卡工作模式驱动相应的管脚,之后向存储卡发送初始化命令;
b.向存储卡发送针对特定类型存储卡的电压获取命令,根据存储卡对电压获取命令的反馈情况及电压获取命令的类型,确定该存储卡所属的类别,之后获取该存储卡的身份信息及地址信息;
c.将该存储卡设置在传输状态,之后获取该存储卡的状态信息,并根据该状态信息确定存储卡的具体类型。
所述设置可兼容所支持的各种存储卡的时钟频率为:根据所支持的各种存储卡的时钟频率范围,设置可兼容所述各种存储卡的时钟频率。
所述设置延时周期为:设置时长为74个时钟周期或以上,且不超过1毫秒的延时周期。
所述步骤b中,在获取存储卡的身份信息及地址信息之前,进一步包括:判断该存储卡是否处于忙状态,如果是,则继续向存储卡发送获取存储卡工作电压的命令,直至卡的状态变为空闲状态;否则,执行获取身份信息及地址信息的步骤。
所述步骤c之后进一步包括:获取存储卡的专门的数字信息寄存器信息和/或验证信息的步骤。
所述获取存储卡的专门的数字信息寄存器信息和/或验证信息的步骤为:通过向存储卡发送命令使存储卡处于准备状态;之后通过向存储卡发送命令获取存储卡的专门的数字信息寄存器信息,和/或获取存储卡的验证信息;然后通过向存储卡发送命令使存储卡回到传输状态。
所述步骤b中确定存储卡所属的类别为安全数字卡,该方法进一步包括:通过向存储卡发送命令选择用于传输数据的位宽。
该方法进一步包括:初始化完成后,关掉存储卡中用于检测的上拉电阻。
所述步骤a中,所述工作模式为:安全数字卡的SD模式或串行外围接口模式,或者是多媒体卡的MMC模式或串行外围接口模式。
步骤b中所述向存储卡发送针对特定类型存储卡的电压获取命令,根据存储卡对电压获取命令的反馈情况及电压获取命令的类型,确定该存储卡所属的类别为:向存储卡发送针对一特定类型存储卡的电压获取命令,如果没有反馈则发送其它特定类型存储卡的电压获取命令直至有反馈,根据与所述反馈对应的电压获取命令的类型,确定该存储卡所属的类别。
本发明方案通过将该存储卡设置为传输状态,并获取该存储卡的状态信息,根据该状态信息确定存储卡的具体类型,进一步完善了初始化处理,并通过设置时钟频率及延时周期,保证了存储卡初始化的准确性。
本发明方案通过在获取存储卡的身份信息及地址信息之前,判断存储卡是否处于忙状态,进一步保证了对存储卡初始化的准确性。
本发明方案还进一步提供了获取CSD信息和/或CID信息的步骤,进一步完善了初始化流程。
本发明方案还进一步提供了关闭存储卡中用于检测的上拉电阻的步骤,进一步完善了初始化流程,并且降低了数据传输的功耗。
附图说明
图1为本发明方案的实现流程图;
图2为本发明具体实施例中针对SD卡的完整实现流程图;
图3为本发明具体实施例中针对MMC卡的完整实现流程图。
具体实施方式
下面结合附图及具体实施例对本发明方案做进一步详细的说明。
本发明方案的实现流程如图1所示,对应以下步骤:
步骤101、根据存储卡设置时钟频率,并设置延时周期。
为兼容不同种类的存储卡,需要根据这些存储卡设置时钟频率。比如,为兼容SD卡和MMC卡,可以将时钟频率设置为400kHz。
在与卡通信之前,需要延迟一些周期以满足存储卡在初始化前其内部状态寄存器的初始化。比如,可以延迟74个时钟周期,当然,也可以根据需要延迟74个时钟周期以上。并且所设置的时钟周期不能超过1毫秒。
步骤102、根据所选择的存储卡工作模式驱动相应的管脚,之后向存储卡发送初始化命令。
如果用户使用的是MMC卡,则有MMC和SPI两种工作模式;如果用户使用的是SD卡,则该卡有SD和串行外围接口(SPI)两种工作模式。以SD卡为例,如果用户选择的工作模式是SPI模式,则需要驱动存储卡的CS片选管脚为低;如果用户选择的工作模式是SD模式,则需要驱动存储卡的检测管脚1,具体是将检测管脚1的上拉电阻寄存器置为高。
在向存储卡发送了初始化命令之后,该存储卡就会一直保持所选择的工作模式。该初始化命令可以使用CMD0。
步骤103a、获取存储卡的工作电压,以验证该存储卡的工作电压是否满足标准,如果满足标准,则执行步骤103b,确定该存储卡所属的类别,之后执行步骤104;如果不满足标准,则执行步骤103c,确认初始化失败,并结束本处理流程。
本步骤在获取存储卡的工作电压时,通常是向存储卡发送针对某种类型存储卡的电压获取命令,如果存储卡没有反馈信息,则可以认为该存储卡不是该类型的存储卡,可以再发送其它类型存储卡的电压获取命令。而如果该存储卡返回了电压信息,则可以根据所发送的电压获取命令的类型确定该存储卡的类型。
比如,由于SD卡与MMC卡较为常见,因此,可以先发送针对SD卡的电压获取命令,以获取该存储卡的工作电压。其中,针对SD卡的电压获取命令可以使用CMD55和ACMD41。如果没有收到存储卡的回应,则说明该存储卡为其它类型的卡,可以考虑该卡是否为MMC卡,所以向存储卡发送针对MMC的电压获取命令,其中,针对MMC卡的电压获取命令可以使用CMD1。当然,该存储卡还可能是其它类型,因此,如果存储卡不是这两种卡,则还可以发送与其它卡对应的命令,以获取存储卡的工作电压。
步骤104、获取该存储卡的身份信息及地址信息。
以SD卡和MMC卡为例,可以通过命令获取存储卡的身份信息及地址信息。其中,所获取的地址信息是可以改变的,并且该地址信息不为零。具体可以通过CMD2命令获取存储卡的身份信息,通过CMD3命令获取存储卡的地址信息。
步骤105、将该存储卡设置在传输状态。
具体可以通过CMD7命令将存储卡设置在传输状态。
步骤106、获取存储卡的状态信息,并根据该状态信息确定存储卡的具体类型。
上述步骤103虽然确定了存储卡的类别,但由于一类存储卡可能有多个具体类型,为便于传输,还需要确定具体类型。
以SD卡为例,本步骤中,可以通过CMD55和ACMD13命令得到存储卡的状态信息,之后可以根据存储卡的状态信息中的类型值SD CARD TYPE确定存储卡的具体类型。比如,如果存储卡的类型值SDCARD TYPE为0,则可以确定为标准的SD卡,否则,应为其它的SD卡,还需进行检测。
通过上述步骤实现了对存储卡的初始化。
实际上,上述处理过程中还可以进一步增加一些处理。
比如,虽然已设置了延迟周期以满足存储卡内部状态寄存器的初始化,但还有可能出现状态寄存器没有初始化完成的问题。因此,在上述步骤103确定存储卡所属的类别之后,并在执行步骤104之前,还可以进一步增加判断存储卡中状态寄存器是否初始化完毕的步骤。以SD卡为例,可以先判断状态寄存器的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卡支持的传输数据宽度可以是4位,也可以是1位,因此还需要确定SD卡的数据宽度。而对于MMC卡来说,由于其所支持的传输数据宽度只有1位,因此不需要确定数据宽度。
实现上述针对SD卡的所有处理流程如图2所示,针对MMC卡的所有处理流程如图3所示。
以上所述仅为本发明方案的较佳实施例,并不用以限定本发明的保护范围。
Claims (10)
1.一种初始化存储卡的方法,其特征在于,设置可兼容所支持的各种存储卡的时钟频率,并设置不超过1毫秒的合理延时周期,该方法进一步包括以下步骤:
a.根据所选择的存储卡工作模式驱动相应的管脚,之后向存储卡发送初始化命令;
b.向存储卡发送针对特定类型存储卡的电压获取命令,根据存储卡对电压获取命令的反馈情况及电压获取命令的类型,确定该存储卡所属的类别,之后获取该存储卡的身份信息及地址信息;
c.将该存储卡设置在传输状态,之后获取该存储卡的状态信息,并根据该状态信息确定存储卡的具体类型。
2.根据权利要求1所述的方法,其特征在于,所述设置可兼容所支持的各种存储卡的时钟频率为:根据所支持的各种存储卡的时钟频率范围,设置可兼容所述各种存储卡的时钟频率。
3.根据权利要求1所述的方法,其特征在于,所述设置延时周期为:设置时长为74个时钟周期或以上,且不超过1毫秒的延时周期。
4.根据权利要求1所述的方法,其特征在于所述步骤b中,在获取存储卡的身份信息及地址信息之前,进一步包括:判断该存储卡是否处于忙状态,如果是,则继续向存储卡发送获取存储卡工作电压的命令,直至卡的状态变为空闲状态;否则,执行获取身份信息及地址信息的步骤。
5.根据权利要求1所述的方法,其特征在于,所述步骤c之后进一步包括:获取存储卡的专门的数字信息寄存器信息和/或验证信息的步骤。
6.根据权利要求5所述的方法,其特征在于,所述获取存储卡的专门的数字信息寄存器信息和/或验证信息的步骤为:通过向存储卡发送命令使存储卡处于准备状态;之后通过向存储卡发送命令获取存储卡的专门的数字信息寄存器信息,和/或获取存储卡的验证信息;然后通过向存储卡发送命令使存储卡回到传输状态。
7.根据权利要求1所述的方法,其特征在于,所述步骤b中确定存储卡所属的类别为安全数字卡,该方法进一步包括:通过向存储卡发送命令选择用于传输数据的位宽。
8.根据权利要求1所述的方法,其特征在于,该方法进一步包括:初始化完成后,关掉存储卡中用于检测的上拉电阻。
9.根据权利要求1所述的方法,其特征在于所述步骤a中,所述工作模式为:安全数字卡的SD模式或串行外围接口模式,或者是多媒体卡的MMC模式或串行外围接口模式。
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 CN1766912A (zh) | 2006-05-03 |
CN100373404C true 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) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103887B (zh) * | 2009-12-21 | 2014-01-01 | 上海华虹集成电路有限责任公司 | Sd卡发布卡片上电状态位的方法及硬件电路 |
CN102004268A (zh) * | 2010-09-01 | 2011-04-06 | 潘艳红 | 室内环境舒适度测试记录仪 |
CN103631614B (zh) * | 2012-08-24 | 2017-12-19 | 上海华虹集成电路有限责任公司 | 处理sd卡上电初始化过程的方法 |
CN104699418B (zh) * | 2014-04-02 | 2018-02-16 | 杭州海康威视数字技术股份有限公司 | 对安全数码卡进行异常恢复的方法及设备 |
CN105590075A (zh) * | 2015-12-17 | 2016-05-18 | 惠州Tcl移动通信有限公司 | 快速访问sd卡的方法以及智能终端 |
CN111428526B (zh) * | 2018-12-24 | 2022-05-31 | 华为技术有限公司 | 一种功能卡的识别方法以及移动设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020138686A1 (en) * | 2001-01-12 | 2002-09-26 | Liuxi Yang | Method for programming memory controller in a high performance microprocessor |
US20040107327A1 (en) * | 2002-08-14 | 2004-06-03 | Toshio Takahashi | Method and circuit for interfacing card memory, asic embedded with the interface circuit, and image forming apparatus equipped with the asic |
WO2004084127A1 (ja) * | 2003-03-20 | 2004-09-30 | Renesas Technology Corp. | メモリカードおよびその初期化設定方法 |
CN1554069A (zh) * | 2001-09-13 | 2004-12-08 | ��ʽ���������Ƽ� | 存储卡及其初始化设置方法 |
-
2005
- 2005-09-13 CN CNB2005101028429A patent/CN100373404C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020138686A1 (en) * | 2001-01-12 | 2002-09-26 | Liuxi Yang | Method for programming memory controller in a high performance microprocessor |
CN1554069A (zh) * | 2001-09-13 | 2004-12-08 | ��ʽ���������Ƽ� | 存储卡及其初始化设置方法 |
US20040107327A1 (en) * | 2002-08-14 | 2004-06-03 | Toshio Takahashi | Method and circuit for interfacing card memory, asic embedded with the interface circuit, and image forming apparatus equipped with the asic |
WO2004084127A1 (ja) * | 2003-03-20 | 2004-09-30 | Renesas Technology Corp. | メモリカードおよびその初期化設定方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1766912A (zh) | 2006-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100833176B1 (ko) | 착탈가능 전자회로 카드들의 모듈들간의 효율적 접속 | |
RU2445676C2 (ru) | Способ осуществления связи с многофункциональной картой памяти | |
US7350009B2 (en) | Electronic device with card interface | |
CN100373404C (zh) | 一种初始化存储卡的方法 | |
US20040255064A1 (en) | Control system for memory storage device having two different interfaces | |
EP1387284A3 (en) | Computer system with nand flash memory for booting and data storage | |
EP2377291B1 (en) | Portable mobile communication device and method of controlling near field communication | |
JP2006139556A (ja) | メモリカード及びそのカードコントローラ | |
US8924626B2 (en) | Phased NAND power-on reset | |
CN101361084B (zh) | 符合多个标准的存储卡、控制器以及切换控制方法 | |
KR100440972B1 (ko) | 카드 삽입 인식에 의한 데이터 전송 상태 자동 설정 장치및 방법 | |
EP1892645B1 (en) | Smart card | |
CN106093659A (zh) | 智能卡断电保护测试装置、系统及方法 | |
US20040059860A1 (en) | Double-interface adaptor for memory cards | |
CN103631534A (zh) | 数据存储系统以及其管理方法 | |
US20120072643A1 (en) | Method of managing data in a portable electronic device having a plurality of controllers | |
KR20080018868A (ko) | 메모리 카드 및 메모리 카드 제어 전환 방법 | |
US20030126483A1 (en) | Computer starter and starting method for utilizing smart card interface | |
WO2019042260A1 (zh) | 上电控制方法、ap芯片及移动终端 | |
JP4784138B2 (ja) | Icカード、および、icカード用プログラム | |
TWM591654U (zh) | 讀卡機及資料讀寫系統 | |
CN111428526B (zh) | 一种功能卡的识别方法以及移动设备 | |
EP3236393A1 (en) | Control of an external interface on a card | |
US20030041187A1 (en) | Method and apparatus for controlling card device | |
JP2005062999A (ja) | Icカードリーダの通信方法およびこれを利用したicカードリーダならびにその通信プログラム |
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 |