CN114995886A - 一种存储卡的识别方法及电子设备 - Google Patents
一种存储卡的识别方法及电子设备 Download PDFInfo
- Publication number
- CN114995886A CN114995886A CN202111130601.0A CN202111130601A CN114995886A CN 114995886 A CN114995886 A CN 114995886A CN 202111130601 A CN202111130601 A CN 202111130601A CN 114995886 A CN114995886 A CN 114995886A
- Authority
- CN
- China
- Prior art keywords
- speed
- card
- memory card
- preset
- grade
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Telephone Function (AREA)
Abstract
本申请实施例提供一种存储卡的识别方法及电子设备,涉及电子设备技术领域,提高了存储卡识别的成功率以及识别存储卡的效率。该方法应用于电子设备,包括:在触发存储卡上电后,若监听到存储卡满足第一预设条件,则获取存储卡的传输速度;第一预设条件包括存储卡的传输速度切换至第一速度失败和/或存储卡响应超时;将存储卡的传输速度切换至预设速度;预设速度的速度等级小于第一速度的速度等级且预设速度的速度等级与第一速度的速度等级之间包括至少一个速度等级,或者,预设速度的速度等级小于传输速度的速度等级且预设速度的速度等级与传输速度的速度等级之间包括至少一个速度等级。
Description
技术领域
本申请涉及电子设备技术领域,尤其涉及一种存储卡的识别方法及电子设备。
背景技术
由于具有体积小、携带方便、读写速度快以及使用简单等特点,存储卡作为独立存储介质被广泛地用于电子设备上。目前,在存储卡上电后,电子设备通过识别程序对存储卡进行数据加载,实现对存储卡的识别。
然而,由于存储卡的硬件或老化等问题,导致存储卡的时钟信号在高速情况下(如,速度为104MB/sec)不满足存储卡协议要求,从而导致无法识别存储卡,大大降低了存储卡识别的成功率。
发明内容
本申请实施例提供一种存储卡的识别方法及电子设备,通过电子设备确定存储卡的传输速度切换到高速失败或响应超时时,电子设备直接将存储卡的传输速度切换至预设速度,使得存储卡能够成功切换至较高速。由此,提高了存储卡识别的成功率。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种存储卡的识别方法,应用于电子设备,该方法包括:在触发存储卡上电后,若监听到存储卡满足第一预设条件,则获取存储卡的传输速度;第一预设条件包括存储卡的传输速度切换至第一速度失败和/或存储卡响应超时;将存储卡的传输速度切换至预设速度;预设速度的速度等级小于第一速度的速度等级,且预设速度的速度等级与第一速度的速度等级之间包括至少一个速度等级,或者,预设速度的速度等级小于传输速度的速度等级且预设速度的速度等级与传输速度的速度等级之间包括至少一个速度等级。
由此,在电子设备确定存储卡存在响应超时或切换到高速失败时,电子设备直接将存储卡的传输速度切换至预设速度,使得存储卡能够成功切换至较高速,提高了存储卡识别的成功率。
可选地,触发存储卡上电的场景包括电子设备开机的场景、存储卡插卡场景、电子设备休眠唤醒场景、存储卡卸载挂载的场景、电子设备格式化存储卡后的场景、电子设备灭屏后重新唤醒屏幕的场景或从电子设备复制文件到存储卡的场景。
可选地,将存储卡的传输速度切换至预设速度,包括:根据触发存储卡上电的场景,将存储卡的传输速度切换至场景对应的预设速度。
由于触发存储卡上电的场景不同,对应的预设速度不同,在触发存储卡上电后,若监听到所述存储卡的传输速度切换至第一速度失败和/或存储卡响应超时,可以将存储卡的传输速度切换至场景对应的预设速度。由此,在确保存储卡的传输速度的情况下,提高了存储卡的识别率。
可选地,监听到存储卡满足第一预设条件,包括:若获取到存储卡的传输速度切换至第一速度失败的标识,则确定存储卡切换至第一速度失败。
由于存储卡切换至第一速度失败后,存储卡向电子设备发送切换至第一速度失败的标识,从而电子设备可以在获取到第一速度失败的标识后,确定存储卡切换至第一速度失败。
可选地,监听到存储卡满足第一预设条件,还包括:若在预设时间内未接收到存储卡的响应指令,则确定存储卡响应超时。
在存储卡的识别过程或电子设备与存储卡的读写过程中,电子设备在预设时间内未接收到存储卡的响应指令,可以确定存储卡响应超时。
可选地,将存储卡的传输速度切换至预设速度,包括:若监听到存储卡的传输速度切换至第一速度失败,则将存储卡的传输速度切换至第一预设速度,第一预设速度的速度等级小于第一速度的速度等级,且第一预设速度的速度等级与第一速度的速度等级之间包括至少一个速度等级;若监听到存储卡响应超时,则将存储卡的传输速度切换至第二预设速度,第二预设速度的速度等级小于第一预设速度的速度等级,且第二预设速度的速度等级与第一预设速度的速度等级之间包括至少一个速度等级。
由于触发存储卡上电后,存在存储卡切换至第一速度失败和响应超时这两种异常情况,电子设备需要基于存储卡的传输速度切换存储卡的速度,提高存储卡的识别率。
可选地,将存储卡的传输速度切换至预设速度之后,还包括:显示提示信息,提示信息用于提示用户是否将存储卡的传输速度切换至预设速度。
由此,通过提示信息提醒用户存储卡在初始化过程中传输速度已经改变了。
可选地,方法还包括:若监听到存储卡满足第二预设条件,则获取存储卡的传输速度;将存储卡的传输速度切换至第二速度,第二速度为传输速度的下一速度等级对应的速度;若监听到将存储卡的传输速度切换至第二速度的切换次数达到预设次数时,存储卡仍满足第二预设条件;将存储卡的传输速度切换至第三速度,第三速度为第二速度的下一速度等级对应的速度。
在触发存储卡上电后,监听到存储卡存在传输速度切换至第一速度失败和/或存储卡响应超时以外的异常情况时,可以对存储卡的传输速度进行逐级降速,且每一次降速时都进行多次尝试。
第二方面,提供了一种电子设备,该电子设备具有实现上述第一方面所述的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。例如,该电子设备包括异常检测模块用于在触发存储卡上电后,若监听到存储卡满足第一预设条件,则获取存储卡的传输速度;第一预设条件包括存储卡的传输速度切换至第一速度失败和/或存储卡响应超时;将存储卡的传输速度切换至预设速度;预设速度的速度等级小于第一速度的速度等级且预设速度的速度等级与第一速度的速度等级之间包括至少一个速度等级,或者,预设速度的速度等级小于传输速度的速度等级且预设速度的速度等级与传输速度的速度等级之间包括至少一个速度等级。
第三方面,提供了一种电子设备,包括:一个或多个处理器;存储器;该存储器用于存储一个或多个计算机程序,一个或多个计算机程序包括指令,当指令被电子设备执行时,以使该电子设备执行如上述第一方面中任一项所述的存储卡的识别方法。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在电子设备上运行时,使得电子设备可以执行上述第一方面中任一项所述的存储卡的识别方法。
第五方面,提供了一种计算机程序产品,计算机程序产品包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备可以执行上述第一方面中任一项所述的存储卡的识别方法。
可以理解地,上述提供的电子设备,计算机存储介质,以及计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种存储卡识别***示例图;
图2为本申请实施例提供的手机的一种结构示意图;
图3为本申请实施例提供的手机的一种软件结构图;
图4为本申请实施例提供的一种存储卡识别方法的流程示意图;
图5为本申请实施例提供的另一种存储卡识别方法的流程示意图;
图6为本申请实施例提供的一种存储卡识别的场景图;
图7为本申请实施例提供的电子设备的一种结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
存储卡,或称快闪存储卡、闪卡,是一种固态电子快闪存储器数据存储设备,多为卡片或者方块状。它一般是使用快闪存储器(flash memory)芯片作为储存介质。存储卡的种类有很多,例如,安全数字卡(secure digital memory card,SD卡),多媒体卡(multimedia card,MMC卡)、EMMC卡(embedded multi media card)以及用户身份识别卡(subscriber identity module,SIM)等。
其中,SD卡是一种基于半导体快闪记忆器的新一代记忆设备,由于它体积小、数据传输速度快以及可热插拔等优点,被广泛地应用于电子设备上。SD卡一般包括标准SD卡,迷你SD卡和Micro SD卡。
例如,SD卡包括九个引脚,支持两种通信模式,分别为SD模式与串行外设接口(serial peripheral interface,SPI)模式。采用不同的初始化方式可以使SD卡工作于SD模式或SPI模式。其中,SD卡的引脚及各引脚的功能如下表1所示。
表1
SD卡可以按容量分类,具体如下表2。
表2
名称 | 卡容量 |
标准容量卡 | 小于或等于2GB |
高容量卡 | 大于2GB且小于或等于32GB |
扩展容量卡 | 大于32GB且小于或等于2TB |
SD卡还可以按总线速度模式分类,具体如下表3。
表3
模式 | 供电电压 | 频率上限 | 总线速度上限 |
默认速度模式 | 3.3V | 25MHz | 12.5MB/sec |
高速模式 | 3.3V | 50MHz | 25MB/sec |
SDR12 | 1.8V | 25MHz | 12.5MB/sec |
SDR25 | 1.8V | 50MHz | 25MB/sec |
SDR50 | 1.8V | 100MHz | 50MB/sec |
SDR104 | 1.8V | 208MHz | 104MB/sec |
DDR50 | 1.8V | 50MHz | 50MB/sec |
上述表3中,单数据速率(single date rate,SDR),是指一个周期只能采集一次数据,即一个bit。由于SD卡是4条数据线并行传输,所以一个周期能传输4bit。例如,如果SDR50的频率是50MHz,那么1秒能传输的数据量为25MB。因此,表3中各SDR模式里面,频率上限是速度上限的两倍。而对于双数据速率(double data rate,DDR),在时钟上升沿和下降沿都可以采集数据,也就是单一周期内可读取或写入2次数据。因此,4条并行数据线在一个周期内能传输8bit。
由于存储卡是可插拔的,电子设备的接口有存储卡***后,电子设备通过接口与存储卡连接。在电子设备成功识别存储卡后,可以实现与存储卡之间的数据交互。但是,电子设备与存储卡之间进行识别时,也存在识别失败的情况。例如,电子设备向存储卡发送CMD命令后,存储卡向电子设备返回介质不存在,响应超时,切换高速失败,循环冗余检查(cyclical redundancy check,CRC)校验失败,参数错误,地址错误,非法命令,卡控制器失败,卡错误检查和纠正(error checking and correcting,ECC)失败,锁卡失败以及初始化失败等错误,导致电子设备无法识别到存储卡。
目前,针对上述电子设备识别存储卡或者电子设备与存储卡之间进行数据交互时存在的异常情况,电子设备采用逐级降速的方法驱动存储卡的降低速度来重新识别存储卡。例如,电子设备首次识别SD卡的过程中,电子设备在SD卡处于低速阶段时驱动SD卡进行复位、识别卡类型以及获取SD卡的参数信息等初始化操作。SD卡初始化完成后,电子设备驱动SD卡的传输速度从低速切换到高速,其中,切换动作是指调整时钟频率让时序稳定。例如,电子设备首次识别SD卡的过程中,电子设备在SD卡的传输速度处于低速(如,400KHz/sec)时驱动SD卡进行初始化操作,SD卡初始化完成后,电子设备驱动SD卡的传输速度从低速(如,400KHz/sec)切换到SDR 104(即104MHz/sec)。假设SD卡的传输速度从低速切换到SDR 104失败。电子设备可以驱动SD卡的传输速度切换至SDR 50(即50MHz/sec)。在SD卡多次切换至SDR 50时,电子设备仍然识别SD卡失败,电子设备可以驱动SD卡的传输速度切换至SDR 25(即25MHz/sec)。在SD卡的传输速度多次切换至SDR 25时,电子设备仍然识别SD卡失败,电子设备可以驱动SD卡的传输速度切换至SDR 12(即12MHz/sec)。在SD卡的传输速度切换至SDR 12时,电子设备识别SD卡成功,则电子设备与SD卡之间可以进行数据传输。
由此可见,在SD卡的传输速度为12.5MHz/sec时,电子设备与该SD卡可以进行数据交互。但是,在上述异常处理的流程中,不能保证电子设备识别SD卡过程中出现异常时能够逐级降速至SDR12,也可能会提前结束异常处理流程。例如,SD卡的传输速度从低速(如,400KHz/sec)切换至SDR104失败。首先SD卡的传输速度切换至SDR50,SD卡硬件层返回超时,此时,SD卡的传输速度切换至SDR50失败切换失败。这种情况下,SD卡重试将传输速度切换到SDR50的操作。在SD卡重试切换到SDR50时,由于SD卡硬件内部异常,SD卡硬件层返回非超时的其他错误。例如,SD卡硬件层返回地址错误,则SD卡执行地址异常逻辑,直接上报地址异常,不执行重试切换到SDR50的操作。这种情况下,SD卡就不会触发重试多次失败,执行逐级降速将传输速度切换到SDR25的流程。即SD卡最后不会逐级降到SDR12就退出了识卡流程,导致电子设备无法识别SD卡的场景。
还例如,电子设备识别SD卡或与初始化完成的SD卡进行交互的过程中,SD卡接收到电子设备发送的操作指令后,在预设时间内SD卡并未向电子设备发送对应的响应。这种情况下,SD卡出现响应超时的异常情况。相关技术中,电子设备采用逐级降速的方法驱动存储卡的降低速度来重新识别存储卡。同样的,在电子设备采用逐级降速的方法驱动存储卡的降低速度的过程中,可能存在并未识别到SD卡就退出识卡流程的问题。
为了解决上述由于存储卡的硬件问题导致存储卡上电后出现响应超时和/或切换到高速失败的问题,本申请实施例提供一种存储卡的识别方法,该方法在电子设备识别存储卡的整个过程中,确定存在响应超时和/或切换到高速失败时,电子设备将存储卡的传输速度切换至预设速度,使得存储卡能够成功切换至预设速度。由此,提高了存储卡识别的成功率。
本申请实施例提供的存储卡的识别方法可应用于存储卡识别***,示例性的,图1为本申请实施例提供的一种存储卡识别***示例图。如图1所示,该存储卡识别***可以包括电子设备10以及与电子设备10进行接口连接的存储卡20。存储卡20与电子设备10的接口连接时,电子设备10通过识别程序对存储卡20进行数据加载。其中,电子设备可以为手机、平板电脑、个人计算机(personal computer,PC)、个人数字助理(personal digitalassistant,PDA)、智能手表、上网本、可穿戴电子设备、增强现实技术(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、车载设备、智能汽车、智能音响等,本申请实施例对此不做任何限制。
为了便于理解,在本申请实施例中以电子设备为手机为例进行说明。下面结合附图对手机的各个构成部件进行具体的介绍:
如图2所示,图2为本申请实施例提供的手机的一种结构示意图。
手机100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对手机100的具体限定。在本申请另一些实施例中,手机100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是手机100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现手机100的触摸功能。
I2S接口可以用于音频通信。PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等***器件。MIPI接口包括摄像头串行接口(camera serialinterface,CSI),显示屏串行接口(display serial interface,DSI)等。GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为手机100充电,也可以用于手机100与***设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他手机,例如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对手机100的结构限定。在本申请另一些实施例中,手机100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。电源管理模块141用于连接电池142,充电管理模块140与处理器110。手机100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。手机100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。
移动通信模块150可以提供应用在手机100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。无线通信模块160可以提供应用在手机100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
手机100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
手机100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现手机100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展手机100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。处理器100可以通过外部存储器接口120对外部存储卡进行初始化以及读写操作等。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行手机100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储手机100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
在本申请实施例中,处理器110通过运行存储在内部存储器121的指令,可以在手机识别SD卡的过程中监听到SD卡响应超时和/或SD卡切换至高速失败时,直接设置SD卡降速到预设速度,以使得SD卡初始化成功。
手机的软件***可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android***为例,示例性说明手机的软件结构。
图3为本申请实施例提供的手机的一种软件结构图。
可以理解的是,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,Android***可以包括应用程序层(简称为应用层)和应用程序框架层(简称为框架层)。上述应用程序层可以包括一系列应用程序包。
如图3所示,应用程序包包括***应用。其中,***应用是指手机在出厂之前设置在手机内的应用。示例性的,***应用可以包括设置、手机管家、相机、图库、日历、音乐、短信息以及通话等程序。
应用程序包还可以包括第三方应用,第三方应用是指用户从应用商店(或者应用市场)下载安装包后安装的应用。例如,地图类应用(例如等)、外卖类应用(例如等)、阅读类应用(例如)、社交类应用(例如)以及出行类应用(例如)等。
上述应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供手机100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,手机振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动,异常检测模块以及存储卡驱动模块。
其中,异常检测模块用于在存储卡上电后检测存储卡是否存在异常,若检测到存储卡初始化过程中存在响应超时和/或切换到高速失败,则控制存储卡切换到预设速度。
存储卡驱动模块用于驱动与电子设备的接口连接的存储卡完成初始化过程以及与电子设备与存储卡之间的数据传输过程。
以下实施例中所涉及到的技术方案均可以在具有上述硬件结构和软件架构的电子设备100中实现。以下仍以电子设备100为手机,存储卡为SD卡为例,对本方案进行示例性说明。
示例性的,如图4所示,手机开机时,触发与手机的外部存储器接口连接的SD卡上电。此时,SD卡处于卡识别模式。存储卡驱动模块在低速识别阶段驱动SD卡进行复位、识别卡类型以及获取SD卡的参数信息等初始化操作。同时,异常检测模块开启监听功能。在SD卡识别过程中,异常检测模块监听SD卡是否存在异常情况。
在一种可能的情况下,在SD卡上电后,异常检测模块并未监听到SD卡存在异常情况,SD卡能够成功完成初始化过程。
在另一种可能的情况下,在SD卡上电后,异常检测模块监听到SD卡切换至高速(比如第一速度,如104MB/sec)失败或响应超时,异常检测模块直接设定SD卡的传输速度切换至的预设速度。
在一些实施例中,预设速度是SD卡切换的较高速,是与SD卡的硬件相匹配的传输速度。预设速度可以是通过SD卡在不同场景下多次试验得到的数据。在本申请实施例中,触发SD卡上电的场景包括但不限于手机开机后识别SD卡的场景,SD卡插卡场景,默认存储切换后识别SD卡,SD卡卸载挂载操作的场景,手机休眠唤醒后识别SD卡的场景,手机格式化卡后识别SD卡的场景,手机灭屏后重新唤醒屏幕时识别SD卡场景以及从手机的内部存储器中复制文件到SD卡等场景。示例性的,如下表4可知,预设速度为12.5MB/sec时,在识别SD卡的各种场景下,SD卡初始化成功。
表4
需要解释的是,上述表4中各场景下识别SD卡的过程中,SD卡是否在各预设速度下初始化成功仅作为示例性描述,在手机实际识别SD卡的过程中并不做限定。
上述SD卡在低速识别阶段的时钟频率在100KHz~400KHz范围内工作。其中,SD卡的参数信息是描述SD卡各类型特征的信息。SD卡的参数信息包括但不限于SD卡的标识(如,生产商身份标识),SD卡类型,支持电压,SD卡容量及SD卡速率模式等信息中的至少一种。手机中预设有特定的SD卡协议命令,在手机开机或SD卡***手机的接口之后,手机的存储卡驱动模块检测到SD卡,向SD卡发送SD卡协议命令,SD卡接收存储卡驱动模块发送的SD卡协议命令后,向存储卡驱动模块回复相关的参数。
例如,在SD卡识别模式下,存储卡驱动模块通过SD卡协议命令获取SD卡的参数信息的方法如下。手机通过向SD卡发送CMD2、CMD9、CMD13等SD卡协议命令,分别读取SD卡的生产商身份标识,SD卡容量大小以及存储卡速率模式等参数信息。其中,SD卡协议命令格式如下表5。
表5
由表5可知,一次SD卡命令一共发送六个字节,对于SPI通讯而言,就是SPI总线上传送六个字节。其中,字节1的最高2位固定为01,低6位为命令号(比如CMD16,为10000即16进制的0X10,完整的CMD16,第一个字节为01010000,即0X10+0X40)。字节2~5为命令参数,有些命令是没有参数的。对于没有参数的命令默认发送0即可。字节6的高七位为CRC值,最低位恒定为1。
可以理解的是,存储卡识别***(包括手机和SD卡)定义了两种操作模式:卡识别模式和数据传输模式。在***复位后,手机处于卡识别模式,寻找总线上可用的安全数字输入输出卡(secure digital input and output,SDIO)设备;同时,SD卡也处于卡识别模式,直到被手机识别到。即当SD卡接收到CMD3命令后,SD卡进入数据传输模式,而手机在总线上所有卡被识别后也进入数据传输模式。手机识别SD卡成功,SD卡进入数据传输模式后,手机与SD卡才能够进行数据交互。
在本申请实施例中,手机识别SD卡的过程中,异常检测模块在监听到响应超时或SD卡切换至高速失败这两种异常情况时,异常检测模块直接设定SD卡降速到预设速度。而手机识别SD卡的过程中,当出现CRC校验失败、参数错误、地址错误、非法命令、卡控制器失败、卡ECC失败、锁卡失败以及初始化失败等异常情况时,存储卡驱动模块控制SD卡进行逐级降速处理。
在本申请实施例中,异常检测模块监听到SD卡的传输速度切换至高速失败或SD卡响应超时,异常检测模块直接设置SD卡的传输速度降速至预设速度。存储卡驱动模块驱动SD卡硬件模块将SD卡的传输速度切换至预设速度,SD卡硬件模块向存储卡驱动模块返回切换成功标识,则SD卡初始化成功,SD卡识别过程结束。此时,SD卡处于准备状态,SD卡等待上层应用程序(application,APP)发送操作指令。其中,操作指令可以为读写指令。当SD卡接收到手机通过SD卡的CMD总线发送的命令后,如SEND_RCA(CMD3)命令,SD卡进入数据传输模式。由此,在SD卡硬件异常时,异常检测模块直接设置SD卡的传输速度降速至预设速度,在SD卡硬件资源有限的情况下,提高了SD卡的识别准确率。在本申请实施例的另一种可能的情况下,SD卡切换至高速成功,则SD卡处于准备状态。SD卡接收到手机中的上层APP发送操作指令。例如,SD卡接收到上层APP发送的CMD24命令,使得SD卡进入数据传输状态,写入单个块数据。
在一种可能的情况下,如果SD卡与上层APP之间数据交互成功,则SD卡与上层APP之间完成读写操作。
在另一种可能的情况下,如果SD卡与上层APP之间数据交互时,异常检测模块监听到存储卡驱动模块发送读写命令后SD卡响应超时。这种情况下,SD卡与上层APP之间数据交互失败,异常检测模块直接设置SD卡的速度降低至预设速度。
在又一种可能的情况下,如果SD卡与上层APP之间数据交互失败,且异常检测模块并未监听到SD卡的传输速度切换至高速失败或存储卡驱动模块发送读写命令后SD卡响应超时。这种情况下,SD卡与上层APP之间数据交互失败,可能是由于CRC校验失败、参数错误、地址错误、非法命令、卡控制器失败、卡ECC失败以及锁卡失败等原因导致的。
此时,存储卡驱动模块控制SD卡重新切换至高速,如果SD卡重新切换高速成功,则SD卡等待手机中的上层APP发送操作指令。如果SD卡重新切换至高速失败,则存储卡驱动模块控制SD卡重新切换至高速达到N数(例如,N可以为3次,5次等),SD卡切换至高速仍然失败。存储卡驱动模块控制SD卡逐级降速后重新切换。若SD卡降速M次(例如,M可以为2次、3次以及5次等)后切换至高速仍失败,则SD卡与上层APP之间读写操作失败。
在本申请实施例中,预设速度还可以是根据触发SD卡上电时的场景设定的速度。即触发SD卡上电的场景不同时,异常检测模块设置SD卡的传输速度降速的预设速度也并不相同。异常检测模块监听到SD卡的传输速度切换至高速失败和/或响应超时后,根据触发SD卡上电的场景,将SD卡的传输速度切换至场景对应的预设速度。例如,***SD卡的识别场景下,异常检测模块监听到SD卡的传输速度切换至高速失败和/或响应超时后,异常检测模块将SD卡的传输速度切换至预设速度(如,预设速度可以为25MB/sec);手机开机重启时对SD卡的识别场景下,异常检测模块监听到SD卡的传输速度切换至高速失败和/或响应超时后,异常检测模块将SD卡的传输速度切换至预设速度(如,预设速度可以为1205MB/sec)等等。
下面结合图5对上述手机识别SD卡的过程进行详细解释。示例性的,如图5所示,该识别过程可以包括以下步骤:
步骤501,SD卡硬件模块将SD卡上电信号发送至存储卡驱动模块。
示例性的,在手机中的外部存储器接口已经连接有SD卡的情况下,手机开机后,SD卡硬件模块将SD卡上电信号发送至存储卡驱动模块。
此处触发SD卡上电的场景包括但不限于手机开机后识别SD卡,热插拔SD卡,默认存储切换后识别SD卡,SD卡卸载挂载操作,手机休眠唤醒后识别SD卡的场景,手机格式化卡后识别SD卡的场景,手机灭屏后重新唤醒屏幕SD卡场景以及从手机的内部存储器中复制文件到SD卡等场景。
在本申请实施例中,在SD卡上电过程中,存储卡驱动模块可以根据手机***发送的场景标识确定触发SD卡上电的场景。手机中可以预先存储有触发SD卡上电的场景与场景标识之间的对应关系。示例性的,手机中可以预先存储有如下表6中触发SD卡上电的场景与场景标识之间的对应关系。假设存储卡驱动模块获取到的场景标识为2,则存储卡驱动模块可以确定当前触发SD卡上电的场景为***SD卡的场景。
表6
触发SD卡上电的场景 | 场景标识 |
手机开机后对SD卡的识别 | 1 |
***SD卡 | 2 |
默认存储切换后对SD卡的识别 | 3 |
SD卡卸载挂载操作 | 4 |
手机格式化后对SD卡的识别 | 5 |
手机休眠唤醒后对SD卡的识别 | 6 |
手机灭屏后重新唤醒屏幕对SD卡的识别 | 7 |
需要解释的是,上述表6中触发SD卡上电的场景与场景标识之间的对应关系仅作为示例性描述,本申请实施例中对此不做限定。
步骤502,存储卡驱动模块获取SD卡的参数信息。
存储卡驱动模块接收到SD卡硬件模块发送的SD卡上电信号后,SD卡处于卡识别模式。存储卡驱动模块可以对SD卡进行复位,获取SD卡的参数信息等,进入SD卡初始化阶段。
由于SD卡在默认情况下的通信模式是SD模式,但是本申请实施例中采用的是SPI模式,因此,在SD开始上电后,首先将SD卡的通信模式由SD模式切换至SPI模式。可选地,SD卡上电时延时足够长的时间给SD卡一个准备的过程。例如,SD卡上电延时大于74个时钟周期。由于SD卡在上电初期,电压的上升过程约合64个时钟周期才能到达SD卡的正常工作电压,其后的10个时钟周期是为了与SD卡同步,之后开始复位操作。
在一些实施例中,SD卡延时大于74个时钟周期后手机向SD卡发送复位命令,在SD卡接收到手机发送的复位成功响应(如,接收到0x01的响应)后,SD卡复位成功。SD卡复位成功后,SD卡向存储卡驱动模块连续发送CMD55和ACMD41,直到响应0X00为止,此时SD卡进入SPI模式。其中,SD协议的复位命令为CMD0。
在一些实施例中,存储卡驱动模块通过SD卡协议命令读取SD卡的参数信息。其中,SD卡协议命令是SD卡与手机之间基于通信协议进行通信连接的指令。SD卡与手机的存储卡驱动模块通过SD卡协议进行协议命令交互。
步骤503,SD卡初始化过程中,触发异常检测模块启动。
SD卡识别过程中,异常检测模块开启监听功能,以使得异常检测模块监听到SD卡识别过程中的异常情况。
需要解释的是,本申请实施例中异常检测模块用于监听SD卡识别过程中的SD卡响应超时和切换至高速失败这两种异常行为。
步骤504,存储卡驱动模块驱动SD卡进行高速切换。
由于SD卡在识别阶段的时钟频率在低速范围内工作,如,在100KHz~400KHz范围内工作。为了提高SD卡与手机进行数据传输时的数据传输速率,SD卡的初始化阶段,存储卡驱动模块驱动SD进行高速切换。如,存储卡驱动模块驱动SD卡的时钟频率切换至50MHz、100MHz以及208MHz等。即,将SD卡的传输速度切换至25MB/sec、50MB/sec以及104MB/sec。
步骤505,SD卡硬件模块向存储卡驱动模块发送切换至高速失败的标识。
步骤506,异常检测模块监听到切换至高速失败。
在本申请实施例的一种可能的情况下,由于SD卡硬件老化等问题,导致SD卡在高速情况下不满足SD协议要求,从而导致SD卡由低速切换至高速失败。这种情况下,SD卡硬件模块向存储卡驱动模块发送高速切换失败的标识。此时,异常检测模块监听到SD卡由低速切换至高速失败的异常情况。
可以理解的是,识别SD卡的场景不同时,SD卡初始化阶段切换至高速的时钟频率也并不相同。
示例性的,在热插拔场景下识别SD卡时,假设SD卡的时钟频率由400KHz切换至100MHz,即将SD卡的传输速度切换至50MB/sec,SD卡切换失败后,SD卡硬件模块向存储卡驱动模块发送高速切换失败的标识。此时,异常检测模块监听到SD卡的传输速度切换至50MB/sec失败。
在本申请实施例的另一种可能的情况下,SD卡由低速成功切换至高速时,存储卡驱动模块接收到SD卡硬件模块发送的高速切换成功的标识。这种情况下,SD卡成功切换至高速,直接执行步骤516。此时,SD卡初始化成功,SD卡处于准备状态,等待上层APP发送读写操作,以与上层APP进行数据传输。
步骤507,异常检测模块直接将SD卡的传输速度降速到第一预设速度。
在本申请实施例中,异常检测模块监听到SD卡切换至高速失败后,异常检测模块将SD卡的传输速度直接降速到第一预设速度。由此,避免了相关技术中逐级降速时SD卡无法降速到合适的速度就退出了识卡过程,导致无法识别到SD卡的场景,提高了SD卡的识别准确度。
其中,第一预设速度是根据触发SD卡上电时的场景预设的SD卡的较高速度,该第一预设速度是与SD卡的硬件相匹配的速度。
示例性的,假设在热插拔场景下的SD卡的识别过程,异常检测模块监听到SD卡的传输速度切换至104MB/sec切换失败,异常检测模块可以直接设置SD卡传输速度为第一预设速度。例如,第一预设速度为25MB/sec。还例如,假设手机重启时对SD卡进行识别的场景下,异常检测模块监听到SD卡的传输速度切换至高速(如,切换至50MB/sec)失败,异常检测模块可以直接设置SD卡传输速度为第一预设速度。例如,第一预设速度为12.5MB/sec。
可以理解的是,手机识别SD卡的场景不同时,SD卡初始化阶段切换至高速失败时,异常检测模块设置SD卡的传输速度降速到的第一预设速度也并不相同。上述示例中的第一预设速率仅作为示例性描述,本申请实施例中对此不做限定。
步骤508,存储卡驱动模块驱动SD卡的传输速度切换至第一预设速度。
在异常检测模块监听到SD卡切换至高速失败时,异常检测模块直接设置SD卡降速到第一预设速度后,存储卡驱动模块驱动SD卡的传输速度切换至第一预设速度。
示例性的,存储卡驱动模块根据接收到的场景标识确定触发SD卡上电的场景为在***SD卡后识别SD卡的场景,异常检测模块监听到SD卡的传输速度切换至50MB/sec失败,异常检测模块可以直接设置SD卡的传输速度降速为12.5MB/sec,存储卡驱动模块驱动SD卡的传输速度切换至12.5MB/sec。由此,不仅提高了SD卡识别的准确率,还提高了手机识别SD卡的速率。
步骤509,SD卡硬件模块向存储卡驱动模块发送速度切换成功的标识。
在本申请实施例中,SD卡由低速成功切换至第一预设速度时,SD卡硬件模块向存储卡驱动模块发送速度切换成功的标识。
步骤510,应用程序向存储卡驱动模块发送SD卡操作指令。
在本申请实施例中,存储卡驱动模块接收到SD卡硬件模块发送的速度切换成功的标识后,SD卡初始化完成,SD卡处于准备状态。此时,SD卡等待接收上层APP发送的操作指令。其中,操作指令可以为读写指令。例如,上层APP向存储卡驱动模块发送SD卡读指令。
在一些实施例中,上层APP与SD卡之间的交互也是以CMD命令交互。例如,上层APP与SD卡之间交互时的读命令有:单一块读操作(CMD17)、多块读操作(CMD18)、发送写保护(CMD30)以及读模式下的普通命令(CMD56)等等。所有的数据读命令都可以被停止命令(CMD12)在任意时刻终止。数据传输会终止,SD卡返回传输状态。
上层APP与SD卡之间交互时的写命令有:块写操作(CMD24,CMD25)、编程命令(CMD27)、锁定/解锁命令(CMD42)以及写模式下的普通命令(CMD56)数据传输一旦完成,SD卡会退出数据写状态,进入传输成功状态或者传输失败状态。所有的数据写命令也都可以被停止命令(CMD12)在任意时刻终止。写命令也会在取消选择命令(CMD7)之前停止。
步骤511,存储卡驱动模块向SD卡硬件模块发送操作指令。
存储卡驱动模块接收到上层APP发送的操作指令后,存储卡驱动模块将上层APP发送的操作指令发送至SD卡硬件模块。
示例性的,存储卡驱动模块接收到上层APP发送的CMD24指令,则将该CMD24指令发送至SD卡硬件模块。
步骤512,SD卡硬件模块向存储卡驱动模块发送CMD响应超时的标识。
在本申请实施例的一种可能的情况下,SD卡硬件模块接收到存储卡驱动模块发送的操作指令后,SD卡硬件模块在预设时间(如,200ms、400ms或500ms等)向存储卡驱动模块返回操作指令响应。这种情况下,上层APP与SD卡之间处于正常数据传输过程。
在本申请实施例的另一种可能的情况下,SD卡硬件模块接收到存储卡驱动模块发送的操作指令后,SD卡硬件模块响应超时。例如,存储卡驱动模块在预设时间内未接收到SD卡硬件模块返回的操作指令响应。这种情况下,上层APP与SD卡之间无法进行数据传输。
示例性的,存储卡驱动模块将CMD24指令发送至SD卡硬件模块后,存储卡驱动模块在500ms内未接收到SD卡硬件模块返回的操作指令响应。上述预设时间为500ms仅作为示例性描述,本申请实施例中对预设时间不做限定。
步骤513,异常检测模块监听到SD卡响应超时。
在本申请实施例中,异常检测模块监听到SD卡响应超时的场景不限于SD卡与上层APP交互时,SD卡硬件模块接收到存储卡驱动模块发送的操作指令后SD卡硬件模块响应超时的情况,还可以为SD卡初始化过程中接收到存储卡驱动模块发送的指令后SD卡硬件模块响应超时的情况。
步骤514,异常检测模块直接将SD卡的传输速度降速到第二预设速度。
在本申请实施例中,存储卡驱动模块在预设时间内存储卡驱动模块未接收到SD卡硬件模块返回的操作指令响应时,异常检测模块监听到响应超时的异常情况。异常检测模块将SD卡的传输速度直接降低到第二预设速度。由此,避免了相关技术中逐级降速时SD卡无法降速到合适的速度就退出了识卡过程,导致无法识别到SD卡的场景,提高了SD卡的识别准确度。
其中,第二预设速度也是根据触发SD卡上电时的场景预设的SD卡的较高速,第二预设速度也与SD卡的硬件相匹配。此处,第二预设速度与第一预设速度可以相同,也可以不同,本申请实施例中对此不做限定。
在一种可能的场景下,手机识别SD卡的过程中,异常检测模块监听到SD卡的传输速度切换至高速失败,异常检测模块并未监听到SD卡响应超时。这种情况下,异常检测模块直接设置SD卡降速到第一预设速度后,存储卡驱动模块驱动SD卡的传输速度切换至第一预设速度。
在另一种可能的场景下,手机识别SD卡以及手机与SD卡交互的过程中,异常检测模块监听到SD卡响应超时,异常检测模块并未监听到SD卡切换至高速失败。这种情况下,异常检测模块直接设置SD卡的传输速度降速到第二预设速度后,存储卡驱动模块驱动SD卡的传输速度切换至第二预设速度。
上述两种场景下,第一预设速度和第二预设速度可以相同,也可以不同,本申请实施例中对此不做限定。
在又一种可能的场景下,手机识别SD卡的过程中,异常检测模块首先监听到SD卡的传输速度切换至高速失败。异常检测模块直接设置SD卡的传输速度降速到第一预设速度后,存储卡驱动模块驱动SD卡的传输速度切换至第一预设速度。此后,异常检测模块监听到SD卡响应超时,异常检测模块设置SD卡的传输速度继续降速到第二预设速度,存储卡驱动模块驱动SD卡的传输速度切换至第二预设速度。这种情况下,第二预设速度小于第一预设速度。
步骤515,存储卡驱动模块驱动SD卡的传输速度切换至预设速度。
步骤516,SD卡硬件模块向存储卡驱动模块发送速度切换成功。
在异常检测模块监听到SD卡硬件模块响应超时,异常检测模块直接设置SD卡的传输速度降速到第二预设速度后,存储卡驱动模块驱动SD卡的传输速度切换至第二预设速度。
示例性的,异常检测模块监听到SD卡硬件模块响应超时,异常检测模块可以直接设置SD卡的传输速度降速为12.5MB/sec,存储卡驱动模块驱动SD卡的传输速度切换至12.5MB/sec。
在本申请实施例中,SD卡的传输速度由低速切换至第二预设速度成功时,SD卡硬件模块向存储卡驱动模块发送速度切换成功的标识。此时,SD卡初始化成功,SD卡处于准备状态,等待上层APP与SD卡之间进行交互。
需要解释的是,在上层APP与SD卡之间进行数据交互时,上述SD卡硬件模块响应存储卡驱动模块发送CMD响应超时的情况可能存在,也可能并不存在,本申请实施例中在此不做限定。
在一些实施例中,在手机与SD卡识别过程中,也可能存在SD卡硬件模块向存储卡驱动模块发送CMD响应超时的情况。这种情况下,异常检测模块监听到响应超时,异常检测模块根据SD卡的识别场景控制SD卡降速至某一预设速度。SD卡成功切换至异常检测模块指定的预设速度后,SD卡硬件模块向存储卡驱动模块发送切换成功的标识。
在一些实施例中,在手机与SD卡识别过程中,也可能仅存在SD卡切换至高速失败或者SD卡硬件模块向存储卡驱动模块发送CMD响应超时中任意一种情况。这种情况下,异常检测模块监听到任意一种异常情况时,异常检测模块根据SD卡的识别场景控制SD卡的传输速度降速至某一预设速度。SD卡成功切换至异常检测模块指定的预设速度后,SD卡硬件模块向存储卡驱动模块发送切换成功的标识。
需要解释的是,上述手机对SD卡的识别过程中,SD卡的个数不限于1个,手机也可以同时对多个SD卡进行识别,本申请实施例中在此不做限定。
在一些实施例中,SD卡初始化完成后,手机可以在显示界面显示提示信息,以提醒用户手机已完成对SD卡的识别。
示例性的,如图6所示,手机完成对至少一个SD卡的识别后,手机可以在通知管理界面显示提示信息“提示:SD卡初始化过程中切换至高速失败/响应超时,已直接降至较低的预设速度,且初始化成功”,以提醒用户手机识别SD卡的过程中,存在SD卡响应超时或SD卡的传输速度切换至较高速失败等异常情况。手机已经控制SD卡的传输速度降至较低的预设速度,且已完成对至少一个SD卡的初始化,上层APP可以与已经初始化成功的SD卡之间进行交互操作。
综上所述,本申请实施例中,在手机识别SD卡的过程中,异常检测模块监听到SD卡响应超时或SD卡的传输速度切换至高速失败时,异常检测模块直接设置SD卡的传输速度降速,使得SD卡的传输速度能够成功切换至高速。由此,在SD卡硬件异常导致SD卡的时钟信号在较高速下不满足存储卡协议要求时,手机可以成功识别到SD卡,提高了SD卡识别的成功率。
相较于现有的手机识别SD卡过程中,手机确定SD卡响应超时或SD卡的传输速度切换至高速失败等异常情况时,存储卡驱动模块驱动SD卡逐级降速时手机也无法识别到SD卡,本申请中异常检测模块监听到SD卡响应超时或SD卡的传输速度切换至高速失败时直接设置SD卡的传输速度降速,确保SD卡成功切换至较高速,提高了SD卡识别的成功率。
如图7所示,本申请实施例公开了一种电子设备,该电子设备可以为上述手机。该电子设备具体可以包括:触摸屏701,所述触摸屏701包括触摸传感器706和显示屏707;一个或多个处理器702;存储器703;一个或多个应用程序(未示出);以及一个或多个计算机程序704,上述各器件可以通过一个或多个通信总线705连接。其中,上述一个或多个计算机程序704被存储在上述存储器703中并被配置为被该一个或多个处理器702执行,该一个或多个计算机程序704包括指令,该指令可以用于执行上述实施例中的相关步骤。
可以理解的是,上述电子设备等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
本申请实施例可以根据上述方法示例对上述电子设备等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,上述实施例中涉及的电子设备的一种可能的组成示意图,该电子设备可以包括:显示单元、传输单元和处理单元等。需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本申请实施例还提供一种电子设备,包括一个或多个处理器以及一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行上述相关方法步骤实现上述实施例中的存储卡的识别方法。
本申请的实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的存储卡的识别方法。
本申请的实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中电子设备执行的存储卡的识别方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使装置执行上述各方法实施例中电子设备执行的存储卡的识别方法。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或装置均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种存储卡的识别方法,应用于电子设备,其特征在于,包括:
在触发存储卡上电后,若监听到所述存储卡满足第一预设条件,则获取所述存储卡的传输速度;所述第一预设条件包括所述存储卡的传输速度切换至第一速度失败和/或所述存储卡响应超时;
将所述存储卡的传输速度切换至预设速度;所述预设速度的速度等级小于所述第一速度的速度等级,且所述预设速度的速度等级与所述第一速度的速度等级之间包括至少一个速度等级,或者,所述预设速度的速度等级小于所述传输速度的速度等级,且所述预设速度的速度等级与所述传输速度的速度等级之间包括至少一个速度等级。
2.根据权利要求1所述的方法,其特征在于,所述触发存储卡上电的场景包括所述电子设备开机的场景、所述存储卡插卡场景、所述电子设备休眠唤醒场景、所述存储卡卸载挂载的场景、所述电子设备格式化所述存储卡后的场景、所述电子设备灭屏后重新唤醒屏幕的场景或从所述电子设备复制文件到所述存储卡的场景。
3.根据权利要求1所述的方法,其特征在于,所述将所述存储卡的传输速度切换至预设速度,包括:
根据触发所述存储卡上电的场景,将所述存储卡的传输速度切换至所述场景对应的所述预设速度。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述监听到所述存储卡满足第一预设条件,包括:
若获取到所述存储卡的传输速度切换至第一速度失败的标识,则确定所述存储卡切换至第一速度失败。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述监听到所述存储卡满足第一预设条件,还包括:
若在预设时间内未接收到所述存储卡的响应指令,则确定所述存储卡响应超时。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述将所述存储卡的传输速度切换至预设速度,包括:
若监听到所述存储卡的传输速度切换至所述第一速度失败,则将所述存储卡的传输速度切换至第一预设速度,所述第一预设速度的速度等级小于所述第一速度的速度等级,且所述第一预设速度的速度等级与所述第一速度的速度等级之间包括至少一个速度等级;
若监听到所述存储卡响应超时,则将所述存储卡的传输速度切换至第二预设速度,所述第二预设速度的速度等级小于所述第一预设速度的速度等级,且所述第二预设速度的速度等级与所述第一预设速度的速度等级之间包括至少一个速度等级。
7.根据权利要求1-3任一项所述的方法,其特征在于,所述将所述存储卡的传输速度切换至预设速度之后,还包括:
显示提示信息,所述提示信息用于提示用户是否将所述存储卡的传输速度切换至所述预设速度。
8.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
若监听到所述存储卡满足第二预设条件,则获取所述存储卡的传输速度;
将所述存储卡的传输速度切换至第二速度,所述第二速度为所述传输速度的下一速度等级对应的速度;
若监听到将所述存储卡的传输速度切换至所述第二速度的切换次数达到所述预设次数时,所述存储卡仍满足第二预设条件;
将所述存储卡的传输速度切换至第三速度,所述第三速度为所述第二速度的下一速度等级对应的速度。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
其中,所述存储器中存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行如权利要求1-8中任一项所述的存储卡的识别方法。
10.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1-8中任一项所述的存储卡的识别方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-8中任一项所述的存储卡的识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111130601.0A CN114995886B (zh) | 2021-09-26 | 2021-09-26 | 一种存储卡的识别方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111130601.0A CN114995886B (zh) | 2021-09-26 | 2021-09-26 | 一种存储卡的识别方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114995886A true CN114995886A (zh) | 2022-09-02 |
CN114995886B CN114995886B (zh) | 2023-04-11 |
Family
ID=83017935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111130601.0A Active CN114995886B (zh) | 2021-09-26 | 2021-09-26 | 一种存储卡的识别方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114995886B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117406924A (zh) * | 2023-10-19 | 2024-01-16 | 合肥力高动力科技有限公司 | 一种bms中基于tf卡的数据存储方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1445628A (zh) * | 2002-03-15 | 2003-10-01 | 卡西欧计算机株式会社 | 时刻数据接收装置以及时刻数据修正方法 |
CN104391564A (zh) * | 2014-11-28 | 2015-03-04 | 福州瑞芯微电子有限公司 | 功耗控制方法和装置 |
CN104425850A (zh) * | 2013-08-22 | 2015-03-18 | 瑞萨电子株式会社 | 半导体装置、电池组及便携式终端 |
CN104601921A (zh) * | 2015-01-15 | 2015-05-06 | 上海小蚁科技有限公司 | ***配置方法及装置 |
US20160239235A1 (en) * | 2015-02-17 | 2016-08-18 | Woonjae Chung | Storage devices, memory systems and operating methods thereof |
CN107221349A (zh) * | 2017-08-03 | 2017-09-29 | 深圳市博巨兴实业发展有限公司 | 一种基于flash存储器的微控制器芯片 |
JP2018041515A (ja) * | 2016-09-06 | 2018-03-15 | ルネサスエレクトロニクス株式会社 | フラッシュメモリ |
US20180129617A1 (en) * | 2016-11-09 | 2018-05-10 | Realtek Semiconductor Corp. | Memory card reading method which adjusts reader to host interface |
CN110716633A (zh) * | 2019-09-30 | 2020-01-21 | 深圳忆联信息***有限公司 | 协调管理ssd功耗的装置、方法、计算机设备及存储介质 |
CN111918419A (zh) * | 2020-07-24 | 2020-11-10 | 深圳市云洲创新科技有限公司 | 无线通信方法、装置、设备及存储介质 |
CN112148649A (zh) * | 2020-09-03 | 2020-12-29 | 深圳市宏旺微电子有限公司 | 一种u-boot***下的eMMC HS400传输模式实现方法及装置 |
CN112379834A (zh) * | 2020-11-11 | 2021-02-19 | 深圳市豪恩汽车电子装备股份有限公司 | 存储卡管理装置及方法 |
-
2021
- 2021-09-26 CN CN202111130601.0A patent/CN114995886B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1445628A (zh) * | 2002-03-15 | 2003-10-01 | 卡西欧计算机株式会社 | 时刻数据接收装置以及时刻数据修正方法 |
CN104425850A (zh) * | 2013-08-22 | 2015-03-18 | 瑞萨电子株式会社 | 半导体装置、电池组及便携式终端 |
CN104391564A (zh) * | 2014-11-28 | 2015-03-04 | 福州瑞芯微电子有限公司 | 功耗控制方法和装置 |
CN104601921A (zh) * | 2015-01-15 | 2015-05-06 | 上海小蚁科技有限公司 | ***配置方法及装置 |
US20160239235A1 (en) * | 2015-02-17 | 2016-08-18 | Woonjae Chung | Storage devices, memory systems and operating methods thereof |
JP2018041515A (ja) * | 2016-09-06 | 2018-03-15 | ルネサスエレクトロニクス株式会社 | フラッシュメモリ |
US20180129617A1 (en) * | 2016-11-09 | 2018-05-10 | Realtek Semiconductor Corp. | Memory card reading method which adjusts reader to host interface |
CN107221349A (zh) * | 2017-08-03 | 2017-09-29 | 深圳市博巨兴实业发展有限公司 | 一种基于flash存储器的微控制器芯片 |
CN110716633A (zh) * | 2019-09-30 | 2020-01-21 | 深圳忆联信息***有限公司 | 协调管理ssd功耗的装置、方法、计算机设备及存储介质 |
CN111918419A (zh) * | 2020-07-24 | 2020-11-10 | 深圳市云洲创新科技有限公司 | 无线通信方法、装置、设备及存储介质 |
CN112148649A (zh) * | 2020-09-03 | 2020-12-29 | 深圳市宏旺微电子有限公司 | 一种u-boot***下的eMMC HS400传输模式实现方法及装置 |
CN112379834A (zh) * | 2020-11-11 | 2021-02-19 | 深圳市豪恩汽车电子装备股份有限公司 | 存储卡管理装置及方法 |
Non-Patent Citations (3)
Title |
---|
LEARNINGAVR: "SD卡时钟切换问题", 《HTTPS://WWW.AMOBBS.COM/THREAD-5508623-1-1.HTML》 * |
OOONEBOOK: "[sd card] SD card初始化时的总线设置", 《HTTPS://BLOG.CSDN.NET/OOONEBOOK/ARTICLE/DETAILS/60467901》 * |
ZQB_ALL: "nor flash之频率限制", 《HTTPS://CLOUD.TENCENT.COM/DEVELOPER/ARTICLE/1562903》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117406924A (zh) * | 2023-10-19 | 2024-01-16 | 合肥力高动力科技有限公司 | 一种bms中基于tf卡的数据存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114995886B (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021083378A1 (zh) | 一种加速应用程序启动的方法及电子设备 | |
CN113704014A (zh) | 日志获取***、方法、电子设备及存储介质 | |
CN114116191B (zh) | 内存冷页的处理方法及电子设备 | |
AU2018456082B2 (en) | Stylus detection method, system, and related device | |
WO2021042894A1 (zh) | 一种电子设备的sim卡掉卡恢复方法及电子设备 | |
WO2022052897A1 (zh) | 调整内存配置参数的方法和装置 | |
WO2020015259A1 (zh) | 一种数据备份方法及终端 | |
WO2022078105A1 (zh) | 内存管理方法、电子设备以及计算机可读存储介质 | |
CN114579954A (zh) | 安全启动校验的方法及电子设备 | |
CN114995886B (zh) | 一种存储卡的识别方法及电子设备 | |
CN115794361A (zh) | 管理内存的方法和电子设备 | |
CN111381996B (zh) | 内存异常处理方法及装置 | |
CN117130541B (zh) | 存储空间配置方法及相关设备 | |
CN115904297A (zh) | 屏幕显示检测方法、电子设备及存储介质 | |
CN117130975B (zh) | 总线接口扩展方法及相关设备 | |
CN116244008A (zh) | 应用启动方法、电子设备以及存储介质 | |
CN115729684B (zh) | 输入输出请求处理方法和电子设备 | |
CN112783418B (zh) | 一种存储应用程序数据的方法及移动终端 | |
CN114690849B (zh) | 时钟偏移确定方法、装置及存储介质 | |
CN113485969A (zh) | 一种存储碎片化方法及装置、终端及计算机存储介质 | |
CN116627855B (zh) | 内存处理方法及相关装置 | |
CN117116258B (zh) | 一种语音唤醒方法及电子设备 | |
CN116302291B (zh) | 应用显示方法、电子设备以及存储介质 | |
CN117130947B (zh) | 一种内存管理方法及电子设备 | |
CN116662150B (zh) | 应用启动耗时检测方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |