CN102142093A - 一种存储卡操作方法及装置 - Google Patents
一种存储卡操作方法及装置 Download PDFInfo
- Publication number
- CN102142093A CN102142093A CN2011100726607A CN201110072660A CN102142093A CN 102142093 A CN102142093 A CN 102142093A CN 2011100726607 A CN2011100726607 A CN 2011100726607A CN 201110072660 A CN201110072660 A CN 201110072660A CN 102142093 A CN102142093 A CN 102142093A
- Authority
- CN
- China
- Prior art keywords
- storage card
- initialization
- read
- described storage
- clock
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种存储卡操作方法及装置,涉及通信技术,在初始化触发条件满足时,进行时钟计时,并在时钟计时达到第一设定值后,进行复位和初始化,使得存储卡进入SPI模式,再通过SPI模式对存储卡进行读写操作。从而脱离SPI控制器对存储卡进行SPI模式的设置,并在SPI模式下对存储卡进行读写操作,方便了用户的使用。
Description
技术领域
本发明涉及通信技术,尤其涉及一种存储卡操作方法及装置。
背景技术
SPI总线是一种同步串行外设接口,它可以使基带芯片与各种***设备以串行方式进行通信以交换信息。它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,双工传输需要至少4根线,半双工传输需要至少3根。SPI设备通常具有SDI(数据输入),SDO(数据输出),SCLK(时钟),CS(片选)4根线,其中,SDO线用于主设备数据输出,从设备数据输入,SDI线用于主设备数据输入,从设备数据输出,SCLK线为时钟信号,由主设备产生,CS线为从设备使能信号,由主设备控制
其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对该芯片的操作才有效。这就使得在同一总线上连接多个SPI设备成为可能。
microSD(一种移动终端扩展卡)卡、TF(T-Flash)卡等存储卡由于其价格低廉、存储容量大、使用方便、通用性与安全性强等优点,在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡,在诸如MP3、数码相机、手机等设备上也都采用microSD卡作为其存储设备。
以microSD卡为例,其读写模式分两种。一种是利用SD总线来进行数据传输,这里称为SD模式;另外一种是利用SPI总线来进行数据传输,这里称之为SPI模式。目前很多存储卡都具有SPI模式,SPI模式对硬件要求较低,很多主芯片内部自带SPI控制器,通过带有SPI控制器的单片机能够实现SPI总线访问存储卡,但是对于没有SPI控制器的芯片来讲,很难对存储卡进行操作。这就限制了使用比较低端的芯片的终端对存储卡的使用
发明内容
本发明实施例提供一种存储卡操作方法及装置,以实现不使用SPI控制器通过SPI模式操作存储卡。
一种存储卡操作方法,包括:
在初始化触发条件满足时,进行时钟计时;
在时钟计时达到第一设定值后,向所述存储卡发送复位命令;
在接收到所述存储卡返回的复位成功响应后,向所述存储卡发送初始化命令;
接收到所述存储卡返回的初始化成功响应后,对所述存储卡进行读写操作。
一种存储卡操作装置,包括:
计时单元,用于在初始化触发条件满足时,进行时钟计时;
复位单元,用于在时钟计时达到第一设定值后,向所述存储卡发送复位命令;
初始化单元,用于在接收到所述存储卡返回的复位成功响应后,向所述存储卡发送初始化命令;
读写单元,用于接收到所述存储卡返回的初始化成功响应后,对所述存储卡进行读写操作。
本发明实施例提供一种存储卡操作方法及装置,在初始化触发条件满足时,进行时钟计时,并在时钟计时达到第一设定值后,进行复位和初始化,使得存储卡进入SPI模式,再通过SPI模式对存储卡进行读写操作。从而脱离SPI控制器对存储卡进行SPI模式的设置,并在SPI模式下对存储卡进行读写操作,方便了用户的使用。
附图说明
图1为本发明实施例中存储卡操作方法流程图;
图2为本发明实施例中存储卡***电路结构示意图;
图3为本发明实施例中命令结构示意图;
图4为本发明实施例中存储卡操作装置结构示意图。
具体实施方式
本发明实施例提供一种存储卡操作方法及装置,在初始化触发条件满足时,进行时钟计时,并在时钟计时达到第一设定值后,进行复位和初始化,使得存储卡进入SPI模式,再通过SPI模式对存储卡进行读写操作。从而脱离SPI控制器对存储卡进行SPI模式的设置,并在SPI模式下对存储卡进行读写操作,方便了用户的使用。
如图1所示,本发明实施例提供的存储卡操作方法包括:
步骤S101、在初始化触发条件满足时,进行时钟计时;
步骤S102、在时钟计时达到第一设定值后,向存储卡发送复位命令;
步骤S103、在接收到存储卡返回的复位成功响应后,向存储卡发送初始化命令;
步骤S104、接收到存储卡返回的初始化成功响应后,对存储卡进行读写操作。
通常情况下,存储卡在***终端后,都是自动进入默认的模式,只有在进行复位和初始化后,才能够调整至SPI模式。例如,microSD卡在上电后,也是默认进入SD模式,其进入SPI模式的必要条件是,上电后在片选信号有效的情况下接收到复位命令,复位成功后,再接收到初始化命令,初始化成功后,即成功进入了SPI模式,可以在SPI模式下进行读写操作。
通常,在发送该复位命令之前,必须等待设定的时钟信号以使得终端中的芯片和microSD卡的时钟信号同步起来。
不同的存储卡复位和初始化所需要的时间不同,如果复位失败,可以多次写入复位命令直至成功,当接收到存储卡返回的复位成功响应后,即表明复位成功;并且通常情况下,复位成功后,存储卡下一条接收的命令只能是初始化命令,对其他任何命令都不会有响应;同样,如果初始化失败,也可以多次写入初始化命令直至成功。
在复位成功或初始化成功时,大部分存储卡是向终端返回单字节响应0作为复位成功响应或初始化成功响应,终端若在发送复位命令后,设定的时间内没有接收到复位成功响应,则可以重新发送复位命令,若在发送初始化命令后,设定的时间内没有接收到初始化成功响应,则可以重新发送初始化命令。
在步骤S101中,初始化触发条件可以是接收到用户发送的初始化存储卡命令,即***存储卡后,由用户启动初始化模块,对存储卡进行初始化;或者,进一步的,为了便于用户的使用,可以启用存储卡上的热插拔检测管脚,此时初始化触发条件可以是通过存储卡的热插拔检测管脚信号变化确定有存储卡接入,当存储卡的热插拔检测管脚信号变化时,即说明存储卡的***状态发生了变化,再根据具体的管脚信号,确定是否是存储卡被***,如果确定有存储卡***,则可以直接触发终端对存储卡进行初始化。
以microSD卡为例,芯片与microSD卡***电路的连接主要通过4个通用端口,分别为片选引脚、时钟引脚、数据输入引脚以及输入输出引脚,此外,芯片还可以向***电路提供2.8V的电源,芯片主要通过对microSD卡热插拔检测引脚进行电平中断的方式来检测microSD卡是否存在,从而实现microSD卡的热插拔功能。
一种常用的***电路如图2所示,在各引脚上连接有上拉电阻,从而减小外界的干扰,其中,上拉电阻的阻值在47K-100K欧姆之间较佳。microSD卡槽各引脚定义如表1所示。
表1、MICROSD卡槽各引脚定义表
1 | DATA2 | 数据位2 |
2 | CS/DATA3 | 片选/数据位3 |
3 | CMD/DI | 命令/数据输入 |
4 | VCC | 供电电压 |
5 | CLK | 时钟 |
6 | GND | 地 |
7 | DAT0/DO | 数据位0/数据输出 |
8 | DAT1 | 数据位1 |
9,10 | NC | 热插拔检测 |
在SPI通信协议中,是基于命令和数据流对存储卡进行操作的,这些命令和数据流以起始位开始,以停止位结束。SPI通道是面向字节的。每个命令或数据块都是由多个8位字节构成,且每个字节与CS片选信号对齐,例如:此长度是8时钟周期的倍数。所有的通信都由主机控制,主机通过拉低CS来启动每个总线事务。
在SPI模式下,由主机到microSD卡的命令格式是固定的6个字节,如图3所示,当命令写入microSD卡后,可以从microSD卡中读取对这个命令的响应。由于数据传输是由主机产生的串行时钟驱动的,因此主机必须不停地读取数据直到接收到正确的响应。命令响应时间(NCR)是0到8个字节,CS信号在传输过程中通常保持低电平。
在进行步骤S101、S102和S103时,时钟信号频率通常需要较低,以使得终端和存储卡时钟较好的同步,提高复位和初始化的成功率,通常情况下,时钟信号频率控制在400KHz以下较佳,所以在步骤S101中,在初始化触发条件满足时,最好调整时钟频率至400K以下,从而防止由于当前时钟频率过高导致初始化失败。在初始化成功后,就可以适当的调高时钟信号频率,以提高读写效率,通常,在对存储卡进行读写操作时的时钟信号频率控制在400KHz-25MHz。
在数据读写过程,也可以通过相应的命令来触发,在命令响应后会接收或发送一个或多个数据块,数据块以数据包的方式传输。数据包由Token,Data Block和CRC组成。
当接收到单块读操作命令后,microSD卡初始化一个读操作并向终端发送其读取的数据块。主机检测到正确的数据Token后,开始接收后面的数据及两个字节的CRC(校验)。如果读取过程中产生异常,microSD卡将返回错误Token而不是数据包。
而如果接收到多块读命令,则顺序地读取给定地址的多个块,如果之前没有指定所要读取块的个数,读操作将一直持续,直到收到停止命令。
当接收到写命令后,microSD卡先向终端对写命令作出响应。然后终端先发一个字节标识符,随后发送数据包。发送完数据包后,存储卡返回数据响应。终端通过该数据响应来确定本次写操作是否成功,大多数存储卡的写入块大小是固定的512字节。
为了进一步提高复位和初始化以及读写数据的成功率,发送复位命令、发送初始化命令以及读写数据,均在时钟下降沿进行,同时,存储卡返回复位成功响应、初始化成功响应也在时钟下降沿进行。
同时,为了使得时钟对齐,提高读写成功率,在对存储卡进行读写操作时,可以在对每进行一个字节的读写操作前,进行时钟计时,当时钟计时达到第二设定值时,进行一个字节的读写操作。通常计时的第二设定值设定为2-3个时钟。
相应的,本发明实施例还提供一种存储卡操作装置,如图4所示,该装置包括:
计时单元401,用于在初始化触发条件满足时,进行时钟计时;
复位单元402,用于在时钟计时达到第一设定值后,向存储卡发送复位命令;
初始化单元403,用于在接收到存储卡返回的复位成功响应后,向存储卡发送初始化命令;
读写单元404,用于接收到存储卡返回的初始化成功响应后,对存储卡进行读写操作。
初始化触发条件可以是接收到用户发送的初始化存储卡命令,即***存储卡后,由用户启动初始化模块,对存储卡进行初始化;或者,进一步的,为了便于用户的使用,可以启用存储卡上的热插拔检测管脚,此时初始化触发条件可以是通过存储卡的热插拔检测管脚信号变化确定有存储卡接入,当存储卡的热插拔检测管脚信号变化时,即说明存储卡的***状态发生了变化,再根据具体的管脚信号,确定是否是存储卡被***,如果确定有存储卡***,则可以直接触发终端对存储卡进行初始化。
因此,计时单元401具体用于:
在接收到用户发送的初始化存储卡命令时,进行时钟计时;或者
在通过存储卡的热插拔检测管脚信号变化确定有存储卡接入,进行时钟计时。
为保证终端和存储卡的时钟对齐,提高读写成功率,读写单元404还用于:
每进行一个字节的读写操作前,进行时钟计时,当时钟计时达到第二设定值时,进行一个字节的读写操作。
为了进一步提高读写效率,读写单元404还用于:
在对存储卡进行读写操作前,调高时钟信号。
本发明实施例提供一种存储卡操作方法及装置,在初始化触发条件满足时,进行时钟计时,并在时钟计时达到第一设定值后,进行复位和初始化,使得存储卡进入SPI模式,再通过SPI模式对存储卡进行读写操作。从而脱离SPI控制器对存储卡进行SPI模式的设置,并在SPI模式下对存储卡进行读写操作,方便了用户的使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种存储卡操作方法,其特征在于,包括:
在初始化触发条件满足时,进行时钟计时;
在时钟计时达到第一设定值后,向所述存储卡发送复位命令;
在接收到所述存储卡返回的复位成功响应后,向所述存储卡发送初始化命令;
接收到所述存储卡返回的初始化成功响应后,对所述存储卡进行读写操作。
2.如权利要求1所述的方法,其特征在于,所述在初始化触发条件满足时,具体为:
接收到用户发送的初始化存储卡命令;或者
通过所述存储卡的热插拔检测管脚信号变化确定有存储卡接入。
3.如权利要求1所述的方法,其特征在于,所述发送复位命令、发送初始化命令以及读写数据,均在时钟下降沿进行;
所述存储卡返回复位成功响应、初始化成功响应均在时钟下降沿进行。
4.如权利要求1所述的方法,其特征在于,所述对所述存储卡进行读写操作,具体包括:
每进行一个字节的读写操作前,进行时钟计时,当时钟计时达到第二设定值时,进行一个字节的读写操作。
5.如权利要求1所述的方法,其特征在于,所述在初始化触发条件满足时,将时钟频率调整至400K以下。
6.如权利要求1或5所述的方法,其特征在于,在接收到所述存储卡返回的复位成功响应后,还包括:调高所述时钟信号。
7.一种存储卡操作装置,其特征在于,包括:
计时单元,用于在初始化触发条件满足时,进行时钟计时;
复位单元,用于在时钟计时达到第一设定值后,向所述存储卡发送复位命令;
初始化单元,用于在接收到所述存储卡返回的复位成功响应后,向所述存储卡发送初始化命令;
读写单元,用于接收到所述存储卡返回的初始化成功响应后,对所述存储卡进行读写操作。
8.如权利要求7所述的装置,其特征在于,所述计时单元具体用于:
在接收到用户发送的初始化存储卡命令时,进行时钟计时;或者
在通过所述存储卡的热插拔检测管脚信号变化确定有存储卡接入,进行时钟计时。
9.如权利要求7所述的装置,其特征在于,所述读写单元还用于:
每进行一个字节的读写操作前,进行时钟计时,当时钟计时达到第二设定值时,进行一个字节的读写操作。
10.如权利要求7所述的装置,其特征在于,读写单元还用于:
在接收到所述存储卡返回的复位成功响应后,调高所述时钟信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100726607A CN102142093A (zh) | 2011-03-24 | 2011-03-24 | 一种存储卡操作方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100726607A CN102142093A (zh) | 2011-03-24 | 2011-03-24 | 一种存储卡操作方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102142093A true CN102142093A (zh) | 2011-08-03 |
Family
ID=44409590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100726607A Pending CN102142093A (zh) | 2011-03-24 | 2011-03-24 | 一种存储卡操作方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102142093A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631740A (zh) * | 2012-08-24 | 2014-03-12 | 上海华虹集成电路有限责任公司 | Sd卡在spi模式下传输自适应字节对齐的方法及电路 |
CN104699418A (zh) * | 2014-04-02 | 2015-06-10 | 杭州海康威视数字技术股份有限公司 | 对安全数码卡进行异常恢复的方法及设备 |
CN104778146A (zh) * | 2015-04-17 | 2015-07-15 | 中国科学院半导体研究所 | 基于spi模式的可热插拔sd卡数据记录仪及相应的方法 |
CN105721650A (zh) * | 2016-01-27 | 2016-06-29 | 努比亚技术有限公司 | 一种实现手机卡识别方法及终端 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006079289A (ja) * | 2004-09-08 | 2006-03-23 | Sony Corp | 通信システム |
JP4160808B2 (ja) * | 2002-09-18 | 2008-10-08 | 高圧ガス工業株式会社 | メモリのリード/ライト制御回路、無接点メモリカード、リード/ライト装置及び無接点メモリカードのリード/ライトシステム |
CN101640946A (zh) * | 2008-08-01 | 2010-02-03 | 宁波波导软件有限公司 | 一种手机外接存储卡的方法 |
CN101789803A (zh) * | 2009-11-03 | 2010-07-28 | 沈阳晨讯希姆通科技有限公司 | 一种双存储卡手机的设计方法 |
CN201628975U (zh) * | 2009-11-30 | 2010-11-10 | 浪潮齐鲁软件产业有限公司 | 一种带spi接口的iic存储卡读写装置 |
CN101986329A (zh) * | 2010-09-16 | 2011-03-16 | 建荣集成电路科技(珠海)有限公司 | 一种读卡装置自适应数据线通信的方法 |
-
2011
- 2011-03-24 CN CN2011100726607A patent/CN102142093A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4160808B2 (ja) * | 2002-09-18 | 2008-10-08 | 高圧ガス工業株式会社 | メモリのリード/ライト制御回路、無接点メモリカード、リード/ライト装置及び無接点メモリカードのリード/ライトシステム |
JP2006079289A (ja) * | 2004-09-08 | 2006-03-23 | Sony Corp | 通信システム |
CN101640946A (zh) * | 2008-08-01 | 2010-02-03 | 宁波波导软件有限公司 | 一种手机外接存储卡的方法 |
CN101789803A (zh) * | 2009-11-03 | 2010-07-28 | 沈阳晨讯希姆通科技有限公司 | 一种双存储卡手机的设计方法 |
CN201628975U (zh) * | 2009-11-30 | 2010-11-10 | 浪潮齐鲁软件产业有限公司 | 一种带spi接口的iic存储卡读写装置 |
CN101986329A (zh) * | 2010-09-16 | 2011-03-16 | 建荣集成电路科技(珠海)有限公司 | 一种读卡装置自适应数据线通信的方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631740A (zh) * | 2012-08-24 | 2014-03-12 | 上海华虹集成电路有限责任公司 | Sd卡在spi模式下传输自适应字节对齐的方法及电路 |
CN103631740B (zh) * | 2012-08-24 | 2018-02-13 | 上海华虹集成电路有限责任公司 | Sd卡在spi模式下传输自适应字节对齐的电路 |
CN104699418A (zh) * | 2014-04-02 | 2015-06-10 | 杭州海康威视数字技术股份有限公司 | 对安全数码卡进行异常恢复的方法及设备 |
CN104699418B (zh) * | 2014-04-02 | 2018-02-16 | 杭州海康威视数字技术股份有限公司 | 对安全数码卡进行异常恢复的方法及设备 |
CN104778146A (zh) * | 2015-04-17 | 2015-07-15 | 中国科学院半导体研究所 | 基于spi模式的可热插拔sd卡数据记录仪及相应的方法 |
CN104778146B (zh) * | 2015-04-17 | 2017-12-22 | 中国科学院半导体研究所 | 基于spi模式的可热插拔sd卡数据记录仪及相应的方法 |
CN105721650A (zh) * | 2016-01-27 | 2016-06-29 | 努比亚技术有限公司 | 一种实现手机卡识别方法及终端 |
CN105721650B (zh) * | 2016-01-27 | 2018-12-04 | 努比亚技术有限公司 | 一种实现手机卡识别方法及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE49643E1 (en) | Card and host device | |
US7209995B2 (en) | Efficient connection between modules of removable electronic circuit cards | |
US8055808B2 (en) | Semiconductor memory device and control method for semiconductor memory device | |
JP2006139556A (ja) | メモリカード及びそのカードコントローラ | |
CN101814058A (zh) | 通用存储装置 | |
CN102063939B (zh) | 一种电可擦除可编程只读存储器的实现方法和装置 | |
CN102142093A (zh) | 一种存储卡操作方法及装置 | |
CN106201973B (zh) | 一种单线串行通信接口的方法与*** | |
CN102654857A (zh) | 采用gpio接口模拟spi协议的通信方法 | |
CN100498753C (zh) | 通过i2c接口访问现场可编程门阵列内部存储器的方法 | |
CN102567270A (zh) | 一种usb转i2c适配器 | |
CN103809918A (zh) | 储存媒体、存取***及方法 | |
CN100476782C (zh) | 一种存储卡数据传输方法 | |
CN101499049A (zh) | 手持电子设备存储卡之间数据转移的方法 | |
CN100373319C (zh) | 自适应sd存储卡 | |
CN104460923A (zh) | 一种智能电池管理方法及上位机、便携式移动设备 | |
US20130019055A1 (en) | Memory control device and method | |
CN201111065Y (zh) | 一种基于51单片机的ic卡读写控制器 | |
CN100357875C (zh) | 自动调整容量的sd存储卡 | |
CN103744807A (zh) | 基于可编程逻辑器件的存储卡访问控制*** | |
CN104636081B (zh) | 数据存储***以及其管理方法 | |
CN201465160U (zh) | 基于现场可编程门阵列的识别卡接口控制器 | |
CN101266583B (zh) | 一种存储卡总线操作方法 | |
CN108231131A (zh) | 一种eMMC测试方法及装置 | |
CN102147847A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110803 |